Bentuk Percabangan

1. IF-THEN
Bentuk struktur IF-THEN adalah sebagai berikut :
IF Kondisi THEN Statement
Ungkapan adalah kondisi yang diseleksi oleh statement IF. Bila kondisi yang diseleksi terpenuhi, maka statement yang mengikuti THEN akan diproses, sebaliknya bila kondisi tidak terpenuhi, maka yang akan diproses statement berikutnya. Misalnya :

IF Pilihan = 2 THEN
BEGIN { jika kondisi terpenuhi, Yaitu jika pilihan = 2 }
......
......
END
ELSE { jika kondisi tidak terpenuhi, yaitu jika pilhan tidak sama dengan 2}
BEGIN
.......
.......
END;

Contoh Program :

USES CRT;
VAR
Nilai : REAL;
BEGIN
WRITE('Jumlah Nilai :');
READLN(nilai); { Pemasukan data }
IF nilai >60 THEN { seleksi kondisi variabel nilai }
WRITELN('Lulus') { Dilaksanakan jika nilai lebih besar dari 60 }
ELSE
WRITELN('Tidak lulus');{Dilaksanakan jika variabel nilai lebih kecil dari 60}
END.

Hasil :
Jika kita Memasukan 40 pada varibel nilai, Maka program diatas akan mencetak Tidak lulus.

IF tersarang (nested IF)
Struktur IF tersarang merupakan bentuk dari suatu statement IF berada di dalam
lingkungan statemen IF yang lainya. Bentuk statement IF tersarang sebagai berikut :

IF kondisi1 THEN atau IF Kondisi1 THEN
IF kondisi2 THEN
BEGIN
statemen1
IF kondisi2 THEN
ELSE
statemen1
statemen2;
ELSE
statemen2
END;

2. CASE-OF
Struktur CASE-OF mempunyai suatu ungkapan logika yang disebut dengan selector dan
sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang
mempunyai tipe sama dengan selector.
Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai
sama dengan nilai selector akan diproses sedang statemen yang lainya tidak.
Bentuk struktur dari CASE-OF :

CASE Variabel Kondisi OF

CASE- LABEL 1; STATEMENT 1;
CASE- LABEL 2; STATEMENT 2;
........
CASE- LABEL N; STATEMENT N;
END; { end dari case }

Daftar case label dapat berupa konstanta, range dari konstanta yang bukan
bertipe real.
Contoh program ;

PROGRAM nilai;
VAR
nil : CHAR;
BEGIN
WRITE('Nilai Numerik yang didapat :');
READLN(nil);
CASE nil OF
'A': WRITELN('SANGAT BAIK');
'B': WRITELN('BAIK');
'C': WRITELN('CUKUP');
'D': WRITELN('KURANG');
'E': WRITELN('SANGAT KURANG ');
END;
END.

hasil :

Nilai Numerik yang didapat : B
BAIK

Contoh listing program untuk dicoba :

1. Program input data dengan array

PROGRAM pemakaian_Array_Untuk_10_data_dengan_menggunakan_For;
USES CRT;
CONST
garis='------------------------------------------------------';
VAR
nil1,nil2 : ARRAY [1..10] OF 0..100; {Array dgn Type subjangkauan}
npm : ARRAY [1..10] OF STRING[8];
nama : ARRAY [1..10] OF STRING[15];
n,i,bar : INTEGER;
jum : REAL;
tl : CHAR;
BEGIN
CLRSCR;
{pemasukan data dalam array }
WRITE('MAU ISI BERAPA DATA :');
READLN(N);
FOR i:= 1 TO n DO
BEGIN
CLRSCR;
GOTOXY(30,4+1); WRITE('DATA KE-:',i:2);
GOTOXY(10,5+i); WRITE('NPM :'); READLN(NPM[i]);
GOTOXY(10,6+i); WRITE('NAMA :'); READLN(NAMA[i]);
GOTOXY(10,7+i); WRITE('NILAI 1 :'); READLN(NIL1[i]);
GOTOXY(10,8+i); WRITE('NILAI 2 :'); READLN(NIL2[i]);
END;
{ proses data dalam array }
CLRSCR;
GOTOXY(5,4); WRITE(GARIS);
GOTOXY(5,5); WRITE('NO');
GOTOXY(9,5); WRITE('NPM');
GOTOXY(18,5); WRITE('NAMA');
GOTOXY(34,5); WRITE('NIL.1');
GOTOXY(41,5); WRITE('NIL.2');
GOTOXY(47,5); WRITE('RATA');
GOTOXY(54,5); WRITE('ABJAD');
GOTOXY(5,6); WRITE(GARIS);
{ proses Cetak isi array dan seleksi kondisi }
bar:=7;
FOR i:= 1 TO n DO
BEGIN
jum:=(nil1[i]+nil2[i])/2;
IF jum>=90 THEN tl:='A'
ELSE
IF jum>80 THEN tl:='B'
ELSE
IF jum>60 then tl:='C'
ELSE
IF jum 50 THEN tl:='D'
ELSE
tl:='E';
{cetak hasil yang disimpan di array dan hasil }
{penyeleksian kondisi }
GOTOXY(5,bar); WRITELN(i:2);
GOTOXY(9,bar); WRITELN(NPM[i]);
GOTOXY(18,bar); WRITELN(NAMA[i]);
GOTOXY(34,bar); WRITELN(NIL1[i]:4);
GOTOXY(41,bar); WRITELN(NIL2[i]:4);
GOTOXY(47,bar); WRITELN(jum:5:1);
GOTOXY(54,bar); WRITELN(tl);
bar:=bar+1;
END;
GOTOXY(5,bar+1);WRITELN(garis);
READLN;
END.

2. Program jendela bergerak

PROGRAM Window_Bergerak_dgn_delay;
USES CRT;
VAR
i : INTEGER;
BEGIN
FOR i:=1 TO 15 DO
BEGIN
SOUND(i*100);
DELAY(100);
NOSOUND;
END;
TEXTBACKGROUND(black);
CLRSCR;
FOR i := 1 TO 9 DO
BEGIN
TEXTBACKGROUND(white);
WINDOW(42-i*4,10-i,38+i*4,15+i);
CLRSCR;
DELAY(100);
END;
TEXTCOLOR(15);
GOTOXY(28,2);WRITELN('c');
GOTOXY(8,3); WRITELN('3');
GOTOXY(28,4); WRITELN('A');
TEXTCOLOR(black);
GOTOXY(44,3); WRITELN('3');
GOTOXY(44,2); WRITELN('&');
GOTOXY(29,4); WRITELN('U');
TEXTCOLOR(red*25);
GOTOXY(30,3); WRITELN('B E L A J A R');
TEXTCOLOR(black);
GOTOXY(5,5); WRITE('c');
FOR i := 6 TO 64 DO
BEGIN
GOTOXY(i,5);WRITELN('');
END;
FOR i := 6 TO 20 DO
BEGIN
GOTOXY(5,i); WRITELN('3 ');
END;
GOTOXY(5,21); WRITELN(' ');
TEXTCOLOR(white);
GOTOXY(65,5); WRITE('U');
FOR i := 6 TO 65 DO
BEGIN
GOTOXY(i,21); WRITELN(' `);
END;
FOR i := 6 TO 20 DO
BEGIN
GOTOXY(65,i); WRITELN('3');
END;
GOTOXY(65,21); WRITELN('c');
TEXTCOLOR(yellow);
READLN;
END.

Label