Percabangan Percabangan Bersyarat If ….Then….Else Digunakan untuk menjalankan suatu pernyataan atau satu blok pernyataan, tergantung pada nilai yang diuji. If <kondisi> then <pernyataan>; Atau If <kondisi> then <pernyataan1> else <pernyataan2;
KONTROL PROGRAM Pernyataan Percabangan : If.… Then …. Else …... Case ……Of GoTo Break Exit Continue Pernyataan Pengulangan : While …… Do….. Repeat …… Until …. For ….. Do ….
Contoh1 : Var Bil : Integer; Hsl : String; Begin If Bil >= 60 then Hsl := ‘Lulus’ Else Hsl := ‘Tidak Lulus’; Contoh2 : Var Jumlah, Disct, Total : integer; Begin If Jumlah < 100 then begin Disct := 10% * Total; Total := Total – Disct; end else Disct := 20% * Total; end;
Contoh3 : Var Nilai : integer; Hasil : String; Begin If Nilai < 50 Then Hasil := ‘E’ else If (Nilai >=51) and (Nilai<75) then Hasil := ‘D’ If (Nilai >=75) and (Nilai<85) then Hasil := ‘C’ If (Nilai >=85) and (Nilai<95) then Hasil := ‘B’ Hasil := ‘A’
Percabangan Bersyarat Case…Of Digunakan untuk menyederhanakan penggunaan If .. Then..Else yang panjang, dan percabangan ini bisa dipakai untuk percabangan yang lebih dari dua pilihan Bentuk Umumnya : Case <kondisi> of <daftar-1> : <pernyataan-1>; <daftar-2> : <pernyataan-2>; . . . . . . <daftar-n> : <pernyataan-n>; End; ATAU Dapat ditulis : Case <kondisi> of <daftar-1> : <pernyataan-1>; <daftar-2> : <pernyataan-2>; . . . . . . <daftar-n> : <pernyataan-n>; else <pernyataan-x>; End;
Percabangan Goto Dipakai untuk melakukan percabangan tak bersyarat ke sebuah baris Label. Baris Label dapat dibuat dengan menggunakan kata Label diikuti nama labelnya. var i : integer; label gotoLabel; begin for i := 1 to 10 do ShowMessage('i = '+IntToStr(i)); if i = 4 then Goto GotoLabel; // kondisi keluar dr. perulangan end; ShowMessage('Perulangan selesai OK'); GotoLabel : ShowMessage('Loop finished with i = '+IntToStr(i)); end; end.
Pengulangan While … Do Untuk mengulang satu pernyataan atau satu blok pernyataan jika atau selama (while) suatu kondisi (syarat) bernilai True. While <ekspresi> do <pernyataan> Pengulangan akan berhenti kalau <ekspresi> bernilai False, tapi dapat juga dihentikan dengan pernyataan Break.
Contoh : procedure TForm1.Button1Click(Sender: TObject); Var i,k : integer; begin k:=1; i:=strtoint(edit1.Text); while k<=i do begin memo1.Lines.Add(inttostr(k)); k:=k+1; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin edit1.Text:=’ ‘; memo1.Lines.Clear; end;
Pengulangan Repeat … Until Hampir sama dengan pengulangan While … Do, bedanya adalah : Dapat melaksanakan pengulangan lebih dari satu pernyataan, baik berupa kumpulan pernyataan tunggal atau kumpulan blok pernyataan. Pasti melaksanakan (minimal satu kali) segala sesuatu yang berada diantara pernyataan Repeat … Until, karena pengujian terletak di bagian bawah pernyataan. Repeat <pernyataan1>; . . . . . . . . . . . . <pernyataanX>; Until <ekpresi>;
Perulangan Repeat ..Until
procedure TForm1.Button1Click(Sender: TObject); var a, b : integer; C : string ; begin a := 1; c := ‘ ‘; B := strtoint (edit1.text); Repeat Int(edit1.Text); C:= c+ inttostr (a) + ‘ ‘ : A := a+1 ; Until a > b ; Listbox1.items.add (c) ; end; end.
Pengulangan For …. Do Untuk melakukan pengulangan satu pernyataan atau satu blok program beberapa kali yang ditentukan oleh nilai awal dan nilai akhir. For <pencacah> := <awal> to <akhir> do <pernyataan> Atau For <pencacah> := <awal> downto <akhir> do
procedure TForm1.Button1Click(Sender: TObject); var i:Integer; begin ListBox1.Clear; for i:= 0 to StrToInt (Edit1.Text) do ListBox1.Items.Add(IntToStr(i)); end;
procedure TForm1.Button2Click(Sender: TObject); var i:Integer; begin ListBox1.Clear; for i:= StrToInt (Edit1.Text) downto 0 do ListBox1.Items.Add(IntToStr(i)); end;
procedure TForm1.Button3Click(Sender: TObject); Var i:integer; Begin ListBox1.Clear; i:=0; Repeat i:=i+1; ListBox1.Items.Add(IntToStr(i)); Until i = StrToInt (Edit1.Text) end;
procedure TForm1.Button4Click(Sender: TObject); Var i:integer; Begin ListBox1.Clear; i:=0; while i < 5 do begin ListBox1.Items.Add(IntToStr(i)); i:=i+1; end;
procedure TForm1.Button5Click(Sender: TObject); begin Edit1.Clear; ListBox1.Clear; edit1.SetFocus; edit1.Text:='0'; edit1.SelectAll; end; end.
Pernyataan Break Dipakai untuk memaksa menghentikan pengulangan. Jika terdapat pernyataan Break pada suatu pengulangan, maka pelaksanaan program akan dilanjutkan ke baris dibawah struktur pengulangan.
Contoh : Var Hitung, X : integer; Begin for hitung := 1 to 10 do if x > 0 then X := X + 1; else Break; …….. end.;
Pernyataan Exit Dipakai untuk keluar dari suatu blok program. Jika pernyataan Exit berada pada suatu procedure atau fungsi maka pernyataan Exit akan menyebabkan proses dalam procedure atau fungsi tersebut dihentikan dan kontrol program kembali kebawah garis pemanggil utama,maka program akan berhenti
Contoh : Var Jumlah, Disct, Total : Integer; Begin If Jumlah <= 100 then Disct ;= 10 % * Total; Total := Total – Disct; end else Exit; End;
Pencabangan Try … Except Dipakai untuk pencabangan yang memiliki kemungkinan kesalahan operasi atau pelaksanaan program. try <daftarpernyataan1>; except <daftarpernyataan2>; end; Jika tidak ada kesalahan, program akan mengeksekusi pernyataan sebelum except kemudian loncat ke end, Jika terjadi kesalahan program langsung loncat ke pernyataan except dan melaksanakan perintah dibawahnya.
Try … except akan bekerja jika pilihan Stop on Delphi Exceptions yang terdapat pada tab Language Exceptions dalam menu Tools, debugger Options tidak diberi tanda pilihan. Contoh : try x := Y/Z; Except on EZeroDivide do HandleZeroDivide; End;
Pencabangan Try … Finally Strukturnya sama dengan Try …Except Bedanya pada try … finally, daftar pernyataan yang berada dibawah pernyataan finally akan selalu dilaksanakan, baik jika ada kesalahan pada daftar pernyataan dibawah pernyataan try ataupun jika tidak ada kesalahan.
Bentuknya : try <daftar pernyataan1>; finally <daftar pernyataan2>; end; Contoh : reset(F); . . . . //process file F CloseFile(F);