Rabu, 03 September 2008

struktur data pemetaan array dimensi 2

Array dimensi dua merupakan aray yang memiliki baris dan kolom

Deklarasi : Type_Data Nama_Variabel [Index1] [index2];
Misal : int A[3][2];

A =  1  4
     2  5
     3  6

Pemetaaan array 2 dimensi terbagi 2:
  1. Secara Kolom Per Kolom (Coloumn Major Order/CMO) 
  2. Secara Baris Per Baris (Row Major Order / RMO
@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 


1. Berdasarkan kolom Perkolom
A[0 0]  A[0 1]  A[1 0]  A[1 1]  A[2 0]  A[2 2]


Suatu  Array X dideklarasikan sebagai berikut :

Float X[4][3], dengan alamat index X[0][0] berada di 0011(H)dan dan ukuran type data float = 4 
Tentukan berapa alamat array X[3][2]  berdasarkan cara pandang baris dan kolom ?

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) 

2. Berdasarkan baris Perbaris
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)