0% menganggap dokumen ini bermanfaat (0 suara)
150 tayangan37 halaman

Z.bab 6

Dokumen tersebut membahas tentang array atau larik, yaitu tipe data terstruktur yang terdiri dari komponen-komponen yang mempunyai tipe data yang sama. Dokumen menjelaskan pengertian array, karakteristik array satu dimensi, dan berbagai cara mendeklarasikan array seperti menggunakan indeks subrange, tipe data indeks, dan array konstan.

Diunggah oleh

Aldi Ryan Pratama
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
150 tayangan37 halaman

Z.bab 6

Dokumen tersebut membahas tentang array atau larik, yaitu tipe data terstruktur yang terdiri dari komponen-komponen yang mempunyai tipe data yang sama. Dokumen menjelaskan pengertian array, karakteristik array satu dimensi, dan berbagai cara mendeklarasikan array seperti menggunakan indeks subrange, tipe data indeks, dan array konstan.

Diunggah oleh

Aldi Ryan Pratama
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 37

BAB VI

ARRAY (LARIK)
A. Pengertian
Array atau larik adalah tipe data terstruktur yang terdiri dari sejumlah komponen-
komponen yang mempunyai tipe sama. Array sering juga disebut dengan sekumpulan
kotak “variabel” yang dapat menyimpan sekumpulan elemen bertipe sama secara
berurutan (sequential). Komponen-komponen tersebut disebut sebagai komponen tipe
yang mempunyai jumlah tetap. Array dapat juga dikatakan sebagai suatu tipe data
terstruktur yang mempunyai komponen dalam jumlah yang tetap, dimana setiap
komponen mempunyai tipe data yang sama. Posisi masing-masing komponen dalam
array dinyatakan dengan nomor indeks.
Banyaknya komponen dalam array ditunjukkan oleh suatu indeks, dimana tiap
komponen array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array
dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan
tipe data skalar atau subrange. Tipe indeks ini dapat berbentuk satu dimensi, dua dimensi
hingga n dimensi. Array mempunyai ciri-ciri sebagai berikut:
1. Setiap elemen data array diakses melalui indeksnya
2. Indek array harus suatu tipe data yang mempunyai keterurutan , maksudnya adalah
indeks data mempunyai suksesor dan predecessor, karena setiap elemen data
disimpan secara berurutan. Contoh bertipe data yang mempunyai sifat keterurutan
tersebut adalah integer, charakter atau tipe data enumerasi.
3. Jika indeks berupa bilangan integer, maka keterurutan indeks sesuai dengan urutan
bilangan integer yaitu (0,1,2,3,4,5,6,..)
4. Jika indeks karakter, maka keterurutan indeks sesuai dengan urutan karakter
(a,b,c,d,e ….).
Contoh1
Type
x:array[1..11] of integer;
Var
Gaji : array[1..10] of Real;

165
Contoh 2 :
Var
Vektor : array[1..50] of Integer;
Pada contoh 2, array dengan nama Vektor telah dideklarasikan dengan tipe
integer, dengan jumlah elemen maksimum 50, nilai dari elemen array Contoh 2 di atas
harus bertipe integer.
Bagi para pemrogram, efisiensi dalam menulis program merupakan hal utama
yang harus diperhatikan, baik itu dalam hal kecepatan jalannya program, memori yang
digunakan, banyak baris kode yang dituliskan dan juga ketepatan algoritma yang
digunakan. Salah satu komponen yang harus dikuasai untuk memperoleh program yang
baik adalah pengetahuan tentang array. Sebagai contoh, misalkan terdapat kumpulan
data berbentuk array, katakanlah A yang memiliki 10 buah elemen nilai yang bertipe
integer, dapat dipresentasikan seperti Gambar 35 berikut :

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
1 2 3 4 5 6 7 8 9 10
10 20 30 40 50 60 70 80 90 100

Nilai elemen array


Indeks array
Elemen array

Gambar 35. Komponen array satu dimensi

Setiap elemen array di atas menyimpan nilai bertipe integer dan akan menempati
alamat memori yang berbeda, hal ini akan menyebabkan array tersebut memiliki ukuran
40 byte, yang berasal dari 10 x 4. Nilai 10 menunjukkan banyaknya elemen array
sedangkan nilai 4 merupakan ukuran dari tipe data integer (dalam 32 bit).

B. Array Satu Dimensi


Jika ingin membuat beberapa array dengan tipe/jenis yang sama, kita lebih baik
mendeklarasikannya dengan deklarasi type, kemudian dilanjutkaan dengan deklarasi
var. Pendefinisian array secara umum adalah sebagai berikut
Type

