Jika dibandingkan dengan computer, manusia
mempunyai kekurangan. Salah satu kekurangannya adalah manusia tidak mampu melaksanakan
suatu perintah berulangkali tanpa mengenal lelah dan bosan. Sedangkan computer sebaliknya, computer mampu
melaksanakan suatu perintah berulangkali tanpa mengenal lelah dan bosan. Di
dalam algoritma
pengulangan
loop dapat dilakukan sejumlah kali, atau sampai Kondisi
berhenti pengulangan
tercapai.
Struktur pengulangan
secara umum terdiri dari 2 bagian:
- Body pengulangan, merupakan bagian algoritma yang diulang.
- Kondisi pengulangan, merupakan ekspresi Boolean yang wajib dipenuhi untuk melaksanakan pengulangan. Kondisi pengulangan ini dapat dinyatakan secara eksplisit ( pemrogram ) atau inplisit ( dikelola computer itu sendiri ).
Dalam struktur
pengulangan
biasanya disertai dengan bagian:
- Inisialisasi, maksudnya aksi yang dilakukan sebelum pengulangan pertama kali dilakukan.
- Terminasi, maksudnya aksi yang dilakukan setelah pengulangan selesai dilakukan.
Inisialisasi dan terminasi tidak selalu wajib ada, namun pada berbagai
kasus inisialisasi umumnya dibutuhkan.
Struktur umum pengulangan adalah sebagai berikut:
Struktur umum pengulangan adalah sebagai berikut:
( inisialisasi )
Awal pengulangan
Badab pengulangan
Akhir pengulangan
( terminasi )
( inisialisasi ) dan ( terminasi ) pada Struktur
umum pengulangan
diatas merupakan bagian yang tidak selalu harus dituliskan. Sedangkan, awal dan
akhir pengulangan
merupakan kata kunci yang bergantung pada kontruksi pengulangan
yang digunakan.
Di dalam algoritma
terdapat bermacam-macam konstrusi yang berbeda. Ada beberapa konstruksi pengulangan
yang dapat digunakan/ dipakai untuk masalah yang sama, tetapi ada juga
onstruksi pengulangan
yang hanya bisa dipakai untuk masalah tertentu. Untuk memilih konstruksi
pegulangan yang tepat seharusnya bergantung pada masalah yang akan diprogram.
Karena pemilihan konstruksi pengulangan
mempengaruhi kebenaran algoritma
untuk masalah tertentu. Notasi konstruksi pengulangan
dalam bentuk pernyataan ada 3 macam, yaitu:
a. Pernyataan FOR
Merupakan konstruksi pengulangan
tanpa kondisi
( unconditional looping
), artinya perintah-perintah yang ada di dalam badan pengulangan
diulangi sejumlah kali yang dispesifikasikan oleh pemrogram. Jadi, jumlah pengulangan sudah diketahui/ dapat
dtentukan sebelum konstruksi pengulangan
eksekusi.
Pernyataan dengan to adalah suatu pernyataan yang menjalankan program
dengan urut/ semestinya/ dari kecil sampai ke yang besar, misalnya: dari angka
1 sampai angka 5. Example:
Example 1.
uses wincrt;
var a : integer
:
begin
for a
:= 1 to 5 do
writeln(a);
end.
Output:
1
2
3
4
5
1
2
3
4
5
Example 2.
Program CetakBanyak_BelajarYangRajinYa
uses wincrt;
var x : integer
;
begin
for x
:= 1 to 5 do
writeln(’Belajar Yang Rajin Ya!’);
end.
Output:
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Belajar Yang Rajin Ya!
Ada pula pernyataan dengan downto, maksudnya pernyataan yang menjalankan
progran secara terbalik yaitu yang besar ke yang kecil, misalnya dari angka 5
ke angka 1. Example:
uses wincrt;
var y : integer
;
begin
for y
:= 5 downto 1 do
writeln(y);
end.
Output:
5
4
3
2
1
5
4
3
2
1
Selain kedua pernyataan diatas, ada juga for di dalam for.
Misalnya:
Misalnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
uses wincrt;
var x,y,z
: integer
;
begin
for
x := 1 to 6 do begin
writeln(’tidak’, x);
writeln;
for
y := 5 to 9 do begin
z :=
x * 500;
writeln(z + y, ’ ’, y);
end;
end;
readln;
end.
|
Output:
tidak 1
tidak 1
505 5
506 6
507 7
508 8
509 9
…….
…….
Tidak 6
506 6
507 7
508 8
509 9
…….
…….
Tidak 6
3005 5
3006 6
3007 7
3008 8
3009 9
3006 6
3007 7
3008 8
3009 9
b. Pernyataan While
Merupakan pengulangan
dengan kondisi
( conditional looping
), maksudnya perintah-perintah yang ada di dalam badan pengulangan
diulangi sampai kondisi
berhenti terpenuhi yaitu dengan menentukan kondisi
berhenti pengulangan.
Tetapi jumlah pengulangan
tidak diketahui sebelum eksekusi.
1
2
3
|
while kondisi do
pernyataan
endwhile
|
Jadi, pernyataan While akan berjalan
berulang terus apabila belum menemukan nilai false, tetapi kalau kondisi
bernilai true maka pengulangan
akan terus berjalan.
Sedangkan, apabila pengulangan berjalan terus tanpa henti berarti pengulangan tersebut pada logika algoritma algoritma yang salah.
Sedangkan, apabila pengulangan berjalan terus tanpa henti berarti pengulangan tersebut pada logika algoritma algoritma yang salah.
Example:
1
2
3
4
5
6
7
8
9
10
|
uses wincrt:
var c : integer
;
begin
c := 1;
while(c<5) do begin
writeln(’tidak’, c);
a := a
+ 1;
end;
end.
|
c. Pernyataan Repeat
Merupakan pengulangan
dengan kondisi
( conditional looping
), maksudnya perintah-perintah yang ada di dalam badan pengulangan
diulangi sampai kondisi
berhenti terpenuhi yaitu dengan menentukan kondisi
berhenti pengulangan.
Tetapi jumlah pengulangan
tidak diketahui sebelum eksekusi.
Struktur umum pernyataan Repeat:
Struktur umum pernyataan Repeat:
1
2
3
|
repeat
pernyataan
until kondisi
|
Jadi, bisa diartikan bahwa apabila program itu dijalankan dengan kondisi
bernilai false dan masih saja bernilai false, maka proses akan terus
berlangsung. Tetapi apabila kondisi sudah menemukan nilai true maka proses akan
berhenti. Karena nilai true yang dicari. Disamping itu, apabila pengulangan
tidak berhenti/ berjalan terus tanpa henti maka terdapat logika algoritma yang
salah.
Example:
1
2
3
4
5
6
7
8
|
uses wincrt;
var a : integer
;
begin
repeat
writeln(’tidak’, a);
until(a=5);
end.
|
Output:
tidak 0
tidak 1
tidak 2
tidak 3
tidak 4
tidak 1
tidak 2
tidak 3
tidak 4
# Dari pernyataan diatas, pada While dan Repeat
terlihat jelas ada perbedaan antara kedua pernyataan tersebut. Perbedaan
tersebut adalah:
a. Pernyataan While
a. Pernyataan While
1
2
3
|
while kondisi do
pernyataan
endwhile
|
b. Pernyataan Repeat
1
2
3
|
repeat
pernyataan
until kondisi
|