ARRAY
Array / Larik adalah 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 disini dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n. Kemudian Homogen disini dapat diartikan 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
- Mempunyai batasan dari pemesanan alokasi memory
(Bersifat Statis) - Mempunyai Type Data Sama (Bersifat Homogen)
- Dapat Diakses Secara Acak
- Tipe data array
- Nama Variabel Array
- Subskrip / Index Array
- Array Dimensi satu (One Dimensional Array)
Deklarasi : Type_Data Nama_Variabel [index]
Misalnya : int A[5];
Penggambaran secara Logika : A[1] A[2]
Suatu Array A dideklarasikan sbb :
int A[10]; maka jumlah elemen Array dimensi satu tersebut adalah = 10
Pemetaan (MAPPING) Array dimensi satu ke storage
B : Posisi awal index di memory komputer
i : Subkrip atau indeks array yg dicari
L : Ukuran / Besar memory suatu type data
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] ?
@A[i] = A[3]
B = 0011 (H)
i = 3
L = 2
A[3] = 0011(H) + (3 – 1) * 2
= 0011(H) + 4 (D)
= 0011(H) + 4 (H)
= 0015(H)
Konversi Bilangan
- Decimal adalah bilangan berbasis sepuluh yang terdiridari 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9
- Hexadecimal adalah bilangan berbasis enam belas yang terdiri dari 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F
- Konversi bilangan dari decimal ke Hexadecimal contoh : 254 (10) = ........... (16)
Contoh penerapan Array 1 dimensi pada program C++
Untuk pemetaan, terbagi menjadi dua cara pandang (representasi) yang berbeda :
- Secara Kolom Per Kolom (Coloumn Major Order/CMO) @M[i][j] = M[0][0] + {(j - 1) * K + (i - 1)} * L
- Secara Baris Per Baris (Row Major Order / RMO) @M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L
Float X[4][3], dengan alamat index X[0][0] berada di 0011(H) dan ukuran type data float = 4
Tentukan berapa alamat array X[3][2] berdasarkan cara pandang baris dan kolom ?
Penyelesaian :
Secara Baris Per Baris (Row Major Oder / RMO)
@M[i][j] = @M[0][0] + {(i - 1) * N + (j - 1)} * L
X[3][2] = 0011(H) + {(3 – 1) * 3 + (2 – 1)} * 4
= 0011(H) + 28 (D) 1C (H)
= 0011(H) + 1C (H)
= 002D(H)
Secara Kolom Per Kolom (Coloumn Major Oder / CMO)
@M[i][j] = @M[0][0] + {(j - 1) * K + (i - 1)} * L
X[3][2] = 0011(H) + {(2 – 1) * 4 + (3 – 1)} * 4
= 0011(H) + 24 (D) 18 (H)
= 0011(H) + 18 (H)
= 0029(H)
Contoh penerapan Array dua dimensi menggunakan C++
3. ARRAY DIMENSI TIGA (Three Dimensional Array)
Digunakan untuk mengelola data dalam bentuk 3 dimensi atau tiga sisi. Deklarasi nya adalah sebagai berikut : Type_Data Nama_Variabel [index1] [index2] [index3]; Misal: int A [3][4][2];
Pengembangan Secara Logika :
p (index array)
i=1
int A [3][4][2]; maka jumlah elemen Array dimensi tiga tersebut adalah :
(3) * (4) * (2) = 24
Pemetaan (Mapping) Array dimensi tiga ke storage
@M[m][n][p] = M[0][0][0] + {((m-1) *(jum.elemen2 * jum.elemen3)) + ((n-1)*(jum.elemen 3)) + ((p-1)}* L
Suatu Array A dideklarasikan sebagai berikut :
int A [2][4][3], dengan alamat awal index A[0][0][0] berada di 0011(H) dan ukuran type data int = 2 Tentukan berapa alamat array di A[2][3][2] ?
Tentukan jumlah elemen array A [2][4][3]
= (2) * (4) * (3) = 24
@M[m][n][p] = M[0][0][0] + {((m-1) *(jum.elemen2 * jum.elemen3)) + ((n-1)*(jum.elemen 3)) + ((p-1)}* L
A[2][3][2] = 0011(H) + {((2–1) * 4 * 3) + ((3-1) * 3) +
(2-1)} * 2
= 0011(H) + {12 + 6 + 1 } * 2
= 0011(H) + 38 (D) 26 (H)
= 0011(H) + 26 (H)
= 0037(H)
Contoh Penerapan Array dimensi 3 di Program C++ beserta dengan Outputnya
|
|
|||||||||||||||

