Anda di halaman 1dari 15

Algoritma dan Pemrograman II A

STRUKTUR KONTROL

Struktur WHILE-DO

Mempunyai struktur sebagai berikut :

statement While While ungkapan logika Do statement

Bentuk Umum : WHILE condition Do statement

Bentuk Proses (flow chart) :

False C

true

statement

Statement WHILE-DO digunakan untuk melakukan proses perulangan suatu


statement atau blok statement terus-menerus selama kondisi ungkapan-
logika pada WHILE masih bernilai logika benar.

Contoh : program untuk mencetak bilangan bulat positif yang lebih kecil dari
20.

digit := 1;
WHILE digit <= 20 DO
Begin
Write(digit);
digit := digit + 1;
End.

Algoritma & Pemrograman IIA -1-


RRM
Algoritma dan Pemrograman II A

Contoh :

Var
I : integer;
Begin
I := 0;
While I < 5 Do
Begin
WriteLn(I);
I := I + 1;
End;
End.

Hasilnya :
0
1
2
3
4

Penjelasan :
Perulangan dari While akan terus dikerjakan bila kondisinya masih benar.
Dalam hal ini kondisinya adalah I dan bila nilai I masih kurang dari 5, berarti
kondisi di dalam While masih terpenuhi dan perulangan akan selesai setelah
nilai I lebih besar atau sama dengan 5.

Struktur WHILE - BERSARANG

While di dalam while. Sebagai contoh : Menampilkan gambar

*
** *
*****
*******

Program While_bersarang
Uses Crt ;
Var
Baris {-Pencacah Baris-}
Kolom {-Pencacah Kolom-}
Jumbaris : Integer ; {-Jumlah Baris-}

Algoritma & Pemrograman IIA -2-


RRM
Algoritma dan Pemrograman II A

Begin
ClrScr ;
Write (‘Jumlah Baris :’) ;
ReadLn (Jumbaris) ;
Baris := 1 ;
While Baris <= Jumbaris do
Begin
{-Menulis * yang pertama-}
write (‘*’: Jumbaris + 1 – baris) ;
{-Menulis * selanjutnya-}
Kolom := 2 ;
While kolom <= (2*baris-1) do
Begin
Write (‘*’)
Kolom := kolom + 1 ; {-Naikkan kolom-}
End ;
Writeln ; {-Pindah baris-}
Baris := baris + 1 ; {-Naikkan baris-}
End;
End.

Struktur REPEAT-UNTIL

Digunakan untuk mengulang (repeat) statement-statement atau blok


statement sampai (until) kondisi yang diseleksi di Until tidak terpenuhi.
Sintaks dari statement ini bila digambarkan dalam bentuk diagram akan
berbentuk :

Bentuk Umum : REPEAT sequence statement UNTIL condition

Repeat statement Until Ungkapan

Algoritma & Pemrograman IIA -3-


RRM
Algoritma dan Pemrograman II A

Bentuk Proses (flow chart) :

statement

false
C

true

Contoh : (dari persoalan di atas)

digit := 1;
REPEAT
write (digit);
digit := digit + 1
UNTIL digit > 5 ;

Contoh :

Var Var
I : integer; I : integer;
Begin Begin
I := 0; I := 0;
Repeat While I < 5 Do
I := I + 1; Begin
Writeln(I); WriteLn(I);
Until I = 5; I := I + 1;
End. End;
End.
Hasilnya:
Hasilnya :
1 0 0
2 1 1
3 2
4 3
5 4

Algoritma & Pemrograman IIA -4-


RRM
Algoritma dan Pemrograman II A

Perbedaan antara struktur REPEAT-UNTIL dengan WHILE-DO adalah


sebagai berikut :

1. Paling sedikit statement-statement di dalam perulangan REPEAT-UNTIL


