Anda di halaman 1dari 17

1 Array dan Tipe data bentukan

Overview

Dalam dunia nyata, struktur data yang dihadapi sangat


beragam dan penggunaan variabel dengan tipe data dasar
memiliki keterbatasan pada banyaknya nilai yang dapat
disimpan. Dengan menggunakan array dan tipe data
bentukan, dapat dilakukan pemodelan struktur data dengan
lebih baik bahkan untuk struktur data yang relatif kompleks.

Tujuan

1. Memahami tipe data array dan keuntungan yang dapat


diberikan
2. Memahami array yang memiliki dimensi lebih dari satu
3. Memahami cara menentukan tipe data bentukan dan
Array 1
menggunakannya dalam program

1.1 Array

1.1.1 Array dimensi tunggal


Sebagai lanjutan dari materi di bab III tentang tipe data,
pada bab ini akan dibahas lebih lanjut mengenai tipe data
array.
Pada dasarnya sebuah variabel digunakan untuk
menyimpan nilai. Pada variabel yang bertipe integer, atau
char hanya dapat digunakan untuk menampung satu buah
nilai saja.
Tipe data array merupakan tipe data terstruktur yang
disediakan agar sebuah variabel dapat digunakan untuk
menyimpan banyak nilai dengan tipe data yang sama.
Variabel yang dideklarasikan dengan tipe data array
dapat direpresentasikan dengan bentuk larik tunggal sebagai
berikut :

Representasi array integer 1 (satu) dimensi

My_array 2 4 6 ... 98 10
= 0
indeks
1 2 3 ... 49 50

Tipe data array ini dilengkapi dengan indeks yang


berguna sebagai identitas elemen-elemen yang dimiliki, dapat
juga disebut sebagai alamat elemen pada saat digunakan
untuk mengisi elemen atau pun membaca isi dari elemen
array.
Indeks yang digunakan dalam array tidak selalu dalam
bentuk bilangan integer, namun dapat juga menggunakan
tipe karakter karena kedua tipe inilah yang memiliki
keterurutan (terdapat suksesor dan predesesor). Jika indeks
yang digunakan bertipe integer maka, keterurutannya
mengikuti pola bilangan, biasanya dimulai dari bilangan 1
sebagai penanda elemen pertama pada array. Jika indeks
yang digunakan adalah bertipe karakter, maka

Array 2
keterurutannya mengikuti pola urutan enumerasi karakter,
biasanya dimulai dari huruf ‘A’ atau ‘a’ sebagai penanda awal
elemen array. Meskipun begitu, yang umum digunakan
sebagai indeks pada array adalah bilangan bertipe integer.
Untuk mendeklarasikan variabel dengan tipe data array
pada notasi aloritma, digunakan pola sebagai berikut:

...
Kamus data
Nama_variabel : array [x..y] of tipe_data
...

Keterangan:
Nilai x merupakan nilai awal indeks pada array, dan nilai y
merupakan nilai akhir pada indeks array.

Contoh :
...
Kamus data
arrHari : array [1..7] of string
arrBulan : array [1..12] of string
arrFrekuensi : array [‘a’..’z’] of integer
...

Nilai-nilai pada setiap elemen dapat dimasukkan dan


dibaca dengan cara sebagai berikut:

1. Memasukkan nilai
Jika kita ingin memasukkan nama-nama hari maka
dibutuhkan sebuah array dengan 7 (tujuh) buah elemen
dengan tipe data string.

Contoh :
Kamus data
arrHari : array [1..7] of string
Algoritma
arrHari[1]  ‘Senin’
arrHari[2]  ‘Selasa’
arrHari[3]  ‘Rabu’

Array 3
...

2. Membaca nilai
Jika ingin membaca suatu nilai dari sebuah array maka,
dapat dilakukan dengan cara mengakses nama variabel
array diikuti dengan indeks.

Contoh :
Diketahui sebuah array integer dengan 5 (lima) buah
elemen, apabila digambarkan akan tampak sebagai
berikut:

arrGenap 2 4 6 8 10
=
1 2 3 4 5

Maka deklarasi kamus datanya adalah:


