Pengendalian Program II


Perintah for…do,

While… do,

& Repeat… until.

  1. 1. Perulangan For…do

Perintah for..do digunakan untuk melakukan perulangan determinitif. Artinya, sebuah pernyataan (tunggal atau majemuk) akan dekerjakan berulang-ulang sebanyak n kali, di mana n adalah sebuah bilangan yang telah diketahui sebelumnya.

Bentuk penggunaaaanya adalah sebagai berikut :

For <pecahan> := <awal > to <akhir> do <penyataan>                (1)

For <pecahan> := <awal> dowoto <akhir> do <pernyataan>            (2)

<pecahan> adalah sebuah variabel ordinal yang isinya menunjukan sampai seberapa jauh perulangan <awal> dan <akhir> adalah konstanta yang digunakan untuk menentukan berapa kali perulangan akan dilakukan. Hal yang perlu diperhatikan antara kedua bentuk di atas adalah :

1. Dalam penggunaan To, jika suatu nilai awal lebih besar daripada the nilai akhir maka pernyataan tidak akan pernah dijalankan.

2. Dalam penggunaan DownTo, jika nilai awal lebih kecil daripada nilai akhirnya maka pernyataan tidak akan pernah dijalankan.

3. Free Pascal selalu mengkalkulasi batas atas sebelum menginialisasi the variable penghitung dengan nilai awal.

4. Tidak diijinkan untuk mengganti (contohnya assign suatu nilai) suatu nilai dari loop variable di dalam loop. Untuk lebih jelasnya :

Loops yang benar:

For Day := Monday to Friday do Work;
For I := 100 downto 1 do
WriteLn (’Counting down : ’,i);
For I := 1 to 7*dwarfs do KissDwarf(i);

Dibawah ini potongan kode yang salah:

For I:=0 to 100 do
begin
DoSomething;
I:=I*2;

Karena loop variable “I” tidak dapat ditunjukan didalam loop. Jika suatu statement adalah campuran statement, maka reserved words Break dan Continue dapat dugunakan untuk melompat sampai akhir atau sesudah akhir dari suatu statement.

Berikut adalah contoh program matriks (array dua dimensi) dengan menggunakan for…to…do ;

program matriks;
var x,y:integer;
a:array [1..3,1..3] of integer;
begin
 for x := 1 to 3 do
  begin
   for y:=1 to 3 do
    begin
     write ('masukan data matrix ',x,',',y,' )=' );
     readln (a[x,y]) ;
    end;
  end;
 for x:=1 to 3 do
  begin
   for y:= 1to 3 do
    begin write (a[x,y]);
     write (' ');
    end;
   writeln;
  end;
 readln;
end.

Maka hasilnya :

masukan data matrix 1,1 )=1
masukan data matrix 1,2 )=2
masukan data matrix 1,3 )=3
masukan data matrix 2,1 )=4
masukan data matrix 2,2 )=5
masukan data matrix 2,3 )=6
masukan data matrix 3,1 )=7
masukan data matrix 3,2 )=8
masukan data matrix 3,3 )=9

1 2 3
4 5 6
7 8 9
  1. 2. Perintah While…do

Bila banyaknya perulangan suatu pernyataan belum bisa diketahui, maka perintah for…do tidak bisa digunakan. Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi tersebut. Perulangan While…Do tidak dilakukan jika kondisi tidak terpenuhi.

program Fibonacci;
var
  i, x, m, n : integer;
begin   {Begins the main part}
  writeln ('Enter the lenghts of the sequence');
  readln (x);
  n := 0; m:=1; {We have to initialize our sequence}
  writeln (n);  {and have the first output}
  writeln (m);
  i:=0;         {"i" is the number of the current iteration}
while i<x-2 do  {The first 2 "x's" we've already had
                 that's why we must get rid of them}
begin           {Begins the iteration loop}
  i:=i+1;
  m:=m+n; n:=m-n;
  writeln(m);
  if i=x-2 then writeln('Finished !');
                {The program has calculated everything
                 and lets us know about it}
end;            {The end of the while-do loop}
  readln;       {This is needed to have enough time
                 to read the output}
end.

Maka hasilnya sbb :

Masukan banyaknya angka: 10

0 1 1 2 3 5 8 13 21 34 selesai !
  1. 3. Peintah Repeat…until

Perbedaan repeat…until dengan while…do adalah bahwa pada repeat…until <pernyataan> akan dikerjakan berulang-ulang sampai ekspresi <kondisi> menghasilkan nilai True. Dengan demikian, selama <kondisi> bernilai false, perulangan akan terus dilakukan. Karenanya, repeat…until disebut perulangan selama kondisi salah.

program menu;
var
pilih: char;
nilai:array[1..100] of integer;
begin
repeat
  writeln('program menu: ');
  writeln;
  writeln('1. menu satu');
  writeln('2. menu dua');
  writeln('3. menu tiga');
  writeln('x. keluar');
  writeln;
  write('masukan pilihan anda');
  readln(pilih);
case pilih of
  '1':writeln('menu satu dipilih');
  '2':writeln('menu dua dipilih');
  '3':writeln('menu tiga dipilih');
  'x':writeln('untuk keluar, tekanENTER');
else writeln ('sorry, ONLY 1,2,3, or x that allowed');
end;
readln;
until (pilih)='x';
end.
Hasilnya adalah sbb :
program menu:
1. menu satu
2. menu dua
3. menu tiga
x. keluar
masukan pilihan anda3
menu tiga dipilih
    sumber :

<a href=”“>“>