P9 Seleksi & Perulangan A. Sidiq Purnomo Program Studi Teknik Informatika Universitas Mercu Buana Yogyakarta
Tujuan Mahasiswa mampu mengetahui dan memahami : Mengetahui dan memahami lebih lanjut Perulangan Mengetahui dan memahami lebih lanjut seleksi 2
Pembahasan Perulangan Perulangan dan Kondisi 3
Lebih Lanjut Kondisi
If Dengan Kondisi Berupa Suatu Variabel Telah disebutkan sebelumnya bahwa suatu kondisi yang diseleksi dapat bernilai benar atau bernilai tidak benar (salah). Nilai benar adalah nilai numerik satu dan nilai salah adalah nilai numerik nol. 5
Dengan demikian bentuk dari statemen if berikut ini : if(d==0) printf( Nilai D adalah nol \n ); else printf( Nilai D tidak sama dengan nol \n ) Dapat juga ditulis sebagai berikut : if(d) printf( Nilai D tidak sama dengan nol\n ); else printf( Nilai D adalah nol\n ); 6
Statemen if(d) berarti adalah untuk menyeleksi apakah D bernilai benar atau dengan kata lain apakah D bernilai tidak sama dengan nol. Jika nilai D adalah nol, hasil kondisi yang diseleksi adalah tidak benar, maka statemen setelah else yang diproses. Sebaliknya jika kondisi adlah bernilai benar (D tidak bernilai nol), statemen setelah if yang akan diproses. 7
Agar tidak membingungkan, bentuk dari statemen if dapat juga ditulis sebagai berikut ini (lebih jelas, tetapi kurang efektif). if(!d) printf( Nilai D adalah nol\n ); else printf( Nilai D tidak sama dengan nol\n ); statemen if(!d) berarti adalah jika D bernilai tidak benar atau D sama dengan nol (D==0) 8
Bentuk if Kondisi Jamak Beberapa kondisi dapat diseleksi sekaligus dalam suatu statemen if dengan menggunakan operator logika (logical operator), yaitu operator && (AND), (OR) atau! (NOT). Contoh : Misalnya nilai A=3, B=1, dan C= Y. penyeleksi kondisi jamak sebagai berikut ini akan menghasilkan nilai nilai logika benar. if (A>5 B && C== Y ) printf( Kondisi benar\n ); else printf( Kondisi tidak benar\n ); 9
Hasil dari penyeleksian kondisi ini dapat dievaluasi sebagai berikut ini. 1.Masing-masing kondisi yang berupa ungkapan hubungan diseleksi terlebih dahulu, karena operator hubungan mempunyai jenjang yang lebih tinggi dibandingkan dengan operator logika. 10
2.Operator logika && mempunyai jenjang yang lebih tinggi dari operator logika, sehingga ungkapan logika (1 && 1) akan diseleksi terlebih dahulu dengan hasilnya adalah nilai logika 1 (benar). 11
3.Hasil akhir dari penyeleksian kondisi jamak ini adalah nilai logika 1 (benar) yang didapat dari hasil ungkapan logika (0 ). 12
Alternatif : Kondisi dengan operator logika AND dapat diuraikan dalam bentuk if tersendiri yang diletakkan sebelum if semula. Pada contoh sebelumnya, bentuk dari statemen if dapat dirubah dengan menggunakan bentu if bersarang sebagai berikut. if(c== Y ) { if(a>5 B) printf( Kondisi benar\n ); else printf( Kondisi tidak benar\n ); } 13
Penting : Selain jenjang dari operator logika menentukan hasil akhir dari penyeleksian kondisi jamak, kurung buka dan kurung tutup akan merubah urutan penyeleksian dengan hasil akhir yang dapat berbeda. Hasil dari penyeleksian kondisi ini : If(A>5 B C== Y && A+B>20) Akan berbeda dengan hasil penyeleksi kondisi berikut : If((A>5 B C== Y ) && A+B>20) 14
Lebih Lanjut Perulangan
Statement For Tanpa Nilai Awal Nilai awal dari pengontrol perulangan for tidak harus ada di dalam statemen for. Tetapi dapat ditentukan sebelum perulangan for. Contoh : 16
Keterangan : Nilai awal dari variable S sebagai variable untuk mengontrol perulangan adalah 3 dan ditentukan sebelum perulangan for. Dalam statement for awal ini tidak perlu ditulis kembali, tetapi tanda titik koma (;) harus tetap ditulis. 17
Statement For Tanpa Peningkatan Dalam statement for, ungkapan yang menunjukkan peningkatan nilai dari variable pengontrol perulangan for tidak harus ada di dalam statemen for. Tetapi dapat dituliskan sebagai suatu statement yang nantinya akan diproses secara berulang-ulang. Contoh 1 : 18
Contoh 2 : Keterangan : Nilai Q++ tidak berdiri sendiri sebagai suatu statement, tetapi ada fungsi printf() untuk menampilkan hasilnya, Nilai Q akan ditampilkan terlebih dahulu, baru kemudian akan ditambah nilainya dengan 1. 19
Contoh 3 : Keterangan : Jika ditulis ++Q tidak sama dengan Q++. Nilai Q akan ditambah dengan nilai 1 terlebih dahulu, kemudian baru akan ditampilkan hasilnya. 20
Statement For Tanpa Nilai Awal dan Peningkatan Nilai awal dan peningkatan yang digunakan sebagai variable pengontrol perulangan boleh tidak dituliskan dalam statement for. Contoh : 21
Statement For Tanpa Nilai Awal, Nilai Akhir dan Peningkatan Statement for biasanya digunakan untuk membuat perulangan tanpa henti (infinite loop). Perulangan tidak akan pernah berhenti karena kondisi yang digunakan untuk mengakhiri perulangan tidak ada di statement for. Contoh 1: Keterangan : Proses dalam program tersebut, tidak akan pernah berhenti. Bagaimana menghentikannya? 22
Contoh 2 : Keterangan : Program tersebut menggunakan statement for yang akan melakukan pemrosesan tanpa henti. Tetapi kenapa output yang dihasilkan hanya sampai sekali saja? 23
Variasi dalam perulangan Berikut, akan diberikan beberapa contoh program yang menggunakan statement for yang sangat membingungkan jika dilihat sekilas. Kondisi seperti ini banyak dijumpai dalam pemrograman C. 24
Keterangan : Program tersebut merupakan program yang merubah string (huruf kecil) menjadi string (huruf kapital). Proses dari elemen string awal (Q=0) sampai pada elemen string terakhir (S[Q]) untuk masing-masing elemen yang ditunjukkan dengan peningkatan nilai (Q++). 25
Statement
Statement Break Statement break menyebabkan proses perulangan dihentikan. Pernyataan break dapat digunakan untuk melanjutkan perulangan yang sedang dijalankan oleh statement for, while, atau do... while loop. 27
Contoh : Keterangan : Program tersebut menggunakan statement for yang akan melakukan pemrosesan tanpa henti. Tetapi kenapa output yang dihasilkan hanya sampai sekali saja? 28
Statement Continue Statement continue menyebabkan proses perulangan kembali ke awal proses perulangan. Pernyataan continue dapat digunakan untuk melanjutkan perulangan yang sedang dijalankan oleh statement for, while, atau do... while loop. 29
30
Statement goto Statement goto dapat digunakan untuk melompat dari suatu proses ke proses lain yang menjadi tujuan dalam sebuah program. Bentuk umum goto adalah sebagai berikut : goto label; Contoh : goto stop; 31
32
Tugas Dengan menggunakan statemen seleksi dan perulangan, dan statement continue, return dan break. Buatlah algoritma (flowchart) dan program untuk menghitung : a.luas bangun persegi panjang b.luas bangun persegi Dengan ketentuan sebagai berikut : 33
1. Di awal eksekusi harus ada menu untuk memilih menghitung luas persegi atau persegi panjang. 2. Untuk luas persegi panjang, jika ukuran panjang & ukuran lebar nilainya min, maka eksekusi program akan kembali ke menu utama. Dan meninggalkan pesan : Maaf tidak menerima nilai min 34
3. Untuk luas persegi panjang, jika ukuran panjang < ukuran lebar, maka eksekusi program akan kembali ke menu utama. Dan meninggalkan pesan : 4. Jika telah selesai menghitung luas persegi/persegi panjang, maka eksekusi program akan kembali ke menu utama. 35
5. Eksekusi program hanya akan berhenti jika, di tekan button tertentu pada keyboard misalnya 0. Dan meninggalkan pesan misalnya : Selamat Tinggal Kawan...! Jangan Lupa Belajar Mau Ujian! Good Luck...! & C U Next Time! 36
Ketentuan Tugas Syarat Algortima dan Program : Setiap output hasil eksekusi program harus mencantumkan NIM dan Nama. Pengumpulan : Algoritma dan Source Code Tulis Tangan Hasil Eksekusi Program di Print Batas akhir pengumpulan : Kamis, 12-12 - 13 37