Kamus data
arrGenap : array [1..5] of integer
bil : integer
Algoritma
{menampilkan isi dari elemen ke-3}
output(“Isi elemen = “, arrGenap[3])

{menjumlahkan elemen pertama dengan keempat}


bil  arrGenap[1] + arrGenap[4]

1.1.2 Array multidimensi


Tipe data array dapat digunakan untuk menyimpan nilai
dalam bentuk 2 (dua) dimensi bahkan lebih hingga n-dimensi
(n=1,2,3,...). Sebagai contoh bentuk tipe data array dua
dimensi adalah matriks. Matriks merupakan kumpulan nilai
yang disusun dalam aturan baris (row) dan kolom (column).
Bentuk array semacam ini menggunakan 2 (dua) buah
kelompok indeks yang masing-masing direpresentasikan
sebagai indeks baris dan kolom. Jika ingin memasukkan atau
membaca sebuah nilai pada matriks maka, harus diketahui
terlebih dahulu indeks baris dan kolomnya.
Representasi array string 2 (dua) dimensi

Array 4
indeks
1 2 3 4 kolom

1 ‘A’ ‘B’ ‘C’ ‘D’

2 ‘E’ ‘F’ ‘G’ ‘H’


indeks
baris
3 ‘I’ ‘J’ ‘K’ ‘L’

4 ‘M’ ‘N’ ‘O’ ‘P’

Dalam menggambarkan array multidimensi, hanya


terbatas hingga dimensi ke-3, yakni dengan menggunakan
bangun ruang, namun dalam kenyataannya, tipe data array
ini dapat dibentuk menjadi lebih dari tiga dimensi atau
menjadi n-dimensi.

Representasi array 3 (tiga) dimensi

1
2
3
4 X
4 3
2
5 1
1 2 3 4
Z

Array 5
Penulisan notasi algoritma untuk mendeklarasikan tipe
data array multidimensi cukup dengan memodifikasi deklarasi
array satu dimensi, yakni dengan menambahkan tanda koma
“,” pada bagian definisi banyaknya elemen array dan
menambahkan ukuran elemen yang diinginkan.

Berikut adalah pola deklarasi array dua dimensi:

Nama_variabel : array [v..w, x..y] of tipe_data

Berikut adalah pola deklarasi array tiga dimensi:

Nama_variabel : array [t..u, v..w, x..y] of tipe_data

Berikut adalah pola deklarasi array lima dimensi:

Nama_variabel : array [p..q, r..s, t..u, v..w, x..y] of


tipe_data
Contoh deklarasi array menggunakan notasi algoritma:

1 2

1 1 3

2 4 7

Program Matrix_2x2
Kamus data
{Matriks berukuran 2x2}
arrMatrix : array [1..2,1..2] of integer
r, c : integer

BEGIN
{Mengisi matriks dengan nilai-nilai}
arrMatrix[1,1]  1
arrMatrix[1,2]  3
arrMatrix[2,1]  4
arrMatrix[2,2]  7

Array 6
{Menampilkan isi arrMatrix}
r traversal [1..2]
c traversal [1..2]
output(arrMatrix[r,c])
END.

1.2 Tipe data bentukan


Pada bab III telah ditunjukkan bahwa dalam
mendeklarasikan variabel harus didefinisikan pula tipe
datanya dan telah ditunjukkan pula berbagai tipe data dasar.
Dalam membuat program, kadangkala akan dihadapkan
dengan struktur data yang tidak sederhana dan apabila hanya
ditangani dengan tipe data dasar saja maka, pembuat
program akan kesulitan merumuskan komposisinya.
Sebagai contoh, program yang akan dibuat melibatkan
data tentang mahasiswa, maka untuk variabel mahasiswa
akan sulit ditentukan tipe datanya karena pada mahasiswa
masih terdapat beberapa elemen yaitu, nama, nomor induk
mahasiswa, jenis kelamin, alamat, dan elemen-elemen yang
lainnya.
Tantangan berikutnya adalah bagaimana cara
menyimpan data-data mahasiswa tersebut jika jumlah
mahasiswa lebih dari satu? Tentunya hal ini akan sangat sulit
jika harus diselesaikan dengan tipe data dasar saja. Oleh
karena itu diperlukan adanya suatu tipe data baru yang
digunakan untuk menangani kasus di atas, yaitu dengan
menggunakan tipe data bentukan.
Tipe data bentukan merupakan suatu tipe data yang
dirancang/dibentuk (dan diberi nama) dari beberapa elemen
bertipe tertentu yang sudah dikenal. Jadi di dalam tipe data
bentukan akan terdapat elemen dengan tipe data dasar dan
dapat juga terdapat tipe data bentukan lain yang telah
didefinisikan sebelumnya.
Tujuan digunakannya tipe data bentukan adalah supaya
perancang program mendapatkan suatu tipe data dimana
seluruh komponennya secara keseluruhan memiliki makna
semantik dan di dalamnya terdapat keterkaitan antar
komponen. Pada data mahasiswa telah dijabarkan beberapa
elemen yang ada maka, dengan menggunakan tipe data