diproses sekali, karena seleksi kondisi ada pada statement Until yang
terletak dibawah. Sedang pada struktur WHILE-DO paling sedikit dikerjakan
nol kali, karena seleksi kondisi ada apada statement While yang terletak
diatas, sehingga kalau kondisi sudah tidak terpenuhi, maka tidak akan
masuk ke dalam lingkungan perulangan.
2. Pada REPEAT-UNTIL dapat tidak dipergunakan blok statement (tidak
diperlukan Begin dan End untuk menunjukkan batas perulangannya), karena
batas perulangannya sudah ditunjukkan oleh Repeat sampai dengan Until
(Repeat dan Until sebagai pengganti Begin dan End).

Struktur FOR

Digunakan untuk mengulang statement atau satu blok statement berulang


kali sejumlah yang ditentukan.

Sintaks dari statement For dalam bentuk diagram adalah sebagai berikut :

Bentuk Umum :

a. FOR id := v1 TO v2 DO statement
b. FOR id := v1 DOWNTO v2 DO statement

statement For FOR variabel kontrol := nilai awal

To

nilai akhir Do statement

DownTo

Algoritma & Pemrograman IIA -5-


RRM
Algoritma dan Pemrograman II A

Bentuk Proses :

id = v1 id = v1

t = v2 t = v2

false false
id <= t id >= t

true true

statement statement

id = succ (id) id = pred (id)

FOR - TO FOR - downto

Contoh : (dari persoalan diatas)


FOR i := 1 to 20 DO write(i);
FOR I := 20 DOWNTO 1 DO write(i);

Contoh :
Var
I : integer;
Begin
For I := 1 to 5 Do Writeln(‘Pascal’);
End.

Hasilnya :
Pascal
Pascal
Pascal
Pascal
Pascal

Algoritma & Pemrograman IIA -6-


RRM
Algoritma dan Pemrograman II A

Penjelasan :
Berarti statement WriteLn(‘Pascal’) akan diulang sebanyak 5 kali, yaitu dengan
penghitung I dari nilai awal 1 sampai dengan nilai akhir 5.
Contoh :
Penulisan statement yang akan diproses berulang kali tersebut dapat juga
ditulis dalam bentuk blok statement (diawali dengan Begin dan diakhiri dengan
And), walaupun hanya berisi sebuah statement saja, sebagai berikut :

Var
I : integer;
Begin
For I := 1 to 5 Do
Begin
WriteLn(‘Pascal’);
End;
End.

Hasilnya :
Pascal
Pascal
Pascal
Pascal
Pascal

FOR_BERSARANG

Contoh :

*
**
***
****
*****
******
*******
********

Algoritma & Pemrograman IIA -7-


RRM
Algoritma dan Pemrograman II A

Program for_bersarang
Const
Akhir := 8 ;
Var
Baris, kolom : integer
Begin
For baris := 1 to akhir do
Begin
For kolom := 1 to baris do
Write (‘*’) ;
WriteLn ;
End ;
End.

For juga dapat mempunyai var bertipe character, contohnya :

Uses Crt ;
Var
R : char ;
Begin
Clrscr ;
For R := ‘A’ to ‘Z’ do
Write ( R ) ;
End.

Hasil :
ABC………..dst

For untuk var bertipe Boolean


Contoh :

For saklar := False to true do


Writeln ( saklar ) ;
Hasil :
False
True

Algoritma & Pemrograman IIA -8-


RRM
Algoritma dan Pemrograman II A

Struktur IF

Bentuk Umum :

A. IF kondisi THEN statement


B. IF kondisi THEN statement_1 ELSE statement_2
C. IF kondisi_1 THEN
IF kondisi_2 THEN statement_1
ELSE statement_2
D. IF kondisi_1 THEN
BEGIN
IF kondisi_2 THEN statement_1 ELSE statement_2
END

Bentuk Flowchart :

IF – THEN IF – THEN - ELSE

False True False


R R

True

Statement Statement_1 Statement_2

Algoritma & Pemrograman IIA -9-


RRM
Algoritma dan Pemrograman II A

IF TERSARANG

False R True

True False
R

Statement_1 Statement_2

Contoh : If - Then

