Minggu, 22 September 2013

modul1-daspro (135623086 - Rachmat Arief Nurcahyo)



NAMA : Rachmat Arief Nurcahyo
NIM      : 135623086

Dasar Teori Algoritma dan Pemrograman

1. ALGORITMA
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat
2. PEMROGRAMAN
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram (programmer). Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.






Karakteristik Algoritma
1.      Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
  1. Setiap langkah harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan bulat positif”
  2. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan n.
  3. Algoritma mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
  4. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.

                                  Flowchart

Flowchart adalah representasi skematis dari sebuah proses. Flowchart banyak digunakan dalam presentasi bisnis/ekonomi untuk membantu hadirin memvisualisasikan konten secara lebih baik, atau untuk menemukan kelemahan-kelemahan dalam sebuah proses.








Pseudocode

Pseudocode adalah cara untuk menuliskan sebuah algoritma secara high-level (level tingkat tinggi).Biasanya Pseudocode dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika. Biasanya sebuah Pseudocode tidak terlalu detail dibandingkan dengan program. Isu-isu detail dalam program yang sifatnya teknis tidak dibahas di dalam Pseudocode.
Komponen-komponen Pseudocode, antara lain:
1. Variabel.
- Merupakan tempat penyimpanan sebuah nilai.
2. Perulangan (Loop).
- Teknik for-do
- Teknik repeat-until
- Teknik while-do
3. Percabangan (branch).
- Teknik if-then
- Teknik select-case
4. Modul.
- Procedure/Sub
- Function.
- Teknik Rekursif

Contoh Pseudocode, sederhana:

1. Algoritma untuk menampilkan 7 buah simbol #.

1. for i=1 to 7 do
2. display ”#”
3. end for

2. Algoritma untuk menghitung faktorial dari N.

1. iTampung=1
2. for i=1 to N do
3. iTampung=iTampung*i
4. end for
5. display ”Faktorial dari ”,N,” adalah ”,iTampung,NL





3. Algoritma untuk menampilkan bilangan Fibonacci.

1 f1=0
2 f2=1
3 for i=1 to 8 do
4 iFibo=f1+f2
5 display ”Angka ke-”,i,” adalah ”,iFibo,NL
6 f1=f2
7 f2=iFibo
8 end for

Bahasa Pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
1.     Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
2.     Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
3.     Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
4.     Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.







Langkah-langkah pemecahan masalah

No 1. Langkah-langkah menyelesaikan masalah
            1. Siapkan gelas C (kosong)
            2. Tuangkan gelas A ke gelas C
            3. Kemudian tuangkan gelas B ke gelas A
            4. Yang terakhir tuangkan gelas C ke gelas B
            5. Selesai, hasil gelas A berwarna biru, gelas B berwarna merah

No 2. Langkah-langkah menyelesaikan masalah
            1. Ambil air dengan ember 7L
            2. Setelah itu tuangkan pada ember 5L
            3. Sisa air pada ember 7L
            4. Buang air di ember 5L
            5. Tuangkan air sisa di ember 7L ke ember 5L
            6. Ambil air di ember 7L
            7. Tuangkan lagi ke ember 5L dan sisa 5L
            8. Buang air di ember 5L tuangkan air sisa di ember 7L ke ember 5L
            9. Ambil air di ember 7L
            10. Tuangkan lagi ke ember 5L dan menjadi 6L

No 3. Langkah-langkah menyelesaikan masalah
1. Orang no 3 sama orang no 1 berjalan
2. Orang no 1 balik
3. Orang no 12 sama orang no 8
4. Orang no 3 balik
5. Orang no 6 sama orang no 1
6. Orang no 1 balik
7. Orang no 3 sama orng no 1

No 4.Langkah-langkah menyelesaikan masalah
            1. 2 kanibal menyebrang
            2. Kanibal 1 di turunkan
            3. Kembali membawa kanibal satunya terus menyebrang
            4. Kembali tukar sama 2 orang terus menyebrang
            5. 1 orang tukar sama 1 kanibal
            6. Kembali 1 kanibal di tukar 1 orang terus menyebrang
            7. 2 orang turun tukar sama 1 kanibal membawa 1 kanibal terus menyebrang
            8. Meneruskan 1 kanibal yang satunya kembali membawa kanibal yang selanjutnya
            9. Turun 2 kanibal tersebut    
            10. BRAVO!!!


No 5.Langkah-langkah menyelesaikan masalah
            1. Petani lebih dulu membawa kambing
            2. Taruh kambing tersebut terus petani kembali
            3. Membawa sayuran terus taruh tukar sama kambing
            4. Petani membawa kambing menukar dengan anjing
            5. Taruh anjing tersebut petani kembali membawa kambing









































Referensi


