80s toys - Atari. I still have
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 :
Untitled 1
= 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:
Untitled 1
= 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
Untitled 1
Gambar
Untitled 1
(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,