Var
NilaiUjian : real;
Ket : string[11];
Begin
Ket := ‘Tidak Lulus’;
Write(‘Nilai yang didapat ? ‘);
Readln(NilaiUjian);
If NilaiUjian > 60 Then Ket :=’Lulus’;
Writeln(Ket);
End.

Hasilnya :
Nilai yang didapat ? 70
Lulus

Algoritma & Pemrograman IIA - 10 -


RRM
Algoritma dan Pemrograman II A

FlowChart :
Begin

Ket := 'Tidak Lulus'

Write ('Nilai yang didapat ? ')


Readln(NilaiUjian)

yes
NilaiUjian > 60;

no
Ket := 'Lulus'

WriteLn(Ket)

End.
Contoh : If - Then - else

Var
NilaiUjian : real;
Ket : string[11];
Begin
Write(‘Nilai yang didapat ? ‘);
Readln(NilaiUjian);
If NilaiUjian > 60 Then
Writeln(‘Lulus’);
Else
Writeln(‘Tidak Lulus’);
End.

Hasilnya :
Nilai yang didapat ? 70
Lulus

Algoritma & Pemrograman IIA - 11 -


RRM
Algoritma dan Pemrograman II A

FlowChartnya :
Begin

Write ('Nilai yang didapat ? ')


Readln(NilaiUjian)

no yes
NilaiUjian > 60;

Writeln('Tidak Lulus'); Writeln('Lulus');

End.

Struktur CASE

Bentuk Umum : Case – Of


CASE ekspresi OF
Case label list 1 : statement_1;
Case label list 2 : statement_2;

Case label list n : statement_n;


END;

Bentuk Umum : Case - Of…Else


CASE ekspresi OF
Case label list 1 : statement_1;
Case label list 2 : statement_2;

Case label list n : statement_n;


ELSE statement;
END;

Algoritma & Pemrograman IIA - 12 -


RRM
Algoritma dan Pemrograman II A

Bentuk proses (flowchart) :

Decision

cll-1 cll-n

S-1 S-n

S-2

S-3
....dst....
keterangan :
cll = case label list

Perbedaan antara CASE dengan IF adalah jika statement if menyeleksi


suatu kondisi dan terpenuhi, setelah memproses statement dalam
lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan
terhadap statement if berikutnya yang lain. Sedangkan pada struktur CASE-
OF bila salah satu kondisi terpenuhi dan statement tersebut telah diproses,
selanjutnya statement-statement yang lainnya dalam lingkungan CASE tidak
akan diseleksi lagi.
Daftar case label dapat berupa sebuah konstanta, atau range dari konstanta
yang bukan bertipe real.

Contoh :

1:
1,2,3,4:
1..5:
‘A’:
‘A’,’B’:
‘A’..’D’:

Algoritma & Pemrograman IIA - 13 -


RRM
Algoritma dan Pemrograman II A

Contoh :

Var Nilai :char;


Begin
Write(‘Nilai huruf yang didapat’);readln(Nilai);
CASE Nilai OF
‘A’ : writeln (‘sangat baik’);
‘B’ : writeln (‘baik’);
‘C’ : writeln (‘cukup’);
End;
End.

Hasil :
Nilai huruf yang didapat C
cukup

Contoh :

Var Nilai :char;


Begin
Write(‘Nilai huruf yang didapat’);readln(Nilai);
CASE Nilai OF
‘A’ : writeln (‘sangat baik’);
‘B’ : writeln (‘baik’);
‘C’: writeln (‘cukup’);
Else Writeln(‘Pilihan hanya A,B,C’);
End.

Algoritma & Pemrograman IIA - 14 -


RRM
Algoritma dan Pemrograman II A

Struktur GOTO

Bentuk Umum : GOTO label statement;

Contoh :

Label 10,selesai;
Begin
Writeln(‘Bahasa’);
Goto 100;
Writeln(‘Basic’);
100;
Writeln(‘Pascal’);
Goto selesai;
Writeln(‘Cobol’);
Selesai;
End.

Algoritma & Pemrograman IIA - 15 -


RRM

Anda mungkin juga menyukai