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. Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas.
PENGULANGAN FOR
for variabel:= ekspesi1 to ekspresi2 do, skema ini digunakan jika ekspresi1<ekspresi2 atau
for variabel:= ekspresi1 downto ekspresi2, ekspresi ini digunakan jika ekspresi1>ekspresi2
1. Pengulangan For Positif
Uses Crt;
Var
i : Integer;
Begin
For i := 1 To 5 Do Writeln ('STMIK IKMI’);
END.
Uses Crt;
Var
i : Integer;
Begin
For i:= 1 To 10 Do
Begin
Writeln (STMIK IKMI'); { blok statement }
End;
End.
Hasil yang akan didapat akan sama dengan contoh yang pertama, tapi yang harus diingat disini untuk penggunaan blok pada perulangan For biasanya mempunyai banyak statement [lebih dari 1 statement].
2. Pengulangan For Negatif
Statement yang digunakan adalah For-DownTo-Do
contoh :
Uses Crt;
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
3. Pengulangan For Tersarang
Contoh :
Var
a,b : Integer;
Begin
For a := 1 To 3 Do
Begin
For b := 1 To 2 Do Write (a :4,b:2);
Writeln;
End;
End.
Hasil :
1 1 1 2
2 1 2 2
3 1 3 2
PENGULANGAN FOR...NEXT
Pengulangan proses menggunakan For…Next adalah bentuk
pengulangan terkendali dengan variabel kendali yang terus berjalan maju atau
mundur. Format penulisan pengulangan ini adalah sebagai berikut:
For variabel = nilai_awal To
nilai_akhir [Step langkah]
<Proses dalam
pengulangan>
Next variable
Contoh
1:
Untuk
menentukan barisan bilangan 1, 2, 3, …., 10 maka bilangan mempunyai nilai awal
= 1, nilai akhir=10 dan step antar bilangan = 1, sehingga bisa ditulis dengan
For bilangan=1 To 10 Step 1
<Proses untuk barisan
bilangan>
Next bilangan
Karena
step=1, maka secara default tidak perlu dituliskan sehingga perintahnya bias
ditulis dengan:
For bilangan=1 To 10
<Proses untuk barisan
bilangan>
Next bilangan
Contoh 2:
Menampilkan barisan bilangan 20, 19, 18, ...., 3, 2, 1 dapat
dilakukan dengan:
For
bilangan=20 To 1 Step -1
List1.AddItem
bilangan
Next
bilangan
Contoh 3:
Menampilkan barisan bilangan 1, 4, 7, 10, 13, 16, 19, 22,
.... 3N+1 dapat dilakukan dengan:
For
bilangan=0 To N Step -1
List1.AddItem
3*bilangan+1
Next
bilangan
Contoh 4:
Menampilkan barisan fibbonanci sampai N kali (N bilangan
bulat positif) dimana nilai saat ini adalah jumlah dari nilai dua suku sebelumnya.
Contoh barisan fibonanci: 1 1 2 3 5 8 13 21 34 ...
suku1=1
suku2=1
List1.AddItem
suku1
List1.AddItem
suku2
For i=3 To
N
bil=suku1+suku2
List1.AddItem
bil
suku1=suku2
suku2=bil
Next iMenampilkan barisan bilangan kelipatan 3 yang lebih kecil
dari 100 dan berhenti saat bilangan tersebut juga kelipatan 7. Untuk
menghentikan pengulangan For..Next sebelum mencapai nilai akhir dapat dilakukan
dengan perintah Exit For.
REPEAT_UNTIL
Sintak dari statement ini adalah :
Contoh :
Var
i : Integer;
Begin
i:=0;
Repeat
i:= i+1;
Writeln (i);
Until i=5;
End.
hasil :
1
2
3
4
5
REPEAT UNTIL TERSARANG
Repeat – Until tersarang adalah suatu perulangan Repeat -
Until yang satu berada didalam perulangan Repeat – Until yang lainnya.
Contoh :
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.
Contoh :
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.
Tidak ada komentar:
Posting Komentar