166
nama_array = ARRAY[bawah..atas] of tipe_data;
Var
Variabel_array : nama_array;
atau dengan menggunakan statemen var dapat ditulis sebagai berikut:
Var
Variabel_array : ARRAY[bawah..atas] of tipe_data;
Deklarasi di atas mempunyai pengertian bawah dan atas menyatakan batas untuk
array, tipe_data adalah merupakan tipe variabel yang dipunyai array (misalnya
Integer, char, real, dan sebagainya. Bentuk lain juga dapat ditulis sebagai berikut:
Type
Indeks = 1..50;
namaarray = array [indeks] of tipedata ;
Var
namavariabel : namaarray ;

dalam bentuk kelompok Var dapat dideklarasikan sebagai berikut


Var
Namavariabel : array [indeks] of tipedata ;
Contoh:
Type
tnama = array [1 . . 30] of char ; // array karakter dengan 30 elemen
tdata = array [1 . . 100] of real; // array bilangan real dengan 100 elemen
atau dalam kelompok var sebagai berikut
var
nama : tnama ; // variabel array karakter dengan 30 elemen
data : tdata ; //variabel array bilangan real dengan 100 elemen
Var
A : array[1..50] of Integer;
Pada contoh array dengan nama A telah dideklarasikan dengan tipe integer,
dengan jumlah elemen maksimum 50 elemen. Jadi, nilai dari elemen array tersebut
di atas harus bertipe integer.

167
A A A A A A A A A . . A
1 2 3 4 5 6 7 8 9 . . 50

Secara logika pendefinisian array di atas merupakan sekumpulan kotak, dimana


tiap kotak mempunyai nilai indeks integer 1, 2, 3, ...,49, 50, dimana setiap elemen array
ditandai
A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], . . .A[50]
Pernyataan di atas adalah pernyataan untuk membentuk suatu array bernama A
yang berisi 50 tempat untuk bilangan integer. Setiap posisi disebut elemen yang
menyimpan suatu bilangan integer. Contoh kita bisa memberi nilai pada suatu elemen
array seperti berikut:
A[2] := 10;
perintah ini memberikan suatu nilai integer 10 pada elemen ke-2 dari array A. Nomor
dari elemen ditempatkan didalam kurung tegak. Berikut ini akan dijelaskan beberapa
bentuk deklarasi array.
1. Deklarasi Tipe Index Subrange Integer
Tipe index subrange integer sebagai berikut
Var NilaiHuruf : array [1..5] of char ;
Nilai [1..5] inilah yang dimaksud dengan index subrange integer. Indeks dariarray
di atas dapat dideklarasikan terlebih dahulu di bagian deklarasi tipe
Type
Jangkauan = 1..5 ; {tipe subrange integer}
Var
NilaiHuruf : array [Jangkauan] of char ;

Begin


End.

2. Deklarasi Tipe Index Subrange Byte

168
Jika indeks dari larik tidak sampai dengan 255, maka indeis dari array ini dapat
dideklarasikan dengan tipe byte. Caranya mendeklarasinya adalah sebagai berikut:
Var
X : array [0..255] of real ;
Karena nilai 0 sampai 255 merupakan nilai subrange byte, maka deklarasi ini dapat
ditulis :
Var
X : array [byte] of real ;

3. Deklarasi Tipe Index Subrange Word


Jika jangkauan indeks dari 0 sampai 65525, maka indeks dari array dapat
dideklarasikan dengan tipe word. Caranya mendeklarasinya adalah sebagai berikut
Var
X : array [byte] of word ;

4. Deklarasi Tipe Indeks Subrange Boolean


Index larik yang bertipe Boolean, hanya mempunyai maksimum 2 buah elemen saja.
Caranya mendeklarasinya adalah sebagai berikut;
Type
Keterangan = string [11] ;
Var
X : array [Boolean] of keterangan ;

5. Deklarasi Tipe Index Subrange Char


Tipe char adalah tipe subrange yang mempunyai nilai sebanyak 256 buah ( 0 – 255 )
sesuai dengan urutan kode ASCII. Caranya mendeklarasinya adalah sebagai berikut;
Var
X : array [char] of integer ;
6. Deklarasi Tipe Index Skalar
Indeks dari array dapat berupa tipe skalar atau enumerated. Caranya mendeklarasinya
dalam bentuk program sederhana adalah sebagai berikut;
Var

169
Jumlah : array [(Jan, Peb, Mar)] of integer ;
Begin
Jumlah[Jan] : = 125 ;
Jumlah{Peb] : = 75 ;
Jumlah[Mar] : = 18 ;
Writeln ( ‘Jumlah untuk bulan maret = ‘, Jumlah{Mar});
End.
Output dari program di atas adalah :
Jumlah untuk bulan Maret = 18
Contoh di atas dapat ditulis menjadi :
Type
Bulan = (Jan, Peb, Mar) ;
Var
Jumlah : array [Bulan] of integer ;

7. Deklarasi konstanta Array


Array tidak hanya dapat berupa suatu variable yang dideklarasikan dibagian deklarasi
variabel, namun juga dapat berupa suatu konstanta yang dideklarasikan dibagian
deklarasi konstanta. Caranya mendeklarasinya dalam bentuk program sederhana
adalah sebagai berikut;
Const
X : array [1..5] of integer = (6, 25, 375, 5, 2) ;
Var I : word ;
Begin
For i : = 1 to 5 do
Writeln ( ‘Nilai konstanta larik ke ‘, I, ‘=’, X[i] ) ;
End.
Output program dari program di atas adalah sebagai berikut :

