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
  1. Esakov, Jeffrey, Tom Weiss, Data Structures An Advanced Approach Using C, Prentice-Hall, Inc. 1989
  2. Hariyanto, Bambang, Struktur Data, Informatika Bandung, Pebruari 2000
  3. Kadir, Abdul, Pemrograman Dasar Turbo C, Andi Offset, Yogyakarta, 1991
  4. Kruse, Robert L. Data Structures & Program Design, Prentice-Hall, Inc.1987
  5. Standish, Thomas A. Data Structures, Algorithms & Software Principles In C, Addison Wesley, 1995

Komentar

Postingan populer dari blog ini

LINEAR QUEUE

STACK/TUMPUKAN

TIPE DATA DAN HIRARKI DATA