PENGULANGAN (LOOPING)
1: Program ulang_for;
2: var i: Integer;
3: Begin
4: For i:=1 to 5 do
5: writeln('ini yang ke ', i);
6: End.
Perhatikan pada baris 4 dan 5. Pada baris tersebut ada satu persyaratan
yaitu baris ke 5 akan dieksekusi bila nilai I antara 1 sampai 5, sehingga
jika program di Run hasilnya adalah sebagai berikut :
ini yang ke 1
ini yang ke 2
ini yang ke 3
ini yang ke 4
ini yang ke 5
Apabila pernyataan for seperti berikut ini : "For i:=10 downto 1 do".
Pernyataan itu akan menghitung mundur dari 10 sampai 1.
1: Program ULANG_while;
2: var i: Integer;
3: Begin
4: i:=1;
5: while i < 5 do
6: begin
7: writeln('ini yang ke ', i);
8: i:=i+1;
9: end;
10: End.
ini yang ke 1
ini yang ke 2
ini yang ke 3
ini yang ke 4
1
Dari listing program diatas apabila baris ke 8 diganti dengan "i:=i-1;" apa
yang terjadi? Coba jalankan. Hasilnya aadalah akan terjadi looping terus
menerus karena kondisinya memenuhi syarat terus (i selalu kurang dari
lima). Tekan control break untuk menghentikannya. Hal inilah yang
disebut invinitive loop.
1: Program Tutorial3_while;
2: var pilih: char;
3: Begin
4: i:=1;
5: repeat
6: writeln('ini yang ke ',i);
7: i:=i+1;
8: until i<0;
9: End.
Apa outputnya? Hasilnya hanya satu ( 1) yaitu, "ini yang ke 1". Hal ini
disebabkan karena pada baris ke 8 tidak memenuhi persyaratan i<0.
Memang tidak memenuhi persyaratan itu, tapi ini adalah keistemewaan
repeat. Ia akan mengeksekusi sekali dulu baru dicek persyaratan yang
ada dibawah. Gunakan jenis looping yang ada sesuai kebutuhan.
LATIHAN SOAL
1. Buat program untuk menampilkan angka 1,2,3,4,5,6,7,8,9,10
JAWAB :
program p;
uses crt;
var i:integer;
begin
clrscr;
for i:=1 to 10 do
write(i:5);
readln;
end.
Program p;
Uses crt;
Var i:integer;
Begin
Clrscr;
For i:=10 downto 1 do
Write(i:5);
Readln;
End.
2
3. Buat program untuk menampilkan deret angka berikut :
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
4.00
4.50
5.00
JAWAB :
Program p;
Uses crt;
Var x:real;
Begin
Clrscr;
X:=0;
While x<=5 do
Begin
Writeln(x:8:2);
x:=x+0.5;
end;
readln;
end.
LITER HARGA
--- ---
--- ---
--- ---
JAWAB :
Program p;
Uses crt;
Const harga = 1500;
Var
i:real;
Begin
Clrscr;
i:=1;
Writeln(‘DAFTAR HARGA MINYAK’);
WRITELN(‘-------------------‘);
Writeln(‘!liter ! harga !’);
While i<=10 do
Begin
Writeln(‘!’,i:5:0,’!’,i*harga:8:2,’!’);
i:=i+1;
End;
WRITELN(‘-------------------‘);
Readln;
End.
3
5. Buat program untuk menampilkan tulisan ‘SMA NEGERI 1 SURAKARTA’ 10
kali
JAWAB :
Program p;
Uses crt;
Var x:integer;
Begin
Clrscr;
X:=0;
Repeat
X:=x+1;
Writeln(‘SMA NEGERI 1 SURAKARTA’);
Until x>=10
Readln;
End.
Program p;
Uses crt;
Var
X,y,z:integer;
Begin
Clrscr;
For x:=1 to 10 do
Begin
For y:=1 to 10 do
Begin
Z:=x*y;
Writeln(x:4,’x’,y:4,’=’,z:4);
End;
End;
Readln;
End.
SOAL PRAKTEK 1
LEMBAR HARGA
1 100
2 200
3 300
4 Dst…………….s/d 15 lembar
4
5. Buat program sehingga menampilkan hasil sbb :
WAKTU JARAK
0 ….....
1 …….
2 …….
3 …….
4 Dst ……………..s/d waktu =20
RUMUS :
Jarak (s) = Vo*t+0.5*a*t*t
Vo=50
Percepatan (a)=5
Hitung s pada saat t !
SOAL PRAKTEK 2
1. Buat program untuk menentukan nilai akhir bidang studi TIK dengan
ketentuan sebagai berikut :
Nilai akhir mata pelajaran TIK ditentukan oleh rata-rata Nilai ulangan
harian + rata – rata nilai tugas + nilai MID + nilai semester
Ulangan harian dilaksanakan 3 kali,
Tugas diberikan 4 kali
MID dan Semester masing – masing 1 kali.
Hitung Nilai Akhirnya (dengan menggunakan looping)
OUTPUT :
LAPORAN RUGI LABA
PT. UNTUNG SELALU
5
Jumlah produksi Laba Rugi Keterangan
1 …. RUGI
2 …
3 …
Dst..
10
TABEL LOGARITMA
BILANGAN LOGARITMA
10 1.0000
20 1.3010
Dst…..
100
RUMUS :
LOG BIL=Ln(BILANGAN)/Ln(10)
6
7