Nilai Konstanta larik ke 1 = 6

170
Nilai Konstanta larik ke 2 = 25
Nilai Konstanta larik ke 3 = 375
Nilai Konstanta larik ke 4 = 5
Nilai Konstanta larik ke 5 = 2

Contoh berikut adalah merupakan array yang menyimpan variabel-variabel


integer. Data dengan tipe integer hanya bisa dimasukkan satu persatu, kemudian baru
bisa ditampilkan di monitor secara bersamaan
Contoh 1
Program Int_Array;
Uses crt;
const N=10;
type
int_array = ARRAY [1..N] of integer;
Var
bil : int_array;
indeks : integer;
BEGIN
writeln('masukkan sepuluh bilangan integer.');
for indeks := 1 to 10 do
begin
readln(bil[indeks]); { loop untuk memasukkan elemen array }
end;
writeln('Isi dari array ini adalah'); { tampilkan setiap elemen }
for indeks := 1 to 10 do
begin
writeln('bil[', indeks:2,'] adalah ',bil[indeks] );
end;
END.

Contoh 2
171
Program Contoh_Array;
uses crt;
var
a : array[1..10] of byte;{maksimum jumlah elemen=10}
BEGIN
a[1]:=10;
a[2]:=15;
a[3]:=a[1]+a[2];
writeln(a[1]);
writeln(a[2]);
writeln(a[3]);
END.
Contoh 3 merupakan contoh lain untuk mengakses nilai ke dalam suatu komponen
array.
Program Contoh_Array_Input;
Uses Crt;
Var Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.
Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti
contoh 4. Contoh 4 merupakan array yang dideklarasikan bersama dengan tipe yang
beragam seperti contoh dibawah ini :

172
Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
Var
NIM : array[1..20] of string[10];
Nama : array[1..20] of string[25];
Nilai : array[1..20] of real;
Umur : array[1..20] of byte;
banyak,i : integer;
BEGIN
ClrScr;
Write('Isi berapa data array yang diperlukan :');Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NIM =');Readln(NIM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NIM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Nim[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End;
Readln;
End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :
Type
Angka = String[20];

173
Var
Nama : Array [1..50] of Angka;
Begin
.
.
End.

Deklarasi tipe indeks subrange integer indeks pada array dapat tipe skalar atau
subrange, tetapi tidak bisa real.
Contoh:
Var
Nilai : Array[1..10] of Integer;
pada contoh ini array nilai mempunyai 10 buah elemen yaitu dari 1 sampai 10. Array
tersebut dapat dideklarasikan dengan type seperti berikut ini :
Type
Skala = 1..10;
Var
Nilai : Array [skala] of Integer;
atau :
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Var
Nilai : Y;
atau :
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;

atau :
Const
Atas =1;
Bawah = 5;
type
174
Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;

8. Deklarasi Type Indeks Skalar


Indeks dari larik dapat berupa tipe skalar. Caranya mendeklarasinya dalam bentuk
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.
Bentuk di atas dapat juga ditulis menjadi
type
Bln = (jan,feb,mar,apr,mei);
Var
Jum : Array[bln] of Integer; atau
type
Bln =(jan,feb,mar,apr,mei);
Var
Jum : Array[jan..mei] of Integer;

9. Deklarasi Konstanta Array


Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di
bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).
175
Caranya mendeklarasinya dalam bentuk program sederhana adalah sebagai
berikut;
Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Caranya mendeklarasinya dalam bentuk program sederhana adalah sebagai berikut;
Program Contoh_Konstan_Array_Char_;
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.
Konstanta array dapat juga berupa string seperti berikut ini. Caranya
mendeklarasinya dalam bentuk program sederhana adalah sebagai berikut;

Program Constanta_Array_String;
Uses Crt;
Type

176
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var i : Integer;
Begin
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
End.
String dalam pascal juga merupakan array dari elemen- elemen karakter. Caranya
mendeklarasinya dalam bentuk program sederhana adalah sebagai berikut;
Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.
Berikut ini akan diberikan contoh program bilangan prima dengan menggunakan
bantuan array sebagai untuk memperjelas bagaimana penting tipe data terstruktur
dalam pemograman dengan menggunakan tipe data berindeks.

Program Mencari_Bilangan_Prima_Dengan_Array;
Uses Crt;
Var

177
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
End;
If Prima[i]<> 0 Then
Write(Prima[i],' '); {*cetak array yg prima*}
End;
Readln;
End.
Berikut ini adalah sebuah program pengurutan atau shorting yang merupakan
proses untuk menyusun kembali kumpulan entri-entri data yang telah dimasukkan
dengan suatu aturan tertentu. Secara umum ada 2 macam pengurutan yaitu pengurutan
secara menaik (ascending) dan pengurutan secara menurun (descending). Salah satu
metodanya adalah metode gelembung (buble sort). Metode penukaran (Exchange
Sort) adalah metoda yang berdasarkan kepada penukaran elemen untuk mencapai
keadaan urut yang diinginkan. Algoritma mengurutan data menggunakan metoda
gelembung adalah sebagai berikut:

