Senin, 19 Desember 2011

Pernyataan Perulangan

Pengulangan (loop) merupakan bentuk yang sering ditemui di dalam suatu program aplikasi. Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan dan percabangan. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang kali sesuai sejumlah yang ditentukan pemakai. Pengulangan dapat dilakukan sejumlah kali, atau sampai kondisi berhenti dan pengulangan tercapai. Di dalam bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan menggunakan pernyataan For, While-Do,  dan Repeat…Until.
  
Pernyataan FOR

Pernyataan for adalah konstruksi pengulangan tanpa kondisi, artinya instruksi-instruksi di dalam badan pengulangan diulangi sejumlah kali yang di spesifikasikan oleh pemrogram. Dalam hal ini, jumlah pengulangan sudah diketahui sebelum konstruksi pengulangan eksekusi. Perulangan dengan pernyataan For digunakan untuk mengulang pernyataan atau satu blok pernyataan berulang kali sejumlah yang ditentukan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah beberapa kali pengulangan dilakukan, diperlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti. Perulangan dengan pernyataan For dapat berbentuk perulangan positif, perulangan negatif dan perulangan tersarang.

Perulangan Positif
Perulangan positif adalah perulangan dengan penghitung dari kecil ke besar atau pertambahan positif. Perulangan positif dapat dibentuk dengan menggunakan pernyataan For-To-Do, dengan bentuk umum:
For variabel-kontrol:=nilai awal To nilai akhir Do
pernyataan

Contoh perulangan positif :
Contoh 1. Mencetak “saya sedang belajar for” sebanyak 5 kali.
Program cetak;
Uses wincrt;
Var
   I:Integer;
Begin
   For I:= 1 to 5 Do Writeln(‘sedang belajar for’);
End.

Contoh 2. Menjumlahkan deret 1 sampai N (1+2+3…+N). N adalah bilangan bulat positif.
Program penjumlahan_deret;
Uses wincrt;
Var
N :integer;
I :integer;
Jumlah:integer;
Begin
Write (‘berapa N ?’);readln(N);
Jumlah:=0;
For I := 1 to N do
Begin
Jumlah := jumlah + i
End;
Writeln (‘jumlah deret = ‘ , jumlah);
End.


Perulangan Negatif

Perulangan negatif adalah perulangan dengan penghitung dari besar ke kecil atau pertambahan negatif. Perulangan negatif dapat dibentuk dengan menggunakan pernyataan For-DownTo-Do, dengan bentuk umum:
For variabel-kontrol := nilai awal DownTo nilai akhir Do
penyataan

Contoh perulangan negatif :
Contoh 3. Mencetak menurun angka 5 sampai dengan 1
Program cetak_menurun;
Uses wincrt;
Var
   I:integer;
Begin
   For I:=5 downto 1 do
   Begin
        Writeln(I);
   End;
End.

Perulangan Bersarang

Perulangan bersarang adalah perulangan yang berbeda di dalam perulangan yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan akan bertambah, mengerjakan perulangan yang lebh dalam lagi mulai dari nilai awalnya dan seterusnya.

Contoh perulangan bersarang:
Contoh 4. Mencetak matrix:
1 1     1 2        1 3
2 1     2 2        2 3
3 1     3 2        3 3
4 1     4 2        4 3
5 1     5 2        5 3
 
Program cetak2;
Uses wincrt;
Var
   I,J:Integer;
Begin
   For I:=1 to 5 Do
   Begin
        For j:=1 to 3 Do
        Begin
             Write(I:8,J:3);
        End;
        Writeln;
   End;
End.


Pernyataan WHILE

Pada struktur WHILE, aksi (atau runtunan aksi) akan dilaksanakan berulang kali selama kondisi bernilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai. Yang harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika pemrograman tersebut salah. Pengulangan berhenti apabila kondisi bernilai false. Agar kondisi suatu saat bernilai false, maka di dalam badan pengulangan harus ada instruksi yang mengubah nilai variabel kondisi.

while kondisi do
aksi
Contoh 1. 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. 

Contoh 2. Menghitung rata-rata dengan while dengan syarat nilai tidak boleh nol.
Program rerata2; 
uses wincrt; 
var i,x,jumlah:integer;
rerata:real; 
begin 
writeln('Masukan nilai-nilai (0 untuk berhenti)=');
readln(x);
i:=0; 
while x<>0 do
begin
i:=i+1;
jumlah:=jumlah+x;
read(x);
end;
rerata:=jumlah/i;
writeln(‘Jumlah=’,jumlah);
writeln(‘Rerata=’,rerata);
end.


