Friday 25 October 2013

Pascal : Pengulangan (loop)

Pengulangan adalah suatu cara untuk mengulangi eksekusi blok instruksi sampai suatu kondisi tertentu dipenuhi.

Bentuk Pengulangan FOR

Bentuk pengulangan ini adalah yang paling sederhana, jika kita ingin melakukan aksi sebanyak N kali, maka kita bisa (dan sebaiknya) menggunakan bentuk pengulangan ini.

Pengulangan dilakukanmulai dari suatu indeks awal, sampai dengan indeks akhir, misalnya:

for i:=1 to 5 do writeln('Hello');

akan mencetak 5 kali kata hello. Indeks loop (dalam kasus ini i) berguna karena dapat diakses di dalam loop, seperti ini:

for i:=1 to 5 do writeln(i);

yang akan mencetak angka 1 sampai dengan 5. Bentuk loop ini sangat sederhana, karena kita bisa memastikan bahwa loop pasti akan berhenti, yaitu ketika nilai indeks sudah sama dengan nilai akhirnya. Perhatian: Anda disarankan untuk TIDAK mengubah INDEKS LOOP dalam program, seperti ini:

for i:=1 to 5 do i:=i+2;

Karena hasilnya mungkin tidak dapat diprediksi

Bentuk Pengulangan WHILE - DO

Terkadang jumlah pengulangan yang akan dilakukan belum diketahui di awal sehingga kita tidak bisa menggunakan bentuk perulangan for. Bentuk loop ini adalah

while (kondisi) do
begin
aksi;
end;

Aksi dalam while akan dilakukan selama kondisi memiliki nilai true, dan aksi mungkin tidak dilakukan sama sekali jika di awal loop kondisi sudah bernilai false. Hal yang perlu diperhatikan dalam loop ini adalah kepastian bahwa loop akan berhenti (bahwa suatu saat kondisi akan bernilai false).

Bentuk Pengulangan REPEAT - UNTIL

Bentuk pengulangan while do mungkin tidak pernah mengeksekusi instruksi di dalam loop satu kali pun jika kondisi sudah tidak terpenuhi. Jika diinginkan agar minimal sebuah aksi dieksekusi sekali, maka gunakan bentuk perulangan repeat until
.
repeat
aksi;
until kondisi;

Aksi akan diulangi sampai kondisi bernilai true. bentuk ini sama saja dengan:

aksi;
while (not kondisi) do
begin
aksi;
end;

Karena loop repeat bisa dikonversi ke bentuk while, maka hal yang perlu diperhatikan sama yaitu bahwa loop pasti akan berhenti.

NESTED LOOP (Loop Bersarang)

Nested loop adalah loop yang memiliki loop di dalam bagian aksinya. Nested loop dapat dibuat dengan aneka bentuk loop yang sudah ada. Jadi kita bisa membuat loop for di dalam loop for, atau loop while dalam repeat until. Jumlah loop di dalam loop bisa sangat banyak (hanya dibatasi oleh kemampuan kompilator dalam menangani loop bersarang).

Nested loop for dapat memakai indeks loop di luarnya sebagai batas. Potongan program ini (dengan I dan j adalah integer):

for i:=1 to 5 do
begin
for j:=1 to i do
begin
writeln(“*”);
end;
end;

Akan mencetak:

*
**
***
****
*****

Invarian Loop

Invarian Loop adalah kondisi dalam loop yang selalu benar sepanjang loop tersebut berjalan.
Contohnya dalam loop ini:

var i, jumlah :integer
begin
i:=0;
jumlah:=0;
while (i<5) do
begin
jumlah:=jumlah + i;
i:=i+1;
end;
end.

Dalam loop ini invarian loop adalah jumlah akan selalu ditambahkan dengan nilai i saat ini, dan nilai i akan selalu bertambah dengan satu dari nilai pada loop berikutnya, sehingga loop dijamin akan berhenti.

Invarian loop untuk loop sederhana mudah diperiksa, namun di dalam loop mungkin ada analisa kasus yang akan mempersulit pemeriksaan apakah loop sudah benar.
 
Semoga bermanfaat, Jangan lupa Like This Yo....
 
Sumber :  http://pemrogramanmudah.blogspot.com
 

No comments:

Post a Comment