5 PENYELEKSIAN KONDISI dengan IF Bagian ini akan membahas : Pendahuluan Penyeleksian Kondisi dengan Satu Kasus Penyeleksian Kondisi dengan Dua Kasus Penyeleksian Kondisi dengan Tiga Kasus atau lebih Diagram alir (Flowchart) Materi Perkuliahan Logika & Algoritma Jurusan MIF PIKSI GANESHA Semester Ganjil 2007/2008 Erwin Harahap erwin2h@yahoo.com http://erwin2h.wordpress.com 4.1 Pendahuluan Pada umumnya, penyelesaian suatu masalah memiliki beberapa alternatif pelaksanaan perintah atau aksi. Suatu perintah hanya dapat dijalankan apabila persayaratan atau kondisi tertentu dipenuhi. Misalnya terdapat suatu masalah dengan beberapa kasus. Dalam pemecahannya, harus dianalisis solusi apa saja yang mungkin. Dengan demikian terdapat pemilihan intruksi atau penyeleksian kondisi didalam algoritma, dan salah satu metoda penyeleksian kondisi adalah dengan menggunakan perintah IF. Penggunaan perintah IF dapat dilakukan untuk beberapa tingkat penyeleksian kondisi yaitu penyeleksian kondisi dengan satu kasus, penyeleksian kondisi dengan dua kasus, dan penyeleksian kondisi dengan lebih dari dua kasus. 4.2 Penyeleksian Kondisi dengan Satu Kasus Notasi algoritma untuk penyeleksian kondisi dengan satu kasus adalah dengan menggunakan perintah IF.. THEN.., dengan struktur sebagai berikut : IF <kondisi> THEN <pernyataan> Isi dari <pernyataan> adalah suatu solusi yang mungkin, dan akan dijalankan apabila <kondisi> dipenuhi (true). Apabila kondisi tidak dipenuhi (false) maka tidak ada aksi apapun yang akan dijalankan selain melanjutkan proses eksekusi algoritma atau program. kata dituliskan untuk mempertegas awal dan akhir dari perintah IF.. THEN. Contoh : 1
5 >> Penyeleksian Kondisi dengan IF 2 a. if x > 100 then x x + 1 b. if kar = * then stop true c. if ( a 0 ) or ( p = 1 ) then Q a * p Write(q) d. if ada = false then Read(cc) Write(cc) Contoh masalah Penyeleksian kondisi dengan satu kasus adalah sebagai berikut : Contoh 1 Susun algoritma yang membaca suatu bilangan bulat berdasarkan input data, lalu menampilkan atau mencetak kata genap apabila bilangan yang diinputkan tersebut adalah bilangan genap. Bilangan genap adalah adalah bilangan yang habis dibagi 2 (sisa pembagian = 0). Oleh karena itu data input harus dibagi dengan 2. Jika data input habis dibagi 2, maka akan ditampikan bilangan genap. Program Genap { mencetak pesan Bilangan Genap jika data input merupakan bilangan genap } x : integer read (x) if x mod 2 = 0 then write( Bilangan Genap ) Contoh 2 Susun algoritma yang membaca suatu karakter kemudian munculkan pesan Huruf Hidup jika karakter yang diinput merupakan salah satu dari huruf vokal. Terdapat lima buah huruf vokal yaitu a, i, u e, o. Bandingkan karakter yang diinput dengan kelima karakter tersebut. Jika data input sama dengan huruf vocal, maka tampilkan bahwa karakter tersebut adalah Huruf Hidup.
5 >> Penyeleksian Kondisi dengan IF 3 Program Huruf_Vokal { mencetak pesan Huruf Hidup jika data input merupakan huruf vokal } c : char read (c) if (c = a ) or (c = i ) or (c = u ) or (c = e ) or (c = o ) then write( Huruf Hidup ) Contoh 3 Susun algoritma yang membaca suatu bilangan riil kemudian munculkan nilai mutlak dari bilangan tersebut. Misal bilangan riil yang diinput adalah x. Untuk x < 0, maka nilai mutlaknya adalah x. Tidak ada perubahan apabila nilai x >= 0, karena nilai mutlak selalu positif atau nol. Program Nilai_Mutlak { menentukan nilai mutlak dari suatu nilai riil } x : real read (x) if x < 0 then x -x write(x) 4.2 Penyeleksian Kondisi dengan Dua Kasus Notasi algoritma untuk penyeleksian kondisi dengan dua kasus adalah dengan menggunakan perintah IF.. THEN.. ELSE.., dengan struktur sebagai berikut : IF <kondisi> THEN <pernyataan 1> ELSE <pernyataan 2>
5 >> Penyeleksian Kondisi dengan IF 4 Isi dari <pernyataan 1> adalah suatu solusi yang mungkin, dan akan dijalankan apabila <kondisi> dipenuhi (true). Apabila kondisi tidak dipenuhi (false) maka akan dijalankan <pernyataan 2>. Contoh : a. if x > 0 then write ( Bilangan Positif) write ( Bukan Bilangan Positif) b. if Nilai > 70then write( Lulus ) write ( Gagal ) c. if Lama_bekerja > 20 tahun then GP 1000.000 Tunjangan 300.000 GP 500.000 Tunjangan 50.000 d. if Harga > 100.000 then Discount 10% Hadiah True Discount 0% Contoh masalah penyeleksian kondisi dengan dua kasus adalah sebagai berikut : Contoh 1 Susun algoritma yang membaca suatu bilangan bulat berdasarkan input data, lalu tampilkan pesan Bilangan Genap jika bilangan tersbut genap, atau Bilangan Ganjil jika bilangan tersebut adalah bilangan ganjil. Bilangan genap adalah adalah bilangan yang habis dibagi 2 (sisa pembagian = 0). Bilangan ganjil adalah bilangan yang tidak habis dibagi 2. Oleh karena itu data input harus dibagi dengan 2. Jika data input habis dibagi 2, maka akan ditampikan Bilangan Genap", jika tidak maka tampilkan Bilangan Ganjil. Program Genap { mencetak pesan Bilangan Genap jika data input merupakan bilangan genap atau Bilangan Ganjil jika data input merupakan bilangan ganjil } x : integer read (x) if x mod 2 = 0 then write( Bilangan Genap ) write( Bilangan Ganjil )
5 >> Penyeleksian Kondisi dengan IF 5 Contoh 2 Susun algoritma yang membaca dua bilangan bulat, kemudian tentukan bilangan terbesar dari dua bilangan tersebut. Program Nilai_terbesar_dari_dua_bilangan { mencetak pesan Huruf Hidup jika data input merupakan huruf vokal } x, y : integer read (x,y) { bilangan harus berbeda } if x > y then maks x maks y 4.2 Penyeleksian kondisi dengan tiga kasus atau lebih Notasi algoritma untuk penyeleksian kondisi dengan tiga kasus atau lebih adalah sebagai berikut : IF <kondisi 1> THEN <pernyataan 1> ELSE IF <kondisi 2> THEN <pernyataan 2> ELSE IF <kondisi 3> THEN <pernyataan 3> dan seterusnya
5 >> Penyeleksian Kondisi dengan IF 6 Contoh 1 Susun algoritma untuk menentukan wujud air pada suhu-suhu tertentu Wujud air pada suhu tertentu adalah padat, cair dan gas. Misal T adalah suhu antara 0 sampai dengan 100 pada satuan derajat celcius, maka : pada T 0, air berwujud padat, pada 0 < T < 100, air berwujud cair, pada T 100, air berwujud gas. Program Wujud_air { menentukan wujud air pada suhu tertentu } Contoh 2 T : real { suhu air dalam satuan derajat celcius } read (T) if T 0 then write( Padat ) if (T > 0) and (T 100) then write( Cair ) write( Gas ) Misalkan karyawan PT. ABC dikelompokkan berdasarkan golongannya. Upah per jam tiap karyawan bergantung pada golongannya (lihat tabel). Jumlah jam kerja selama satu minggu adalah 48 jam. Kelebihan jam kerja dianggap lembur dengan upah lembur adalah Rp. 3.000 /jam untuk semua golongan karyawan. Susun algoritma dengan input nama karyawan dan jumlah jam kerja selama satu minggu, kemudian hitung gaji mingguan dari karyawan tersebut. Golongan Upah per jam A Rp. 4.000,00 B Rp. 5.000,00 C Rp. 6.000,00 D Rp. 7.000,00
5 >> Penyeleksian Kondisi dengan IF 7 Program Upah_karyawan { Menghitung upah mingguan karyawan dengan input nama, golongan dan jumlah jam kerja. Output adalah nama karyawan dan upah mingguan } Const Var JamKerjaNormal = 48 { jumlah jam kerja normal selama seminggu } UpahLembur = 3000 { upah per jam lembur = Rp. 3.000,00 } Nama : String Gol : Char { A, B, C, D } JJK : integer { jumlah jam kerja selama satu minggu } JamLembur : integer UpahPerJam : real UpahTotal : real read (nama, gol, JJK) if gol = A then UpahPerJam 4000 if gol = B then UpahPerJam 5000 if gol = C then UpahPerJam 6000 if gol = D then UpahPerJam 7000 if JJK JamNormal Then UpahTotal JJK * UpahPerJam JamLembur JJK JamKerjaNormal UpahTotal (JamKerjaNormal * UpahPerJam) + (JamLembur * UpahLembur) Write(Nama, UpahTotal) 4.4 Latihan Kerjakan soal-soal latihan untuk struktur IF.. THEN.. ELSE pada buku Rinaldi Munir halaman 152 4.5 Tugas - Referensi Harahap, Erwin (2006). Algoritma & Pemrograman, materi perkuliahan, Jurusan Statistika, Universitas Islam Bandung, Bandung. Munir, Rinaldi. (2006). Algoritma dan Pemrograman, Edisi ke-3, Penerbit Informatika, Bandung.