Array 7
bentukan ini, perancang program dapat mendefinisikannya ke
dalam program.
Implementasi tipe data bentukan dalam bahasa
pemrograman sangat bervariasi tergantung dari struktur
bahasa pemrograman itu sendiri. Dalam notasi algoritmik,
sebuah tipe bentukan (tipe komposisi) dapat disusun sebagai
berikut :

type nama_type < elemen1 : type_data1,


elemen2 : type_data2,
...>

Contoh pada data mahasiswa dapat dijabarkan elemen-


elemennya sebagai berikut:
1. Nim bertipe longint
2. Nama bertipe string
3. Umur bertipe word
Jika dituliskan dalam notasi algoritmik maka, akan menjadi:

type Mahasiswa : <nim : longint,


nama : string,
umur : word
>

Operasi dalam menggunakan tipe data bentukan


memiliki perilaku yang sama dengan operasi pada tipe data
dasar, hanya perbedaannya adalah pada cara mengaksesnya.
Tipe data bentukan memiliki beberapa variabel/elemen yang
berada di dalamnya, oleh karena itu cara mengaksesnya
menggunakan tanda dot/titik ‘.’
Contoh:
Jika akan mendefinisikan nama variabel Mhs dengan tipe data
Mahasiswa maka pendeklarasiannya adalah:
Kamus data
Mhs : Mahasiswa

Jika akan mengisi elemen nim pada variabel Mhs maka:


Mhs.nim  30107001

Jika akan menampilkan isi dari elemen nim pada variabel Mhs
maka:
Array 8
output(Mhs.nim)

Berikut adalah contoh penggunaan tipe data bentukan secara


lengkap:

Program Pendataan_Mahasiswa

Kamus data
Type Mahasiswa : <nim : longint,
nama : string,
umur : word
>

{Menggunakan tipe data Mahasiswa pada variabel Mhs}


Mhs : Mahasiswa

Begin
{mengisi elemen-elemen dalam variabel Mhs}
Mhs.nim  30107001
Mhs.nama  “Luna Maya”
Mhs.umur  18
{menampilkan isi elemen-elemen dalam Mhs}
output(Mhs.nim)
output(Mhs.nama)
output(Mhs.umur)
End.

1.3 Kombinasi Tipe data bentukan dan Array

1.3.1 Tipe data bentukan di dalam array


Permasalahan yang berikutnya adalah bagaimana
caranya memasukkan data mahasiswa dengan jumlah yang
banyak ? Di sini dapat digunakan array sebagai sarana untuk
menyimpan data mahasiswa dalam satu variabel.
Cara mendeklarasikannya adalah sebagai berikut:

type Mahasiswa : <nim : longint,


nama : string,
makul : array [1..3] of string

Array 9
>

Kamus data
Mhs : array [1..50] of Mahasiswa

Jika direpresentasikan dalam bentuk gambar maka, akan


tampak sebagai berikut:
30107002
Amingwati
18

Mhs ...
=
1 2 3 ... 50

30107001
Luna Maya
18

Untuk mengimplementasikan penggambaran data di atas


maka, cara pengisian array Mhs adalah sebagai berikut:

