Dalam
menyelesaikan masalah, terkadang kita harus melaku suatu proses yang sama lebih
dari satu kali. Untuk itu perlu dibuat suatu algoritma pengulangan. Pascal
memberikan tiga alternative pengulangan, yaitu dengan For, While, atau Repeat.
Masing-masing memiliki karakteristik, yang akan dipelajari pada modul ini. Ada
dua hal yang penting dalam melakukan merancang perintah pengulangan, yaitu:
Inisialisasi awal.
Nilai akhir
pengulangan atau kondisi berhenti.
Perulangan For...To...Do
Pengulangan For .. Do merupakan perintah pengulangan yang
paling sederhana diantara perintah pengulangan lain yang disediakan oleh
Delphi. Pengulangan For .. Do digunakan untuk melaksanakan pengulangan satu
pernyataan atau satu blok program beberapa kali yang ditentukan oleh nilai awal
dan nilai akhir. Dengan kata lain, jumlah pengulangan yang akan dikerjakan
sudah diketahui.
Pada pengulangan dengan For, inisialisasi awal dan
kondisi akhir ditentukan dengan menggunakan suatu variable kendali (pencacah)
yang nilainya dibatasi dalam suatu range tertentu.
Syntax :
for <pencacah> := <awal> to
<akhir> do
<pernyataan>;
Atau :
for <pencacah> := <awal> downto
<akhir> do
<pernyataan>;
<pencacah> adalah variabel
bertipe ordinal, yaitu variabel yang mempunyai nilai pasti jika dikurangi atau
ditambah satu satuan, misalnya byte, integer, dan lain-lain. Nilai <pencacah>
tidak boleh diubah dalam <pernyataan>.
Perbedaan
antara to dan downto adalah pada kondisi nilai awal dan akhir.
Pada to: nilai awal lebih kecil dari nilai akhir, sedangkan pada downto
nilai awal lebih besar dari nilai akhir. Perlu diingat, bahwa variable kendali harus
dideklarasikan dengan tipe data integer.
Contoh 1 :
for
x := 1 to 10
do
ListBox1.items.add(inttostr(x));
Program ini akan
menghasilkan bilangan terurut mulai dari 1 sampai 10.
Contoh 2 :
for x := 10 downto 1 do
ListBox1.items.add(inttostr(x));
Program ini akan
menghasilkan bilangan terurut mulai dari 10 sampai 1.
Contoh 3 :
for
i := 1 to 20
do
Jumlah
:= Jumlah + 1;
J
:= 20;
for
i := 1 to j
do
begin
Jumlah
:= Jumlah + 1;
j
:= j + 1;
end;
Contoh 4:
var
a:integer;
begin
listbox1.Items.Clear;
for a:=-1000 to 1000 do
begin
listbox1.Items.Add(inttostr(a));
end;
Perulangan While
... Do
Pernyataan pengulangan ini biasanya digunakan bila Anda
belum tahu pasti berapa banyak Anda akan mengulang pernyataan-pernyataan.
Berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah
tidak terpenuhi maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi,
pengulangan akan terus dilakukan.
Pernyataan pengulangan While .. Do bertugas mengulang
satu pernyataan atau suatu blok pernyataan atau selama (while) suatu kondisi
(syarat) bernilai True.
Syntax :
while <kondisi> do
<pernyataan>;
begin
<pernyataan_1>;
<pernyataan_2>;
.
.
<pernyataan_n>;
end;
Prosedur alur pengulangan diatas
diatas adalah sebagai berikut :
1.
Program akan
menguji nilai <kondisi>.
2.
Jika
<kondisi> bernilai False maka <pernyataan> tidak dilaksanakan dan program
akan menghentikan pengulangan, kemudian menjalankan baris berikutnya.
3.
Jika
<kondisi> bernilai True, maka pernyataan akan dilaksanakan satu kali.
4.
Kembali ke prosedur no. 1.
5.
Program
menghentikan pengulangan dan menjalankan baris berikutnya. Pada dasarnya
pengulangan akan berhenti kalau <kondisi> bernilai False. <pernyataan>
bisa berupa satu pernyataan atau blok pernyataan yang diawali dengan begin dan
diakhiri dengan end. Penulisan pernyataan harus diakhiri dengan titik koma sebagai
tanda akhir dari pernyataan While.
Contoh 1:
x:=0;
while (x < 10) do
begin
x:=x+1;
listbox1.items.add(Inttostr(x));
end;
Program
ini akan menghasilkan bilangan terurut mulai dari 1 sampai 10.
Contoh 2:
while
Jumlah >= 20 do
Jumlah
:= Jumlah + 1;
while
a >= b do
begin
a
:= a + 1;
b
:= b * a;
end;
Perulangan Repeat ... Until
Pengulangan ini hampir sama dengan pengulangan While ..
Do dan biasanya digunakan jika jumlah pengulangan belum dapat ditentukan pada
saat program ditulis.
Perbendaannya,
pernyataan Repeat .. Until dan While .. Do terletak pada letak pengecekan kondisi. Jika pada
pernyataan While .. Do kondisi dicek pada awal blok pernyataan yang harus diulang,
sedangkan pada pernyataan Repeat .. Until, kondisi dicek pada akhir blok pernyataan
yang harus diulang.
Syntax :
repeat
<pernyataan_1>;
<pernyataan_2>;
...
<pernyataan_n>;
until <kondisi>
Perbedaan lainnya
adalah pernyataan While .. Do mengulang pernyataan selama kondisi masih
terpenuhi, tetapi pernyataan Repeat .. Until hanya akan mengulang pernyataan selama
kondisi belum terpenuhi. Perbedaan lain yang dapat ditemukan untuk pernyataan Repeat
.. Until adalah :
1.
Dapat melaksanakan pengulangan lebih
dari satu pernyatan baik berupa kumpulan pernyataan tunggal atau kumpulan blok
pernyataan. Jadi bagian yang diulang adalah segala sesuatu yang berda di antara
pernyataan Repeat .. Until.
2.
Menjalankan
perintah yang berada diantara pernyataan Repeat .. Until karena pengujian
terletak di bagian bawah pernyataan, minimal satu kali.
Contoh 1:
repeat
k
:= i mod j;
i := j;
j := k;
until j = 0;
Contoh 2:
x:=0;
repeat
x:=x+1;
listbox1.items.add(Inttostr(x));
until x = 10;
No comments:
Post a Comment