Pengertian, Karakteristik, dan Jenis-Jenis Array
Pengertian, Karakteristik, dan Jenis-Jenis Array
Pengertian Array
Array 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.
Karakteristik Array
- Mempunyai batasan dari pemesanan alokasi memory (bersifat statis)
- Mempunyai tipe data sama (bersifat homogen)
- 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-Jenis Array
a. 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];
void main()
{ int bil [5];
clrscr;
cout<<"Masukkan 5 bilangan : "<<endl;
for (int i = 0; i < 5; i++)
{ cout<<"Bilangan ";
cout<< i + 1 <<" : ";
cin>> bil[i];
cout<<endl;
}
cout<<endl;
cout<<"5 bilangan yang dimasukkan “ <<endl;
for (int i = 0; i < 5; i++)
cout<<" "<<bil[i];
getch();
}
Rumus untuk menentukan jumlah elemen dalam Array:
Rumus : @A[i] = B + (i - 1) * L
@A[i] : Posisi Array yg dicari
B : Posisi awal index di memory komputer
i : Subkrip atau indeks array yg dicari
L : 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 :
@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)
b. Array Dimensi Dua (Two Dimensional Array)
Deklarasi : Type_Data Nama_Variabel [Index1] [index2];
Misal : int A[3][2];
Menentukan jumlah elemen dalam Array dimensi dua:
Contoh :
Suatu Array X dideklarasikan sbb :
int X[4][3];
maka jumlah elemen Array dimensi dua tersebut adalah :
(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[0][0] + {(j - 1) * K + (i - 1)} * L
2. Secara Baris Per Baris (Row Major Order / RMO)
@M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L
Keterangan : @M[i][j] = Posisi Array yg dicari, M[0][0] = Posisi alamat awal index array,i = Baris, j = kolom, L = Ukuran memory type dataK = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Contoh Pemetaan :
Suatu Array X dideklarasikan sebagai berikut :
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)
c. Array Dimensi Tiga (Thee Dimensional Array)
Digunakan untuk mengelola data dalam bentuk 3 dimensi atau tiga sisi.
Deklarasi :
Type_Data Nama_Variabel [index1] [index2] [index3]; Misal : int A [3][4][2];
Menentukan jumlah elemen dalam Array dimensi 3 :
Contoh :
Suatu Array X dideklarasikan sbb :
int A [3][4][2]; maka jumlah elemen Array dimensi tiga tersebut adalah :
(3) * (4) * (2) = 24
Pemetaan (mapping)
Array Dimensi Tiga ke Storage
Rumus :
@M[m][n][p] = M[0][0][0] + {((m-1) * (jum.elemen2 * jum.elemen3)) + ((n-1) * (jum.elemen 3)) + ((p-1)}* L
Contoh :
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] ?
Penyelesaian :
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)
Komentar
Posting Komentar