Anda di halaman 1dari 15

Pemrograman PASCAL : Review Pascal 1

STRUKTUR KONTROL

Struktur WHILE-DO
Mempunyai struktur sebagai berikut :

Bentuk Umum : WHILE condition Do statement


Bentuk Proses (flow chart) :

statement

false
C

true

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.

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

Halaman : 26
Pemrograman PASCAL : Review Pascal 1

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 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
Bentuk Proses (flow chart) :

Repeat statement Until Ungkapan

Contoh : (dari persoalan di atas)

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

Contoh :
Var
I : integer;
Begin
I := 0;
Repeat
I := I + 1;
Writeln(I);
Until I = 5;
End.

Halaman : 27
Pemrograman PASCAL : Review Pascal 1

Hasilnya:

1
2
3
4
5

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

Bentuk Proses :

statement For FOR variabel kontrol := nilai awal

To

id = v1 nilai akhir Do
id = v1 statement

DownTo
t = v2 t = v2

false false
id <= t id >= t

true true

statement statement

Halaman : 28
id = succ (id) id = pred (id)

FOR - TO FOR - downto


Pemrograman PASCAL : Review Pascal 1

Contoh : (dari persoalan diatas)


FOR i := 1 to 20 DO write(i);
FOR I := 20 DOWNTO 20 DO write(i);
Contoh :
Var I : integer;
Begin
For I := 1 to 5 Do Writeln(‘Pascal’);
End.
Hasilnya : Pascal
Pascal
Pascal
Pascal
Pascal
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.

Halaman : 29
Pemrograman PASCAL : Review Pascal 1

Contoh :
Var Celcius : integer;
Fahrenheit : REAL;
Begin
WriteLn(‘---------------------------‘);
WriteLn(‘Celcius Fahrenheit’);
WriteLn(‘---------------------------‘);
Celcius := 0;
For Celcius := 5 DownTo 0 Do
Begin
Fahrenheit := 1.8 * Celcius + 32;
WriteLn(Celcius:8,Fahrenheit:14:2);
End;
WriteLn(‘----------------------------‘);
End.

Hasilnya :
---------------------------
Celcius Fahrenheit
---------------------------
5 41.00
4 39.00
3 37.40
2 35.60
1 33.80
0 32.00

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

Halaman : 30
Pemrograman PASCAL : Review Pascal 1

Bentuk Flowchart :

IF – THEN IF – THEN - ELSE

False True False


R R

True

Statement Statement_1 Statement_2

False R True
IF TERSARANG

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.

Halaman : 31
Pemrograman PASCAL : Review Pascal 1

Hasilnya :

Nilai yang didapat ? 70


Lulus
FlowChart :

Begin

Ket := 'Tidak Lulus'

Write ('Nilai yang didapat ? ')


Readln(NilaiUjian)

yes
NilaiUjian > 60;
Contoh : If - Then - else

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

Nilai yang didapat ? 70


Lulus

Halaman : 32
Pemrograman PASCAL : Review Pascal 1

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;

Halaman : 33
Pemrograman PASCAL : Review Pascal 1

Bentuk proses (flow chart) :

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’:

Contoh :
Var Nilai :char;
Begin
Write(‘Nilai huruf yang didapat’);readln(Nilai);
CASE Nilai OF
‘A’ : writeln (‘T-shirt’);
‘B’ : writeln (‘Sepatu’);
‘C’: writeln (‘Topi’);
End;
End.

Contoh :
Var Nilai :char;
Begin
Write(‘Nilai huruf yang didapat’);readln(Nilai);
CASE Nilai OF
‘A’ : writeln (‘T-shirt’);
‘B’ : writeln (‘Sepatu’);
‘C’: writeln (‘Topi’);
Else Writeln(‘Pilihan hanya A,B,C’);
End.

Halaman : 34
Pemrograman PASCAL : Review Pascal 1

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.

Halaman : 35
Pemrograman PASCAL : Review Pascal 1

ARRAY
Array didefinisikan sebagai suatu kumpulan dimana elemen-
elemennya berjenis data sama. (homogen)
Suatu array dapat dibedakan atas 2 (dua) bagian, yaitu :
a. Array berdimensi satu.
Array berdimensi satu dapat dikatakan sebagai suatu daftar yang
linier atau sebuah kolom.
Bentuk deklarasi dari array jenis ini dalam bahasa Pascal adalah :
VAR nama_array : ARRAY [index] OF jenis_elemen;

Contoh :
VAR x : ARRAY [1..10] OF integer;
 X [ 1 ] 
 X [ 2] 
 
X  .. ..... 
 
.. ..... 
 x[
 1 0]

b. Array Multi Dimensi


Contoh untuk array jenis ini adalah array dimensi dua.
Array dimensi dua ini dapat dianggap sebagai sebuah matriks yang
jumlah kolomnya lebih dari satu.
Bentuk deklarasi :
VAR nama_array : ARRAY [indeks_baris,indeks_kolom] OF jenis;
Contoh :
VAR A : ARRAY [1..3,1..4] OF integer;
Array A di atas terdiri atas 12 elemen, yaitu :
A[1,1] A[1,2] A[1,3] A[1,4]
A[2,1] A[2,2] A[2,3] A[2,4]
A[3,1] A[3,2] A[3,3] A[3,4]

Masing-masing A[i,j] adalah diatas adalah integer


(i = 1,2,3 ; j = 1,2,3,4)

Selanjutnya untuk array berdimensi tiga, empat dst, cara


