IF … THEN …, IF … THEN … ELSE … CASE … OF … PENYELEKSIAN IF … THEN …, IF … THEN … ELSE … CASE … OF …
Outline Flowcharts IF – THEN – ELSE
Ekspresi Boolean 15 = 34 False 15.05 < 17 True Dua macam nilai: True, False Relation Operator = , < , > , <> , <= , >= Boolean Operator AND , OR , NOT 15 = 34 False 15.05 < 17 True 34 < > 34.00002 True
Aturan Prioritas untuk operator Aritmatika ( ) parentheses Unary + and – *, / , DIV , MOD + – If equal precedence, left to right Examples -a+j/-w = (-a) + (j / (-w)) C*23/6+23mod2 = ((C*23)/6) + (23 mod 2)
Aturan Prioritas untuk Operator Boolean ( ) parentheses NOT and Or < , <= , > , <= , = , <> If equal precedence, left to right Examples (count <= 10) AND (Sum <= Limit) OR NOT Stop
Flowchart Graphical representation of algorithm Terminator Process Input/output Decision Connector Flow line
Flowchart example Start Read lebar Read panjang Luas := panjang + lebar Lebar < > 0 T Y Cetak Luas End
IF – THEN IF condition THEN statement condition False True Statement
IF – Then (sum1.pas) Program summation1; Var Sum, number : integer; Begin Sum := 10; Write (‘Please input a number’); Readln(number); if number < 0 then number := 0; Sum := Sum + number; writeln (‘Sum =‘, Sum) End.
IF – THEN – ELSE IF condition THEN statement 1 ELSE statement 2 False True Statement2 Statement1
IF – Then – Else (sum2.pas) Program summation2; Var Sum, number : integer; Begin Sum := 10; Write (‘Please input a number’); Readln(number); if number < 0 then number := 0; else number := 20; Sum := Sum + number; writeln (‘Sum =‘, Sum) End.
Nested Logic IF cond1 THEN statement1 ELSE IF cond2 THEN Statement2 condition1 False True Statement1 condition2 Statement3 Statement2 IF cond1 THEN statement1 ELSE IF cond2 THEN Statement2 statement3
Nested Logic (Sum3.pas) Begin Sum := 10; Write (‘Please input a number’); Readln(number); if number > 0 then number := number +1; if number > 5 then number := 5; else number := 20; Sum := Sum + number; writeln (‘Sum =‘, Sum) End.
Nested Logic (sum4.pas) Begin Sum := 10; Write (‘Please input a number’); Readln(number); if number > 0 then begin number := number +1; if number > 5 then number := 5; End else number := 20; Sum := Sum + number; writeln (‘Sum =‘, Sum) End.
Case Case expression of const_value1 : statement1; Else statement4; End;
Case Example Readln (number); Case number of 1,2,3 : writeln(‘small’); 4,5,6 : writeln(‘medium’); 7,8 : writeln (‘large’); End;
LATIHAN Soal 1. Program yang membaca nilai integer dan menuliskan nilainya jika positif. Soal 2. Program yang membaca nilai integer dan menuliskan ‘Nilai a positif’ jika a >= 0 dan ‘Nilai a negatif’ jika a < 0.
LATIHAN (lanj.) Soal 3. Program yang membaca nilai integer dan menuliskan ‘Nilai a positif’ jika a > 0 , ‘Nilai a negatif ‘ jika a < 0, dan ‘Nilai Nol ‘ jika a=0. Soal 4. Dibaca tiga buah harga a, b dan c, harus dituliskan secara terurut mulai dari yang terkecil sampai dengan yang terbesar. Ketiga bilangan yang dibaca selalu berlainan harganya.
Soal 5. Bandingkan 2 bilangan a dan b. Jika a>b, maka cetak “a terbesar”, sebaliknya jika a<b, maka cetak “b terbesar’, selain itu, cetak “a = b”
Soal 6. Dibaca suatu nilai bertipe integer. Jika dimasukan harga 1 maka tulis di layar ‘SATU’ Jika dimasukan harga 2 maka tulis di layar ‘DUA’ Jika dimasukan harga 3 maka tulis di layar ‘TIGA’ …………… Jika dimasukan harga 9 maka tulis di layar ‘SEMBILAN’ Jika dimasukan harga 0 maka tulis di layar ‘NOL’ Jika dimasukan harga selain 0 s/d 9 maka tulis di layar ‘BILANGAN SELAIN 0 s/d 9’
Soal 7. Buatlah program untuk menentukan bonus pegawai, berdasarkan ketentuan yang diberikan oleh bagian personalia dan keuangan sebagai berikut : Pegawai perusahaan digolongkan menjadi dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus sebesar 1 juta rupiah dengan syarat bahwa ia telah bekerja paling tidak 5 tahun dan umurnya sudah mencapai 50 tahun; staf yang bekerja kurang dari 5 tahun dan berapapun umurnya, hanya mendapat bonus sebesar Rp. 500.000. Pegawai non staf yang telah bekerja lebih dari 5 tahun akan mendapat bonus sebesar Rp. 400.000 jika berumur lebih dari 50 tahun sedangkan pegawai non staf yang berumur kurang dari 50 tahun hanya mendapat bonus Rp. 250.000. Pegawai staf yang umurnya kurang dari 50 tahun akan mendapat bonus Rp. 300.000