5 PENYELEKSIAN KONDISI dengan IF Materi Perkuliahan Logika & Algoritma Jurusan MIF PIKSI GANESHA Semester Ganjil 2007/2008
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)
Erwin Harahap
[email protected] 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 .. ENDIF, dengan struktur sebagai berikut :
IF
THEN ENDIF
Isi dari adalah suatu solusi yang mungkin, dan akan dijalankan apabila dipenuhi (true). Apabila kondisi tidak dipenuhi (false) maka tidak ada aksi apapun yang akan dijalankan selain melanjutkan proses eksekusi algoritma atau program. kata ENDIF 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 endif
b.
if kar = ‘*’ then stop ← true endif
c.
if ( a ≠ 0 ) or ( p = 1 ) then Begin Q←a*p Write(q) End; endif
d.
if ada = false then Begin Read(cc) Write(cc) End; endif
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. Jawab 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 } DEKLARASI x : integer ALGORITMA read (x) if x mod 2 = 0 then write(‘Bilangan Genap’) endif
Contoh 2 Susun algoritma yang membaca suatu karakter kemudian munculkan pesan “Huruf Hidup” jika karakter yang diinput merupakan salah satu dari huruf vokal. Jawab 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”.
Erwin Harahap – Logika & Algoritma - MIF Piksi Ganesha - Ganjil 2007/2008
5 >> Penyeleksian Kondisi dengan IF
3
Program Huruf_Vokal { mencetak pesan ”Huruf Hidup” jika data input merupakan huruf vokal } DEKLARASI c : char ALGORITMA read (c) if (c = ’a’) or (c = ’i’) or (c = ’u’) or (c = ’e’) or (c = ’o’) then write(‘Huruf Hidup’) endif
Contoh 3 Susun algoritma yang membaca suatu bilangan riil kemudian munculkan nilai mutlak dari bilangan tersebut. Jawab 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 } DEKLARASI x : real ALGORITMA read (x) if x < 0 then x ← -x endif write(x)
4.2
Penyeleksian Kondisi dengan Dua Kasus
Notasi algoritma untuk penyeleksian kondisi dengan dua kasus adalah dengan menggunakan perintah IF .. THEN .. ELSE .. ENDIF, dengan struktur sebagai berikut : IF THEN ELSE ENDIF
Erwin Harahap – Logika & Algoritma - MIF Piksi Ganesha - Ganjil 2007/2008
5 >> Penyeleksian Kondisi dengan IF
4
Isi dari adalah suatu solusi yang mungkin, dan akan dijalankan apabila dipenuhi (true). Apabila kondisi tidak dipenuhi (false) maka akan dijalankan . Contoh : a.
if x > 0 then write (‘Bilangan Positif) else write (‘Bukan Bilangan Positif) endif
b.
if Nilai > 70then write(‘Lulus’) else write (‘Gagal’) endif
c.
if Lama_bekerja > 20 tahun then Begin GP ← 1000.000 Tunjangan ← 300.000 End; else Begin GP ← 500.000 Tunjangan ← 50.000 End; endif
d.
if Harga > 100.000 then Begin Discount ← 10% Hadiah ← True End; else Discount ← 0% endif
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. Jawab 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 } DEKLARASI x : integer ALGORITMA read (x) if x mod 2 = 0 then write(‘Bilangan Genap’) else write(‘Bilangan Ganjil’) endif
Erwin Harahap – Logika & Algoritma - MIF Piksi Ganesha - Ganjil 2007/2008
5 >> Penyeleksian Kondisi dengan IF
5
Contoh 2 Susun algoritma yang membaca dua bilangan bulat, kemudian tentukan bilangan terbesar dari dua bilangan tersebut. Jawab Program Nilai_terbesar_dari_dua_bilangan { mencetak pesan ”Huruf Hidup” jika data input merupakan huruf vokal } DEKLARASI x, y : integer ALGORITMA read (x,y) { bilangan harus berbeda } if x > y then maks ← x else maks ← y endif
4.2
Penyeleksian kondisi dengan tiga kasus atau lebih
Notasi algoritma untuk penyeleksian kondisi dengan tiga kasus atau lebih adalah sebagai berikut :
IF THEN ELSE IF THEN ELSE IF THEN … dan seterusnya ENDIF ENDIF ENDIF
Erwin Harahap – Logika & Algoritma - MIF Piksi Ganesha - Ganjil 2007/2008
5 >> Penyeleksian Kondisi dengan IF
6
Contoh 1 Susun algoritma untuk menentukan wujud air pada suhu-suhu tertentu Jawab 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 } DEKLARASI T : real
{ suhu air dalam satuan derajat celcius }
ALGORITMA read (T) if T ≤ 0 then write(‘Padat’) else if (T > 0) and (T ≤ 100) then write(‘Cair’) else write(‘Gas’) endif endif
Contoh 2 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
Erwin Harahap – Logika & Algoritma - MIF Piksi Ganesha - Ganjil 2007/2008
5 >> Penyeleksian Kondisi dengan IF
7
Jawab Program Upah_karyawan { Menghitung upah mingguan karyawan dengan input nama, golongan dan jumlah jam kerja. Output adalah nama karyawan dan upah mingguan } DEKLARASI Const JamKerjaNormal = 48 { jumlah jam kerja normal selama seminggu } UpahLembur = 3000 { upah per jam lembur = Rp. 3.000,00 } Var Nama Gol JJK JamLembur UpahPerJam UpahTotal
: : : : : :
String Char { ’A’, ’B’, ’C’, ’D’ } integer { jumlah jam kerja selama satu minggu } integer real real
ALGORITMA read (nama, gol, JJK) if gol =’A’ then UpahPerJam ← 4000 else if gol =’B’ then UpahPerJam ← 5000 else if gol =’C’ then UpahPerJam ← 6000 else if gol =’D’ then UpahPerJam ← 7000 endif endif endif endif if JJK ≤ JamNormal Then UpahTotal ← JJK * UpahPerJam else JamLembur ← JJK – JamKerjaNormal UpahTotal ← (JamKerjaNormal * UpahPerJam) + (JamLembur * UpahLembur) endif 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.
Erwin Harahap – Logika & Algoritma - MIF Piksi Ganesha - Ganjil 2007/2008