Algoritma dan Pemrograman Komputer Algoritma dan Pemrograman Komputer 3 SKS 3 SKS 1 Pertemuan ke Pertemuan ke 7 7 dosen dosen Endro Purnomo Endro Purnomo Program Studi Pendidikan Matematika Program Studi Pendidikan Matematika Universitas Muhammadiyah Purworejo Universitas Muhammadiyah Purworejo S1 Ilmu Komputer UGM S2 Master of Computer Science UGM (studi) Cisco Certified Network Associate Email : endro@umpwr.ac.id YM and Gtalk : endrosri Website : www.lintassolusi.com Blog : blog.lintassolusi.com 2 Endro Purnomo Endro Purnomo 27/09/2011 Ditulis oleh Endro Purnomo 2 Struktur Kendali Struktur Kendali 1. Percabangan / Pemilihan 2. Perulangan / Looping 3 Percabangan / Pemilihan Percabangan / Pemilihan 4 27/09/2011 Ditulis oleh Endro Purnomo 3 Percabangan / Pemilihan Percabangan / Pemilihan Adalah perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu. Ada tiga macam perintah percabangan dalam C: if (kondisi) { } if (kondisi) { } else { } switch (kondisi) { } 5 Percabangan / Pemilihan [Cont.2] Percabangan / Pemilihan [Cont.2] Percabangan (brancing) di dalam pemrograman digunakan oleh komputer untuk menentukan langkah kerja. Percabangan menggunakan operator kondisional yang akan menghasilkan nilai benar/true/1atau salah/false/0. Jika nilai yang dihasilkan benar, maka akan perintah akan dilaksanakan, sedangkan jika salah, maka instruksi tidak akan dilaksanakan. 6 27/09/2011 Ditulis oleh Endro Purnomo 4 Percabangan / Pemilihan [Cont.3] Percabangan / Pemilihan [Cont.3] Contoh: 9 > 5, pasti selalu bernilai TRUE N > 60, belum tentu benar, tergantung nilai N, sehingga terdapat alternatif pilihan yang dihasilkan, TRUE atau FALSE. Cobalah: printf( %d, 5>9); //akan menghasilkan nilai 0 printf(%d, 10>2); //akan menghasilkan nilai 1 Di dalam bahasa C, tidak dikenal variabel boolean, yang ada adalah 0 (salah) dan 1 (benar) sehingga digunakan %d untuk menampilkan hasil kondisi, karena bertipe numerik 7 IF Sederhana IF Sederhana Bentuk Umum if (<kondisi>) <perintah yang dikerjakan jika benar>; Contoh x=100; y=10; If (x>y) { printf(x lebih besar dari y); } 8 27/09/2011 Ditulis oleh Endro Purnomo 5 IF ... ELSE ... IF ... ELSE ... Bentuk Umum if (<kondisi>) <perintah yang dikerjakan jika benar>; else <perintah yang dikerjakan jika salah>; Contoh x=100; y=10; If (x>y) printf(%d lebih besar dari %d,x,y); else printf(%d tidak lebih besar dari %d,x,y); 9 Bentuk IF lain Bentuk IF lain #include<stdio.h> void main() { int a; 10>2&&2<1?a=1:a=0; printf (%d,a); } Jawab : 0 Karena pernyataan 10>2&&2<1 bernilai FALSE sehingga perintah a=0 yang akan dikerjakan 10 27/09/2011 Ditulis oleh Endro Purnomo 6 IF ... ELSE ... Statement Jamak IF ... ELSE ... Statement Jamak if (<kondisi>) { <perintah 1 yang dikerjakan jika benar>; <perintah 2 yang dikerjakan jika benar>; <perintah 3 yang dikerjakan jika benar>; ... <perintah n yang dikerjakan jika benar>; } else { <perintah 1 yang dikerjakan jika salah>; <perintah 2 yang dikerjakan jika salah>; <perintah 3 yang dikerjakan jika salah>; ... <perintah n yang dikerjakan jika salah>; } 11 Soal Soal- -Soal Soal Buatlah program untuk memeriksa suatu bilangan genap atau ganjil Buatlah program untuk memeriksa bilangan terbesar dari 2 bilangan Buatlah program untuk memvalidasi umur (1-100 tahun) Buatlah program untuk mengecek apakah suatu segitiga sama sisi atau bukan! Buatlah program untuk memeriksa apakah pemasukkan lebih besar / kecil dari pengeluaran 12 27/09/2011 Ditulis oleh Endro Purnomo 7 Percabangan Kompleks Percabangan Kompleks Percabangan dimana kondisi pemilihan tidak hanya satu tetapi bisa terdiri dari banyak alternatif serta perintah- perintah yang dikerjakannya juga bisa lebih dari satu. IF Bersarang (Nested IF) IF Bertingkat 13 IF Bersarang (Nested IF) IF Bersarang (Nested IF) 14 27/09/2011 Ditulis oleh Endro Purnomo 8 IF Bersarang (Nested IF) [Cont.2] IF Bersarang (Nested IF) [Cont.2] 15 IF Bersarang (Nested IF) [Cont.3] IF Bersarang (Nested IF) [Cont.3] 16 27/09/2011 Ditulis oleh Endro Purnomo 9 IF Bersarang (Nested IF) [Cont.4] IF Bersarang (Nested IF) [Cont.4] 17 IF Bersarang (Nested IF) [Cont.5] IF Bersarang (Nested IF) [Cont.5] 18 27/09/2011 Ditulis oleh Endro Purnomo 10 IF Bersarang (Nested IF) [Cont.6] IF Bersarang (Nested IF) [Cont.6] 19 IF Bertingkat IF Bertingkat if (<kondisi1>) { <perintah 1 dikerjakan jika benar>; } else if (<kondisi2>) { <perintah 2 dikerjakan jika benar>; } else if (<kondisi3>) { <perintah 3 dikerjakan jika benar>; } ... else if (<kondisi4>) { <perintah 4 dikerjakan jika benar>; } 20 27/09/2011 Ditulis oleh Endro Purnomo 11 Bedakan dengan Bedakan dengan if (<kondisi1>) { <perintah 1 dikerjakan jika benar>; } if (<kondisi2>) { <perintah 2 dikerjakan jika benar>; } if (<kondisi3>) { <perintah 3 dikerjakan jika benar>; } ... if (<kondisi4>) { <perintah 4 dikerjakan jika benar>; } 21 Percabangan dengan Switch Percabangan dengan Switch Perintah ini digunakan sebagai alternatif pengganti dari sintaks if else secara sederhana dimana alternatif pilihan bisa lebih dari satu. Namun switch tidak bisa digunakan untuk pilihan yang mengandung suatu kondisi tertentu. Dengan perintah ini program percabangan akan semakin mudah dibuat dan dipelajari 22 27/09/2011 Ditulis oleh Endro Purnomo 12 Switch dengan break Switch dengan break Bentuk Umum switch (<variabel>) { case <konstanta 1> : <perintah 1>; break; case <konstanta 2> : <perintah 2>; break; case <konstanta 3> : <perintah 3>; break; ... case <konstanta n> : <perintah n>; break; default : <perintah default>; } 23 Bedakan dengan Switch tanpa break Bedakan dengan Switch tanpa break switch (<variabel>) { case <konstanta 1> : <perintah 1>; case <konstanta 2> : <perintah 2>; case <konstanta 3> : <perintah 3>; ... case <konstanta n> : <perintah n>; default : <perintah default>; } Perintah break digunakan untuk keluar dari struktur kendali percabangan/pemilihan dan perulangan 24 27/09/2011 Ditulis oleh Endro Purnomo 13 Flowchart switch dengan break Flowchart switch dengan break 25 Karakteristik Switch Karakteristik Switch Perintah switch akan menyeleksi kondisi yang diberikan dan kemudian membandingkan hasilnya dengan konstanta- konstanta yang berada di case. Pembandingan akan dimulai dari konstanta 1 sampai konstanta terakhir. Jika hasil dari kondisi sama dengan nilai konstanta tertentu, misalnya konstanta 1, maka pernyataan 1 akan dijalankan sampai ditemukan break. Pernyataan break akan membawa proses keluar dari perintah switch. Jika hasil dari kondisi tidak ada yang sama dengan konstanta-konstanta yang diberikan, maka pernyataan pada default akan dijalankan 26 27/09/2011 Ditulis oleh Endro Purnomo 14 Contoh program dengan switch Contoh program dengan switch #include<stdio.h> void main() { int hari; printf("Hari ini adalah hari ke "); scanf("%d",&hari); printf("yaitu hari "); switch(hari) { case 1 : printf("Minggu");break; case 2 : printf("Senin");break; case 3 : printf("Selasa");break; case 4 : printf("Rabu");break; case 5 : printf("Kamis");break; case 6 : printf("Jumat");break; case 7 : printf("Minggu");break; default : printf("Tidak ada hari lebih dari 7"); } printf("\n"); system("pause"); 27 Contoh program dengan switch Contoh program dengan switch #include<stdio.h> void main() { int hari; printf("Hari ini adalah hari ke "); scanf("%d",&hari); printf("yaitu hari "); switch(hari) { case 1 : printf("Minggu");break; case 2 : printf("Senin");break; case 3 : printf("Selasa");break; case 4 : printf("Rabu");break; case 5 : printf("Kamis");break; case 6 : printf("Jumat");break; case 7 : printf("Minggu");break; default : printf("Tidak ada hari lebih dari 7"); } printf("\n"); system("pause"); 28 27/09/2011 Ditulis oleh Endro Purnomo 15 Soal Soal- -Soal Soal Buatlah konversi nilai huruf dari nilai yang diinputkan user A = 80-100 B = 65-79 C = 50-64 D = 35-49 E = 0-34 29 Soal Soal- -Soal Soal Buatlah program yang menerima inputan 3 buah panjang sisi segitiga, kemudian: Jika segitiga tersebut sama sisi katakan SEGITIGA SAMA SISI Jika segitiga tersebut sama kaki katakan SEGITIGA SAMA KAKI Jika bukan keduanya katakan SEGITIGA SEMBARANG 30