Langsung ke konten utama

struktur data - pertemuan 4 (semester 2)

rachmat.rap@bsi.ac.id
PERTEMUAN 4
ARRAY DIMENSI 3 (THREE DIMENSION ARRAY)
Digunakan untuk mengelola data dalam bentuk 3 dimensi atau 3 sisi.
Deklarasi         : Type_Data Nama_Variabel [index1] [ndex2] [index3];
Misal              : int A[3][4][2];

Penggambaran secara logika :
Rumus :
M[m][n][p] = M[0][0][0] + {((m-1) *(jum.elemen2 * jum.elemen3)) + ((n-1)*(jum.elemen 3)) + ((p-1)}* L
SOAL
1.       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] ?
Jawab :
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) 
= 0011(H) + 26 (H)
= 0037(H)

2.       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][4][2]?
Jawab :
A[2][4][2]        = 0011(H) + {((2–1) * 4 * 3) + ((4-1) * 3) + (2-1)} * 2
= 0011(H) + {12 + 9 + 1 } * 2
= 0011(H) + 44 (D) 
= 0011(H) + 2C (H)
= 003D(H)

3.       Suatu array A dideklarasikan sebagai berikut:
Float A[2][4][3], dengan alamat awal index A[0][0][0] berada di ABCD(H) dan ukuran type data float = 4. Tentukan berapa alamat array di A[2][2][3]?
Jawab :
A[2][2][3]        = ABCD(H) + {((2–1) * 4 * 3) + ((2-1) * 3) + (3-1)} * 4
= ABCD(H) + {12 + 3 + 2 } * 4
= ABCD(H) + 68 (D) 
= ABCD(H) + 44 (H)
= AC11(H)

4.       Suatu array A dideklarasikan sebagai berikut:
Float A[5][5][5], dengan alamat awal index A[0][0][0] = 0021(H),berapakah alamat array A[2][3][2] dan A[5][4][3]?
Jawab :
A[2][3][2]        = 0021(H) + {((2–1) * 5 * 5) + ((3-1) * 5) + (2-1)} * 4
= 0021(H) + { 25 + 10 + 1 } * 4
= 0021(H) + 144 (D) 
= 0021(H) + 90 (H)
= 00B1 (H)

A[5][4][3]        = 0021(H) + {((5–1) * 5 * 5) + ((4-1) * 5) + (3-1)} * 4
= 0021(H) + { 100 + 15 + 2 } * 4
= 0021(H) + 468 (D) 
= 0021(H) + 1D4 (H)
= 01F5(H)

5.       Suatu array B dideklarasikan sebagai berikut:
Char B[3][4][3] dengan alamat awal index A[0][0][0] =0021(H), berapakah alamat array A[2][3][2] dan A[3][4][3]?
Jawab :
A[2][3][2]        = 0021(H) + {((2–1) * 4 * 3) + ((3-1) * 3) + (2-1)} * 1
= 0021(H) + { 12 + 6 + 1 } * 1
= 0021(H) + 19(D) 
= 0021(H) + 13 (H)
= 0034(H)

A[3][4][3]        = 0021(H) + {((3–1) * 4 * 3) + ((4-1) * 3) + (3-1)} * 1
= 0021(H) + { 24 + 9 + 2 } * 1
= 0021(H) + 35 (D) 
= 0021(H) + 23(H)
= 0044(H)

6.       Deklarasi Array X adalah int A[2][4][5], dengan alamat awal index A[0][0][0] berada di 0021(H) dan ukuran type data int = 2. Tentukan berapa alamat array di A[2][2][2]!

Jawab :
A[2][2][2]        = 0021(H) + {((2–1) * 4 * 5) + ((2-1) * 5) + (2-1)} * 2
= 0021(H) + { 20 + 5 + 1 } * 2
= 0021(H) + 52 (D) 
= 0021(H) + 34 (H)
= 0055(H)


Komentar