...
Mhs[1].nim  30107001
Mhs[1].nama  “Luna Maya”
Mhs[1].umur  18

Mhs[2].nim  30107002
Mhs[2].nama  “Amingwati”
Mhs[2].umur  18
...

Dengan demikian data mahasiswa dapat disimpan dalam satu


buah variabel bertipe array dengan tipe Mahasiswa.

Array 10
1.3.2 Array di dalam Tipe data bentukan
Pada contoh sebelumnya telah ditunjukkan bahwa di
dalam sebuah elemen array dapat diisi dengan suatu nilai
yang memiliki tipe data bentukan. Jika kondisi yang dihadapi
oleh perancang program adalah kondisi yang sebaliknya,
yaitu memasukkan variabel bertipe array menjadi salah satu
atau beberapa elemen di dalam variabel yang memiliki tipe
data bentukan, bagaimanakah cara mendefinisikan dan
mengoperasikan variabel tersebut?
Di dalam tipe data bentukan, satu atau beberapa
elemennya diperbolehkan untuk menggunakan tipe data
array. Salah satu contoh kasusnya adalah bagaimana
mendefinisikan data mahasiswa yang mengambil mata kuliah.
Dalam kasus ini, seorang mahasiswa diperbolehkan
mengambil lebih dari satu mata kuliah dalam satu semester.
Jika digambarkan akan tampak sebagai berikut:

Mahasiswa

30107001
“Luna Maya”
Makul = IS116 MF102 IS108
1 2 3

Dari gambar di atas dapat dilihat bahwa seorang mahasiswa


mengambil tiga mata kuliah maka, cara mendeklarasikan tipe
datanya adalah:

type Mahasiswa : <nim : longint,


nama : string,
makul : array [1..3] of string
>

Kamus data
Mhs : Mahaasiswa

Dalam hal ini yang memiliki tipe data array adalah elemen di
dalam tipe data bentukan, oleh karena itu cara mengakses
elemen array yang terdapat di dalam tipe Mahasiswa adalah
sebagai berikut:
Array 11
Mhs.makul[1]  “IS116”
Mhs.makul[2]  “MF102”
Mhs.makul[3]  “IS108”

1.3.3 Array dari tipe bentukan yang mengandung array


Pada kasus ini tujuannya adalah mendefinisikan tipe
data untuk menyimpan data dengan tipe data bentukan dan
di dalam tipe data bentukan tersebut terdapat elemen
dengan tipe array.
Pada contoh kasus di sub bab 6.3.2 ditunjukkan seorang
mahasiswa mengambil mata kuliah lebih dari satu.
Pertanyaan berikutnya adalah bagaimana jika jumlah
mahasiswanya yang lebih dari satu?
Caranya adalah dengan membuat variabel bertipe array
dimana array tersebut memiliki tipe data bentukan yang di
dalamnya terdapat array.

type Mahasiswa : <nim : longint,


nama : string,
makul : array [1..3] of string
>

Kamus data
Mhs : array [1..50] of Mahasiswa

Dapat dilihat bahwa dalam tipe data Mahasiswa terdapat


elemen ‘makul’ yang memiliki tipe array, kemudian pada
bagian kamus data didefinisikan bahwa variabel Mhs
merupakan tipe array dengan tipe data Mahasiswa.

Jika digambarkan akan tampak sebagai berikut:

Mhs ...

Array 12
=
1 2 3 ... 50

30107001
“Luna Maya”
Makul = IS116 MF102 IS108
1 2 3

Cara untuk mengisi satu elemen ‘Makul’ dalam variabel Mhs


adalah sebagai berikut:

...
Mhs[1].Makul[1]  “IS116”
Mhs[1].Makul[2]  “MF102”
Mhs[1].Makul[3]  “IS118”
...

Demikian pula untuk mengakses suatu nilai pada elemen


Makul di variabel Mhs adalah:

...
{Menampilkan isi elemen makul ke-1}
output(Mhs[1].Makul[1])
...

Array 13
Rangkuman

1. Tipe data array digunakan untuk


