Struktur Kontrol
Merupakan kondisi/percabangan yang mempunyai 2 cabang, yaitu ya dan tidak.
Perintah yang digunakan:IF, IF-ELSE, IF-ELSEIF-ELSECASE-OF
IF
Statement IF memiliki beberapa variasi:IF tunggal sederhanaIF blok statementIF-ELSEIF-ELSE IF-…-ELSEIF bersarang (nested IF)IF dengan kondisi suatu variabelIF dengan kondisi jamak.
IF Tunggal Sederhana
Bentuk: if (kondisi) then statement;
Kondisi merupakan ekspresi boolean yang akan dievaluasi ke true (tidak sama dengan 0) atau false (sama dengan 0).
Jika kondisi benar (bernilai logika 1), maka statement akan diproses, jika kondisi salah (atau bernilai logika 0), maka statement tidak akan diproses.
IF Tunggal Sederhana Ex.
uses crt;var x:integer;begin clrscr; write(‘Masukkan nilai Anda : ‘);readln(x); if (x>60) then writeln(‘Anda lulus’); readln;end.
Hasil:Masukkan nilai Anda : 70Anda lulus
IF Tunggal Blok Statement
Bentuk:if (kondisi) thenbegin statement 1; statement 2; ……end;
Pada bentuk ini, bila kondisi benar, maka blok statement (berada dalam begin-end) akan diproses.
IF Tunggal Blok Statement Ex.
uses crt;var x:integer;begin clrscr; write(‘Masukkan nilai Anda : ‘);readln(x); if (x>60) then
begin writeln(‘Nilai Anda = ’,x); writeln(‘Anda lulus’);end;
readln;end.
Hasil:Masukkan nilai Anda : 70Nilai Anda = 70Anda lulus
IF-ELSE
Bentuk:
if (kondisi) statement1;
else statement2;Pada bentuk ini, bila kondisi benar, maka
statement yang akan diproses adalah statement1 dan bila kondisi salah, maka statement yang akan diproses adalah statement2
IF-ELSE Ex.
uses crt;
var x:integer;
begin
clrscr;
write(‘Masukkan nilai Anda : ‘);readln(x);
if (x>60) then writeln(‘Anda lulus’)
else writeln(‘Anda gagal’);
readln;
end.
Hasil:Masukkan nilai Anda : 70Anda lulus
IF-ELSE Ex.
uses crt;var x:integer;begin clrscr; write(‘Masukkan nilai Anda : ‘);readln(x); if (x>60) then begin
writeln(‘Nilai Anda = ’,x); writeln(‘Anda lulus’);
end; else begin writeln(‘Nilai Anda = ’,x); writeln(‘Anda gagal’); end;readln;end.
Hasil:Masukkan nilai Anda : 70Nilai Anda = 70Anda lulus
IF-ELSE
Statement if-else juga dapat ditulis dengan dua buah statement tunggal dengan hasil yang sama.
IF-ELSE Ex.
uses crt;var x:integer;begin clrscr; write(‘Masukkan nilai Anda : ‘);readln(x); if (x>60) then begin
writeln(‘Nilai Anda = ’,x); writeln(‘Anda lulus’);
end; if (x<=60) then begin writeln(‘Nilai Anda = ’,x); writeln(‘Anda gagal’); end;readln;end.
Hasil:Masukkan nilai Anda : 70Nilai Anda = 70Anda lulus
IF-ELSE IF-…-ELSE
Bentuk:
if(kondisi1) then statement1;
else if(kondisi2) then statement2;
else if(kondisi3) then statement3;
else if(kondisi4) then statement4;
…
else statementlain;
IF-ELSE IF-…-ELSE
Pemilihan kondisi dimulai dari kondisi1. Jika kondisi1 benar maka statement1 diproses dan
pemilihan kondisi akan berhenti. Jika kondisi1 salah, maka proses pemilihan akan dilanjutkan ke kondisi2.
Jika kondisi2 benar maka statement2 diproses dan pemilihan kondisi akan berhenti. Jika kondisi2 tidak memenuhi, maka proses pemilihan akan dilanjutkan ke kondisi3, dan seterusnya.
Jika tidak ada kondisi yang benar, maka statement yang diproses adalah statement yang mengikuti else. Penggunaan else bersifat opsional.
IF-ELSE IF-…-ELSE Ex.
uses crt;var x:integer;begin clrscr; write(‘Masukkan nilai Anda : ‘);readln(x); if (x>80) then writeln(‘Anda lulus dengan nilai A’) else if (x>60) then writeln(‘Anda lulus dengan nilai B’) else if (x>40) then writeln(‘Anda lulus dengan nilai C’) else if (x>20) then writeln(‘Anda lulus dengan nilai D’) else writeln(‘Anda gagal’);readln;end.
Hasil:Masukkan nilai Anda : 70Anda lulus dengan nilai B
IF-ELSE IF-…-ELSE Ex.
uses crt;var x:integer;begin clrscr; write(‘Masukkan nilai Anda : ‘);readln(x); if (x>80) then writeln(‘Anda lulus dengan nilai A’); if (x>60) then writeln(‘Anda lulus dengan nilai B’); if (x>40) then writeln(‘Anda lulus dengan nilai C’); if (x>20) then writeln(‘Anda lulus dengan nilai D’); else writeln(‘Anda gagal’);readln;end. Hasil:
Masukkan nilai Anda : 70Anda lulus dengan nilai BAnda lulus dengan nilai CAnda lulus dengan nilai D
IF Bersarang (Nested-IF)
IF bersarang merupakan IF yang berada dalam IF lainnya. Bentuk:
if(kondisi1) then if(kondisi2) then … if(kondisin) then statement; else statement; … else statement;else statement;
IF Bersarang (Nested-IF)
Kondisi yang diseleksi pertama kali adalah kondisi terluar (kondisi1). Jjika tidak memenuhi maka statement setelah else terluar yang akan dieksekusi. Jika tidak terdapat else maka proses seleksi dihentikan. Jika kondisi1 benar, maka kondisi berikutnya (kondisi2) akan diseleksi.
Jika kondisi2 tidak benar, maka statement setelah else (dari if kondisi2) yang akan diproses. Jika untuk kondisi2 tidak ada, maka proses seleksi dihentikan.
Dengan cara yang sama, proses seleksi akan dilakukan sampai kondisin bila kondisi-kondisi sebelumnya benar.
IF Bersarang (Nested-IF) Ex.
uses crt;var x,y:integer;begin clrscr; write('Masukkan nilai teori : ');readln(x); write('Masukkan nilai praktek : ');readln(y); if ((x+y)/2>60) then if (x>60) then if (y>60) then writeln('Anda lulus') else writeln('Anda mengulang praktek') else writeln('Anda mengulang teori') else writeln('Anda gagal'); readln;end.
IF dengan Kondisi berupa Variabel
Kondisi yang diseleksi dapat bernilai benar (tidak sama dengan 0) atau salah (sama dengan 0).
IF dengan Kondisi berupa Variabel Ex.
uses crt;var x:boolean;begin clrscr; if (x) then writeln('Halo') else writeln('hai');
readln;end.
Hasil:Hai
IF dengan Kondisi Jamak
Beberapa kondisi dapat diperiksa sekaligus dalam sebuah statement IF menggunakan operator logika, yaitu and, or, not.
IF dengan Kondisi Jamak Ex.
uses crt;var x:integer;begin write(‘Masukkan nilai Anda : ‘);readln(x); if (x<=100) and (x>80) then writeln(‘Anda lulus
dengan nilai A’); if (x<=80) and (x>60) then writeln(‘Anda lulus
dengan nilai B’); if (x<=60) and (x>40) then writeln(‘Anda lulus
dengan nilai C’); if (x<=40) and (x>20) then writeln(‘Anda lulus
dengan nilai D’); if (x<=20) and (x>=0) then writeln(‘Anda gagal’); readln;end.
IF dengan Kondisi Jamak Ex.
uses crt;var x,y:integer;begin write(‘Masukkan nilai teori : ‘);readln(x); write(‘Masukkan nilai praktek : ‘);readln(y); if (x>60) or (y>60) then writeln(‘Anda lulus’); if (x>60) and (y<60) then writeln(‘Anda mengulang
praktek’); if (x<60) and (y>60) then writeln(‘Anda mengulang
teori’); if (x<60) and (y<60) then writeln(‘Anda gagal’); readln;end.