Seleksi
Pendahuluan Struktur runtunan hanya terdapat pada program sederhana Pada umumnya masalah yang akan diselesaikan memiliki beberapa alternatif pelaksanaan aksi. Suatu aksi hanya dilakukan bila persyaratan atau kondisi tertentu dipenuhi.
Perintah IF Perintah ini untuk memilih satu atau 2 atau lebih alternatif jawaban yang disediakan. Jika perintah IF terdiri dari dua atau lebih pernyataan, maka pernyataan tersebut harus berada diantara begin dan end. Perintah IF memiliki bentuk : IF (kondisi) pernyataan Bentuk diatas mempunyai pengertian jika kondisi bernilai benar maka pernyataan dibawahnya akan dkerjakan. Jadi perintah IF merupakan perintah yang menentukan pengambilan keputusan bahwa pernyataan itu dikerjakan atau tidak.
Perintah IF…..ELSE Perintah IF….ELSE formatnya adalah IF (kondisi) Pernyataan1 Else Pernyatan2 Bentuk ini mempunyai arti: jika kondisi benar, maka pernyataan1 akan dikerjakan, tetapi jika kondisi salah, maka pernyataan2 yang akan dikerjakan.
Nested IF (IF di dalam IF) Bentuk umum yang digunakan adalah : If (kondisi 1) If (kondisi 2) pernyataan1; else pernyataan2; pernyataan3;
Satu Kasus Notasi algoritmik untuk analisis dengan satu kasus adalah dengan menggunakan struktur IF THEN if kondisi then aksi endif Aksi sesudah kata then dapat berupa satu atau lebih aksi hanya akan dilaksanakan bila kondisi bernilai benar (true). Bila kondisi bernilai salah (false), tidak ada aksi apapun yang dikerjakan. Kata endif sengaja ditambahkanuntuk mempertegas awal dan akhir struktur if-then
Contoh if x > 100 then x x + 1 endif if kar=‘*’ then stop true
Dua Kasus Notasi algoritmik untuk analisis dengan satu kasus adalah dengan menggunakan struktur IF THEN-ELSE if kondisi then aksi1 else aksi2 endif Aksi 1 akan dilaksanakan jika kondisi bernilai benar, tetapi jika kondisi bernilai salah maka aksi2 yang akan dilaksanakan. Perhatikan bahwa “else” menyatakan ingkaran (negation) dari kondisi
Contoh : if a > 0 then write(‘bilangan positif’) else write(‘bilangan bukan positif’) endif Tuliskan algoritma yang membaca bilangan bulat, lalu menuliskan pesan “bilangan genap” jika bilangan tersebut habis dibagi 2. atau menuliskan bilangan “ganjil” jika bilangan itu tidak habis dibagi 2.
Algoritma BILANGAN_GENAP_DAN_GANJIL {mencetak pesan :bilangan genap” jika sebuah bilanan bulat yang dibaca dai piranti masukan habis dibagi 2, atau bilangan ganjil, jika bilangan tersebut tidak habis dibagi 2” DEKLARASI bil : integer DESKRIPSI read(bil) if bilmod 2 = 0 then write(‘bilangan genap’) else write(‘bilangan ganjil’) endif
Tiga Kasus atau Lebih Masalah yang mempunyai tiga buah kasus atau lebih tetap dapat dianalisis dengan struktur IF-THEN-ELSE sebagaimana hanya pada masalah dengan dua kasus. Tiga kasus : if kondisi1 then aksi1 else if kondisi2 then aksi2 if kondisi3 then aksi3 endif
Contoh tiga kasus Tulislah algoritma yang membaca sebuah bilangan bulat, lalu menentukan apakah bilangan tersebut positif, negatif atau nol Jawab : Algoritma JENIS_BILANGAN {mencetak pesan “bilangan positif” jika sebuah bilangan bulat yang dibaca dari piranti masukan > 0, atau “bilangan negatif” jika bilangan tersebut <0 atau “nol” jika bilangan tersebut = 0} DEKLARASI bil : integer DESKRIPSI : read(bil) if bil > 0 then write(‘bilangan positif’) else if bil < 0 then write(‘bilangan negatif’) if bil < 0 write(‘nol’) endif
CASE Untuk masalah dengan dua kasus atau lebih , struktur CASE dapat menyederhanakan penulisan IF THEN ELSE yang bertingkat tinggi sebagaimana pada contoh-contoh sebelumnya.
Struktur CASE Untuk masalah dengan dua kasus atau lebih, struktur CASE dapat menyederhanakan penulisan IF-THEN-ELSE yang bertingkat. Struktur CASE adalah sebagai berikut: Case (ekspresi) kondisi1 : aksi1 kondisi2 : aksi2 kondisi3 : aksi3 . kondisi4 : aksi4 [otherwise aksiX] endcase Kondisi1, kondisi2,…, kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang bernilai benar. Jika kondisi ke-k dilaksanakan, selanjutnya keluar dari struktur CASE. Aksi yang dipasangkan dengan kondisi ke-k dapat lebih dari satu. Jika tidak ada satupun kondisi yang benar, maka aksi sesudah otherwise dikerjakan. Perhatikanlah bahwa otherwise optional, artinya boleh ditulis boleh juga tidak ditulis.
Struktur CASE tersebut (pada slide sebelumnya) menggantikan analisis kasus yang ekivalen dengan struktur IF-THEN-ELSE berikut: if kondisi1 then aksi1 else if kondisi2 then aksi2 if kondisi3 then aksi3 if kondisi4 then aksi4 endif
Tidak semua bahasa pemrograman menyediakan struktur case (misalnya bahasa Fortran). Bahasa C, JAVA, dan PASCAL menyediakan struktur ini. Jika bahasa pemrograman tidak menyediakan struktur CASE, maka CASE dapat diganti dengan struktur IF-THEN-ELSE yang ekivalen. Contoh Soal: Buatlah algoritma yang membaca sebuah angka bulat yang nilainya terletak antara 1 sampai 4, lalu menuliskan ke piranti keluaran angka tersebut dalam kata-kata. Misalkan bila dibaca angka 1, maka tercetak tulisan “satu”, bila dibaca 2, maka tercetak tulisan “dua”, demikian seterusnya. Jika angka yang dimasukkan selain 1 sampai 4 tuliskan pesan bahwa angka yang dimasukkan salah.
Dengan struktur IF-THEN-ELSE
Dengan struktur CASE, algoritma untuk masalah tersebut dapat dibuat menjadi lebih singkat sebagai berikut: