Array
ARRAY
Array atau larik adalah Struktur data sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinsikan 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 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:
- Mempunyai batasan dari pemesanan alokasi memory (Bersifat Statis)
- Mempunyai type data sama (bersifat homogen)
- Dapat Diakses secara acak
3 Hal yang harus diketahui dalam mendeklarasikan array:
- Type data array
- Nama variabel array
- Subskrip / Index array
Jenis Array (yang akan dipelajari) adalah:
- Array Dimensi Satu (One Dimensional Array)
- Array Dimensi Dua (Two Dimensional Array)
- Array Dimensi Tiga (Three Dimensional Array)
1.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]
Penggambaran secara logika:
Rumus untuk menentukan jumlah elemen dalam array:
Contoh: Suatu Array A dideklarasikan sbb:
int A[10]: maka jumlah elemen Array dimensi satu tersebut adalah = 10
Pemetaan (MAPPING) array dimensi satu ke storage
Rumus: @A[i] = B + (i - 1) * L
Dimana: @A[i] = Posisi Array yang dicari
B = Posisi awal index di memory komputer
i = Subskrip atau indeks array yang 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]
Rumus: @A[i] = B + (i - 1) * L
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)
Konversi Bilangan
- Decimal adalah bilangan berbasis sepuluh yang terdiri dari 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
Contoh konversi antar bilangan
Konversi Bilangan Decimal ke Hexadecimal
Contoh 254 (10) = .......(16)
Caranya dengan membagi bilangan tersebut dengan enam belas sampai bilangan tersebut tidak bisa lagi dibagi enam belas (kurang dari enam belas) dengan mencatat setiap sisa pembagian.
254 : 16 = 15 sisa 14 atau E (lihat tabel di atas)
15 : 16 = sisa 15 atau F (lihat tabel di atas)
Jadi 254 (10) = FE (16) diurutkan dari sisa pembagian terakhir
Contoh Penerapan Array Dimensi 1 Pada Program C++
2. Array Dimensi Dua (Two Dimensional Array)
Deklarasi : Type _Data Nama_Variabel [Index1] [Index2];
Misal : int A [3][2];
Contoh:
Suatu Array X dideklarasikan sebagai berikut:
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 (Column 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 yang dicari, M[0][0] = posisi alamat awal index array, i = Baris, j = Kolom, L = Ukuran memory type data, k = banyaknya elemen per kolom, n = banyaknya elemen per baris
Penggambaran secara logika
Berdasarkan cara pandang :
1. Kolom per baris (Row Major Order/RMO)
2. Baris per kolom (Column Major Order/CMO)
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
Secara baris per baris (Row Major Order / 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)
Contoh program array dua dimensi:
#include<stdio.h>
#include<conio.h>
main(){
int a[3][5];
for (int i = 0;i<3;i++){
for (int j = 0;j<5;j++){
printf("%x", &a[j][i]);}
printf("\n")};
getch();
}
output:
3. Array Dimensi Tiga (Three 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];
Penggambaran secara logika:
Menentukan jumlah elemen dalam Array dimensi 3:
n
Contoh:
Suatu Array X dideklarasikan sebagai berikut:
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.elemen3))+((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]?
Contoh Pemetaan:
Penyelesaian:
1. Tentukan jumlah elemen array A[2][4][3] = (2) * (4) * (3) = 24
2. @M[m][n][p] = M[0][0][0] + {((m-1)*(jum.elemen2 * jum.elemen3)) + ((n-1)*(jum.elemen3)) + ((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 Program array dimensi 3
Komentar
Posting Komentar