pendeklarasiannya hanya berbeda pada indeksnya saja.

MEMPROSES ARRAY
Misal diberikan deklarasi suatu array sebagai berikut :

VAR X : ARRAY [1..10] OF integer;

Untuk keperluan membaca variabel X (input) kita tidak bisa


melakukan seperti sebuah data bernilai tunggal, yaitu READ (X).
Sebab jika kita membaca/input suatu variabel berjenis array berarti
kita membaca elemen-elemen array tersebut.
Untuk itu diperlukan suatu bentuk perulangan seperti berikut :

FOR I := 1 TO 10 DO READ ( X[1] );

Demikian pula halnya untuk keperluan memproses elemen-


elemennya, harus ditunjukkan elemen yang akan diproses.

Contoh :

Halaman : 36
Pemrograman PASCAL : Review Pascal 1

Misal terdapat 10 bilangan integer positif yang berbeda disimpan di


dalam suatu array B.
Tentukan integer yang terbesar diantara 10 integer tersebut dengan
suatu program Pascal.

Penyelesaiannya :

PROGRAM MAKS ;
VAR B : ARRAY [1..10] OF integer;
I,J,MAX : integer;

Begin
FOR I := 1 TO 10 DO READ(B[I});
MAX := B[1];
FOR J := 2 TO 10 DO
IF MAX <= B[J] THEN MAX := B[I};
WRITE (MAX);
End.

Contoh 2 :
Dari soal contoh 1 di atas, buat program yang menghitung rata-rata
dari 10 bilangan tersebut.
Penyelesaiannya :
PROGRAM RATA_RATA;
TYPE INDEKS = 1..10;
VAR A : ARRAY [INDEKS] OF INTEGER;
I : INTEGER;
TOTAL : INTEGER;
RATA2 : REAL;
BEGIN
Total := 0;
FOR I := 1 TO 10 DO
BEGIN
READ (A[I]);
TOTAL := TOTAL + A[I];
END;
RATA2 := TOTAL / 10;
WRITE (RATA2);
END.

RECORD
Record dapat dikatakan sebagai suatu kumpulan data item yang
masing-masing mempunyai jenis data berbeda.
Data item yang merupakan elemen record biasanya disebut dengan
FIELD.

Halaman : 37
Pemrograman PASCAL : Review Pascal 1

CARA MENDEKLARASIKAN RECORD


Bentuk umum deklarasi suatu variabel berjenis record adalah sbb :

VAR nama_record : RECORD


Nama_field_1 : jenis ;
Nama_field_2 : jenis ;
………………………
………………………
nama_field_n : jenis;
END;

Atau

TYPE identifier = RECORD


Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
……………………..
nama_field_n : jenis;
END;

Contoh :

1. VAR nilai : RECORD


Nilai_1 : integer;
Nilai_2 : integer;
END;
2. TYPE date = RECORD
Tanggal : 1..31;
Bulan : 1…12;
Tahun : 1900..2000;
END;

VAR event1,event2 : ARRAY [1..10] OF date;

3. TYPE account = RECORD


cust_no : integer;
cust_type : char;
cust_balance : real;
END;
VAR customer : account;

MEMPROSES VARIABEL BERJENIS RECORD

Perhatikan deklarasi variabel berikut :


TYPE nilai : RECORD
Nilai1 : real;
Nilai2 : real;
END;
VAR x,y : nilai;

Untuk memproses variabel x dan / atau y dilakukan dengan cara


menyebutkan field designatornya, yg terdiri dari atas :

Halaman : 38
Pemrograman PASCAL : Review Pascal 1

Nama_record.nama_field

Pada deklarasi diatas yang dimaksud dengan field designator-nya


adalah :

x.nilai1
x.nilai2
y.nilai1
y.nilai2

Jadi jika ingin membaca variabel x atau y atau keduanya, maka


bentuk statement-nya adalah :

READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);

Selanjutnya, misal ingin dibuat program sederhana untuk


menjumlahkan dua bilangan kompleks a dan b yang hasilnya
disimpan di c.
Secara aljabar penjumlahan dua bilangan kompleks adalah sebagai
berikut :

a = x1 + iy1
b = x2 + iy2 +

c = (x1 + x2 ) + I(y1 + y2)


Maka bentuk garis besar programnya adalah sebagai berikut :

Program contoh ;
Type bk = record
Bag_nyata : integer;
Bag_imajiner : integer;
End;
Var a,b,c : bk;
Begin
Read (a.bag_nyata, a.bag_imajiner, b.bag_nyata, b.bag_imajiner);
c.bag_nyata := a.bag_nyata + b.bag_imajiner;
c.bag_imajiner := a.bag_imajiner + b.bag_imajiner;
writeln(c.bag_nyata,’ +’,’i’,c.bag_imajiner);
End.

STATEMENT “WITH”
Selain cara yang telah disebutkan diatas, untuk memproses suatu
record dapat digunakan statement WITH.
Dengan statement ini penulisannya akan lebih sederhana.
Bentuk Umum penulisan statement WITH ini adalah :
WITH nama_record DO statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD
No : integer;
Kode : char;
Juml : integer;

Halaman : 39
Pemrograman PASCAL : Review Pascal 1

Harga : real;
END;
VAR p,q : x;

Untuk membaca variabel p dan q di atas dengan memanfaatkan


statement WITH bentuknya menjadi :
WITH p,q DO read (no, kode, juml, harga);
Bandingkan jika digunakan cara sebelumnya :

Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);

Halaman : 40

Anda mungkin juga menyukai