Struktur Kendali ( While-do, Repeat Until, For )
While berarti selagi/ selama dan do berarti lakukan. Jadi, while-do artinya struktur pengulangandimana selama kondisi ( persyaratan ) pengulangan masih benar, maka aksi dikerjakan.
Contohnya saja pada repeat-until tadi selama kita memasukkan NIM tidak benar/ belumditemukan akhir tabel belum terlampaui, maka dapat dicari NIM pada entry tabel yang sama, jikasudah ditemukan mengambil nilai tersebut, selanjutnya meninjau entry berikutnya didalam table.
Example:
Program Pencarian{Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM,nama dan nilai}
Algoritma
Tinjau entry pertama tabelWhile NIM yang dicari belum ditemukan dan akhir tabel belum terlampaui doIf NIM pada entry tabel sama dengan NIM yang dicari then ambil nama, nilai dari NIM tersebut
Else
Tinjau entry berikutnya didalam table
Tinjau entry pertama tabelWhile NIM yang dicari belum ditemukan dan akhir tabel belum terlampaui doIf NIM pada entry tabel sama dengan NIM yang dicari then ambil nama, nilai dari NIM tersebut
Else
Tinjau entry berikutnya didalam table
Pada while-do kondisi pengulangan di evakuasi di awal pengulangan, berbeda dengan repeat-until kondisi pengulangan di evakuasi di akhir.
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
(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
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
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
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.
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.
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
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.
Tidak ada komentar