LOOPING
(PERINTAH
PERULANGAN)
Iterasi / perulangan (Loop) dalam bahasa
Pascal terdiri dari 3 macam,
yaitu : For
… Do,
While …Do
dan Repeat … Until.
For … Do
• Digunakan untuk
mengulang statemen atau satu blok statemen berulang kali sejumlah yang ditentukan.
• Perulangan For
dapat berbentuk perulangan positif, perulangan Negatif dan perulangan
tersarang.
a) Perulangan
Positif
Adalah
perulangan dengan penghitung (counter) dari kecil ke besar atau pertambahannya
positif.
B.u : For Variabel_Kontrol
:=
Nilai_Awal To Nilai_Akhir
Do
Statement ;
Ket : -
Variabel_Kontrol, Nilai_Awal dan Nilai_Akhir harus bertipe sama, yaitu
Integer.
Jika
Statement hanya 1, maka boleh ditulis dalam blok (Diawali Begin dan diakhiri
End;) boleh tidak. Sedangkan jika blok statement lebih dari 1, maka statement2
tersebut harus diletakkan dalam blok.
Contoh 1 :
uses wincrt;
Var I : Integer ;
Begin
FOR I := 1 To 5 Do Writeln ('Pascal');
End.
Contoh 2 :
uses wincrt;
Var I : Integer ;
Begin
FOR I := 1 To 5 Do
Begin
Writeln (‘Pascal’);
End ;
End.
Contoh 3 :
uses wincrt;
Var I : Integer ;
Begin
FOR I := 1 To 5 Do
Begin
Writeln (I );
Writeln (‘Pascal’);
End ;
End.
b) Perulangan Negatif
Adalah
perulangan dengan penghitung (counter) dari besar ke kecil atau pertambahannya
negatif.
B.u : For Variabel_Kontrol
:=
Nilai_Awal DownTo Nilai_Akhir
Do
Statement ;
uses
wincrt;
Var
I : Integer ;
Begin
FOR
I := 1 To 5 Do Writeln (‘Pascal’);
End.
uses
wincrt;
Var
I : Integer ;
Begin
FOR
I := 5 DownTo 1 Do Writeln ('Pascal',I);
End.
c) Perulangan
Tersarang (Nested Loop)
Adalah
perulangan yang berada dalam perulangan lainnya. Perulangan yang lebih dalam
akan diproses terlebih dahulu sampai habis, kemudian perulangan yang luar baru
bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari awal, dan
seterusnya.
Uses wincrt;
Var I, J : Integer ;
Begin
For I := 1 To 3 Do
Begin
For J := 1 To 3 DO
Write (I:8, J :3) ;
Writeln ;
End ;
End.
Contoh
Program Untuk FOR
uses
wincrt;
var
I,
Panjang: Integer;
Kata,
Balik: string;
begin
Writeln('Balik
Kalimat');
Writeln('=============');
Write('Masukkan
kalimat : ');
Readln(Kata);
Panjang
:= Length(Kata);
Balik
:= '';
for
I := Panjang downto 1 do
Balik
:= Balik + Kata[I];
Writeln('Hasil
pembalikannya : ', Balik);
Readln;
end.
Analisa : program ini untuk membalik sebuah untai karakter yang
dimasukkan pemakai dan menampilkan hasilnya. Algoritma yang digunakan adalah
dengan memasukkan satu demi satu karakter ke dalam suatu peubah hasil dengan
urutan dari depan ke belakang, yang diambil dari peubah masukan dengan urutan
yang berlawanan. Peubah hasil adalah yang akan ditampilkan.
While … Do
Digunakan
untuk melakukan proses perulangan suatu statemen atau blok statemen terus
menerus selama kondisi ungkapan logika pada While masih bernilai logika benar.
B.u : While ungkapan_logika
Do
Statemen ;
Uses
wincrt;
Var
I : Integer ;
Begin
I :=
0 ;
While
I < 5 Do
Begin
Writeln
(I) ;
I :=
I + 1 ;
End
;
End.
Perulangan While-Do
Tersarang
Adalah
suatu perulangan While-Do yang ada didalam perulangan While_Do yang lain.
Uses
wincrt;
Var
I, J : Integer ;
Begin
I :=
1 ;
While
I < 3 Do
Begin
J :=
1 ;
While
J < 2 Do
Begin
Writeln
( I : 5 , J : 5 );
J :=
J + 1 ;
End
;
I := I + 1 ;
End ;
End.
Repeat … Until
Digunakan
untuk mengulang (Repeat) statemen satau blok statemen sampai (Until) kondisi
yang diseleksi di Until tidak terpenuhi.
B.u : Repeat
Statemen;
Until
Ungkapan_logika;
Uses
wincrt;
Var
I : Integer ;
Begin
I :=
0 ;
Repeat
I :=
I + 1 ;
Writeln
(I) ;
Until
I = 5;
End.
Repeat-Until Tersarang
Adalah suatu perulangan Repeat – Until
yang berada didalam perulangan Repeat-Until yang lain.
Uses
wincrt;
Var
I, J : Integer ;
Begin
I :=
0 ;
Repeat
I :=
I + 1 ;
J :=
0 ;
Repeat
J :=
J + 1 ;
Writeln
(I : 5, J : 5) ;
Until
J = 3 ;
Until
j = 3 ;
End.
Berikut contoh program untuk menampilkan
bilangan genap dari 2 sampai dengan 100. Salin program berikut :
Uses wincrt;
var
i: Integer;
begin
Writeln('Bilangan genap');
i := 1;
repeat
Inc(i);
if i mod 2 = 0 then
Write(i:4);
until (i=100);
Readln;
end.
Sama halnya dengan struktur kendali yang
telah dibahas sebelumnya, pada struktur perulangan dapat terjadi kasus dimana
di dalam struktur perulangan tertentu terdapat struktur perulangan yang lain
dan seterusnya. Program berikut akan menerapkan struktur perulangan dengan
menggunakan while.
Uses wincrt;
var
i, j: Integer;
M: Char;
Begin
Write('Masukkan sembarang karakter : ');
Readln(M);
i := 1;
while i <= 10 do
begin
j := 1;
while j <= i do
begin
Write(M);
Inc(j);
end;
Writeln;
Inc(i);
end;
Readln;
end.
uses wincrt;
var
Hasil: Real;
I, pilih, A, X, N: Integer;
Status: Boolean;
begin
Repeat
Clrscr;
Writeln('1. Pemangkatan 2. Faktorial 3. Keluar');
Write('Masukkan Pilihan Anda : ');
Readln(pilih);
case pilih of
1 : begin
Write('Masukkan Sembarang angka : ');
Readln(X);
Write('Akan dipangkatkan berapa : ');
Readln(A);
Hasil := 1;
for I := 1 to A do Hasil := X * Hasil;
Writeln('Jadi ', X,' dipangkatkan ', A,' : ',
Hasil:5);
Status := False;
end;
2 : begin
Write('Masukkan Sembarang angka : ');
Readln(N);
if N <= 1 then Hasil := 1
else
begin
Hasil := 1;
for I := 2 to N do Hasil
:= Hasil * I;
end;
Writeln('Jadi factorial ', N,' (', N,'!) : ',
Hasil:5);
Status := False;
end;
3 : Status := True;
else
begin
Writeln('Pilihan Anda salah !');
Status := True;
end;
end;
Readln;
until Status;
end.
Tidak ada komentar:
Posting Komentar