Array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen
dengan type yang sama.
Banyaknya komponen dalam suatu larik adalah tetap dan lokasi dalam suatu larik
ditunjukkan oleh suatu INDEKS.
Yang
penting
dalam
array
adalah
pengalamatan
memori
dan
digunakan
Dimensi
Dalam bentuknya array dapat kita tinjau dari segi pengaturan struktur datanya dalam
konteks dimensi sebagai berikut :
Array 1 Dimensi
List
Vektor
Array 2 Dimensi
Tables
Matriks (2 dimensi)
Array 3 Dimensi
Matriks 3 Dimensi
Array Mulidimensi
Pada prinsipnya secara teori jumlah dimensi suatu matriks tidak terbatas,
yang membatasi adalah kemampuan hardware dan besarnya memori
-3
-2
-1
8
2
9
3
10 11 12
4
1 2 3 4
A. Jumlah Elemen
B. Jumlah Byte
( 8 - (-3) ) + 1
12 Elemen
* 4
48 Byte
C. Alamat @A[ 7 ] =
Dari @A[-3] berpindah/bergerak ke @A[7]
= 7 - (-3)
= 10 Elemen
Setiap Elemen 4 Byte maka :
10 * 4 = 40 Byte
40 disini adalah dalam notasi 40 Decimal, dalam pengalamatan memori
digunakan notasi Hexa Decimal. Maka 40 Decimal dirubah menjadi Hexa
Decimal.
40 Decimal = 28 Hexa Decimal atau 28 H
Jadi @A[7]
= 1000 H + 28 H
= 1028 H
<<"ANGKA
["<<i<<"]=
"<<ANGKA[i]<<"
ADA
DIALAMAT = "<<&ANGKA[i]<<endl;
}
getch();
}
Latihan :
1. Suatu array dideklarasikan dengan : A[-2 .. 5 ], setiap elemen terdiri dari 6 byte.
Jika alamat elemen pertama FFBB H ditanya :
a. Jumlah Elemen
b. Jumlah Byte Seluruhnya
c. Alamat A[4] atau ditulis @A[4]
2.
Suatu array dideklarasikan dengan : A[9] pada Bahasa C++, setiap elemen
terdiri dari 8 byte. Jika alamat elemen pertama 16FF H ditanya :
a. Jumlah Elemen
b. Jumlah Byte Seluruhnya
c. Alamat A[5] atau ditulis @A[5]
Jawab .
Di ilustrasikan sebuah Array sebagai berikut:
@A[-1,3] = 1000 H
-1
5
A
6
B
8
C
K
0
L
Q
@A[2,5] = ?.
Pada Array 2 Dimensi yang diilustrasikan diatas, urutan elemennya dalam memori
jika megikuti cara :
-1,3
-1,4
-1,5 -1,6
-1,7 -1,8
9.. 19 20 21
0,3
0,4
22
23 24
2,6
2,7
2,8
A
..
S T
Baris Ke-1
Baris Ke-2
Baris ke 4
Baris (-1)
Baris (0)
Baris (2)
@A[-1,3] = 1000 H
Setiap pindah Satu Baris pindah 6 Elemen
9..19
20 21 22 23
24
-1,3
A
kolom Ke-1
Kolom Ke-2
Kolom (3)
Kolom (4)
Kolom Ke 3
Kolom ke6
Kolom 5
Kolom 8
@A[-1,3] = 1000 H
Setiap pindah Satu Kolom pindah 4 Elemen
1
7
13
19
2
8
14
20
6
3
9
15
21
7
4
10
16
22
8
5
11
17
23
6
12
18
24
1
2
3
4
5
6
7
8
6
9
10
11
12
7
13
14
15
16
8
17
18
19
20
21
22
23
24
= 24
B. Jumlah Byte
2 - (-1)+1
(8-3)+1
= 4 Baris
= 6 Kolom
= 24 * 4 = 96 Byte
@A[-1,3] = 1000 H
-1
0
1
2
3
A
G
M
S
4
B
H
N
T
5
C
I
O
U
6
D
J
P
V
7
E
K
Q
W
8
F
L
R
X
-1
0
1
2
3
1
7
13
19
4
2
8
14
20
5
3
9
15
21
6
4
10
16
22
7
5
11
17
23
8
6
12
18
24
@A[2,5] =?
Dari Gambar Diatas terlihat bahwa bergerak dari elemen A[-1,3] ke elemen A[2,5]
yaitu elemen ke 21 menurut ROW MAJOR ORDER perpindahannya sebanyak :
21 1 = 20 Elemen
ATAU
Terlihat dari Baris 1 ke baris 2
Setiap Baris ada 6 Elemen , Jadi
sebanyak
3 Baris
3 * 6 = 18 Elemen
10
: @A[
2 , 5 ]
Diketahui
: @A[ -1 , 3 ]
3
Pindah 3 Baris
Dikurang
Pindah 2 Kolom = 2
20 * 4 = 80 Byte ( Decimal )
80 Decimal = 50 Hexa Decimal
11
@A[-1,3] = 1000 H
-1
0
1
2
3
A
G
M
S
4
B
H
N
T
5
C
I
O
U
7
D
J
P
V
8
E
K
Q
W
F
L
R
X
-1
0
1
2
3
1
2
3
4
4
5
6
7
8
5
9
10
11
12
6
13
14
15
16
7
17
18
19
20
8
21
22
23
24
@A[2,5] = ?
Dari Gambar Diatas terlihat bahwa bergerak dari elemen A[-1,3] ke elemen A[2,5]
yaitu elemen ke 12 menurut COLUMN MAJOR ORDER perpindahannya sebanyak :
12 1 = 11 Elemen
ATAU
Terlihat dari kolom 3 ke kolom 5
sebanyak
2 Kolom
2 * 4 = 8 Elemen
12
Ditanya
: @A[
2 , 5 ]
Diketahui
: @A[ -1 , 3 ]
3
Dikurang
= 3
----
11 * 4 = 44 Byte ( Decimal )
44 Dec. = 2C Hexa Dec.l
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C.
Diketahui suatu Array dua dimensi yang dideklarasikan dengan A[5][6] Pada
Bahasa C++. Setiap elemen terdiri dari 10 Byte. Alamat elemen pertama
@A[0][0]=FBCA H
Ditanya :
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat A[3,2] atau @A[3,2] ?
Jika penempatan memori menggunakan :
C1. Row Major Order
C2. Column Major Order
13
3.
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat A[2,5] atau @A[2,5] ?
Jika penempatan memori menggunakan :
C1. Row Major Order
C2. Column Major Order
Praktek dilaboratorium
Buat suatu program dengan C++/Visual C++ memasukkan data integer dengan array
2 dimensi dan tampilkan lokasi setiap data tersebut.
ARRAY TIGA DIMENSI
Suatu Array dideklarasikan A[ 2 ..4 , -1 .. 2 , 3 .. 8 ], setiap elemen terdiri 4 byte.
Alamat elemen pertama @A[2,-1,3]= 1000 H ditanya :
A. Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat @A[4,2,5]
C1. Menggunakan Row Major Order
C2. Menggunakan Column Major Order
JAWAB
ilustrasi :
@A[2,-1,3] = 1000 H
3
-1
0
1
2
Blok 2
-1
0
1
2
-1
0
1
2
Blok 3
Blok 4
14
@A[4,2,5] =.?
Blok
(4 2 )+1
2 Blok
Baris
Kolom
(2-(-1))+1
(8-3) + 1
4 Baris
A[ 2 .. 4 , -1 .. 2 ,
6 Kolom
3.. 8 ]
= ( 4 - 2 ) + 1 = 3 Blok
Jumlah Baris
= ( 2 (-1) + 1 = 4 Baris
3
-1
0
1
2
1
7
13
19
2
8
14
20
3
9
15
21
4
10
16
22
5
11
17
23
3
6
12
18
24
-1
0
1
2
BLOK 2
25
31
37
43
26
32
38
44
27
33
39
45
28
34
40
46
7
29
35
41
47
BLOK 3
3
30
36
42
48
-1
0
1
2
49
55
61
67
50
56
62
68
51
57
63
69
52
58
64
70
7
53
59
65
71
8
54
60
66
72
BLOK 4
@A[4,2,5] = ?
Dari Gambar terlihat urutan perpindahan dari elemen no. 1 ke Elemen No. 69
perpindahan sebanyak 68 Elemen.
15
Jika tidak melihat gambar dapat dihitung dengan melihat perpindahan Blok, Baris
dan kolom.
Ditanya :
@A[ 4 , 2 , 5 ]
Diketahui
@A[ 2 , -1 , 3 ]
2
Di kurang
48 Elemen
16
18 Elemen
68 Elemen
Pindah = 68 Elemen
= 68 * 4 Byte
= 272 Byte (Decimal)
= 110 Hexa Dec
Jadi Alamat @A[4,2,5] = 1000 H + 110 H = 1110 H
3
-1
0
1
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
3
21
22
23
24
-1
0
1
2
BLOK 2
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
7
41
42
43
44
3
45
46
47
48
BLOK 3
-1
0
1
2
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
7
65
66
67
68
8
69
70
71
72
BLOK 4
@A[4,2,5] = ?
Dari Gambar terlihat urutan perpindahan dari elemen no. 1 ke Elemen No. 60
perpindahan sebanyak 59 Elemen.
59 * 4 Byte = 236 Byte 236 Dec. = EC Hexa Dec.
17
Jika tidak melihat gambar dapat dihitung dengan melihat perpindahan Blok, Baris
dan kolom.
Ditanya :
@A[ 4 , 2 , 5 ]
Diketahui
@A[ 2 , -1 , 3 ]
Di kurang
48 Elemen
8 Elemen
59 Elemen
Pindah = 59 Elemen
= 59 * 4 Byte
= 236 Byte (Decimal)
= EC Hexa Dec
Jadi Alamat @A[4,2,5] = 1000 H + EC H = 10EC H
Latihan
18
1.
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat A[1,3,5] atau @A[1,3,5] ?
C1. Row Major Order
C2. Column Major Order
2.
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat A[1,3,5] ?
C1. Row Major Order
C2. Column Major Order
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat A[3,2,6] ?
C1. Row Major Order
C2. Column Major Order
Praktek dilaboratorium
Buat suatu program dengan C++/Visual C++ memasukkan data integer dengan array
3 dimensi dan tampilkan lokasi setiap data tersebut.
19
20