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++


%x adalah hexadesimal

2. Array Dimensi Dua (Two Dimensional Array)
Deklarasi : Type _Data Nama_Variabel [Index1] [Index2];

Misal : int A [3][2];

Penggambaran secara logika:

Menentukan jumlah elemen dalam array dimensi dua:

   n
(elemen array)                        

  i=1
               




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

Misal : int M[3][2]; (Array dengan 3 baris dan 2 Kolom)
Berdasarkan cara pandang :
1.    Kolom per baris (Row Major Order/RMO)
        Jumlah elemen per baris = 2

2.    Baris per kolom (Column Major Order/CMO)
        Jumlah elemen per kolom = 3

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 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
(index array)
  i=1

= perkalian dari statement sebelumnya
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

Output:













Komentar

Postingan Populer