MODUL KE-9 PEMILIHAN
Definisi Pemilihan adalah sebuah blok program yang menyatakan bahwa sebuah aksi akan dijalankan jika kondisi pencabangan terpenuhi jika tidak dipenuhi maka aksi tidak akan dijalankan. Dalam logika manusia sebuah percabangan/pemilihan dapat dianalogikan sebagai sebuah rumah yang memiliki pintu di mana hanya kondisi-kondisi tertentu yang mengizinkan kotak berisi sesuatu masuk melalui pintu itu. Jika kondisi tidak dipenuhi maka kotak tidak dapat masuk melalui pintu itu.
Ada 3 bentuk instruksi pemilihan: If dengan satu kasus (IF..THEN...) If dengan dua kasus (IF...THEN...ELSE...) If dengan tiga kasus atau lebih (IF Bersarang dan CASE)
If dengan satu kasus (IF..THEN…) Pernyataan (dapat berupa satu atau lebih pernyataan) setelah kata then merupakan aksi yang dijalankan jika kondisi bernilai benar (terpenuhi). Jika tidak terpenuhi, maka tidak ada aksi apapun yang dijalankan.
Notasi algoritmik if…then… If kondisi then pernyataan (aksi) endif
FLOWCHART IF..THEN.. KONDISI FALSE TRUE PERNYATAAN
CONTOH Algoritma Menentukan_bilangan_genap {Menentukan apakah sebuah bilangan merupakan bilangan genap. Informasi bilangan genap akan ditampilkan ke piranti keluaran} DEKLARASI: x : integer DEFINISI: read(x) if (x mod 2 = 0) then write(x, ‘ adalah bilangan genap’) endif End Algoritma
If dengan dua kasus (IF…THEN…ELSE…) Jika kondisi bernilai benar (terpenuhi), maka aksi1 akan dijalankan. Namun, jika kondisi bernilai salah, maka aksi2 yang akan dijalankan.
Notasi algoritmik if…then…else… If kondisi then aksi1 else aksi2
Flowchart if…then..else… KONDISI FALSE TRUE PERNYATAAN1 PERNYATAAN2
Contoh: {Menentukan apakah sebuah bilangan yang diperoleh dari piranti masukan merupakan bilangan genap atau ganjil. Informasi akan ditampilkan ke piranti keluaran} DEKLARASI: bil : integer DEFINISI: read(bil) if (bil mod 2 = 0) then write(bil,’ adalah bilangan genap’) else write(bil, ‘ adalah bilangan ganjil’) endif End Algoritma
If dengan tiga kasus atau lebih Dalam kasus-kasus tertentu, sebuah konstruksi if dan else dapat berbentuk bersarang (nested). Bentuk bersarang merupakan contoh bentuk dari sebuah atau beberapa buah pernyataan if dan else yang terdapat didalam bentuk if dan else yang lainnya. Nested IF dan ELSE merupakan pernyataan yang lebih rumit dibandingkan dengan pernyataan IF dan ELSE sederhana.
Notasi algoritmik If kondisi1 then pernyataan1 Else if kondisi2 then pernyataan2 else if kondisi3 then pernyataan3 endif
Contoh: Algoritma Tentukan_bilangan_positif_negatif_nol {Menentukan apakah suatu bilangan bulat yang diperoleh dari piranti masukan merupakan bilangan positif, negatif atau nol} DEKLARASI: bil : integer DEFINISI: read(bil) if (bil = 0) then write(‘bilangan nol’) else
Lanjutan contoh: if (bil < 0) then write(‘bilangan negatif’) else write(‘bilangan positif’) endif End Algoritma
Instruksi CASE Jika suatu masalah yang memiliki tiga kasus atau lebih, maka untuk menyederhanakan penulisan struktur pemilihan bersarang (nested if) digunakan struktur case-of.
Notasi algoritmik CASE Bentuk strukturnya adalah : case ekspresi nilai-1 : pernyataan-1 nilai-2 : pernyataan-2 . nilai-n : pernyataan-n otherwise : pernyataan-otherwise endcase
Contoh: Algoritma Konversi_nama_bulan {Menentukan nama bulan sesuai dengan nomor bulan} DEKLARASI: Nomor_bulan : integer DEFINISI: read(Nomor_bulan)
case Nomor_bulan Nomor_bulan=1 : write(‘Januari’) Nomor_bulan=2 : write(‘Februari’) Nomor_bulan=3 : write(‘Maret’) Nomor_bulan=4 : write(‘April’) Nomor_bulan=5 : write(‘Mei’) Nomor_bulan=6 : write(‘Juni’) Nomor_bulan=7 : write(‘Juli’) Nomor_bulan=8 : write(‘Agustus’) Nomor_bulan=9 : write(‘September’) Nomor_bulan=1 0 : write(‘Oktober’) Nomor_bulan=1 1 : write(‘November’) Nomor_bulan=1 2 : write(‘Desember’) otherwise : write(‘Nomor bulan salah’) Endcase End Algoritma
LATIHAN Buat algoritma untuk menentukan tahun yang diinput merupakan tahun kabisat atau tidak. Gunakan pemilihan if…then… Karyawan honorer di PT “ABC” digaji berdasarkan jumlah jam kerjanya selama satu minggu. Upah per jam adalah Rp 2000,00. bila jumlah jam kerja lebih besar dari 48 jam, maka sisanya dianggap sebagai lembur. Upah lembur adalah RP 3000,00. buatlah algoritmanya dari soal tadi dengan nama dan honor sebagai keluarannya.
LANJUTAN LATIHAN Buatlah algoritma yang membaca temperatur air T (dalam satuan derajat celcius) pada tekanan normal, lalu menentukan apakah wujud air tersebut dalam keadaan padat (T≤00C), cair (0<T≤1000C), atau gas (T>1000C). Buat algoritma untuk menentukan indeks nilai ujian mahasiswa, dengan ketentuan sbb: jika nilai ujian ≥ 80 indeks nilai=A jika 70 ≤ nilai ujian < 80 indeks nilai=B jika 55 ≤ nilai ujian < 70 indeks nilai=C jika 40 ≤ nilai ujian < 55 indeks nilai=D jika nilai ujian < 40 indeks nilai=E