Anda di halaman 1dari 8

DIKTATPERKULIAHANPEMROGRAMANII

BORLAND DELPHI

BABVII PERULANGAN

PENDAHULUAN
Salahsatukegunaandarikomputeradalahuntukmelakukanprosesyangberulang.Bagimanusiaproses berulang bisa menjadi satu hal yang melelahkan, sehingga bisa membuat proses menghasilkan kesalahan karena ketidakkonsentrasian atau kelalaian. Oleh karena itu di semua bahasa pemrograman pastimemilikimekanismeuntukmelakukanperulangan.DemikiandenganjugadenganDelphi.DiDelphi perulangandapatdilakukandenganbeberapacara,diantaranya: Perulangan menggunakan Counter/Pencacah sebagai kendali perulangannya. Perulangan dengan carainidapatdilakukandenganmenggunakanpernyataan:ForToDoatauForDownToDo. Perulangan menggunakan Kondisi Boolean sebagai kendali perulangannya. Perulangan dengan cara inidilakukandenganmenggunakanpernyataan:WhileDo,atauRepeatUntil. Perulangan menggunakan Label. (cara ini tidak disarankan untuk digunakan. Label akan diterangkan sekedaruntukpembelajaransaja).

Untuk lebih memahami perulangan, buatlah form seperti di bawah ini yang akan digunakan untuk mendemonstrasikanberbagaijenisperulangan.

50

DIKTATPERKULIAHANPEMROGRAMANII

BORLAND DELPHI

Properties: ScrollBars=ssBoth

Komponen Memo digunakan untuk menampung data string lebih dari 1 baris. Memo bisa diidentikan denganprogramNotepad.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, digunakan untuk menentukan scrollbar mana yang akan ditampilkan (None, Vertikal,Horizontal,Both/Keduanya)

51

DIKTATPERKULIAHANPEMROGRAMANII

BORLAND DELPHI

PERULANGANFORTODO
Perulangan For To Do merupakan perulangan yang menggunakan kendali perulangannya berupa counter/pencacah.Counterakan menjalankanperulangandimulai darinilai awalyang diberikan sampai 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
Perulangan ini bekerja sampai kondisi yang diinginkan tercapai. Perulangan ini bisa digunakan sebagai 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. Pengecekan kondisiberadadibagian bawahyaitu setelah until sehingga semua programyangmemakai perulanganiniakanmelakukanminimal1kaliprosesperulangan.

PERULANGANWHILEDO
Perulangan ini mirip dengan perulangan Repeat Until tetapi pengecekannya berada di awal sebelum melakukan proses yang berulang. Perulangan ini berjalan selama kondisi pengecekan bernilai true. 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
begin i:=i+0.5; Memo1.Lines.Add(FloatToStr(i)); end; end;

BORLAND DELPHI

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)
Perulangan tersarang (nested loop) adalah suatu perulangan dimana di dalam perulangan tersebut ada perulangan lain. Perulangan yang di ada di bagian terdalam, maka akan dikerjakan dulu sampai selesai 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 hanya berdasarkan suatu kondisi saja tetapi bisa lebih dari satu kondisi. Operator yang bisa digunakan 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
begin Memo1.lines.Clear; for i:=1 to 100 do begin if i>50 then Break; Memo1.Lines.add(inttostr(i)); end; end;

BORLAND DELPHI

Perintah di atas akan melakukan perulangan dari 1 sampai 100 tetapi akan berhenti ketika counter I bernilai50.

KASUS:
1. Buat suatu program untuk menentukan faktorial dan jumlah deret sampai ke N. Buat form sebagai berikut: ContohHasil:
N : 5

Hasilyangdidapatadalah:
Faktorial Jumlah : : 120 15

2. Buat suatu program untuk menghitung saldo akhir dari 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. Dari ketiga input tersebut maka akan didapatkan lamanya jangka waktu yang diinginkan agar 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