Algoritma Metode gelembung :


- langkah 0 : Baca vector yang akan diurutkan (dalam program utama)
- langkah 1 : Kerjakan langkah 2 untuk i = 1 sampai N-1

178
- langkah 2 : Kerjakan langkah 3 untuk j = 1 sampai N- i
- langkah 3 : Tes apakah A[j] > A[j +1] ? Jika ya, tukarkan nilai kedua elemen
ini
- langkah 4 : Selesai
Algoritma di atas dapat diterjemahkan dalam bentuk program dalam bahasa Turbo
Pascal adalah sebagai berikut:
Program Sorting_data;
Uses Wincrt;
const N=10;
type
Vektor = Array [1..N] of integer;
Var
bil : vektor;
cad,i,j : integer;
Procedure Sorting( bil : vektor);
Begin
for i := 1 to n do
begin
for j := i+1 to n do
begin
if (bil[J] < bil[I] )then
begin
cad := bil[J];
bil[J] := bil[I];
bil[I] := cad;
end;
end;
end;
end;
BEGIN

179
writeln('masukkan sepuluh bilangan integer.');
for i:= 1 to 10 do
begin
write('masullan bila ke ',i); readln(bil[i]);
end;
writeln('Isi dari sebelum disorting array ini adalah');
for i := 1 to 10 do
begin
writeln('bil[', i:2,'] adalah ',bil[i] );
sorting(bil);
writeln('Isi dari setelah disorting array ini adalah');
for i := 1 to 10 do
begin
writeln('bil[', i:2,'] adalah ',bil[i] );
end;
END.

C. Array Multidimensi
Array dalam pascal dapat berdimensi lebih dari satu yang disebut dengan array
dimensi banyak (multidimensional array). Mengingat keterbatasan ruang dan
kebutuhan dalam pemograman secara umum, berikut ini akan dibahas array 2 dimensi
saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks
pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau
matrik. Array multidimensi lainya dapat dikembangkan dari pengertian dan cara
mengoperasikan array dua dimensi. Array dua dimensi terdiri atas baris (row) dan
kolom (column). Indeks pertama menyatakan baris dan indeks kedua menyatakan
kolom. Bentuk umum deklarasi array dua dimensi adalah sebagai berikut:
Nama_larik = array [tipe index1] of array [tipe index2] of tipe larik
atau
Nama_larik = array [tipe index1, tipe index2] of tipe larik

180
Ada beberapa sintaks dalam mendeklarasikan array dua dimensi antara lain :
Type
nama_array =ARRAY[bawah..atas, bawah..atas] of tipe_data;
var
variabel_array : nama_array;
atau dengan menggunakan statemen Var
var
variabel_array : ARRAY[bawah..atas, bawah..atas] of tipe_data;
Contoh penggunaan array dua dimensi untuk pemograman operasi aritmatika untuk
matrik adalah seperti potongan program berikut:
Tabel : Array[1..3] of Array[1..2] of Byte;
atau :
Type
Matrik = Array[1..3,1..2] of Byte;
Var
Tabel : Matrik;
atau
Type
Baris = 1..3;
Kolom = 1..2;
Matrik = Array[Baris,Kolom] of Byte;
Var
Tabel : Matrik;
atau
Type
Baris = 1..3;
Kolom=1..2;
Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
Tabel : Matrik;

181
Contoh program berikut merupakan cara mengakses elemen secara langsung pada
saat pembuatan program.:
Var
Tabel : array [1..3, 1..2] of byte ;
I, J : byte ;
Begin
Tabel[1,1] : = 5 ;
Tabel[1,2] : = 25 ;
Tabel[2,1] : = 200 ;
Tabel[2,2] : = 22 ;
Tabel[3,1] : = 75 ;
Tabel[3,2] : = 50 ;
For I : = 1 to 3 do
Begin
For J : = 1 to 2 do
Write ( table [I,J] : 10 ) ;
Writeln ;
End ;
End.

D. Parameter Array
Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai
atau secara acuan ke prosedur atau ke fungsi. Prosedur yang menggunakan parameter
berupa array harus dideklarasikan di dalam judul prosedur dengan menyebutkan
parameternya bertipe aray. Caranya mendeklarasinya adalah sebagai berikut;
Type
Matriks = array [1..50, 1..50] of real ;
Var
I, J, K : byte ;
Procedure inverse (Var X : matriks ; N : byte ) ;
182
….
….
Begin
….

End.
Statemen array [1..50,1..50] berarti bahwa suatu pernyataan membentuk suatu array
real dengan nama matriks 50 x 50, yang berarti variabel matrik memiliki 2.500
elemen dengan tipe data real.
Untuk mengakses elemen setiap elemen matrik diperlukan suatu prosedur yang
menggandung parameter dengan mempergunakan struktur pengulangan for ...do
tersarang seperti diagram alir Gambar 36 berikut:
Baca Tulis
Matriks Matriks