Pernyataan REPEAT

REPEAT...UNTIL berfungsi hampir sama dengan WHILE...DO. Pada REPEAT...UNTIL, looping akan berhenti justru ketika kondisi bernilai TRUE. Selain itu kondisi akan diuji pada akhir perulangan sehingga blok di dalam perulangan akan dijalankan minimal satu kali walaupun kondisi yang ada masih FALSE. Repeat – Until digunakan untuk mengulang statement-statemen atau blok statement sampai (Until) kondisi yang diseleksi di Until tidak terpenuhi.
Perbedaannya, pengulangan Repeat-Until dengan While-Do terletak pada letak pengecekan kondisi. Jika pada pernyataan While-Do kondisi dicek pada awal blok pernyataan yang harus diulang, sedangkan pada pernyataan Repeat Until, kondisi dicek pada akhir blok pernyataan yang harus diulang. Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi masih terpenuhi, pernyataan repeat..until mengulang pernyataan selama kondisi belum terpenuhi. Bentuk umum penyataan repeat..until adalah sebagai berikut.
Repeat
(pernyataan-pernyataan yang akan diulang)
until kondisi

Contoh 1. program mencetak 5 bilangan bulat pertama menggunakan repeat-until
Program cetak;
Uses wincrt;
Var
i : Integer;
Begin
i:=0;
Repeat
i:= i+1;
Writeln (i);
Until i=5;
End.


Contoh 2. Program mencetak ulangan ke-1 sampai ke-10
Uses wincrt;
Var
n : integer;
Begin
n:= 1;
Repeat
Writeln ('Ulangan ke :',n);
n:= n + 1;
Until n >= 10;
Readln;
End.


Contoh 3. Program menghitung berat badan ideal
program berat_badan;
uses wincrt;
var
t,m:real;
j:char;
begin
repeat
begin
write('Masukkan tinggi badan Anda=');readln(t);
m:=((t-100)-(0.1*(t-100)));
writeln('Berat ideal Anda= ',m:2:0);
write('Anda Ingin menghitung lagi?=');readln(j);
end;
until (j<>'y');
end.

Pernyataan Repeat – Until tersarang

Repeat – Until tersarang adalah suatu perulangan Repeat – Until yang satu berada didalam perulangan Repeat – Until yang lainnya.
Contoh 4: Program mencetak baris dan kolom menggunakan repeat until bersarang
Program Perulangan_Repeat_2;
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.

Contoh 5: program menghitung gaji bersih pegawai. Input : nama, alamat, golongan (A dan B), dan status (tidak menikah, janda, duda, sudah menikah). Jika termasuk golongan A maka gaji pokok Rp.500.000. Jika golongan B maka gaji pokok Rp.1000.000. jika status sudah menikah maka mendapatkan tunjangan sebesar 10 % dari gaji pokok, selain itu tidak mendapatkan tunjangan. Gaji bersih pegawai adalah gaji pokok + tunjangan. Output : nama, alamat, golongan, status, tunjangan, total gaji.

Program gaji;
uses crt;
var
gapok: longint;
gaji,tunj: real;
gol: char;
nama, alamat, status: string;
begin
clrscr;
write('Masukkan nama : '); readln(nama);
write('Masukkan alamat : '); readln(alamat);
repeat
write('Masukkan golongan : '); readln(gol);
gol := UpCase(gol);
until (gol = 'A') or (gol = 'B');
repeat
write('Masukkan status : '); readln(status);
until (status='tidak menikah') or (status='janda') or
(status = 'duda') or (status='sudah menikah');
if gol = 'A' then
gapok := 500000
else
gapok := 1000000;
if status = 'sudah menikah' then
tunj := 0.1 * gapok
else
tunj := 0;
gaji := gapok + tunj;
clrscr;
writeln('Nama anda adalah ',nama,' dan beralamat di ',alamat);
write('Anda bekerja di Golongan ',gol);
writeln(' sehingga gaji pokok anda sebesar Rp', gapok);
writeln('Status anda adalah ', status);
writeln('Sehingga anda mendapat tunjangan sebesar Rp', tunj:0:0);
writeln('Berdasarkan hal tersebut, total gaji anda sebesar Rp', gaji:0:0);
readln;
end. 

1 comments:

Acha Linux mengatakan...

terimakasi kaka

acha-geon.blogspot.com

Posting Komentar

Diberdayakan oleh Blogger.

You can replace this text by going to "Layout" and then "Page Elements" section. Edit " About "