PERCABANGAN / PEMILIHAN
STATEMENT IF Digunakan untuk memecahkan masalah dengan terlebih dahulu mengvaluasi sebuah ekspresi boolean. Jika ekspresi tersebut berharga true maka sebuah atau serangkaian perintah akan dilakukan.
STATEMEN KONDISI IF-THEN IF (boolean expression) THEN (statements) Program kondisi; Uses wincrt; Var nilai : integer; Begin write(‘Input Nilai :’); readln(nilai); if (nilai >= 60) then writeln(‘LULUS’); End. If Kondisi Statements True False
STATEMEN KONDISI IF-THEN-ELSE IF (boolean expression) THEN (statements if TRUE) ELSE (statements if FALSE) Program kondisi; Uses wincrt; Var nilai : integer; Begin write(‘Input Nilai :’); readln(nilai); if (nilai > 60) then writeln(‘LULUS’) else writeln(‘TDK LULUS’); end. If Kondisi State 1 True False State 2
STATEMEN KONDISI NESTED IF Gol = 3A True Status = ‘M’ True False True JmlAnak > 3 Tunjangan := 0.30;
STATEMEN KONDISI NESTED IF Cont Program kondisi; Uses wincrt; Var gol : string[2];jmlAnak : integer; status : char; gaji,tunjangan,tunjanak : real; Begin write(‘Gol :’);readln(gol); write(‘Status :’);readln(status); write(‘jmlAnak :’);readln(jmlAnak); if (gol = ‘3A’) then begin if (status = ‘M’) then if (jmlAnak > 3) then Tunjangan := 0.30*Gaji; TunjAnak : 0.25*jmlAnak*gaji; writeln(‘Tunjangan = ‘,tunjangan:10:0); writeln(‘Tunjangan Anak = ‘,tunjanak:10:0); end; end.
STATEMEN KONDISI NESTED IF Cont Atau ungkapan kondisi Dapat disingkat dengan Menggunakan operator Logika and atau or Program kondisi; Uses wincrt; Var gol : string[2];jmlAnak : integer; status : char; gaji,tunjangan : real; Begin write(‘Gol :’);readln(gol); write(‘Status :’);readln(status); write(‘jmlAnak :’);readln(jmlAnak); if (gol = ‘3A’)and (status = ‘M’) and (jmlAnak > 3) then Tunjangan := 0.30*Gaji; end.
STATEMEN KONDISI NESTED IF Cont Merk = ‘Honda’ True Tipe = ‘Supra’ True Harga := 15000000 False False Tipe = ’Tiger’ True Harga := 20000000
STATEMEN KONDISI NESTED IF Cont Program kondisi; Uses wincrt; Var merk, tipe : string[10]; Begin write(‘Merek Motor :’);readln(merk); write(‘Tipe Motor :’);readln(tipe); if (merk = ‘Honda’) then begin if (Tipe = ‘Supra’) then Harga := 15000000; if (Tipe = ’Tiger’) then Harga := 20000000; end; end. ?
konstanta1 : statement 1; konstanta2 : statement 2; … STATEMEN KONDISI CASE Berbeda dengan statement if digunakan untuk memilih dari dua kondisi yang berbeda berdasar ekpresi boolean, statement case digunakan untuk memilih jika terdapat lebih dari dua kondisi yang setiapnya memerlukan penanganan yang berbeda Daftar case variabel dapat berupa konstanta atau range dari konstanta yang bukan bertipe real Contoh : 1 : nilai integer 1 1,2,3 : nilai integer 1,2,3 1..5 : nilai integer 1 s/d 5 ‘A’ : nilai karakter A ‘A’,’B’ : nilai karakter A & B ‘A’..’D’ : nilai karakter A - D ‘*’ : nilai karakter * Case (variabel) Of konstanta1 : statement 1; konstanta2 : statement 2; … konstantan : statement n; End;
STATEMEN KONDISI CASE cont Case Angka Of True Hari := ‘Ahad’ False True 1 Hari := ‘Senin’ False True 2 Hari := ‘Selasa’ False True 3 Hari := ‘Rabu’ False True 4 Hari := ‘Kamis’
STATEMEN KONDISI CASE cont Program kondisiCase; Uses wincrt; Var angka : byte; hari : string[10]; Begin write(‘Masukkan angka [0 – 4] :’);readln(angka); case angka of 0 : hari := ‘Ahad’; 1 : hari := ‘Senin’; 2 : hari := ‘Selasa’; 3 : hari := ‘Rabu’; 4 : hari := ‘Kamis’; end; writeln (‘Hari ‘,hari); end.
STATEMEN KONDISI CASE cont Case Grade Of True ‘A’ Kredit := 4 False True ‘B’ Kredit := 3 False True ‘C’ Kredit := 2 False True ‘D’ Kredit := 1 False True ‘E’ Kredit := 0
STATEMEN KONDISI CASE cont Program kondisiCase; Uses wincrt; Var Grade : Char; Begin write(‘Masukkan Grade Anda :’);readln(grade); case grade of A : kredit := 4; B : kredit := 3; C : kredit := 2; D : kredit := 1; E : kredit := 0; end; writeln (‘Kredit ‘,kredit); end. ?
STATEMEN KONDISI CASE OF ELSE Case (selector) Of case label 1 : statement 1; case label 2 : statement 2; … case label n : statement n; Else statement alternatif untuk False End;
STATEMEN KONDISI CASE OF ELSE Case Angka Of True True Hari := ‘Ahad’ False True 1 Hari := ‘Senin’ False False True 2 Hari := ‘Selasa’ ‘Angka 0 – 4’ False True 3 Hari := ‘Rabu’ False True 4 Hari := ‘Kamis’
STATEMEN KONDISI CASE OF ELSE Program kondisiCase; Uses wincrt; Var angka : byte; hari : string[10]; Begin write(‘Masukkan angka [0 – 4] :’);readln(angka); case angka of 0 : hari := ‘Ahad’; 1 : hari := ‘Senin’; 2 : hari := ‘Selasa’; 3 : hari := ‘Rabu’; 4 : hari := ‘Kamis’; else writeln (‘Input Angka 0 – 4’); end; writeln (‘Hari ‘,hari); end.