Struktur Data
Struktur Data
Linear :
Struktur
data yang menggambarkan hubungan tentang elemen-elemen yang berdekatan
Aplikasi Array :
v Stack(tumpukan)
v Queue(antrian)
v Double Ended Queue/Deque(antrian dg 2 pintu)
Aplikasi Linked
List :
v Linked Stack
v Linked Queue
Pengelolaan Memori
:
q Secara STATIS
Menempati
lokasi memeori yang tetap(fixed size), tidak dapat dikembangkan atau diciutkan.
Misal
: array
q Secara DINAMIS
Menempati
lokasi memeori yang dapat dikembangkan atau diciutkan sesuai dengan kebutuhan.
Pengelolaan
memori secar dinamis ditunjukan oleh pointer.
Misal
: link list
Array :
Array
adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen dengan
tipe yang sama.
Banyaknya
komponen dalam suatu array adalah tetap dan lokasi dalam suatu array ditunjukan
oleh suatu INDEKS
Pengalamatan
array à Statik
Karakteristik
pemakaian array :
•
Jumlah
elemen array terbatas
•
Semua
elemen array dapat diakses secara acak
•
Panjang
elemen sama
1. Array 1D
Contoh : Sebuah
array A[4] menyimpan data tipe int
Jum elemen array =
4 elemen
Panjang array = 4
elemen * 4 byte/elemen = 16 byte
Contoh Soal :
1.Suatu array dideklarasikan dengan A[9],
setiap elemen terdiri dari 8 byte. Jika alamat elemen pertama sama dg 16FFH,
ditanyakan :
a.Jumlah
elemen array
b.Panjang
array dalam byte
c.Alamat
A[5]
Jawab :
1. &A[0] =
16FFH
Lebar
elemen = 8 byte/elemen
a.
Jumlah elemen array = 9 elemen
b.
Panjang array = 9 elemen x 8 byte/elemen = 72 byte
c.
&A[5] = ?
Perpindahan
= (5 – 0) elemen x 8 byte/elemen
= 40 byte = 28H byte
&A[5]
= 16FFH + 28H = 1727H
Soal :
1.Suatu array dideklarasikan dengan int
Angka[12]. Jika alamat elemen pertama 2C3EH, ditanyakan :
a.Jumlah
elemen array
b.Jumlah
byte seluruhnya (panjang array)
c.Alamat
Angka[6]
Jawab:
1. &A[0] =
2C3EH
Lebar
elemen = 4 byte/elemen
a.
Jumlah elemen array = 12 elemen
b.
Panjang array = 12 elemen x 4 byte/elemen = 48 byte
c.
&A[6] = ?
Perpindahan
= (6 – 0) elemen x 4 byte/elemen
= 24 byte = 18H byte
&A[6]
= 2C3EH + 18H = 2C56H
2.
Array 2D
Deklarasi
A[I]{J]
I : Jumlah baris
J : Jumlah
kolom
Urutan
elemen dalam memori :
v Urutan baris per baris ( Row Major
Order/RMO)
A[3][4]
0
|
1
|
2
|
3
|
|
0
|
1
|
2
|
3
|
4
|
1
|
5
|
6
|
7
|
8
|
2
|
9
|
10
|
11
|
12
|
v Urutan kolom per kolom (Column Major
Order/CMO)
A[3][4]
0
|
1
|
2
|
3
|
|
0
|
1
|
4
|
7
|
10
|
1
|
2
|
5
|
8
|
11
|
2
|
3
|
6
|
9
|
12
|
Contoh :
int A[3][4]
a. Jika matrik
diatas disimpan dengan urutan RMO, maka :
17
|
14
|
75
|
10
|
20
|
50
|
80
|
11
|
35
|
60
|
90
|
12
|
Baris 0
|
Baris 1
|
Baris 2
|
Tipe data int
memerlukan 4 byte/elemen.
&A[0][1]=1004H,
&A[0][2]=1008H, &A[0][3]=100CH
&A[1][0]=1010H,
&A[1][1]=1014H, &A[1][2]=1018
&A[1][3]=101B,
&A[2][0]=1020, &A[2][1]=1024
B. Jika matrik
disimpan dengan urutan CMO, maka:
17
|
20
|
35
|
14
|
50
|
60
|
75
|
80
|
90
|
10
|
11
|
12
|
Kolom 0
|
Kolom 1
|
Kolom 2
|
Kolom 3
|
&A[1][0]=1004H,
&A[2][0]=1008H, &A[0][1]=100BH
&A[1][1]=1010H,
&A[2][1]=1014H
Penyelesaian tanpa
melihat gambar :
a. Jika matrik
diatas disimpan dengan urutan RMO, maka :
Jumlah elemen/baris = 4 elemen/baris
Ditanya
|
:
|
&A[2][1]
|
|
Diketahui
|
:
|
&A[0][0]
|
_
|
2
1
|
Pindah
baris = 2 baris x 4 elemen/baris = 8
elemen
Pindah
kolom = 1 kolom
= 1 elemen
Total
perpindahan = 8 + 1 = 9 elemen
= 9
elemen x 4 byte/elemen
= 36 byte
= 24H byte
Jadi
&A[2][1] = 1000H + 24H = 1024H
b. Jika matrik
diatas disimpan dengan urutan CMO, maka :
Jumlah elemen/kolom = 3 elemen/kolom
Ditanya
|
:
|
&A[2][1]
|
|
Diketahui
|
:
|
&A[0][0]
|
_
|
2
1
|
Pindah kolom = 1 kolom x 3 elemen/kolom = 3
elemen
Pindah baris
= 2 baris
= 2 elemen
Total perpindahan = 3 + 2 = 5 elemen
= 5
elemen x 4 byte/elemen
= 20
byte = 14H byte
Jadi &A[2][1] = 1000H + 14H = 1014H
Soal :
Diketahui suatu
array 2D yang dideklarasikan dengan int A[6][7]. Alamat elemen pertama 10CCH.
Ditanyakan :
a.Jumlah elemen
b.Jumlah byte
seluruhnya
c.Alamat A[2],[5]
(Penempatan dlm memori secara RMO dan CMO)
Jawab:
a. Jika matrik
diatas disimpan dengan urutan RMO, maka :
Jumlah
elemen/baris = 2 elemen/baris
Ditanya
|
:
|
&A[2][5]
|
|
Diketahui
|
:
|
&A[0][0]
|
_
|
2
5
|
Pindah baris
= 2 baris x 6 elemen/baris = 12 elemen
Pindah kolom = 5 kolom = 5 elemen
Total perpindahan = 12 + 5 = 17 elemen
= 17 elemen x 4
byte/elemen
= 68 byte = 44H
byte
Jadi
&A[2][5] = 10CCH + 44H = 10GGH
b. . Jika matrik
diatas disimpan dengan urutan CMO, maka :
Jumlah elemen/kolom = 5 elemen/kolom
Ditanya
|
:
|
&A[2][5]
|
|
Diketahui
|
:
|
&A[0][0]
|
_
|
2 5
|
Pindah kolom = 5 kolom x 7 elemen/kolom = 35
elemen
Pindah
baris = 2 baris = 2 elemen
Total perpindahan = 35 + 2 = 37 elemen
= 37 elemen x 4
byte/elemen
= 148 byte = 94H byte
Jadi &A[2][1] = 10CCH + 94H = 115GH
3. Array 3D
Diketahui array
A[2][3][3] dengan lebar elemen 2 byte. Alamat elemen pertama 1000H.
Ditanya &A[1][2][1]?
Jawab :
0
|
1
|
2
|
0
|
1
|
2
|
|||||
0
|
10
|
30
|
50
|
0
|
50
|
12
|
17
|
|||
1
|
25
|
15
|
17
|
1
|
24
|
22
|
37
|
|||
2
|
32
|
35
|
36
|
2
|
46
|
11
|
18
|
Blok 0 Blok 1
a.RMO
Jumlah elemen tiap
baris = 3 elemen/baris
Jumlah elemen tiap
bolk = 9 elemen/blok
Ditanya
|
:
|
&A[1][2][1]
|
|
Diketahui
|
:
|
&A[0][0][0]
|
_
|
1
2 1
|
Pindah kolom = 1
kolom = 1 elemen
Pindah baris = 2
baris x 3 elemen/baris = 6 elemen
Pindah blok = 1
blok x 9 elemen/blok = 9 elemen
Total perpindahan
= 1 + 6 + 9 = 16 elemen x 2 byte/elemen
=
32 byte = 20H byte
Jadi &A[1][2][1]
= 1000H + 20H = 1020H
b. CMO
Jumlah elemen tiap
kolom = 3 elemen/kolom
Jumlah elemen tiap
bolk = 9 elemen/blok
Ditanya
|
:
|
&A[1][2][1]
|
|
Diketahui
|
:
|
&A[0][0][0]
|
_
|
1
2 1
|
Pindah kolom = 1
kolom x 3 elemen/kolom = 3 elemen
Pindah baris = 2
baris = 2 elemen
Pindah blok = 1
blok x 9 elemen/blok = 9 elemen
Total perpindahan
= 3 + 2 + 9 = 14 elemen x 2 byte/elemen
= 28 byte = 1CH
byte
Jadi
&A[1][2][1] = 1000H + 1CH = 101CH
Soal :
Diketahui suatu
array 3D yang dideklarasikan dengan int A[4][3][6]. Alamat elemen pertama
adalah CBBDH.
Ditanyakan :
a. Jumlah elemen
b. Jumlah byte
seluruhnya
c. &A[2][2][4]
Jawab:
a.RMO (Row Major
Order)
Jumlah elemen tiap
baris = 3 elemen/kolom
Jumlah elemen tiap
bolk = 9 elemen/blok
Ditanya : &A[2][2][4]
Diketahui : &A[0][0][0]
_
|
2 2
4
|
Pindah kolom = 2
kolom = 2
elemen
Pindah baris = 2 baris x 3 elemen/baris = 6 elemen
Pindah blok = 4 blok x 9 elemen/blok = 36 elemen
Total perpindahan
= 2 + 6 + 36 = 44 elemen x 2 byte/elemen
= 88 byte = 58H byte
Jadi
&A[2][2][4]=CBBDH + 58H = CC15H
b.CMO (Coloum
Major Order)
Jumlah elemen tiap
kolom = 3 elemen/kolom
Jumlah elemen tiap
bolk = 9 elemen/blok
Ditanya
|
:
|
&A[2][2][4]
|
|
Diketahui
|
:
|
&A[0][0][0]
|
_
|
2
2 4
|
Pindah kolom = 2
kolom x 3 elemen/kolom = 6 elemen
Pindah baris = 2
baris = 2 elemen
Pindah blok = 4
blok x 9 elemen/blok = 36 elemen
Total perpindahan
= 6 + 2 + 36 = 44 elemen x 2 byte/elemen
= 88 byte = 58H byte
Jadi
&A[1][2][1] = CCBDH + 58H =CC15H
0
|
0
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
7
|
7
|
8
|
8
|
9
|
9
|
A
|
10
|
B
|
11
|
C
|
12
|
D
|
13
|
E
|
14
|
F
|
15
|
G
|
16
|
Tidak ada komentar:
Posting Komentar