- Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.
- Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.
Terurut : Dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan
seterusnya sampai elemen ke-n.
Homogen : Adalah bahwa setiap elemen dari sebuah Array tertentu haruslah mempunyai type data yang sama.
- Sebuah Array dapat mempunyai elemen yang seluruhnya berupa integer atau character atau String bahkan dapat pula terjadi suatu Array mempunyai elemen berupa Array.
Karakteristik Array :
1. Mempunyai batasan dari pemesanan alokasi memory (Bersifat Statis)
2. Mempunyai Type Data Sama (Bersifat Homogen)
3. Dapat Diakses Secara Acak
3 Hal yang harus diketahui dalam mendeklarasikan array :
a. Type data array
b. Nama variabel array
c. Subskrip / index array
Jenis Array (yang akan dipelajari) adalah :
a. Array Dimensi Satu (One Dimensional Array)
b. Array Dimensi Dua (Two Dimensional Array)
c. Array Dimensi Tiga (Thee Dimensional Array)
ARRAY DIMENSI SATU (One Dimensional Array)
Dapat disebut juga dengan istilah vektor yang
menggambarkan data dalam suatu urutan
Deklarasi : Type_Data Nama_Variabel [index]
Misalnya : int A[5];
PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE
Rumus : @A[i] = B + (i – 1) * L
@A[i] = B + ( i - 1 ) *L posisi array yang dicari Posisi awal index di memory komputer Subkrip atau indeks array yg dicari Ukuran / Besar memory suatu type data
Contoh
Suatu Array A dideklarasikan sebagai berikut :
int A[5]; dengan alamat awal index berada di 0011 (H)
dan ukuran memory type data integer = 2
Tentukan berapa alamat array A[3] ?
Diketahui :ARRAY DIMENSI DUA (Two Dimensional Array)
@A[i] = A[3]
B = 0011 (H)
i = 3
L = 2
Penyelesaian :
A[3] = 0011(H) + (3 – 1) * 2
= 0011(H) + 4 (D)
= 0011(H) + 4 (H)
= 0015(H)
Sering digunakan dalam menterjemahkan matriks pada pemrograman.
Deklarasi : Type_Data Nama_Variabel [Index1] [index2];
Misal : int A[3][2];
0 | 1 | |
0 | ||
1 | ||
2 |
Contoh aplikasi untuk Array dimensi 2 adalah seperti
program input IPK mahasiswa dengan hasil output
seperti berikut :
Nama Mahasiswa | IPK |
Doni | 3,50 |
Imam | 3,89 |
Novi | 2,85 |
Randy | 3,54 |
Redo | 2,48 |
Rina | 3,36 |
PEMETAAN (MAPPING) ARRAY DIMENSI DUA KE STORAGETerbagi Dua cara pandang (representasi) yang berbeda :
- Secara Kolom Per Kolom (Coloumn Major Order/CMO)
Rumus: @M[i][j] = M[0][0] + {(j - 1) * K + (i - 1)} * L
@M[i][j] =M[0][0] + { ( j -1 ) * K + ( i - 1)} * L Posisi awal array yang dicari Posisi alamat awal index array Kolom Banyaknya elemen per kolom Baris Ukuran memory type data
- Secara Baris Per Baris (Row Major Order / RMO) Rumus : @M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L
@M[i][j] =M[0][0] + { ( i - 1) * N + ( j - 1)} * L Posisi awal array yang dicari Posisi alamat awal index array Baris Banyaknya elemen per baris Kolom Ukuran memory type data
Penggambaran secara logikaContoh soal pemetaan:
Kolom per kolom = M[0,0] M[1,0] M[2,0] M[0,1] M[1,1] M[2,1]
0 1 0
1
2
Baris per baris = M[0,0] M[0,1] M[1,0] M[1,1] M[2,0] M[2,1]
Suatu Array X dideklarasikan sebagai berikut :
Float X[3][4], dengan alamat index X[0][0] berada di 0011(H)
dan ukuran type data float/real = 4
Tentukan berapa alamat array X[3][2] berdasarkan cara pandang baris dan kolom!
0 | 1 | 2 | |
0 | 0011(H) | ||
1 | |||
2 | ? | ||
3 |
Penyelesaian:
Secara baris per baris
@M[i][j] = M[0][0] + { (i-1) * byk elmn baris + (j-1)} *uk. mmry type data
X[3][2] = 0011(H) +{ (3-1) *3 + (2-1)*4
= ...
Secara kolom per kolom
@M[i][j] = M[0][0] + { (j-1) * byk elmn kolom + (i-1)} *uk. mmry type data
X[3][2] = 0011(H) + { (2-1)*4 + (3-1)*4
= ...