Struktur Repeat..Until

Blok pengulangan jenis ini sebenarnya mirip dengan blok pengulangan while, perbedaannya hanya pada jenis ini pengulangan akan terus dilakukan apabila kondisi yang didefinisikan masih bernilai false. Jadi dengan kata lain pengulangan hanya akan dihentikan apabila kondisi bernilai true. Dalam pengulangan ini kondisi akan dituliskan di akhir blok. Hal ini tentu menyebabkan pada blok pengulangan jenis ini statemen minimal akan dieksekusi satu kali, walaupun ternyata kondisi yang didefinisikan terpenuhi atau bernilai true. Pengulangan jenis ini pada umumnya digunakan untuk kasus-kasus pengulangan yang tidak bergantung pada kondisi awal.

Bentuk umum pendeklarasiannya:
program statemenrepeat1;
uses wincrt;
var
i:integer;
begin
clrscr;
i:=1;
repeat
writeln(‘Bahasa Pemograman Pascal’);
i:=i+1;
until (i>5);
readln;
end.

Bila program dijalankan maka didapatkan output:
Bahasa Pemograman Pascal
Bahasa Pemograman Pascal
Bahasa Pemograman Pascal
Bahasa Pemograman Pascal
Bahasa Pemograman Pascal
Apabila program tersebut dijalankan maka akan tampil teks ‘Bahasa Pemograman Pascal’ sebanyak 5 kali.

Perbedaan antara struktur Repeat..Until dengan struktur While..Do adalah sebagai berikut:
1. Paling sedikit statemen-statemen di dalam perulangan Repeat..Until diproses sekali, karena seleksi kondisi ada pada statemen Until yang terletak di bawah. Sedang pada struktur While-Do paling sedikit dikerjakan nol kali, karena seleksi kondisi ada pada statemen While yang terletak diatas, sehingga kalau kondisi sudah tidak terpenuhi maka tidak akan masuk kedalam lingkungan perulangannya.
Contoh:
var
i:integer;
begin
i:=10;
repeat
i:=i+1;
writeln(i);
until i > 5;
end.

Bila program dijalankan akan didapatkan hasil:
11

var
i:integer;
begin
i:=10;
while i 5;
writeln(‘————————–‘);
end.

program repeat2;
uses wincrt;
var
X : integer;
celcius, reamur, fahrenheit : real;
begin
writeln(‘———————————————–‘);
writeln(‘ Celcius reamur Fahrenheit ‘);
writeln(‘———————————————–‘);
celcius:=0;

repeat
reamur:= 4/9 * celcius;
fahrenheit:= 1.8 * celcius + 32;
writeln(celcius:8:2,reamur:12:2, fahrenheit:14:2);
celcius:=celcius + 0.5;
until celcius > 5;
writeln(‘———————————–‘);
end.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s