Anda di halaman 1dari 6

Algoritma dan Pemrograman II A

VII. 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[10]

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]

Algoritma & Pemrograman IIA -1-


RRM
Algoritma dan Pemrograman II A

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 :

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.

Algoritma & Pemrograman IIA -2-


RRM
Algoritma dan Pemrograman II A

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.

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;

Algoritma & Pemrograman IIA -3-


RRM
Algoritma dan Pemrograman II A

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;

Algoritma & Pemrograman IIA -4-


RRM
Algoritma dan Pemrograman II A

Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan


field designatornya, yg terdiri dari atas :

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.

Algoritma & Pemrograman IIA -5-


RRM
Algoritma dan Pemrograman II A

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;
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);

Algoritma & Pemrograman IIA -6-


RRM

Anda mungkin juga menyukai