NAMA : Rachmat Arief Nurcahyo
NIM      : 135623086

Dasar Teori Algoritma dan Pemrograman

1. ALGORITMA
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat
2. PEMROGRAMAN
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram (programmer). Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.






Karakteristik Algoritma
1.      Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
  1. Setiap langkah harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan bulat positif”
  2. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan n.
  3. Algoritma mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
  4. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.

                                  Flowchart

Flowchart adalah representasi skematis dari sebuah proses. Flowchart banyak digunakan dalam presentasi bisnis/ekonomi untuk membantu hadirin memvisualisasikan konten secara lebih baik, atau untuk menemukan kelemahan-kelemahan dalam sebuah proses.








Pseudocode

Pseudocode adalah cara untuk menuliskan sebuah algoritma secara high-level (level tingkat tinggi).Biasanya Pseudocode dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika. Biasanya sebuah Pseudocode tidak terlalu detail dibandingkan dengan program. Isu-isu detail dalam program yang sifatnya teknis tidak dibahas di dalam Pseudocode.
Komponen-komponen Pseudocode, antara lain:
1. Variabel.
- Merupakan tempat penyimpanan sebuah nilai.
2. Perulangan (Loop).
- Teknik for-do
- Teknik repeat-until
- Teknik while-do
3. Percabangan (branch).
- Teknik if-then
- Teknik select-case
4. Modul.
- Procedure/Sub
- Function.
- Teknik Rekursif

Contoh Pseudocode, sederhana:

1. Algoritma untuk menampilkan 7 buah simbol #.

1. for i=1 to 7 do
2. display ”#”
3. end for

2. Algoritma untuk menghitung faktorial dari N.

1. iTampung=1
2. for i=1 to N do
3. iTampung=iTampung*i
4. end for
5. display ”Faktorial dari ”,N,” adalah ”,iTampung,NL





3. Algoritma untuk menampilkan bilangan Fibonacci.

1 f1=0
2 f2=1
3 for i=1 to 8 do
4 iFibo=f1+f2
5 display ”Angka ke-”,i,” adalah ”,iFibo,NL
6 f1=f2
7 f2=iFibo
8 end for

Bahasa Pemrograman
Bahasa pemrograman, atau sering diistilahkan juga dengan bahasa komputer, adalah teknik komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
1.     Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
2.     Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb.
3.     Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
4.     Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.







Langkah-langkah pemecahan masalah

No 1. Langkah-langkah menyelesaikan masalah
            1. Siapkan gelas C (kosong)
            2. Tuangkan gelas A ke gelas C
            3. Kemudian tuangkan gelas B ke gelas A
            4. Yang terakhir tuangkan gelas C ke gelas B
            5. Selesai, hasil gelas A berwarna biru, gelas B berwarna merah

No 2. Langkah-langkah menyelesaikan masalah
            1. Ambil air dengan ember 7L
            2. Setelah itu tuangkan pada ember 5L
            3. Sisa air pada ember 7L
            4. Buang air di ember 5L
            5. Tuangkan air sisa di ember 7L ke ember 5L
            6. Ambil air di ember 7L
            7. Tuangkan lagi ke ember 5L dan sisa 5L
            8. Buang air di ember 5L tuangkan air sisa di ember 7L ke ember 5L
            9. Ambil air di ember 7L
            10. Tuangkan lagi ke ember 5L dan menjadi 6L

No 3. Langkah-langkah menyelesaikan masalah
1. Orang no 3 sama orang no 1 berjalan
2. Orang no 1 balik
3. Orang no 12 sama orang no 8
4. Orang no 3 balik
5. Orang no 6 sama orang no 1
6. Orang no 1 balik
7. Orang no 3 sama orng no 1

No 4.Langkah-langkah menyelesaikan masalah
            1. 2 kanibal menyebrang
            2. Kanibal 1 di turunkan
            3. Kembali membawa kanibal satunya terus menyebrang
            4. Kembali tukar sama 2 orang terus menyebrang
            5. 1 orang tukar sama 1 kanibal
            6. Kembali 1 kanibal di tukar 1 orang terus menyebrang
            7. 2 orang turun tukar sama 1 kanibal membawa 1 kanibal terus menyebrang
            8. Meneruskan 1 kanibal yang satunya kembali membawa kanibal yang selanjutnya
            9. Turun 2 kanibal tersebut    
            10. BRAVO!!!


No 5.Langkah-langkah menyelesaikan masalah
            1. Petani lebih dulu membawa kambing
            2. Taruh kambing tersebut terus petani kembali
            3. Membawa sayuran terus taruh tukar sama kambing
            4. Petani membawa kambing menukar dengan anjing
            5. Taruh anjing tersebut petani kembali membawa kambing









































Referensi