1. Pengertian
Salah satu Stuktur data yang teramat penting adalah Array atau larik. Array merupakan bagian dasar yang disebut dengan Blok, guna keperluan pembentukan suatu struktur dara yang lebih kompleks. Array merupakan suatu himpunan hingga elemen, terurut dan homogen.
1.1 Array Dimensi Satu
Sebuah Array berdimensi satu, yang kita misalkan dengan nama Nilai, seperti gambar berikut :
NILAI (1) | NILAI(2) | -------- | NILAI(N) |
Subskrips atau indeks dari elemen Array menyatakan posisi elemen pada urutan dalam array tersebut. Secara umum, suatu array dimensi satu A dengan tipe Data T dan subskrip bergerak dari L sampai dengan U, ditulis sebagai A(L:U) = A(I)), I =L, L+1, L+2,…., U dan setiap elemen A(I) bertipe Data T. Harga minimum dari subskrip dari Array disebut batas bawah atau lower bound, sedangkan harga maksimumnya disebut batas atas atau upper bound.
1.2 Array Dimensi Banyak
Sebuah Array dimensi banyak atau multi-dimensional Array didefinisikan sebagai sebuah Array yang elemennya berupa Array juga. Misalnya Array A mempunyai M elemen yang berupa Array yang terdiri dari N elemen. Jika diganbarkan akan berbentuk baris dan kolom, seperti berikut
1 2 N
| | | |
| | | |
| | | |
| | | |
1
2
M
Untuk itu diperlukan dua buah subskrip, yang pertama digunakan untuk menyatakan baris,sedangkan yang kedua untuk posisi kolom.cross section atau penumpang suatu Array dimensi dua adalah pengambilan salah satu subskrip, misalnya subskripbaris tetap dan supskrip yang satunya lagi kita ubah-ubah sepanjang rangenya.Transposevdari suatu array dimensi dua adalah penulisan baris menjadi kolom dari suatu Array.
1.3 Mendeklarasikan Array Dalam Bahasa Pemograman
Misalnya kita hendak mendeklarasikan Array BARU yang merupakan Array berdimensi satu dengan nilai subskrip 1 sampai 24 dan masing-masing elemen bertipe Data integer (nilainya antara 0 hingga 99 derajat ).
Dalam Bahasa COBOL dapat ditulis :
01 TABEL- BARU
02 BARU OCCURS 24 TIMES
PIC 99
Dalam Bahasa Pascal :
var BARU : Array [1…24] of Integer
Dalam Bahasa Basic :
12 DIM BARU(24)
Untuk mendeklarasikan sebuah Array dari gaji 100 pekerja untuk 3 proyek, dalam COBOL ditulis
01 TABEL- GAJI
02 MHS OCCURS 100 TIMES
03 PROYEK OCCURS 3 TIMES
PIC 99V9
Dalam PASCAL ditulis
var gaji : Array[1..100,1..3] of real
Dalam BASIC dapat ditulis
08 DIM GAJI(100,8)
1.4 Pemetaan Array Dimensi Satu Ke Storage
Seperti halnya struktur data yang lain, ada beberapa cara untuk menyajikan Araay dindalam memori. Skema penyajian dapat dievaluasi berdasarkan 4 karakteristik, yakni
(1) Kesederhanaan dari akses elemen.
(2) Mudah untuk ditelusuri.
(3) Efisiensi dari utilitasistorage.
(4) Mudah dikembangkan.
Misalnya Array dimensi satu NOPEG dengan batas bawah subskrip 1 dan batas atas supskrip
(1) Address awal dari ruang storage yang dialokasikan bagi Array tersebut
(2) Ukuran dari masing-masing elemen Array.
1.5 Pemetaan Ke Storage Terhadap Array Dimensi Banyak
Karena memori komputer adalah linear, maka Array berdimensi banyak harus dilinearkan apabila akan dipetakan kedalam storage. Salah satu alternative untuk pelinearan tersebut adalah menyimpan pertama kali baris pada Array, kemudian baris kedua dan ketiga dan seterusnya disebut row major order.
Sebagai contoh, Array yang dideklarasikan sebagai BASE(1:4,1:6), yang secara logic dapat di gambarkan sebagai berikut :
1 2 3 4 5 6
| | | | | |
| | | | | |
| | | | | |
| | | | | |
1
2
3
4
Rate (2,4)
Gambar 1.1 : Array BASE secara Logik dalam row major order
Gambar 1.2 berikut menggambarkan secara fisik
Baris 1 Baris 2 Baris 3 Baris 4
| | | | | | | | | | | | | | | | | | | | | | | |
Gambar 1.6 Array BASE secara fisik dalam row major order
1.6 Triangular Array (Array Segitiga)
Tringular array dapat merupakan
N
SIGMA I = N(N+1)/2
I=I
Gambar 1.3 menunjukan Triangular Array berorder 6x6
X X X X X X X 0 0 0 0 0
0 X X X X X X X 0 0 0 0
0 0 X X X X X X X 0 0 0
0 0 0 X X X X X X X 0 0
0 0 0 0 X X X X X X X 0
0 0 0 0 0 X X X X X X X
(a) (b)
Ket : (a) Upper Triangular Array
(b) Lower Triangular Array
1.7 RECORD
Sebuh record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan menggunakan namanya masing-masing. Suatu Field dapat terdiri atas beberapa subfield.
Sebagai contoh, Data personali dari seorang pegawai suatu perusahan di Amerika Serikat, merupakan sebuah Record yang terdapat terdiri dari berbagai field, dan subfield seperti berikut ini:
1. NOMOR JAMINAN SOSIAL
2. NAMA, yang terdiri atas
NAMA BELAKANG
NAMA PERTAMA
NAMA TENGAH
3.ALAMAT,terdiri atas
JALAN
NOMOR RUMAH
NEGARA BAGIAN
KODE POS
3. MENIKAH
Seperti telah kita jelaskan terdahulu, Array berbeda dengan Record, yakni Array bersifat homogeny (terdiri dari type yang sama), dan komponen Array tidak memiliki mana sendiri, dan hanya diberi identifikasi oleh posisi mereka di dalam Array.
Pada umumnya record disimpan membentuk File, dalam urutan sesuai dengan nilai dari key masing-masing.