PENYELEKSIAN KONDISI (PEMILIHAN) • Kompetensi Dasar : – 1. Mahasiswa mengenal macam-macam penyeleksian kondisi. – 2. Mahasiswa mampu menggunakan penyeleksian kondisi berdasarkan kasus yang ada. • Indikator : 1. Mahasiswa mampu menganalisa dan mencari satu atau lebih kondisi yang ada pada setiap kasus. 2. Mahasiswa mampu membedakan dan menggunakan pernyataan penyeleksi (if .. then, if .. then .. else .. ,dll) sesuai dengan kasus yang ditemui. 3. Mahasiswa mampu membuat program penyeleksian kondisi dengan bahasa Pascal. Penyeleksian kondisi adalah salah satu elemen algoritma yang paling sederhana. Penyeleksian kondisi memungkinkan suatu pernyataan dieksekusi hanya jika kondisi terpenuhi atau tidak terpenuhi. A. Pernyataan if .. then Pernyataan if digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataanpernyataan tertentu; dan bila kondisi yang diuji salah, program akan berhenti dan tidak menjalankan apapun. Bentuk umum pernyataan if adalah sebagai berikut: if kondisi (pernyataan-pernyataan yang dijalankan jika kondisi terpenuhi) kondisi sendiri merupakan suatu ekspresi bertipe Boolean, artinya hanya dapat bernilai benar (true) atau salah (false). Contoh : if (x>0) then writeln(‘x bilangan positif’) Program ini akan menuliskan ‘x bilangan positif’ jika variable x lebih besar daripada 0 dan akan berhenti atau tidak menjalankan pernyataan apapun jika x < 0. B. If tersarang (nested If) Struktur If tersarang merupakan bentuk dari suatu statement If berada di dalam lingkungan statemen If yang lainnya. Bentuk statement If tersarang sebagai berikut : if kondisi1 then begin if kondisi2 then begin statemen1 end; else statemen2 end; else Statement3; C. Penyataan if .. then .. else .. Pernyataan if…then ….else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, program akan menjalankan pernyataan-pernyataan tertentu; dan bila kondisi yang diuji salah, program akan menjalankan pernyataan-pernyataan lain. Bentuk umum pernyataan if…then ….else adalah sebagai berikut: if kondisi then Begin (pernyataan-pernyataan yang dijalankan jika kondisi terpenuhi) End Else Begin (pernyataan-pernyataan yang dijalankan jika kondisi TIDAK terpenuhi) End Contoh: if (x>0) then writeln(’x bilangan positif’) Else writeln(‘x BUKAN bilangan positif’); Program ini akan menuliskan ‘x bilangan positif’ jika variable x lebih besar daripada 0 dan menuliskan ‘x BUKAN bilangan positif’ jika x lebih kecil atau sama dengan 0. Pernyataan if .. else di atas tidak diletakkan diantara kata kunci begin dan end, karena pernyataan yang diekskusi hanya satu baris, sedang untuk pernyataan lebih dari satu baris maka wajib diletakkan di antara kata kunci begin dan end. D. Pernyataan if .. then .. else if .. then .. else .. Dalam kasus-kasus tertentu, terdapat kondisi lebih dari dua yang tidak dimungkinkan menggunakan pernyataan if..else. Oleh sebab itu, untuk menangani kasus tersebut digunakan pernyataan if..else if. Contoh: if (x>0) then writeln (‘x bilangan positif’) else if (x<0) then writeln (‘x bilangan negatif’) else writeln (‘x adalah nol’); Pada contoh di atas, mula-mula program mengecek nilai x > 0 atau tidak. Bila kondisi ini terpenuhi program akan menulis ‘x bilangan positif’. Sebaliknya bila tidak terpenuhi, program akan menjalankan pernyataan if kedua untuk mengecek nilai x < 0 atau tidak. Bila kondisi ini terpenuhi program akan menulis ‘x bilangan negatif’. Dan bila tidak terpenuhi, program menulis ‘x adalah nol’. E. Pernyataan Case Penyataan case digunakan untuk menyederhanakan kontruksi if..else if yang terlalu banyak. Bentuk struktur dari case - Of: case Variabel Kondisi of case – Label 1; Statement 1; case – Label 2; Statement 2; case – Label 3; Statement 3; case – Label 4; Statement 4; ........ ........ case – Label n ; Statement n ; end ; { end dari case } Contoh: if (x = 0) then writeln (‘x bernilai nol’) else if (x = 1) then writeln (‘x bernilai 1’) else if (x = 2) then writeln (‘x bernilai 2’) else if (x = 3) then writeln (‘x bernilai 3’) else writeln (‘x tidak bernilai 0, 1, 2, ataupun 3’); Program di atas dapat diganti menjadi lebih ringkas dan mudah dibaca dengan program berikut: case x of 0 : writeln 1 : writeln 2 : writeln 3 : writeln Else Writeln (‘x 2, ataupun end; (‘x (‘x (‘x (‘x bernilai bernilai bernilai bernilai 0’); 1’); 2’); 3’); tidak bernilai 0, 1, 3’); Tubikontinyu…. Looping….