ARRAY

Pengertian 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

Karakteristik Array 
  1. Mempunyai batasan dari pemesanan alokasi memory
    (Bersifat Statis)
  2. Mempunyai Type Data Sama (Bersifat Homogen)
  3. Dapat Diakses Secara Acak
Selain itu, kita juga harus mengetahui 3 hal dalam mendeklarasikan Array, diantaranya
  • Tipe data array
  • Nama Variabel Array
  • Subskrip / Index Array
Jenis Jenis 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 : A[1] A[2]  
 
 Contoh Implementasi dalam Program :
 
Output Program : 
 
Rumus Untuk menentukan Jumlah Element dalam Array :
            
Ï€ (Elemen Array
          i=1 
Ï€ =Perkalian dari elemen sebelumnya (untuk array dimensi dua & tiga)
 
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 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] ?
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

Konversi bilangan adalah proses pengubahan basis bilangan satu ke bentuk basis bilangan lain yang memiliki bilai yang sama. contoh contoh bilangan nya adalah sebagai berikut :
  1. Decimal adalah bilangan berbasis sepuluh yang terdiridari 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9
  2. 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 dari konversi bilangan antara lain :
  • Konversi bilangan dari 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.
Misal 254 : 16 =  15 sisa 14 atau E  15 : 16 =  sisa 15 atau F Jadi  254 (10) = FE (16) diurutkan dari sisa pembagian terakhir. 

Contoh penerapan Array 1 dimensi pada program C++

 

2. Array Dimensi dua dan Pemetaan (Mapping) Array dimensi dua ke storage

Untuk pemetaan, terbagi menjadi 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 nya :
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)

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 :

 
Lalu bagaimana cara menentukan jumlah elemen dalam Array dimensi 3?
Untuk menentukan jumlah element dalam array tigda dimensi, kita bisa menggunakan rumus
  n 
 
p (index array)
  i=1
p = Perkalian dari jumlah statement sebelumnya.
 
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)       

Contoh Penerapan Array dimensi 3 di Program C++ beserta dengan Outputnya

Kemudian untuk Output nya adalah sebagai berikut