Array ==================================
• 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. Nama array
b. Range dari subskrip (jangkauan array)
c. Type data array ------------------------------------------
• Jenis Array (yang akan dipelajari) adalah :
a. Array Dimensi Satu (One Dimensional)
b. Array Dimensi Dua (Two Dimensional)
c. Array Dimensi Banyak (Multi Dimensional) ------------------------------------------ 1. ARRAY DIMENSI SATU (One Dimensional Array)
Deklarasi :
Var A : Array[1..N] Of Type Data;
Rumus untuk menentukan jumlah elemen dalam Array :
= Perkalian dari statemen sebelumnya
(untuk array dimensi dua & tiga)
-Harga minimum dari subskrip suatu Array disebut sebagai batas bawah atau lower bound (L),
-Harga maksimumnya disebut batas atas atau upper bound (U).
Array dimensi satu digambarkan dalam bentuk vektor. Contoh :
Suatu Array A dideklarasikan sbb :
Var A : Array[1..10] of integer
maka jumlah elemen Array dimensi satu tersebut adalah :
(Ui - Li) + 1 = (10 - 1) + 1 = 10
PEMETAAN (MAPPING)
ARRAY DIMENSI SATU KE STORAGE
Rumus : @A[i] = B + (i - 1) * L Dimana :
@A[i] : Posisi Array yg dicari
B : Posisi awal array di memory komputer
i : Subkrip atau indeks array yg dicari
L : Ukuran / Besar memory suatu type data Contoh :
Suatu Array A dideklarasikan sebagai berikut :
Var A : Array [1..5] of integer, dengan alamat awal berada
di 0011 (H) dan ukuran memory type data integer = 2
Tentukan berapa alamat array A[3] ? Diketahui :
@A[i] = A[3]
B = 0011 (H)
i = 3
L = 2 Penyelesaian :
A[3] = 0011(H) + (3 – 1) * 2
= 0011(H) + 4 (D)-->4 Desimal = 4 Hexa
= 0011(H) + 4 (H)
= 0015(H) ------------------------------------------ 2. ARRAY DIMENSI DUA (Two Dimensional Array)
Deklarasi :
Var A : Array[1..M,1..N] Of Type Data;
Penggambaran secara Logika :
A[1,1] . A[1,2] ....... A[1,N]
A[2,1] . A[2,2] ....... A[2,N]
....... ....... ....... .......
A[M,1] . A[M,2] ....... A[M,N]
Sering digunakan dalam menterjemahkan matriks pada
pemrograman.
Menentukan jumlah elemen dalam Array dimensi dua:
= Perkalian dari statemen sebelumnya
Contoh :
Suatu Array X dideklarasikan sbb :
Var X : Array[1..4,1..3] of integer
maka jumlah elemen Array dimensi dua tersebut adalah :
{(4 - 1) + 1} * {(3 - 1) + 1} = 4 * 3 = 12
PEMETAAN (MAPPING)
ARRAY DIMENSI DUA KE STORAGE Terbagi Dua cara pandang (representasi) yang berbeda : 1. Secara Kolom Per Kolom (Coloumn Major Order/CMO)
@M[i,j] = @M[1,1] + {(j - 1) * K + (i - 1)} * L 2. Secara Baris Per Baris (Row Major Order / RMO)
@M[i,j] = @M[1,1] + {(i - 1) * N + (j - 1)} * L
Keterangan :
@M[i,j] = Posisi Array yg dicari, M[1,1] = Posisi alamat awal array
i = Baris, j = kolom, L = Ukuran memory suatu type data
K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Penggambaran secara logika
Var M : Array [1..2,1..3] Of Integer
Berdasarkan Cara pandang : 1. Kolom Per Kolom (Coloumn Major Order / CMO)
M[1,1] M[2,1] M[1,2] M[2,2] M[1,3] M[2,3]
Jumlah elemen per kolom = 2 2. Baris Per Baris (Row Major Order / RMO)
M[1,1] M[1,2] M[1,3] M[2,1] M[2,2] M[2,3]
Jumlah elemen per baris = 3
Contoh Pemetaan :
Suatu Array X dideklarasikan sebagai berikut :
Var X : Array [1..4,1..3] of real, dengan alamat awal X[1,1]
berada di 0011(H) dan ukuran type data real = 6
Tentukan berapa alamat array A[3,2] berdasarkan cara
pandang baris dan kolom ? Penyelesaian :
Secara Kolom Per Kolom (Coloumn Major Oder / CMO)
@M[i,j] = @M[1,1] + {(j - 1) * K + (i - 1)} * L
X[3,2] = 0011(H) + {(2 - 1) * 4 + (3 - 1)} * 6
= 0011(H) + 36 (D)
= 0011(H) + 24 (H)
= 0035(H)
Lanjutan Contoh Pemetaan : Penyelesaian :
Secara Baris Per Baris (Row Major Oder / RMO)
@M[i,j] = @M[1,1] + {(i - 1) * N + (j - 1)} * L
X[3,2] = 0011(H) + {(3 - 1) * 3 + (2 - 1)} * 6
= 0011(H) + 42 (D)
= 0011(H) + 2A (H)
= 003B(H) ------------------------------------------ 3. ARRAY DIMENSI BANYAK (Multi Dimensional Array)
Deklarasi :
Var A : Array[1..N,1..M,1..P,1..R,] Of Type Data;
Penggambaran secara Logika (untuk array dimensi 3) :
Var A : Array [1..3,1..4,1..2] Of Integer;
Menentukan jumlah elemen dalam Array dimensi
banyak (untuk array dimensi 3) : Contoh :
Suatu Array X dideklarasikan sbb :
Var X : Array[1..3,1..4,1..2] of integer
maka jumlah elemen Array dimensi tiga tersebut adalah :
{(3 - 1) + 1} * {(4 - 1) + 1} * {(2 - 1) + 1} = 3 * 4 * 2 = 24
PEMETAAN (MAPPING) ARRAY DIMENSI BANYAK KE STORAGE
Rumus :
------------------------------------------ TRINGULAR ARRAY (ARRAY SEGITIGA)
Tringular Array dapat merupakan Upper Tringular
(seluruh elemen di bawah diagonal utama = 0),
ataupun Lower Tringular (seluruh elemen di atas
diagonal utama = 0). ------------------------------------------
Dalam Array Lower Tringular dengan N baris, jumlah
maksimum elemen <> 0 pada baris ke-I adalah = I,
karenanya total elemen <> 0, tidak lebih dari
Gambar
(a) Upper Triangular Array
(b) Lower Triangular Array
Suatu Array Upper Tringular dan Array Lower Tringular dapat dengan order yang sama, dapat disimpan sebagai suatu array dengan order yang berbeda, ------------------------------------------
SPARSE ARRAY (ARRAY JARANG)
Suatu Array yang sangat banyak elemen nol-nya,