i..jb i..jb

i..jk i..jk

Baca Tulis
mtr[I,j] mtr[I,j]

End End

(a) (b)

Gambar 36 : Diagram alir membaca dan menulis elemen matriks

Diagram alir pada Gambar 36a di atas merupakan diagram alir membaca elemen
matriks dari papan ketik yang dapat diterjemahkan ke dalam program dalam Turbo
Pascal sebagai berikut:

Procedure ISI_MATRIK(AKU:matriks; m,n:integer);


Var
i,j: integer; {faktor pengulang}

183
Begin
For I:=1 To M Do
Begin
For J:=1 To N Do
Begin
Write(‘A[‘,i,’ ,‘,j,’]’); Readln(A[I,J]);
End;
Readln ; {Ini Memungkinkan Kita Menulis Tiap Baris Elemen}
End;
Diagram alir pada Gambar 30b di atas merupakan diagram alir menampilkan
elemen yang dapat diterjemahkan ke dalam program dalam Turbo Pascal sebagai
berikut.
Procedure TULIS_MATRIK(AKU:matriks; m,n:integer);
Var
I,J: Integer; {Faktor Pengulang}
Begin
For I:=1 To M Do
Begin
For J:=1 To N Do
Begin
Write(A[I,J]:6);
End;
Writeln ; { Untuk Menulis Elemen Dalam Baris Dan Kolom }
End;
End;
Untuk meningkatan pemahaman tentang aplikasi tipe data array berikut ini
diberikan diagram alir dan listing program penggunaan array dua dimensi dalam
aplikasi penjumlahan matrik seperti Gambar 37 .

184
Jumlah
Matrks
1 2 3

Baca
Jb,Jk

Matriks-1
jb,jk

Matriks-2 Matriks-1
Jb,Jk jb,jk

Matriks-1
M=1..jb
jb,jk

M=1..jb Matriks-1
jb,jk

Z[m,n] =x[m,n] +
y[m,n]

1 2 3

Gambar 37 : Diagram alir penjumlah dua elemen matriks

Procedure Penjumlahan_Matrik;
Var
Matrik1,Matrik2,
Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];

185
End;
End;
End;

E. Operasi pada Array


Sifat masing-masing elemen array mengikuti jenis data yang dimilikinya, untuk
array dengan tipe bilangan integer atau real kita bisa melakukan berbagai standar
operasi aritmatika seperti penjumlahan, perkalian, pengurangan, dan sebagainya.
1. Mencari Harga Tertentu pada Array
Mencari suatu elemen harga di dalam suatu matriks merupakan suatu kejadian
yang sering kita alami. Sebagai contoh mencari nama mahasiswa dari daftar
presensi. Pencarian biasanya dilaksanakan secara beruntun (sequence). Hal ini
merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim yang lebih
besar. Misalkan vektor yang merupakan array satu dimensi [A] dengan elemen
array A = 60  12  76  23  11 42  18  42
Untuk menari apakah bilangan A = 11 ada di dalam tabel elemen array, kita
dapat melakukan pemeriksaan terhadap 60  12  76  23  11 42  18  42. Dalam
pecarian ditemukan A pada elemen ke-5, dalam bahasa PASCAL diterjemahkan
seperti berikut:
Type
Vektor = Array [1..8] of integer;
var
Aku : Vektor;
Procedure Cari_Matrik(Mince : Vektor);
var
i: integer; {faktor pengulang}
Begin
for i:=1 to 8 do
begin
if Mince[i]:= 11 then
writeln(‘ terdapat bilangan 11 dalam pita ini ‘);
186
else
writeln(‘ tidak ada bilangan 11, pencarian berhenti ‘);
end;
end;

2. Mencari Harga Maksimum pada Array


Misal array di atas kita cari harga yang tertinggi, maka kita perlu menentukan
nilai tertinggi dahulu sebelum melakukan pencarian diawali kegiatan dengan
mengambil (menset) nilai maksimum = 0
Procedure Cari_Maksimum(Mince : Vektor);
Var
i: integer; {faktor pengulang}
maks : integer;
Begin
Maks := Mince[1];
for i:=1 to 8 do
Begin
if Mince[i]> Maks then Maks:= Mince[i];
End;
Writeln(‘Nilai Maksimum = ’,Maks);
end;

3. Mencari Harga Minimum pada Array


Misal array di atas kita cari harga elemen yang terendah, maka kita perlu
menentukan nilai terendah dahulu sebelum melakukan pencarian awali kegiatan
dengan mengambil nilai maksimum = 3200

Procedure cari_minimum( Deret : Vektor);


var
i: integer; {faktor pengulang}
Min : integer;
187
begin
min := 3200;
for i:=1 to 8 do
begin
if deret[i]< Min then Min:= deret[i];
end;
writeln(‘Nilai Minimum = ’,Min);
end;
Sebagai perwujudan dari array dua dimensi dalam operasi aritmatika seperti
penjumlahan, perkalian, dan pengurangan dapat dipelajari diagram alir Gambar 38 dan
listing program berikut ini.

