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

  1. Mempunyai batasan dari pemesanan alokasi memory (bersifat statis)
  2. Mempunyai tipe data sama (bersifat homogen)
  3. 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 data K = 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

Postingan populer dari blog ini

Pengertian, Karakteristik, dan Operator-Operator Stack

Pengertian, Macam-Macam Tipe Data

Pengertian Binary Tree