Percabangan dan Perulangan
PEMPROGRAMAN TERSTRUKTUR 1
PERCABANGAN
Struktur IF … THEN …
Struktur CASE … OF …
IF … THEN …
IF akan diikuti oleh ekspresi dan selalu
berpasangan dengan THEN kemudian diikuti
dengan statemen.
Bila statemen yang akan dilakukan hanya satu,
maka kita tidak perlu menuliskan blok
begin…end.
Bila statemen yang akan dilakukan lebih dari
satu, maka kita harus menuliskan statemen
pada blok begin…end.
IF … THEN …
If (ekspresi) then
statemen;
If (ekspresi) then
begin
statemen;
statemen;
……………...
end.
IF … THEN …
Satu kasus.
if
(kondisi) then aksi;
Bila
ekspresi
yang
diperiksa bernilai benar
maka program akan
mengeksekusi
statemen-statemen, jika
tidak maka program
tidak
akan
mengeksekusinya.
CONTOH
Program if_satu_kasus;
Var x : integer;
Begin
write(‘masukkan angka’); readln(x);
if (x > 5) then
writeln (x, ‘ lebih besar dari 5’);
Readln;
End;
IF … THEN … ELSE …
Dua Kasus
if
(kondisi) then aksi1 else
aksi2 ;
CONTOH
Program ganjil_atau_genap;
Var bilangan : integer;
Begin
write(‘masukkan angka’); readln(bilangan);
if (bilangan mod 2 = 0) then
writeln (bilangan, ‘ adalah genap’);
else
writeln (bilangan, ‘ adalah ganjil’);
Readln;
End;
IF … THEN … ELSE …
Tiga Kasus atau Lebih
If (kondisi 1) then aksi1
Else If (kondisi 2) then aksi2
Else If (kondisi 3) then aksi3
Else If (kondisi 4) then aksi4
Else aksi5;
Jika anda menggunakan else, perlu diingat bahwa
satu baris / statemen sebelum else tidak
diperkenankan mengandung tanda “ ; “
CONTOH
Uses Crt;
var Nilai : Byte;
begin
clrscr;
write('Baca nilai :');readln(Nilai);
if nilai>=80 then write('Nilai = A') else
if nilai>=65 then write('Nilai = B') else
if nilai>=41 then write('Nilai = C') else
if nilai>=26 then write('Nilai = D') else
write('Nilai = E');
readln;
end.
LATIHAN
Buatlah program yang meminta input satu
huruf (char), kemudian menghasilkan output
yang menjelaskan input tersebut merupakan
huruf vokal atau huruf konsonan.
CASE … OF …
Digunakan jika harus memilih dari banyak
pilihan
Case (variabel) of
kondisi1 : aksi1 ;
kondisi2 : aksi2 ;
……………. ;
kondisi-n : aksi-n ;
CASE … OF …
Case (variabel) of
Kondisi1 :
begin
statemen1;
statemen2;
……………….
end;
Kondisi2 :
begin
statemen1;
statemen2;
……………….
end;
Else
begin
statemen1;
statemen2;
……………….
end;
End.
Ekspresi yang digunakan dalam statemen
Case adalah yang mempunyai tipe ordinal
yaitu dengan batas antara (-32768 s/d 32767).
Sehingga tipe lain seperti integer yang bertipe
longint, tipe string atau real tidak boleh
digunakan.
CONTOH
Var Nilai : integer;
begin
write('Baca nilai ='); readln(Nilai);
Case Nilai of
0..25 : writeln('Nilainya = E');
26..39 : writeln('Nilainya = D');
40..64 : writeln('Nilainya = C');
65..79 : writeln('Nilainya = B');
80..100: writeln('Nilainya = A');
else
writeln('Tidak ada nilai yang dimaksud');
end;
readln;
end.
CONTOH
Program contoh_case_of;
Uses crt;
Var nomorBulan: integer;
Begin
clrscr;
write(‘masukkan nomor bulan, antara 1-12’);
readln(nomorBulan);
Case (nomorBulan) of
1 : writeln (‘ bulan pertama adalah Januari’);
2 : writeln (‘ bulan kedua adalah Februari’);
……………………………………………………………..
12 : writeln (‘ bulan kedua belas adalah Desember’);
else writeln (‘ nomor yang anda masukkan salah’);
end;
Readln;
End.
LATIHAN
Buatlah sebuah program yang akan meneriman
masukan bilangan bulat dari user. Jika bilangan
yang dimasukkan 0, maka program akan
menampilkan
string
‘Minggu’;
jika
user
memasukkan bilangan 1, maka program
akan
menampilkan
string
‘Senin’;
dan
seterusnya sampai Sabtu; jika user memasukkan
bilangan lebih dari 6, maka akan keluar
string ‘Hari tidak valid’.
PERULANGAN
- Struktur FOR….DO….
- Struktur WHILE…DO……
- Struktur REPEAT…UNTIL….
FOR … DO …
Digunakan untuk melakukan perulangan yang
banyaknya sudah diketahui secara pasti.
Format :
For count := awal to akhir do aksi/ blok aksi ;
Contoh :
For
i:=1 to 5 do write(‘saya’);
Variabel i, dideklarasikan di var.
CONTOH
Program Latihan_perulangan:
uses Crt;
var N,i :integer;
begin
clrscr;
write('Baca nilai : ');readln(N);
for i:= 1 to N do
write(i:3);
readln;
end.
CONTOH
Program latihan2;
Var i, nilai, jumlah :integer;
Begin
write (‘masukkan nilai’); readln(nilai);
jumlah := 0;
for i:= 1 to nilai do
begin
jumlah := jumlah + i;
end;
writeln (‘jumlah dari ‘,nilai,’ bilangan positif pertama adalah’,
jumlah);
Readln;
End.
LATIHAN
Buat program untuk menghitung nilai dari
faktorial.
5 ! = 1 x 2 x 3 x 4 x 5.
WHILE … DO …
Terdapat suatu kondisi yang harus dilakukan
terlebih dahulu sebelum melakukan perulangan.
Format
While ( kondisi ) do
Begin
Statemen1;
Statemen2;
……………….
End;
CONTOH
Program Latihan_while;
uses crt;
var i:integer;
begin
clrscr;
write('Masukkan angka :');readln(i);
while i<5 do
begin
writeln(‘D3 Komsi UGM');
i:=i+2;
end;
Readln;
End.
LATIHAN
Buat program yang menghasilkan satu nilai x
yang memenuhi persamaan x2 + 2x – 30 = 0.
REPEAT ... UNTIL ...
Hampir sama dengan while..do..
Perbedaannya adalah, struktur ini akan terus
melakukan perulangan apabila kondisi masih
bernilai false dan berhenti ketika kondisi sudah
bernilai true.
Pengecekan kondisi dilakukan setelah
mengeksekusi statemen.
REPEAT ... UNTIL ...
Format
repeat
statement1;
statement2;
………………….
until ( kondisi );
CONTOH
Program latihan_repeat_until;
Var masukan : integer;
Begin
repeat
write(‘pencet nomor satu’); readln(masukan);
if (masukan<>1) then
writeln (‘wee ngeyel…’);
until (masukan = 1);
writeln (‘Pinteeerrr’);
Readln;
End.
LATIHAN
Buatlah program penjumlahan. Akan tetapi
pengguna dapat menggunakannya terus
menerus tanpa harus memberhentikan
program.
SILAHKAN DICOBA
Buat program yang menampilkan tulisan
JUM’AT