Anda di halaman 1dari 11

BAB VII

STRUKTUR PROGRAM

1. Struktur Program Percabangan

Pernyataan ini digunakan untuk mengambil keputusan terhadap dua atau lebih
alternatif. Pengambilan keputusan didasarkan oleh suatu kondisi yang dievaluasi terlebih
dulu. Dengan percabangan program dapat melompat dari satu baris ke baris yang lain. Ada 2
macam pernyataan percabangan pada Pemrograman Delphi yaitu pernyataan IF dan
pernyataan Case.

a. Pernyataan IF
- Pernyataan IF .. then … ( IF tunggal atau sederhana )
Bentuk umum : Flowchart :

if kondisi then

pernyataan; False
kondisi

true

pernyataan1

Pada pernyataan ini yang pertama dilakukan adalah melakukan pengecekan kondisi
terlebih dahulu, jika kondisi bernilai benar maka pernyataan berikutnya dikerjakan,
dan jika bernilai salah maka akan keluar dari pernyataan ini.
Contoh :

procedure TForm1.RadioButton1Click(Sender: TObject);

var x,y:real;

begin

suhu :=strtofloat(edit1.Text);

if ( suhu > 37 ) then

edit3.Text := ‘ suhu tinggi’;

end;

- Pernyataan IF .. then else…

Bentuk umum : flowchart:

if kondisi then
pernyataan False
kondisi
else
true
pernyataan;
pernyataan1 pernyataan2

Pada pernyataan ini yang pertama dilakukan adalah melakukan evaluasi (pengecekan)
kondisi terlebih dahulu, jika kondisi bernilai benar maka pernyataan1 dikerjakan, dan
jika bernilai salah maka pernyataan2 dikerjakan.
Blok program

Cek kondisi

Pernyataan1

Pernyataan2
Catatan:
- pernyataan sebelum else tidak perlu diakhiri tanda titik koma
- satu blok program dianggap satu pernyataan
- pernyataan1 dan pernyataan2 merupakan pernyataan tunggal. Jika ada lebih
dari satu pernyataan (pernyataan majemuk) maka harus dibuat menjadi
pernyataan tunggal dengan meletakkan pernyataan-pernyataan tersebut di
antara begin...end
Contoh :
1. Jika ada masukan ( variabel suhu) maka keluaran di komponen edit1 adalah ‘suhu
tinggi’ jika suhu > 37 ,selain itu keluaran di komponen edit1 adalah ‘suhu rendah’.

procedure TForm3.suhu(Sender: TObject);


VAR
Suhu : INTEGER;

begin
suhu:=strtoint(edit1.Text); // memasukkan nilai pada komponen edit1 dan nilai diberikan
ke variabel suhu

if (suhu > 37) then // cek kondisi

edit2.Text:='suhu tinggi' // jika kondisi bernilai benar maka menampilkan ‘suhu tinggi’
else
edit2.Text:='suhu rendah'; // jika kondisi bernilai salah maka menampilkan ‘suhu
rendah’

2. Contoh berikut menunjukkan penggunaan if..then…else… yang berulang-ulang


procedure TForm3.suhu(Sender: TObject);

VAR x : integer;

begin

x:=strtoint(edit1.Text);

if (x<=44) then
edit2.Text:=’E”

else

if (x<=59) then
edit2.Text:='D'

else
if (x<=74) then
edit2.Text:='C'

else

if (x<=84) then
edit2.Text:='B'

else

edit2.Text:='A';

end;

Pernyataan1 maupun pernyataan2 ( pada format if..else ) dapat berupa pernyataan tunggal
ataupun pernyataan majemuk. Berikut ini merupakan berbagai bentuk yang mungkin terjadi:

Bentuk 1

If kondisi then
pernyataan1
else
pernyataan2;

Bentuk 2

If kondisi then
begin
Pernyataan_11;
Pernyataan_12;
.
.
Pernyataan_1n;
end
else
pernyataan2;

Bentuk 3

If kondisi then
Pernyataan_1
else
begin
Pernyataan_21;
Pernyataan_22;
.
.
Pernyataan_2n;
end;

Bentuk 4

If kondisi then
begin
Pernyataan_11;
Pernyataan_12;
.
.
Pernyataan_1n;
end
else
begin
Pernyataan_21;
Pernyataan_22;
.
.
Pernyataan_2n;
end;

Contoh :

procedure TForm3.suhu(Sender: TObject);


VAR
suhu : ineteger;

begin
suhu:=strtoint(edit1.Text);
if (suhu > 37) then
begin
edit2.text:= inttostr(suhu); // mencetak nilai suhu pada komponen edit2
edit3.Text:='suhu tinggi';
end
else

begin
edit2.text:= inttostr(suhu);
edit3.Text:='suhu rendah';
end;

- Pernyataan IF bersarang

Bentuk 1

If kondisi then
if kondisi then
pernyataan1
else
pernyataan2;

Contoh fragmen program :

If R < 0 then
If S > 0 then
edit1.text:=‘S’ else milik if yang kedua
1 blok program / 1 pernyataan
else
1 blok program
edit1.text:=‘R’;
edit2.text:=‘Selesai’; 1 pernyataan

