Pengulangan digunakan untuk menjalankan satu atau
beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memungkinkan kita untuk menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja.
A. Pernyataan for
Pernyataan pengulangan yang paling sering digunakan adalah for. Pernyataan ini digunakan jika kita telah mengetahui berapa kali kita akan mengulang satu atau beberapa pernyataan. Bentuk umum pernyataan for adalah sebagai berikut:
for pencacah := nilai_awal to nilai_akhir do
|
Begin
|
(pernyataan-pernyataan yang akan diulang)
|
end;
|
Sekedar tambahan, blok berisi pernyataan-pernyataan
yang harus diulang sering disebut juga kalang
(loop).
1. Pernyataan For Positif
Contoh :
Perulangan positif untuk satu statement :
uses wincrt;
|
var
|
i : integer;
|
begin
|
for i := 1 to 5 do
|
writeln ('Belajar Pemrograman’);
|
readln;
|
end.
|
Maka bila program diatas dicompile
Hasilnya :
Belajar pemrograman
Belajar pemrograman
Belajar pemrograman Belajar pemrograman Belajar pemrograman
Penjelasan : Berati statemen Belajar pemrograman
akan diulang sebanyak 5 kali yaitu dengan
menghitung nilai i dari i ke 1 sampai nilai i
terakhir yaitu i ke 5.
2. Pernyataan For Negatif
Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar ke kecil.
Statement yang digunakan adalah For-DownTo-Do
contoh:
uses wincrt;
|
var
|
i : integer;
|
begin
|
for i := 10 downto 1 do
|
write (i:3);
|
end.
|
Hasil :
10 9 8 7 6 5 4 3 2 1
B. Pernyataan for bersarang
Kita juga bisa menuliskan pernyataan for di dalam penyataan for. Kontruksi semacam ini sering disebut dengan penyataan for bersarang. Perhatikan contoh berikut:
for x := 1 to 3 do
for y :=1 to 2 do
writeln (x, ‘ ‘ y);
Kalang for yang luar (dengan pencacah variabel x)
akan menjalankan kalang yang dalam (dengan pencacah
y) sebanyak 3 kali. Dan pada setiap pengulangan di
layar akan dituliskan nilai x dan y. Berikut ini adalah keluaran dari program di atas:
1 1
1 2
2 1
2 2
3 1
3 2
Pada saat x bernilai 1, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 1 1 dan 1 2. Demikian juga pada saat x bernilai 2, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 2 1 dan 2 2. Hal yang sama terjadi pada saat x bernilai 3, y diulang sebanyak 2 kali. Sehingga pada layar tertulis 3 1 dan 3 2.
C. Pernyataan while-do
Pernyataan pengulangan ini biasanya digunakan bila kita belum tahu pasti berapa banyak kita akan
mengulang
|
pernyataan-pernyataan.
|
Berakhirnya
|
pengulangan
|
ini ditentukan oleh suatu
|
kondisi. Bila
|
kondisi sudah tidak terpenuhi maka pengulangan akan
berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan. Bentuk umum pernyataan pengulangan while adalah sebagai berikut:
while kondisi do
|
begin
|
(pernyataan-pernyataan yang akan diulang)
|
end;
|
kondisi sendiri merupakan suatu ekspresi bertipe
Boolean, artinya hanya dapat bernilai benar (true)
atau salah (false). Contoh:
while (x > 0) do
|
begin
|
x := x – 1;
|
y ;= y – 1;
|
end;
|
Program ini akan mengulang dua pernyataan :
(x := x - 1) dan (y := y - 1)
selama nilai x masih positif.
D. Perulangan While – Do tersarang
Perulangan While – Do tersarang (nested While - Do) merupakan perulangan While – Do yang satu di dalam perulangan While – Do yang lainnya.
Contoh :
uses wincrt;
|
var
|
a, b : integer;
|
begin
|
clrscr;
|
a:=1;
|
b:=1;
|
while a < 4 do {loop selama a masih lebih kecil dari
4}
|
begin
|
a := a + 1;
|
while b < 3 do {loop selama b masih lebih kecil
dari 3}
|
begin
|
write (a:3,b:2);
|
b:=b+1;
|
end;
|
end;
|
readln;
|
end.
|
E. Pernyataan repeat..until
Pernyataan pengulangan ini hampir sama dengan pernyataan pengulangan while, dan biasanya digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis.
Perbedaan pernyataan repeat..until dan while terletak pada letak pengecekan kondisi. Jika pada pernyataan while, kondisi dicek pada awal kalang, sedangkan pada pernyataan repeat..until, kondisi dicek pada akhir kalang.
Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi masih terpenuhi, pernyataan repeat..until mengulang pernyataan selam kondisi belum terpenuhi. Bentuk umum penyataan repeat..until adalah sebagai berikut:
repeat
(pernyataan-pernyataan yang akan diulang)
until kondisi
Contoh :
repeat
|
x := x – 1;
|
y := y – 1;
|
until (x <= 0);
|
Program ini akan mengulang dua pernyataan (x := x -
1) dan (y := y - 1) sampai nilai x lebih kecil atau sama dengan 0.
F. Repeat – Until tersarang
Repeat – Until tersarang adalah suatu perulangan Repeat – Until yang satu berada didalam perulangan Repeat – Until yang lainnya.
Contoh :
uses wincrt;
|
var
|
a,b,c : real;
|
begin
|
writeln('========================================');
|
writeln(' sisi a sisi b sisi c ');
|
writeln('========================================');
|
a := 1;
|
repeat { perulangan luar }
|
b := 0;
|
repeat { perulangan dalam }
|
c := sqrt (a * a + b * b);
|
writeln (a:6:2, b:9:2, c:9:2);
|
b := b + 5;
|
until b > 25; { berhenti jika b lebih besar dari 5 untuk perulangan dalam }
|
a := a + 1;
|
until a > 3; { berhenti jika a lebih besar dari 3 untuk perulangan luar }
|
writeln('========================================');
|
end.
|
G. Rangkuman
1. Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan kata lain, pengulangan memungkinkan kita untuk menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja.
2. Ada beberapa pernyataan perulangan :
a. Pernyataan for
b. Pernyataan for bersarang c. Pernyataan while do
d. Pernyataan while do bersarang e. Pernyataan repeat until
f. Pernyataan repeat until bersarang
H. Tugas Praktikum (dikumpulkan akhir sesi)
Buatlah algoritma dan flowchart untuk permasalahan dibawah ini.
1. Buat deret hitung 3, 7, ......, 15
program Deret_Hitung;
|
uses wincrt;
|
var
|
i, n, deret : integer;
|
begin
|
write (‘Batas pengulangan mencetak deret = ‘); readln (n);
|
deret := 3;
|
for i := 1 to n do
|
begin
|
write (deret);
|
write (‘ ‘);
|
deret := deret + 4;
|
end;
|
end.
|
2. Buat deret kuadrat 1, 4, 9, ......
program Deret_Kuadrat;
|
uses wincrt;
|
var
|
i, n, deret : integer;
|
begin
|
write (‘Batas pengulangan mencetak deret = ‘); readln (n);
|
deret := 0;
|
for i := 1 to n do
|
begin
|
deret := deret + 1;
|
write (sqr(deret));
|
write (‘ ‘);
|
end;
|
end.
|
I. Tugas Rumah (dikumpulkan pada pertemuan berikutnya)
Buatlah algoritma, flowchart, dan program untuk permasalahan deret ukur 3, 9, 27, ......
Komentar
Posting Komentar