menampung/menyimpan banyak nilai pada satu variabel.
2. Pada setiap elemen pada tipe data array ditandai
dengan indeks.
3. Indeks penanda elemen pada array menggunakan tipe
data yang memiliki keterurutan.
4. Tipe data array memiliki dimensi minimal satu hingga
n-dimensi.
5. Pada tipe data array satu dimensi memiliki satu
indeks, kemudian pada array dua dimensi memiliki dua
indeks, demikian seterusnya dimana jumah indeks
mengikuti banyaknya dimensi array yang dibentuk.
6. Tipe data bentukan adalah tipe data yang
dirancang/dibentuk (dan diberi nama) dari beberapa
elemen bertipe tertentu.
7. Tipe data bentukan dapat disimpan dalam variabel
bertipe array.
8. Elemen dalam tipe data bentukan dapat menggunakan
variabel bertipe array.
9. Tipe data bentukan yang di dalamnya terdapat elemen
bertipe array, dapat disimpan dalam variabel bertipe
array.

Array 14
Kuis Benar Salah

1. Variabel dengan tipe array dapat menyimpan


maksimal hanya satu buah nilai.
2. Berikut adalah contoh deklarasi variabel bertipe array
yang benar:
Kamus data
myArray : array [3..10] of real

3. Berikut adalah contoh deklarasi variabel betipe array


yang salah:
Kamus data
myArray : array [1..2,’A’..’B’] of string

4. Matriks yang dideklarasikan pada soal no.3 memiliki


ukuran 2X2.
5. Matriks yang dapat direpresentasikan ke dalam
gambar adalah matriks dengan dimensi tidak lebih dari
tiga.
6. Untuk mendefinisikan data nomor induk mahasiswa
yang berupa bilangan dengan lebar delapan digit, dapat
digunakan tipe data integer.
7. Untuk mendefinisikan data nomor induk mahasiswa
yang berupa angka dengan lebar empat digit dapat
digunakan tipe data string.
(Deklarasi kamus data berikut untuk soal nomor 8-10)
Kamus data
type Pengirim : <id_supp : string,
nama : string,
alamat : string
>
type Produk : <id : string,
merk : string,
jenis : string,
qty : integer,
supplier : array [1..10] of pengirim,

Array 15
>
Barang : array [1..1000] of Produk

8. Produk[1].merk  “Polkom”
9. Barang[100].supplier[1]  “CV.Putra Jaya”
10. Barang[1].supplier[3].id_supp  “PK1712”

Latihan

1. Deklarasikan sebuah variabel dengan tipe array yang


memiliki satu dimensi dengan jumlah elemen sepuluh
buah dan menggunakan indeks bertipe karakter!
2. Bagaimanakah mendefinisikan data yang memiliki
karakteristik sebagai berikut:
a. Terdapat data pelanggan yang memiliki
beberapa elemen, yaitu : nomor, nama, nomor telepon
b. Data pelanggan tersebut akan disimpan dalam
satu variabel dengan nama customer dimana variabel
ini berbentuk array hingga 1000 elemen
3. Buatlah program yang dapat memindahkan isi array
dengan 10 elemen dengan aturan sebagai berikut:
a. Data berupa bilangan integer
b. Data di posisi indeks ke-1 dipindahkan ke
indeks nomor 10, kemudian data di posisi indeks ke-2
dipindahkan ke indeks nomor 9 demikian seterusnya
hingga data di posisi indeks ke-10 berada pada indeks
ke-1.
4. Buatlah program untuk melakukan operasi transpose
matriks dengan ukuran 3X3.
Catatan: operasi transpose adalah memindahkan data
baris pertama menjadi kolom pertama, baris kedua
menjadi kolom kedua dan seterusnya
Ilustrasi:

Array 16
5. Penjumlahan dua buah matriks:
a. Buatlah deklarasi tiga buah matriks A dan B
dengan ukuran 3X3 dimana setiap elemennya memiliki
tipe data integer!
b. Isilah matriks A dan B pada soal nomor 1
dengan bilangan sembarang!
c. Buatlah program yang digunakan untuk
menjumlahkan matriks A dan B dan hasilnya disimpan
pada matriks C! (Gunakan pengulangan yang paling
dikuasai)

Array 17

Beri Nilai