Minggu, 01 April 2012

[Turbo Pascal] Perulangan dalam Turbo Pascal


Blok pengulangan ini sebenarnya mirip dengan pengulangan while,perbedaannya hanya pada jenis ini pengulangan akan terus dilakukan apabila kondisi yg didefinisikan masih bernilai false,jadi dengan kata lain pengulangan dihentikan jika kondisi bernilai true. Juga dalam pengulangan repeat, kondisi ditulis di akhir blok.
Bentuk umumnya seperti ini:
repeat
  statemen;
  ...
until (kondisi);

sebagai bahan perbandingan dengan jenis-jenis pengulangan sebelumnya,kita lihat saja contoh programnya dibawah ini:
program statemenrepeat1;
uses wincrt;
var i:integer;
begin
 {inisialisasi nilai indeks i dengan 1}
 i:=1;
 {melakukan pengulangan}
 repeat
   writeln('Coba Perulangan');
   i:=i+1;
 until (i < 5);
end.

lihat contoh lainnya dalam pengulangan repeat

program statemenrepeat2;
uses wincrt;
var
  a:integer;{variabel utk mnympan bil pertama}
  b:integer;{variabel utk mnympan bil kedua}
  sisabagi:integer;{var utk mnympn sisabagi}
  temp:integer;{var utk bantu proses pertukaran}
begin
 write('Masukan bilangan pertama');readln(a);
 write('Masukan bilangan kedua');readln(b);
{memastikan nilai a < b & melakukan pertukaran}
if (a < b) then begin
  temp:=a;
  a:=b;
  b:=temp;
end;
{melakukan pengulangan}
repeat
  sisabagi:= a mod b;
  a:=b;
  b:=sisabagi;
until (sisabagi = 0);
{menampilkan hasil perhitungan}
 writeln;
 writeln('Pembagi bersama terbesar = ', a);
end.

1
2
3
4
5
6
7
8
9
10
11
var
   i : integer;

begin
   i := 1;
   repeat
      write(i);
      writeln(' Turbo Pascal');
      inc(i);
   until i > 5;
end.
Bila program dijalankan maka akan didapatkan hasil:
Turbo Pascal
Turbo Pascal
Turbo Pascal
Turbo Pascal
Turbo Pascal
Beberapa hal yang perlu diperhatikan dalam perulangan repeat until adalah:
1.     Paling sedikit statement didalam perulangan diproses sekali, karena seleksi kondisi pada statement until yang terletak dibawah. Jadi walaupun kondisi awal sudah tidak sesuai dengan kondisi statement until, tapi blok statement setelah repeat tetap akan dikerjakan hingga statement until.
2.     Pada repeat...until dapat tidak menggunakan blok statement (tidak diperlukan begin dan end untuk menunjukkan batas perulangannya), karena batas perulangannya telah ditunjukkan mulai Repeat sampai Until (Jadi Repeat dan Until merupakan pengganti begin dan end). Kalaupun ditambahkan blok statement begin dan end didalam perulangan repeat...until, hasilnya akan sama saja dengan tanpa menggunakan begin dan end.
Untuk dapat lebih memahami maksud dari pernyataan diatas, bisa kita lihat contoh perbedaan penggunaan perulangan repeat...until dengan perulangan while-do:
contoh perulangan dengan repeat...until:
1
2
3
4
5
6
7
8
9
10
11
var
   i : integer;

begin
   i := 10;
   repeat
      write(i);
      writeln(' Turbo Pascal');
      inc(i);
   until i > 5;
end.
contoh perulangan dengan while-do:
1
2
3
4
5
6
7
8
9
10
11
12
var
   i : integer;

begin
   i := 10;
   while i < 5 do
   begin
      write(i);
      writeln(' Turbo Pascal');
      inc(i);
   end;
end.
Kedua script diatas sengaja dibuat nilai awal yang tidak memenuhi kondisi pada tiap perulangan, baik repeat...until maupun while-do. Jika kedua script diatas dijalankan maka script dengan perulangan while-do tidak akan menampilkan hasil apapun, sementara script dengan perulangan repeat...until tetap akan menjalankan statement program minimal satu kali, dan menampilkan hasil seperti ini:
10 Turbo Pascal
Dari contoh diatas semoga kita bisa memahami perbedaan penggunaan repeat...until dan while-do.
Struktur Perulangan repeat...until tersarang
Sama seperti perulangan lainnya, struktur perulangan repeat...until tersarang adalah suatu perulangan repeat...until yang berada didalam perulangan repeat...until lainnya.
contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
   i, j : integer;

begin
   i := 1;
   repeat
      j := 1;
      repeat
         write(j, ' ');
         inc(j);
      until j > 5;
      writeln;
      inc(i);
   until i > 5;
end.
Bila program dijalankan, maka akan dihasilkan:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5


Related Articel:

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews