ARRAY
PERTEMUAN 02
MATA KULIAH : STRUKTUR DATA
ARRAY
Struktur Data Terdiri dari:
1. Struktur Data Linear :
Struktur data yang menggambarkan hubungan tentang elemen-elemen yang berdekatan
Aplikasi Array :
- Stack(tumpukan)
- Queue(antrian)
- Double Ended Queue/Deque(antrian dg 2 pintu)
Aplikasi Linked List :
- Linked Stack
- Linked Queue
Pengelolaan Memori :
Secara STATIS
Menempati lokasi memeori yang tetap(fixed size), tidak dapat dikembangkan atau diciutkan.
Misal : array
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]
2. Array 2D
Deklarasi A[I]{J]
I : Jumlah baris
J : Jumlah kolom
Urutan elemen dalam memori :
A. Urutan baris per baris ( Row Major Order/RMO)
B. Urutan kolom per kolom (Column Major Order/CMO)
Contoh :
int A[3][4]
a. Jika matrik diatas disimpan dengan urutan RMO, maka :
Tipe data int memerlukan 4 byte/elemen.
&A[0][1]=1004H, &A[0][2]=1008H, &A[0][3]=100BH
&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:
&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
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
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)
3. Array 3D
Diketahui array A[2][3][3] dengan lebar elemen 2 byte. Alamat elemen pertama 1000H.
Ditanya &A[1][2][1]?
a.RMO
Jumlah elemen tiap baris = 3 elemen/baris
Jumlah elemen tiap bolk = 9 elemen/blok
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
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
DAFTAR PUSTAKA
Buku
- Esakov, Jeffrey, Tom Weiss, Data Structures An Advanced Approach Using C, Prentice-Hall, Inc. 1989
- Hariyanto, Bambang, Struktur Data, Informatika Bandung, Pebruari 2000
- Kadir, Abdul, Pemrograman Dasar Turbo C, Andi Offset, Yogyakarta, 1991
- Kruse, Robert L. Data Structures & Program Design, Prentice-Hall, Inc.1987
- Standish, Thomas A. Data Structures, Algorithms & Software Principles In C, Addison Wesley, 1995
Komentar
Posting Komentar