MatKali
jb,jkx,jky,x,y,z Mulai

Baca
m = 1. .jkx
jb, jky, jkx

n =1. . jky Baca-1


jb,jkx,x

z[m,n] = 0 Baca-1
jkx,jky,y

k = 1. . jkx MatKali
jb,jkx,jky,x,y,z

z[m,n] = z[m,n] + Tulis-1


x[m,k]*y[k,n] jb,jkx,x

Tulis-2
jb,jky,y

Tulis-1
jb,jky,z

END END

Gambar 38. Diagram alir perkalian matrik


Diagram alir pada Gambar 31, dapat diterjemahkan sebagai berikut:
Program Operasi_Matrik;
Uses crt;
Type

188
matrik=array[1..50,1..50] of real;
var
m,n, p, q: integer; {dimensi dari matrik}
A,B,C: matrik; {matrik A, B sebagai input, C sebagai hasil}
{ Membaca Elemen Matrik}
Procedure bacamatrik(var A:matrik; m,n:integer);
Var
i,j: integer; {faktor pengulang}
begin
for i:=1 to m do
begin
for j:=1 to n do
read(A[i,j]);
readln;
end;
end;
Procedure tulismatrik (A:matrik; m,n:integer);
Var
i,j: integer; {faktor pengulang}
begin
for i:=1 to m do
begin
writeln;
for j:=1 to n do
write(A[i,j]:6:2);
end;
writeln;
end;
Procedure check_matrik(A,B,C:matrik; m,n,p,q:integer);
Var i,j :integer;

189
Begin
if (m=p) and (n=q) then
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
C[m,n]=A[m,n]+B[m,n])
end;
end;
end
else
writeln('Dimensi Matrik Tidak Cocok')
end;
Procedure perkalian_matrik(A,B,C:matrik; m,n,p,q:integer);
Var i,j, k :integer;
C1: matrik;
Begin
if (n=p) then
begin
for i:=1 to m do
begin
for j:=1 to p do
begin
C1[i,j]:=0;
for k:=1 to n do
C1[i,j]:=C1[i,j]+A[i,k]*B[k,j];
end;
end;
n:=q;

190
for i:=1 to m do
for j:=1 to n do
C[i,j]:=C1[i,j];
end
else
writeln('Dimensi Matrik Tidak Cocok')
end;
procedure Transpose(A,B:matrik; m,n,p,q:integer);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
begin
B[m,n]=A[n,m]
end;
end;
end;

F. Operasi Array Karakter


String adalah array (susunan) dari character (huruf).  Jadi pada hakekatnya kita
dapat mengambil masing-masing character dari suatu string dengan memperlakukannya
sebagai elemen dari array. Pengerjaan suatu string hanya mempunyai sebuah operator,
yaitu ‘ + ‘. Bila operator ini digunakan untuk penambahan nilai numeric, maka akan
berfungsi penjumlahkan dua buah nilai elemen numeric, tetapi pada string operator ini
digunakan untuk merangkai dua buah elemen string menjadi sebuah string. Panjang
maksimum suatu string yang diijinkan oleh Pascal adalah 255 karakter.
 Contoh 1
Program Operasi_Contoh;
Uses Wincrt;
Var
191
Nama : String;
Begin
Nama := 'Suci Rahmawati Roselina ';
Writeln(Nama[1]);
Writeln(Nama[8]);
Nama[6] := 'K';
Nama[16] := ' ';
Writeln(Nama);
End. 
Jadi contoh 1 yaitu Program Operasi_Contoh di atas akan menghasilkan Nama[1]
adalah huruf 'S', dan Nama[8] adalah huruf 'h', Sedangkan Nama[6] := 'K'; dan
nama[8] serta nama[16] := ‘ ’ akan menyebabkan string nama ('Suci Rahmawati
Roselina) berubah menjadi ''Suci Kahmawati oselina '. Kita juga dapat
mendeklarasikan string dengan cara seperti berikut :
  Var
Nama : String[40];
Alamat : String;
Cara pendeklarasian di atas berarti bahwa variabel Nama dapat menampung
maksimal 40 character, sedangkan variabel Alamat dapat menampung maksimal 255
character. Apabila panjang string pada deklarasi tidak ditentukan, secara otomatis
pascal menyediakan 255 character untuk string.  Disamping hal di atas, kita juga dapat
memesan variabel array string dengan membuat pada deklarasi variable sebagai berikut:
  NamaMhs : Array[1..10] Of String[30];

 Untuk memudahkan anda memahaminya perhatikan contoh 2 berikut:

Program Operasi_Contoh2;
Uses Wincrt;
Var
NamaSiswa : Array[1..10] Of String[30];

