Dasar Dasar Perulangan Delphi
Dasar Dasar Perulangan Delphi
BORLAND DELPHI
BABVII
PERULANGAN
PENDAHULUAN
Salahsatukegunaandarikomputeradalahuntukmelakukanprosesyangberulang.Bagimanusiaproses
berulang bisa menjadi satu hal yang melelahkan, sehingga bisa membuat proses menghasilkan
kesalahankarenaketidakkonsentrasianataukelalaian.Olehkarenaitudisemuabahasapemrograman
pastimemilikimekanismeuntukmelakukanperulangan.DemikiandenganjugadenganDelphi.DiDelphi
perulangandapatdilakukandenganbeberapacara,diantaranya:
PerulanganmenggunakanKondisiBooleansebagaikendaliperulangannya.Perulangandengancara
inidilakukandenganmenggunakanpernyataan:WhileDo,atauRepeatUntil.
PerulanganmenggunakanLabel.(carainitidakdisarankanuntukdigunakan.Labelakanditerangkan
sekedaruntukpembelajaransaja).
Untuk lebih memahami perulangan, buatlah form seperti di bawah ini yang akan digunakan untuk
mendemonstrasikanberbagaijenisperulangan.
50
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
Properties:
ScrollBars=ssBoth
KomponenMemodigunakanuntukmenampungdatastringlebihdari1baris.Memobisa
diidentikandenganprogramNotepad.Memobisadigunakanuntukmembuateditorteks.
Adabeberapametodeyangdapatdigunakanuntukmengolah/memanipulasimemoyaitu:
Memo.Lines.Add(s:string), digunakan untuk menambah baris baru di baris terakhir.
Parameternyaharusstring.Jikainginmenuliskanangka,makaharusdikonversidulu.
Memo.Clear,digunakanuntukmenghapussemuabarisyangadadalammemo.
Propertiyangbiasadimodifikasidiantaranya:
Lines,propertiesyangmenyimpanbarisbarisyangadadalammemo
Alignment,digunakanuntukmenentukanalignmentbaris(Left,Right,Center)
ScrollBars,digunakanuntukmenentukanscrollbarmanayangakanditampilkan(None,
Vertikal,Horizontal,Both/Keduanya)
51
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
PERULANGANFORTODO
Perulangan For To Do merupakan perulangan yang menggunakan kendali perulangannya berupa
counter/pencacah.Counterakanmenjalankanperulangandimulaidarinilaiawalyangdiberikansampai
countermencapainilaiakhirnya.Syaratterjadinyaperulanganadalahnilaiawalcounterharuslebihkecil
atausamadengannilaiakhircounter.
Bentukumumdariperulanganiniadalah:
For counter := nilai awal To Nilai akhir Do
Begin
Perintah;
Perintah;
End;
ContohProgramyangditulisdalameventOnClickdaritombolForToDo
procedure TForm1.Tbl_ForToDoClick(Sender: TObject);
var
i:integer;
c:char;
begin
Memo1.Clear;
for i:=1 to 10 do
Memo1.Lines.Add(IntToStr(i));
for c:='A' to 'Z' do
Memo1.Lines.Add(c);
end;
PERULANGANFORDOWNTODO
Perulangan ini sama seperti perulangan dengan menggunakan For To Do tetapi arah isi counternya
berkurang(mundur/turun).
Bentukumumdariperulanganiniadalah:
For counter := nilaiawal DownTo Nilaiakhir Do
Begin
Perintah;
Perintah;
End;
Perulangan ini akan berulang selama nilai variabel counter masih lebih besar atau sama dengan nilai
akhir.Nilaiawalsuatucounterharuslebihbesaratausamadengandaripadanilaiakhirnya.
ContohProgramyangditulisdalameventOnClickdaritombolForToDo
procedure TForm1.Tbl_FormDownToDoClick(Sender: TObject);
var
i:integer;
c:char;
begin
Memo1.Clear;
for i:=10 downto 1 do
Memo1.Lines.Add(IntToStr(i));
for c:='Z' downto 'A' do
Memo1.Lines.Add(c);
end;
52
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
PERULANGANREPEATUNTIL
Perulanganinibekerjasampaikondisiyangdiinginkantercapai.Perulanganinibisadigunakansebagai
perulanganyangmenggunakanbanyakkondisikeluar(multiconditionloop).
Bentukumum:
Repeat
Perintah;
Perintah;
Until Kondisi;
ContohProgram
procedure TForm1.Tbl_RepeatUntilClick(Sender: TObject);
var
i:real;
begin
Memo1.Clear;
i:=0;
repeat
i:=i+0.5;
Memo1.Lines.Add(FloatToStr(i));
until i=10;
end;
Perulangan ini berulang sampai kondisi yang ada setelah until mempunyai nilai true. Jadi repeat until
berjalanselamakondisisalahsampaikondisibenar.
Pengecekankondisiberadadibagianbawahyaitusetelahuntilsehinggasemuaprogramyangmemakai
perulanganiniakanmelakukanminimal1kaliprosesperulangan.
PERULANGANWHILEDO
Perulangan ini mirip dengan perulangan Repeat Until tetapi pengecekannya berada di awal sebelum
melakukanprosesyangberulang.Perulanganiniberjalanselamakondisipengecekanbernilaitrue.Jika
kondisitelahmempunyainilaifalsemakaperulangantidakdilakukanlagi.
BentukumumdariWhileDoadalahsepertiberikut:
While kondisi do
Begin
Perintah;
Perintah;
End;
ContohprogramwhiledoyangditulispadaeventonclickdaritombolWhileDo.
procedure TForm1.Tbl_WhileDoClick(Sender: TObject);
var
i:real;
begin
Memo1.Clear;
i:=0;
while i<10 do
53
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
begin
i:=i+0.5;
Memo1.Lines.Add(FloatToStr(i));
end;
end;
PERULANGANLABEL
Labeladalahsuatuperintahuntukmemandaisuatubarisprogram.Untukpindahkeposisiyangditandai
olehlabel,makadigunakanperintahGoto.
UntuklebihjelasnyalihatlahprogramberikutyangditulisdalameventOnClickdaritombolLabel.
procedure TForm1.Tbl_Label5Click(Sender: TObject);
label
A;
var
i:integer;
begin
Memo1.Clear;
i:=0;
A:
i:=i+1;
Memo1.Lines.Add(IntToStr(i));
if i<10 then
Goto A;
End;
PERULANGANTERSARANG(PERULANGANDALAMPERULANGAN)
Perulangantersarang(nestedloop)adalahsuatuperulangandimanadidalamperulangantersebutada
perulanganlain.Perulanganyangdiadadibagianterdalam,makaakandikerjakandulusampaiselesai
barumengerjakanperulanganyangadadiluarnya.
NestedloopbisamerupakankombinasiantaraForToDo,ForDownToDo,RepeatUntil,WhileDo.
ContohProgram
procedure TForm1.Tbl_TersarangClick(Sender: TObject);
var
i,j:integer;
begin
Memo1.Clear;
for i:=1 to 5 do
begin
j:=0;
while j<5 do
begin
j:=j+1;
Memo1.Lines.Add(IntToStr(i)+' X '+IntToStr(j)
+' = '+IntToStr(i*j));
end;
Memo1.Lines.Add('-------------------');
end;
end;
54
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
PERULANGANBANYAKKONDISI
Perulangandenganbanyakkondisiadalahsuatuperulangandimanaberjalannyasuatuperulangantidak
hanyaberdasarkansuatukondisisajatetapibisalebihdarisatukondisi.Operatoryangbisadigunakan
biasanyasepertiAnd,Or,Notdanlainlain.
ContohProgram:
procedure TForm1.Tbl_BanyakKondisiClick(Sender: TObject);
var
i:integer;
total:integer;
begin
Memo1.Clear;
total:=0;
i:=0;
repeat
i:=i+1;
Total:=Total+i;
Memo1.Lines.Add('Isi I = '+IntToStr(i));
Memo1.Lines.Add('Isi Total = '+IntToStr(Total));
until (total>150)or(i>25);
end;
PERINTAHCONTINUE
Perintah continue merupakan suatu mekanisme agar alur program melanjutkan perulangan ke iterasi
berikutnya dengan tidak mengeksekusi perintah yang ada di bawahnya. Perintah ini berlaku untuk
perulanganfor,whiledoataurepeatuntil.
ContohProgram:
procedure TForm1.Tbl_ContinueClick(Sender: TObject);
var
i:integer;
begin
Memo1.Clear;
for i:=1 to 20 do
begin
if (i>5)and(i<=10) then
continue;
memo1.Lines.Add(inttostr(i));
end;
end;
Perintahdiatasakanmelakukanperulangandari1sampai20kecuali6s/d10.
PERINTAHBREAK
Perintah break digunakan untuk menghentikan perulangan. Break berlaku pada perulangan for, while
do,repeatuntil.Perintahdibawahbreaktidakakandieksekusi.
ContohProgram:
procedure TForm1.Tbl_BreakClick(Sender: TObject);
var
i:integer;
55
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
begin
Memo1.lines.Clear;
for i:=1 to 100 do
begin
if i>50 then
Break;
Memo1.Lines.add(inttostr(i));
end;
end;
Perintah di atas akan melakukan perulangan dari 1 sampai 100 tetapi akan berhenti ketika counter I
bernilai50.
KASUS:
1. BuatsuatuprogramuntukmenentukanfaktorialdanjumlahderetsampaikeN.Buatformsebagai
berikut:
ContohHasil:
N
: 5
Hasilyangdidapatadalah:
Faktorial
Jumlah
:
:
120
15
2. Buatsuatuprogram untuk menghitung saldo akhirdari suatu tabungan dengan bunga dan jangka
waktutertentu:
Contohhasil:
Saldo
Bunga
Waktu
: 100000
: 10
: 3
KetikausermenekantombolHitung,makaakanmunculhasilsepertiberikutdimemonya.
Saldo Bulan 1 = Rp. 110000
Saldo Bulan 2 = Rp. 121000
Saldo Bulan 3 = Rp. 133100
56
DIKTATPERKULIAHANPEMROGRAMANII
BORLAND DELPHI
3. Mirip dengan program kedua hanya input yang diberikan adalah : Saldo awal, bunga dan saldo
akhir.Dariketigainputtersebutmakaakandidapatkanlamanyajangkawaktuyangdiinginkanagar
saldomencapaisaldoakhir.
Contoh:
Saldo Awal :
Bunga
:
Saldo Akhir :
100000
10
150000
Makahasilpadamemonyaadalah:
Saldo
Saldo
Saldo
Saldo
Saldo
Bulan
Bulan
Bulan
Bulan
Bulan
1
2
3
4
5
=
=
=
=
=
Rp.
Rp.
Rp.
Rp.
Rp.
110,000
121,000
133,100
146,410
161,051
Formyangdiinginkan:
57