Sabtu, 17 Januari 2015

Looping dalam Pascal menggunakan WHILE-DO dan REPEAT-UNTIL

Yups, kali ini kita akan belajar Perulangan dalam Bahasa Pascal menggunakan thenik WHILE dan REPEAT.

Lets Code!!...

A. WHILE DO

while (condition) do (statement);
Algoritma dalam pengeksekusian scriptnya adalah sebagai berikut:
- Kondisi di cek terlebih dahulu (WHILE)
- Jika kondisi terpenuhi maka kerjakan statement (DO)

Contoh kasus:
Contoh1 : Saya ingin menampilkan bilangan genap mulai dari 10 hingga 20

Script lengkapnya : 
program contoh1;
var
   x: integer;
begin
   x := 10; // nilai awal x
   while  x <= 20  do // pengecekan while apakah x <= 20, jika iya kerjakan statment di bawah :
   begin
      if (x mod 2) = 0 then // pengecekan sisa hasil bagi 2, jika 0 maka genap
         write(x,' ');
   
      x := x + 1; // counter pertamnbahan x
   end;
   readln;
end
Hasilnya :
10 12 14 16 18 20

B. REPEAT UNTIL 
repeat
   (steatement1);
   (steatement2);
   ...
   ...
   (steatementN);
until (condition);

Algoritma dalam pengeksekusian scriptnya adalah berkebalikan dengan WHILE-DO, yaitu sebagai berikut:
- Kerjakan statement (REPEAT)
- Kemudian cek kondisi. Jika kondisi belum terpenuhi maka kerjakan statement di atas hingga kondisi terpenuhi (UNTIL)

Jadi statement akan terus di REPEAT (diulang-dikerjakan) UNTIL (hingga) kondisi terpenuhi, dan perulangan berakhir.

Contoh kasus:
Contoh2 : Saya ingin menampilkan bilangan ganjil mulai dari 1 hingga 19
program contoh2;
var
   a: integer;
begin
   a := 1;
   repeat // ulang-kerjakan
      if (a mod 2) = 1 then // pengecekan sisa hasil pembagian 2, jika 1 bilangan genap
        write(a,' ');
      a := a + 1
   until a = 20; // pembatasan repeat
end.
Hasilnya : 
1 3 5 7 9 11 13 15 17 19 

DONE!! gimana mudah kan? , yups, menggunakan WHILE-DO dan REPEAT-UNTIL memang lebih mudah.
TAPI ada yang perlu di ingat, yaitu pembatasan looping, pastikan algoritma pembatasan loopingnya benar, agar tidak terjadi infinite loop (atau disebut juga endless loop atau unproductive loop) yaitu perulangan yang tidak terbatas karena kondisi tidak mungkin terpenuhi.

contoh : 
program infinitieloop;
var
   a: integer;
begin
   a := 2;
   repeat
      write(a,' ');
      a := 2
   until a = 3;
end.
Program tersebut akan terus berulang dan tidak selesi karena nilai variable a tidak mungkin akan sama dengan 3.

0 komentar:

Posting Komentar