Contoh Proses

A. Jika fragmen program pada contoh di atas diberi masukan R:= -5; dan S:= -5;
maka output yang dihasilkan fragmen program di atas adalah
Input:
R = -5 , S = -5
Proses:
1. Cek kondisi apakah -5 < 0 bernilai benar
maka lanjut ke pernyataan berikutnya, pernyataan setelah then,
( blok pernyataan IF )
2. Cek kondisi apakah -5 > 0 bernilai salah
maka proses cetak ‘R’ di komponen edit1
3. Lanjut pernyataan berikutnya
proses cetak ‘Selesai’ di komponen edit2
Output :
Di komponen edit1 : R
Di komponen edit2 : Selesai
B. Jika fragmen program pada contoh di atas diberi masukan R:= 5; dan S:= -5;
maka output yang dihasilkan fragmen program di atas adalah

Input:
R = 5 , S = -5
Proses:
1. Cek kondisi apakah 5 < 0 bernilai salah
Karena bernilai salah maka blok pernyataan IF berikutnya tidak
diproses maka lanjut ke pernyataan terakhir
2. proses cetak ‘Selesai’ di komponen edit2
Output :
Di komponen edit2 : Selesai

Bentuk 2
if kondisi1 then
pernyataan1
else
if kondisi2 then
pernyataan2
else
pernyataan3;
Contoh fragmen program :

If R < 0 then
edit1.text:=‘S’
else
else yang pertama milik if yang
If S > 0 then pertama
edit1.text:=‘S’ else yang kedua milik if
yang kedua 1 blok program / 1 pernyataan
else
edit1.text:=‘T’; 1 blok program

edit2.text:=‘Selesai’; 1 pernyataan

Contoh proses :

A. Jika fragmen program pada contoh di atas diberi masukan R:= -5; dan S:= -5;
maka output yang dihasilkan fragmen program di atas adalah
Input:
R = -5 , S = -5
Proses:
1. Cek kondisi apakah -5 < 0 bernilai benar
maka lanjut ke pernyataan berikutnya, pernyataan setelah then.
2. Proses cetak ‘S’ di komponen edit1
3. Lanjut pernyataan terakhir
proses cetak ‘Selesai’ di komponen edit2
Output :
Di komponen edit1 : S
Di komponen edit2 : Selesai

B. Jika fragmen program pada contoh di atas diberi masukan R:= 5; dan S:= -5;
maka output yang dihasilkan fragmen program di atas adalah
Input:
R = 5 , S = -5
Proses:
1. Cek kondisi apakah 5 < 0 bernilai salah
Karena bernilai salah maka yang diproses pernyataan setelah else.
2. Proses cetak ‘T’ di komponen edit1
3. Lanjut pernyataan berikutnya
proses cetak ‘Selesai’ di komponen edit2
Output :
Di komponen edit1 : T
Di komponen edit2 : Selesai

Bentuk 3
If kondisi1 then
begin
if kondisi2 then
pernyataan1;
end
else
pernyataan2;

Contoh fragmen program :

If R < 0 then
begin
Satu pernyataan (di
If S > 0 then
antara begin…end) else milik if yang pertama
edit1.text:=‘S’;
end 1 blok program 1 blok program

else
edit1.text:=‘T’;
edit2.text:=‘Selesai’; 1 pernyataan

Contoh proses :

A. Jika fragmen program pada contoh di atas diberi masukan R:= -5; dan S:= -5;
maka output yang dihasilkan fragmen program di atas adalah
Input:
R = -5 , S = -5
Proses:
1. Cek kondisi apakah -5 < 0 bernilai benar
maka lanjut ke pernyataan berikutnya, 1 pernyataan setelah then.
(pernyataan di antara begin..end)
2. Cek kondisi apakah -5 > 0 bernilai salah
Karena bernilai salah maka dilanjutkan ke pernyataan terakhir ( karena
pernyataan hanya if .. then)
3. Proses cetak ‘Selesai’ di komponen edit2

Output :
Di komponen edit1 : tidak mencetak apa pun di edit 1
Di komponen edit2 : Selesai

B. Jika fragmen program pada contoh di atas diberi masukan R:= 5; dan S:= -5; maka
output yang dihasilkan fragmen program di atas adalah
Input:
R = 5 , S = -5
Proses:
1. Cek kondisi apakah 5 < 0 bernilai salah
Karena bernilai salah maka yang diproses pernyataan setelah else.
2. Cek kondisi apakah -5 > 0 bernilai salah
Karena bernilai salah maka yang diproses pernyataan setelah else kedua.
maka proses cetak ‘T’ di komponen edit1
3. Lanjut pernyataan berikutnya
proses cetak ‘Selesai’ di komponen edit2
Output :
Di komponen edit1 : T
Di komponen edit2 : Selesai
Catatan:

- else berpasangan dengan if yang tepat di atasnya yang terletak pada satu blok

- Jika if yang terletak tepat sebelum else terletak di dalam begin.. end, maka if
tersebut tidak terletak pada satu blok

Anda mungkin juga menyukai