Selasa, 06 Mei 2014

PEMETAAN DIMENSI SATU & DUA

Diposting oleh Unknown di 05.47

PEMETAAN (MAPPING)  ARRAY DIMENSI SATU


Berikut contoh soal tentang pemetaan array dimensi satu,
Contoh soal;
1. Array float A[5] dengan nilai awal A[1] = 0002F(H) . Breapa nilai A[3] ?(hasil dalam hexa)


·      Tabel  ilustrasi
0          1          2          3          4





                     
A[1]=0002F(H)              A[3]…?


Diketahui ;
Perpindahan = 3 – 1 = 2 elemen
Besar memory = float = 4 byte
B = Posisi index awal = 0002F(H)
Ditanya =  A[3]…?
Jawab ;

A[3] = B + (besar memory * perpindahan)
= 0002F(H)  + (4 * 2)
 Konversi nilai 2F(H)  ke decimal ;
F(H) = 15(D)
2F(H)  = (2 * 161) + (15 * 160)
= 32 + 15
= 47(D)
= 47(D)   + 8(D)
= 55(D)

konversi nilai  55(D) ke hexa ;
55/16 = 3, sisa  7
5/16 = 3, sisa 3
 = 37(H) (di baca dari bawah)

Hasilnya yaitu  37(H)





2. Array float A[10] dengan nilai awal A[8] = 0012F(H) . Breapa nilai A[3] ?(hasil dalam hexa)


·                           Table ilsutrasi

0          1          2          3          4          5          6          7          8          9










                                                                                             
                                    A[3]..?                                     A[8]=0012F(H)



Diketahui ;
Perpindahan = 3 – 8 = -5 elemen
Besar memory = float = 4 byte
B = Posisi index awal = 0012F(H)
Ditanya =  A[8]…?
Jawab ;

A[3] = B + (besar memory * perpindahan)
= 0012F(H)  + (4 * 5)
 Konversi nilai 12F(H)  ke desimal;
  F(H) = 15(D)
12F(H)  = (1 * 162) + (2 * 161) + (15 * 160)
=256 + 32 + 15
= 303(D)
= 303(D)   + 20(D)
= 323(D)

konversi nilai  323(D) ke hexa    ;
323/16 = 20, sisa  3
20/16 = 1, sisa 4
 1/16 = 0, sisa 1
 = 143(H) (di baca dari bawah)

Hasilnya yaitu  143(H)






PEMETAAN (MAPPING)  ARRAY DIMENSI DUA

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,
L = Ukuran memory type data,
K = Banyaknya elemen per kolom,
N = Banyaknya elemen per baris,
i = Baris,
 j = kolom


3. cara lain mengenal alamat elemen array dimensi 2
cara yang satu ini dapat memudahkan anda untuk dapat mengerjakan soal pemetaan array dimensi 2 tanpa menggunakan rumus.
Berikut contoh soal pemetaan array dimensi 2 menggunakan cara ke 3;

contoh soal
1. Array float A[5] [4] dengan nilai awal A[1][0] = 0002F(H)  . berapa nilai A [3][3] ?(RMO & CMO)


Ilustrasi tabel
Array
0
1
2
3
0




1
0002F(H)



2




3



Ditanya..?
4







a) Pemetaan RMO
a. Hitung besarnya perpindahan baris ;
Array awal ada di baris 1, array yang di cari ada di baris 3,
 berarti perpindahan baris adalah 3 dikurangi 1 = 2
b. Dalam 1 baris ada 4 kolom, sehingga besar perpindahan adalah 2 dikali 4 = 8
c. Besar perpindahan kolom adalah 3 dikurangi 0 = 3
d. Total perpindahan adalah 8 ditambah 3 = 11

Jalur perpindahan
X[1][1] → X[1][2] → X[1][3] → X[2][0] → X[2][1] → X[2][2] → X[2][3] → X[3][0] → X[3][1] → X[3][2] →X[3][3]

Hasil

= 2F(H)  + (11(D)  * 4)

Konversi nilai 2F(H)  ke desimal;
 F(H) = 15(D)
2F(H)  = (2 * 161) + (15 * 160)
= 32 + 15
= 47(D)
= 47(D)  + 44(D)
= 91(D)

konversi nilai  91(D) ke hexa    ;
91/16 = 5, sisa 11(di tulis B)
5/16 = 0, sisa 5
 = 5B(H) (di baca dari bawah)

Hasilnya yaitu  5B(H)