192
i : integer;
Begin
for i := 1 to 5 do
Begin
Write('nama siswa ke ',i); Readln(namasiswa[i]);
end;
Writeln(Namasiswa[1]);
Writeln(Namasiswa[7]);
Writeln(Namasiswa[5]);
End.
Apabila program ini kita running dengan memasukan nama Badu, Mince,
Roselina, Fajar, Suci, maka akan menghasilkan Badu dan Suci. Kenapa demikian ?,
Pelajarilah contoh 2 dengan baik. Tentu anda mendapatkan jawabannya. Pada Turbo
Pascal juga terdapat beberapa fungsi bawaan Pascal yang dapat digunakan untuk oprasi
string. Adapun fungsi pembantu tersebut antara laian adalah :
1. Length
Length berfungsi untuk mendapatkan panjang string yang telah didefenisikan,
dengan sintaks pemakaiannya adalah sebagai berikut:
     Syntax  : length(s)
   Contoh : : n:=length(s);
   Misalnya s:='Apa kabar ?'; n akan berisi 11.
2. Copy, mendapatkan bagian dari suatu string.
     Syntax  : copy(s,from,howmuch)
   Contoh : : st:=copy(s,5,5);
     Menggambil 5 character mulai posisi ke 5
     Misalnya s:='Apa kabar ?'; st akan berisi 'kabar'.
3. Pos
Pos berfungsi untuk mengambil posisi substring dari suatu string yang telah
didefenisikan, dengan sintaks pemakaiannya adalah sebagai berikut:
     Syntax  : Pos(substr,s)

193
   Contoh : : n:=pos('kabar','Apa kabar ?');  { n:=5; }
   Jika substring tidak ditemukan, maka akan mengembalikan 0.

4.  Val
Val berfungsi untuk mengkonversi tipe data string menjadi tipe data numeric,
dengan sintaks pemakaiannya adalah sebagai berikut:
    Syntax  : val(strvar,numvar,errorcode)
strvar adalah suatu variabel string yang akan di konversi numvar adalah variabel
integer atau real. Errorcode adalah variabel integer yang akan berisi nilai
kesalahan, jika berisi 0 sukses. Contoh : :
Program String_Contoh;
Uses Wincrt;
Var
s : string;
e : integer;
r : real;
Begin
Write('Masukan sebuah bilangan : '); readln(s);
val(s,r,e);
if e<>0 then writeln('Kesalahan pada posisi : ',e)
else
writeln('Hasil konversinya adalah : ',r:4:3);
End. 
5. Str
Fungsi Str berfungsi untuk mengkonversi numerik menjadi string, dengan sintaks
pemakaiannya   numvar,strvar).
Contoh :
Var
  s : string;
  i : integer;
BEGIN

194
  write('Masukan Bilangan bulat : '); readln(i);
  str(i,s);
  writeln('Bilangannya adalah : ',s);
END.
Jika anda bekerja dengan type real, anda perlu melakukan pemformatan sebelum
konversi ke string.
 Contoh : :
 Var
  s : string;
  r : real;
Begin
  write('Masukan Bilangan real : '); readln(r);
  str(r:4:3,s);
  writeln('Bilangannya adalah : ',s);
End.
6. Concat,
Concat berguna untuk mengabung dua string atau lebih, dengan sintaks :
concat(s1,s2,...,sn)
    Contoh :  st:=concat(s1,s2);
Jika s1 adalah 'Penta', dan s2 adalah 'COM', maka st menjadi 'PentaCOM'   
Sebenarnya kita juga dapat menggunakan operator + untuk mengabung string.
    Contoh :  st:=s1 + s2;     atau sama dengan st:=concat(s1,s2);
7. Insert berguna untuk menyisip suatu string kedalam string lain dari posisi
tertentu,denga sintaks  : insert(source,target,index).
Contoh :

Var
  s1, s2 : string;
Begin
  s1:='not ';

195
  s2:='I do love you';
  insert(s1,s2,6);
  writeln(s2);      { I do not love you }
End.
8. Delete
Delete berguna menghapus sejumlah character dari string mulai posisi ke I,dengan
sintaks delete(s,i,n);
Contoh:
Var
  s : string;
Begin
  s:='I am not responsible for that !';
  delete(s,6,3);
  writeln(s);   { I am responsible for that }
End.
Sebagai program tambahan, perhatikan program berikut ini
Program String_tambahan;
Uses WinCrt;
var nama : string;
urutan, posisi: integer;
Begin
nama:='Dijas Keren';
writeln('Yang ini delete');
for urutan:=1 to 11 do
Begin
posisi:= 13 - urutan;
delete(nama, posisi, 1);
writeln(nama);
End;
writeln;

196
nama:='DijasKeren';
writeln('Yang ini insert');
writeln('Sebelum di Insert : ', nama);
insert('-', nama, 6);
writeln('Setelah di Insert : ', nama);
readln;
End.
Jadi isi penggunaan delete itu maksudnya menghapus (string, posisinya, jumlah
yang di hapus). Sedangkan insert berguna untuk menyisip (apa yang mau
disisipkan, string, posisinya).
9. Upcase.
Upcase berfungsi untuk merubah huruf kecil menjadi huruf kapital untuk
mudahnya perhatikan contoh berikut ini:
Program convert_upper;
USES Wincrt;
Var
text : string;
i : integer;
BEGIN
Clrscr;
writeln ('Input some text in all lowercase letters'); readln (text);
for i := 1 to length(text) do
begin
text[i] := upcase(text[i]);
end;
writeln ('The uppercase text is: ');
writeln (' ', text);
readln;
END.

