Perulangan adalah suatu proses terhadap hal yang sama yang diulang
beberapa kali sampai suatu kondisi atau batas tertentu terpenuhi. Untuk
memberikan gambaran mengenai perulangan dapat disimak pada kasus berikut ini.
Terdapat sebuah
permasalahan bagaimana mencetak bilangan bulat dari 1 sampai dengan 10. Hasil
output yang diinginkan adalah 1 2 3 4 5 6 7 8 9 10.
Langkah-langkah
untuk menyelesakan permasalahan diatas dapat dilakuakan sebagai berikut:
1.
Menentukan nilai awal yaitu 1.
2.
Cetakan nilai tersebut sebanyak
10 kali.
3.
Setiap langkah mencetak lakukan
penambahan 1 (increament 1).
Algoritma diatas mengandung langkah-langkah yang diulang.
Langkah-langkah ini disebut dengan perulangan. Istilah lain dari perulangan
adalah looping atau repetition. Didalam bahasa pemrograman
pascal perulangan dapat dituliskan dengan tiga pernyataan yang berbeda.
Pernyataan tersebut adalah:
-
for to do
-
while do
-
repeat until
Penjelasan
mengenai ketiga pernyataan diatas akan dibahas pada bagian-bagian tersendiri.
1.
Struktur For
Struktur perulangan for merupakan struktur untuk meuliskan
perulangkan selama dalam kondisi tertentu. Nilai perulangan sudah ditentukan
dengan sebuah nilai awal dan nilai akhir. Nilai awal merupakan nilai yang
diberikan untuk memulai suatu instruksi yang berada didalam blok tersebut.
Perulangan terhadap pernyataan atau instrukti tersebut akan berhenti jika
kondisi akhir yang telah disebut terpenuhi.
Terdapat dua buah jenis pernyataan dengan menggunakan
struktur for yaitu pernyataan naik
dan pernyataan turun. Perulangan naik dinyatakan dengan pernyataan For…To…do, sedangkan untuk perulangan
turun dapat dinyatakan dengan pernyataan For…downto
…do.
Pernyataan For…to…do
dapat dituliskan dengan sintaks For
counter=nilai_awal To nilai_akhir Do aksi/blok aksi dimana nilai_akhir
lebih besar dari nilai awal. Untuk pernyataan yang sebaliknya dapat digunakan
perintah For..Downto..Do dengan sintaks For
counter=nilai_awal downto nilai_akhir do aksi/blok aksi dimana nilai_awal lebih besar dari nilai akhir.
Algoritma berikut adalah tentang mencetak bilangan
bulat dari 1 sampai dengan 10 dengan menggunakan perulangan For…To…Do.
Algoritma PerulanganFor1;
Deklarasi
I:integer
Deskripsi
mulai
For I ß 1 to
10 do
Write(i)
End for
Selesai
Program Perulangan dengan for 1
Program perulananFor1;
Uses wincrt;
Var
I:integer;
Begin
Writeln(‘Program Perulangan dengan For’);
For i:=1 to 10 do
Writeln(i);
End.
Hasil output program
Program Perulangan dengan
For
1
2
3
4
5
6
7
8
9
10
Pada kasus diatas, perintah writeln(i) diulang
sebanyak sepuluh kali, mulai dari i=1 sampai i=10. Perulangan ini secara
otomatis akan menambahkan counter dengan
1. Sehinggga i akan mengalami increament
1 sampai dengan i =10.
Apabila kasus tersebut dibalik yaitu mengulang
penulisan i tetapi i dimulai dari 10 sampa ke 1 maka dapat dilakukan dengan
perintah for…downto…do.
Algoritma PerulanganFor2;
Deklarasi
I:integer
Deskripsi
Mulai
For I ß 10 downto 1 do
Write(i)
Selesai
Program Perulangan denga for 2
Program perulananFor;
Uses wincrt;
Var
I:integer;
Begin
Writeln(‘Program Perulangan dengan For’);
For i:=10 downto 1 do
Writeln(i);
End.
Hasil output program:
Program Perulangan dengan
For
10
9
8
7
6
5
4
3
2
1
Program diatas akan mencetak nilai i mulai dari 10
sampai dengan 1. I sebagai conter dari perulangan maka secara otomatis akan
mengalami pengurangan 1 (decreament) pada setiap langkah perulangan. Pernyataan
aksi yang ada pada program diatas hanya terdiri dari satu statemen. Apabila
aksi tersebut terdiri dari beberapa statemen, maka penulisannya didalam program
pascal harus ditambah dengan penyaaan begin
sebelum aksi dan pernyataan end;
setelah pernyataan aksi.
Contoh yang lain dapat dilihat pada kasus menghitung
nilai rata-rata dari beberapa data yang dimasukan. Perulangan akan dilakukan
untuk membaca data dan menjumlahkannya dalam variabel tertentu. Hasil
penjumlahan dari data yang dimasukan tersebut akan dihitung rata-ratanya dengan
pembagian.
Algoritma rerata1;
Deklarasi
I,n,jumlah,x:integer
Rerata:real;
Deskripsi
Mulai
Read (n)
Jumlahß0
For I ß 1 to n do
Read(x)
JumlahßJumlah+x
End for
Rerata ßjumlah/n
Write(rerata)
Selesai
Program Menghitung rata-rata 1
Program rerata1;
Uses wincrt;
Var
i,n,x,jumlah:integer;
Rerata:real;
Begin
Writeln(‘Program Mengitung
Rata-rata’);
Write(‘Masukan Jumlah
Data=’);
Readln(n);
Jumlah:=0;
For i:=1 to n do
Begin
Write(‘Masukan Data ke-‘,I,’=’);
Readln(x);
Jumlah:=jumlah+x;
End;
Rerata:=jumlah/n;
Writeln(‘Rata-rata=’,rerata:5:2);
End.
Hasil Output program
Program Mengitung Rata-rata
Masukan Jumlah Data=5
Masukan Data ke-1=6
Masukan Data ke-2=5
Masukan Data ke-3=8
Masukan Data ke-4=7
Masukan Data ke-5=7
Rata-rata= 6.60
Pada perulangan diatas, aksi tidak hanya terdiri satu
satu pernyataan tetapi lebih dari satu pernyataan. Setelah pernyataan for maka
perlu ditambahkan pernyataan begin dan
pernyataan end setelah akhir blok
aksi ditambahkan pernyataan end.
2. While do
Struktur while do merupakan perintah untuk melakukan
perulangan selama sebuah kondisi terpenuhi atau bernilai benar. Jika kondisi
yang disyaratkan sudah tidak terpenuhi maka perulangan akan berhenti. Proses
pengecekan terhadap kondisi akan dilakukan terlbi dahulu sebelum pernyataan
yang akan diulang. Oleh karena itu perlu adanya sebuah proses yang dapat
mengontrol kondisi agar berhenti.
Perulangan dengan while do lebih fleksibel karena
program tidak ditentukan berapa kali perulangan terjadi. Dari kasus mencetak
bilangan dari 1 sampai 10 pada bagian sebelumnya dapat juga diselesaikan dengan
struktur while do.
Algoritma PerulanganWhile;
Deklarasi
i:integer
Deskripsi
Mulai
I ß1
While (I <= 10 ) do
Write(i)
I ß i+1
Endwhile
Selesai
Program Perulangan dengan while
Program perulanganwhile;
Uses wincrt;
Var
I:integer;
Begin
writeln('Program Perulangan
dengan While');
I:=1;
While i<= 10 do
Begin
Writeln(i);
I:=i+1;
End;
End.
Hasil Output program
Program Perulangan dengan
While
1
2
3
4
5
6
7
8
9
10
Pada program tersebut, aksi setelah while do dinyatakan dalam beberapa
pernyataan sehingga dituliskan dalam pernyataan begin dan end. Pada
program diatas perulangan sudah diketahui yaitu sebanyak sepuluh kali. Dalam
kasus yang lain struktur while do dapat digunakan untuk perulangan yang belum
diketahui jumlah perulangannya. Sebagai contoh program untuk menghitung data
yang dimasukan dan rata-ratanya sampai data yang dimasukan berupa angka nol
(0).
Algoritma rerata2;
Deklarasi
i,n,jumlah,x:integer
Rerata:real;
Deskripsi
Mulai
Read (x)
n ß 0
Jumlahß0
While (x <>0) do
Nß n+1
JumlahßJumlah+x
Read(x)
Endwhile
Rerata ßjumlah/n
Write(n)
Write(jumlah)
Write(rerata)
Selesai
Program Menghitung rata-rata dengan while
Program rerata2.
uses wincrt;
var
i,n,x,jumlah:integer;
rerata:real;
begin
writeln('Masukan nilai-nila
(0 untuk berhenti)=');
readln(x);
n:=0;
while x<>0 do
begin
n:=n+1;
jumlah:=jumlah+x;
read(x);
end;
rerata:=jumlah/n;
writeln(‘Jumlah=’,jumlah);
writeln(‘Rerata=’,rerata);
end.
Hasil output program:
Masukan nilai-nila (0 untuk
berhenti)=
6
7
9
7
8
9
0
Jumlah=46
Rerata=
7.66666666666667E+0000
Pada program diatas data yang diinputkan berupa angka nol (0) tidak
akan dihitung karena sebagai stoping
point (tanda untuk berhenti perulangan).
3.
Repeat Until
Struktur Repeat..until merupakan sebuah perintah untuk
melakukan perualangan terhadap suatu pernyataan atau blok pernyataan sampai
suatu kondisi terpenuhi. Jika kondisi sudah terpenuhi maka pernyataan tidak
akan diulang lagi. Pemeriksaan kondisi ada pada bagian setelah pernyataan yang
diulang. Struktur ini juga perlu adanya suatu proses yang dapat mengontrol
program agar program dapat berhenti.
Perulangan dengan repeat until juga lebih fleksibel
bila dibandingkan dengan struktur for to do. Perulangan ini juga tidak ditentukan
berapa kali suatu pernyataan harus dilakukan. Dari kasus mencetak bilangan dari
1 sampai 10 dapat dilihat pada algoritma dan program dibawah ini.
Algoritma PerulanganRepeat;
Deklarasi
i:integer
Deskripsi
Mulai
i ß1
Repeat
Write(i)
I ß i+1
Until (I > 10 )
selesai
Program Perulangan dengan repeat
program perulanganRepeat;
uses wincrt;
var
i:integer;
begin
writeln('Program Perulangan
dengan Repeat');
i:=1;
repeat
writeln(i);
i:=i+1;
until i>10
end.
Hasil output program
Program Perulangan dengan
Repeat
1
2
3
4
5
6
7
8
9
10
Pada program diatas, aksi dengan pernyataan-pernyataan
yang ada setelah pernyataan while akan selalu diulang sampai pada kondisi yang
dinyatakan dengan klausa until terpenuhi. Pernyataan-pernyatan yang ada pada
blok aksi tidak digunakan begin dan end walupun pada blok tersebut terdapat
beberapa pernyataan. Pada kasus yang lain yaitu pada algoritma menghitung
rata-rata dari sejumlah bilangan yang dimasukan sampai bilangan yang dimasukan
berupa angka nol.
Algoritma rerata2;
Deklarasi
i,n,jumlah,x:integer
Rerata:real;
Deskripsi
Mulai
n ß 0
Jumlahß0
Repeat
Nß n+1
Read(x)
JumlahßJumlah+x
Until x=0
Rerata ßjumlah/(n-1)
Write(n)
Write(jumlah)
Write(rerata)
Selesai
Program 23. Menghitung rata-rata dengan repeat
Program rerata3;
Uses wincrt;
var
i,n,jumlah,x:integer;
rerata:real;
begin
writeln('Masukan data (0
untuk berhenti)=');
n:=0;
jumlah:=0;
repeat
n:=n+1;
readln(x);
jumlah:=jumlah+x;
until x=0;
rerata:=jumlah/(n-1);
writeln('Jumlah=',jumlah);
writeln('Rerata=',rerata);
end.
Hasil output program:
Masukan data (0 untuk
berhenti)=
5
9
8
7
8
6
0
Jumlah=43
Rerata=
7.16666666666667E+0000
Sekian dan Terima Kasih...............

Tidak ada komentar:
Posting Komentar