b) Pemetaan CMO
a. Hitung besarnya perpindahan kolom ;
Array awal ada di kolom 0, array yang di cari ada di kolom 3,
 berarti perpindahan kolom adalah 3 dikurangi 0 = 3
b. Dalam 1 kolom ada 5 baris, sehingga besar perpindahan adalah 5 dikali 3 =  15
c. Besar perpindahan baris adalah 3 dikurangi 1 = 2
d. Total perpindahan adalah 15 ditambah 2 = 17

Jalur perpindahan
X[2][0] → X[3][0]→X[4][0] → X[0][1] → X[1][1] → X[2][1] → X[3][1] → X[4][1] → X[0][2] → X[1][2] → X[2][2] → X[3][2] → X[4][2] → X[0][3] → X[1][3] → X[2][3]→X[3][3]

Hasil

= 2F(H ) + (17(D) * 4)
Konversi nilai 2F(H)  ke desimal;
 F(H) = 15(D)
2F(H)  = (2 * 161) + (15 * 160)
= 32 + 15
= 47(D)
= 47(D)  + 68
=115(D)

konversi nilai  115(D) ke hexa ;
115/16 = 7, sisa 3
7/16 = 0, sisa 7
 = 73(H) (di baca dari bawah)

Hasilnya yaitu  73(H)



2. Array int A[5][4] dengan nilai awal A[3][3] = 00CF(H)  . berapa nilai A [0][1] ?(RMO & CMO)
Jawab ;

Ilustrasi table
Array
0
1
2
3
0

Ditanya..?


1




2




3



00CF(H)
4







a) Pemetaan RMO
a. Hitung besarnya perpindahan baris ;
Array awal ada di baris 3, array yang di cari ada di baris 0,
 berarti perpindahan baris adalah 0 dikurangi 3 = -3
b. Dalam 1 baris ada 4 kolom, sehingga besar perpindahan adalah -3 dikali 4 = -12
c. Besar perpindahan kolom adalah 1 dikurangi 3 = -2
d. Total perpindahan adalah -12 ditambah -2 = -14 (tanda (-) hanya sebatas simbol )

Jalur perpindahan
X[3][2] → X[3][1] → X[3][0] → X[2][3] → X[2][2] → X[2][1] → X[2][0] → X[1][3] → X[1][2] → X[1][1] →X[1][0] → X[0][3] → X[0][2] →X[0][1]


Hasil

= CF(H) + (14(D) * 2)
Konversi nilai CF(H)  ke desimal;
F(H) = 15(D)
C(H) = 12(D)
CF(H)  = (12 * 161) + (15 * 160)
= 192 + 15
= 207(D)
= 207(D) + 28(D)
= 235(D)

konversi nilai  235(D) ke hexa;

235/16 = 14, sisa 11 (ditulis B)
14/16 = 0, sisa  14 (ditulis E)
 = EB(H) (di baca dari bawah)

Hasilnya yaitu  EB(H)



b) Pemetaan CMO
a. Hitung besarnya perpindahan kolom ;
Array awal ada di kolom 3, array yang di cari ada di kolom 1,
  berarti perpindahan kolom adalah 1 dikurangi 3 = -2
b. Dalam 1 kolom ada 5 baris, sehingga besar perpindahan adalah -2 dikali 5 =  -10
c. Besar perpindahan baris adalah 0 dikurangi 3 = -3
d. Total perpindahan adalah -10 ditambah -3 = -13 (tanda (-) hanya sebatas simbol )


Jalur perpindahan
X[1][1] → X[2][1] → X[3][1] → X[4][1] → X[0][2] → X[1][2] → X[2][2] → X[3][2] → X[4][2] → X[0][3] →X[1][3] → X[2][3] → X[3][3]

Hasil

= CF(H) + (13(D) * 2)
Konversi nilai CF(H)  ke desimal;
 F(H) = 15(D)
C(H) = 12(D)
CF(H)  = (12 * 161) + (15 * 160)
= 192 + 15
= 207(D)
= 207(D) + 26(D)
= 233(D)


konversi nilai  233(D) ke hexa;
235/16 = 14, sisa 9
14/16 = 0, sisa  14 (ditulis E)
 = E9(H) (di baca dari bawah)

Hasilnya yaitu  E9(H)

0 komentar:

Posting Komentar

 

Rizki Dana Ratih's Blog... Copyright © 2011 Designed by Ipietoon Blogger Template Sponsored by web hosting