197
Berikut ini diberikan tambahan program pemakaian array untuk melewatkan
parameter nilai dan parameter acuan. Contoh Program :
Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const Garis ='---------------------------------------------------';
Type
Vektor = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Mutu = Array[1..10] of Char;
Var
i, Banyak : Integer;
Procedure Proses(Nama:Vektor ; Nilai:Bulat);
Var
Keterangan : String;
Huruf : Char;
Begin
Writeln(Garis);
Writeln('Nama Nilai Huruf Keterangan');
Writeln(Garis);
For i := 1 to Banyak Do
Begin
If Nilai[i] > 90 Then
Begin
Huruf :='A';
Keterangan :='Istimewa';
End;
If (Nilai[i]<90) And (Nilai[i]>70) Then
Begin
Mutu:='B';
Keterangan :='Memuaskan';
End;
If (Nilai[i]<70) And (Nilai[i]>60) Then
Begin
Mutu:='C';
Keterangan :='Cukup';
End;
If (Nilai[i]<60) And (Nilai[i]>45) Then
Begin
Mutu:='D';
Keterangan :='Kurang';
End;
If Nilai[i]< 45 Then
Begin

198
Mutu:='E';
Keterangan :='Sangat kurang';
End;
Writeln(Nama[i]:15,' ',Nilai[i]:4,' ',Mutu,' ',Keterangan:15);
End;
Writeln(Garis);
End;
Procedure Masuk_Data;
Var
Nama : Vektor;
Nilai : Bulat;
Begin
Write('Banyak data =');Readln(Banyak);
For i:= 1 to Banyak Do
Begin
ClrScr;
Writeln('Data ke - ',i);
Write('Nama ='); readln(Nama[i]);
Write('Nilai =');readln(Nilai[i]);
End;
End; {modul Utama}
Begin
Masuk_Data;
Proses(Nama,Nilai);
Readln;
End.

G. Soal Latihan 6

1. Mendefinisikan array A,B,C berukuran 10 sel dan berisi bilangan integer


2. Mengisi array A dan B berdasarkan masukan user
3. Buat program untuk menghitung banyaknya bilangan genap dan ganjil serta total dari
bilangan-bilangan genap dan ganjil yang ada dari n buah bilangan.
4. Buat program untuk menampilkan deret bilangan prima dari 1 sampai dengan n,
dimana n adalah inputan dari user.
5. Buatlah tabel harga fotokopian dari 1 – 100 lembar, dimana harga perlembar adalah
80 rupiah!
6. Buatlah perintah pokok yang digunakan untuk pengisian matriks A sebagai berikut :
1 2 3 4
0 2 3 4

199
0 0 3 4
0 0 0 4

7. Buatlah perintah pokok yang digunakan untuk pengisian matriks A sebagai berikut :
1 0 0 0
2 2 0 0
3 3 3 0
4 4 4 4

8. Diberikan suatu Array X[1..4] dan Y[1..4], dengan nilai X=4,6,8,10 dan Y=2,3,4,5.
Suatu Algoritma :
Hasil = 0
For i = 1 to n
Hasil= hasil+X[i]/Y[i]
End_i

Bila Algoritma ( dengan n=4 ) dikerjakan, maka nilai dari hasil adalah :
9. Buat algoritma dan program untuk menjumlahkan dua matriks A dan matriks B,
dimana hasilnya disimpan pada array C
10. Menuliskan isi array A,B dan C, dengan menggunakan sebanyak mungkin program
pembantu (subprogram).
11. Buatlah algoritma dan program yang dapat digunakan untuk mengurutkan dari harga
terkecil sampai dengan nilai terbesar, program dibuat dalam bentuk subprogram yang
terdiri dari
Procedure yang terdiri dari:
a. Procedure Masukkan_data
b. Procedure Mengurutkan_data
c. Procedure Penampilkan_hasil
12. Apakahan dimaksud dengan string ?
13. Jelaskan hubungan antara string dan character pada pascal !
14. Buat program animasi teks, dengan menampilan kalimat pada tengah-tengah layar
dan yang sebelumnya bergerak dari kiri ke kanan dan kanan ke kiri.
15.  Buat program animasi teks, dengan menampilan kalimat pada tengah-tengah layar
dengan huruf muncul satu per satu.

200
16. Palindrom adalah sebuah kalimat yang jika dibaca dari belakang sama dengan dibaca
dari depan. Contoh “murah ada harum”, atau “ kasur ini rusak”, Rencanglah
program untuk mengetahui apakah sebuah kalimat merupakan palindrome atau tidak
17. Buatlah program untuk menentukan apakah kata yang kita inginkan terdapat dalam
sebuah kalimat yang ditulis.

201

Anda mungkin juga menyukai