ARRAY
A. TEMA DAN TUJUAN KEGIATAN PEMBELAJARAN 1.Tema
:Array
2. Fokus
:
1. Mengingat kembali konsep array 2. Array 1 dimensi , 2 dimensi dan 3 dimensi 3. Pengalamatan Array
:
1. Mahasiswa dapat memahami kembali konsep array di semester – semester sebelumnya. 2. Mahasiswa mampu membedakan dan menyelesaikan permasalahan pada data array, baik sorting, searching dan lain-lain. 3. Mahasiswa mampu menyelesaikan perhitungan pengalamatan array .
Pembahasan Materi Pokok
3. Tujuan Kegiatan Pembelajaran
Definisi Array • Koleksi data dimana setiap elemen memakai nama yang sama, bertipe sama dan setiap elemen diakses dengan membedakan indeks arraynya. • Struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama • Tipe data terstruktur yang terdapat dalam memory yang terdiri dari sejumlah elemen (tempat) yg mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap • Array / Larik adlh suatu tipe variabel yg berisi kumpulan data yg berisi kumpulan data dengan setiap elemen datanya bertipe sama. Diakses dan dibedakan melalui indeks yg spesifik dimana jumlahnya sebanyak array tersebut dikurangi satu.
Fungsi Array • Sebagai langkah efisien penggunaan memori komputer, Karena; Elemen array dinyatakan dgn index berupa n buah bilangan Elemen array disimpan di memori pada lokasi yg berhimpitan
Jenis Array • Array 1 Dimensi • Array 2 Dimensi • Array Multi Dimensi
Array 1 Dimensi • Adalah jenis struktur data yg paling sederhana • Kumpulan terhingga W elemen data sejenis/ kumpulan elemen data sejenis dimana setiap elemen datanya dinyatakan dengan 1 subscript • Jika A adlh nm Array, maka elemen dr A dinyatakan sbb : A[1], A[2], A[3], . . . A[W], dimana : bil 1 s/d W pd A[W] disebut subscript atau index, sedangkan A[W] sendiri disebut Var bersubscript/Var berindex
Contoh Array 1 Dimensi • Contoh Array Mahasiswa yg mengandung 4 nama Mahasiswa Mhs [1] = Budi Mhs [2] = Wati No Nama Mahasiswa dst 1
Budi
2
Wati
3
Yono
4
Anti
atau
No
A[1]
A[2]
A[3]
A[4]
Nama
Budi
Wati
Yono
Anti
Deklarasi Array 1 Dimensi • Const Maks_Elemen = 5; {tergantung jumlah elemen yang dibutuhkan} • Type TipeArray = ARRAY[1..Maks_Elemen] Of Byte; • Var NamaArray : TipeArray;
Deklarasi Array 1 Dimensi • Beberapa contoh pendeklerasian tipe array: • TYPE • TabelKar = ARRAY[Char] OF Integer; • TabelNilai = ARRAY[1..5] OF Byte; • TabelHuruf = ARRAY[1..26] OF Char;
Deklarasi Array 1 Dimensi • Pada contoh di atas : • TabelKar : tipe dengan indeksnya bertipe Char dan tipe elemennya berupa Integer. Jika mendeklarasikan variabel yang bertipe TabelKar, maka dapat menyimpan jumlah masing-masing karakter (ada 256 kemungkinan) ke dalam variabel tersebut. • TabelNilai berisi 5 buah elemen (dengan indeks berkisar antara 1 sampai dengan 5) dan masing masing elemen bertipe Byte. • Tabel Huruf adalah tipe yang berisi 26 elemen dengan masing-masing elemen bertipe Char.
Deklarasi Array 1 Dimensi • Contoh berikut menggambarkan pemakaian array yang menampung 5 buah nama jenis musik. Const Maks_Elemen = 5; Type NamaMusik = ARRAY[1..Maks_Elemen] OF String[15]; Var DaftarMusik = NamaMusik; • Pada contoh ini DaftarMusik berisi 5 buah elemen yang bertipe string dengan maksimal panjang karakter 15.
Menghitung banyaknya elemen data pada Array 1 Dimensi
L = BA – BB + 1 Dimana : L = Variabel yg mewakili ukuran Array BA = Batas Atas / Index Terbesar BB = Batas Bawah / Index Terkecil jikaBB = 1 -> L = BA
Contoh : • Perusahaan mobil menggunakan Array Auto untuk merekam banyaknya penjualan setiap tahun dari 1932 sampai 1984, pertanyaannya berapa banyak mobil yang terjual pada tahun k? Jawab : Diketahui : Nama Array Auto BB = 1932 BA = 1984 Ditanya : L = BA – BB + 1 = 1984 – 1932 + 1 = 53 elemen
Penyajian Array dlm Memory • LA adalah suatu array di dlm memory, LOC(LA[K]) = alamat dari elemen LA[K]. • Base (LA) disebut alamat dasar dari LA. • W adalah jumlah word per sel memori untuk array. • Maka Rumusnya adalah : LOC(LA[K]) =BASE(LA) + W(K-BB) Dimana : nilai W -> Character Integer Real
:1 :2 :4
Contoh : • • • •
Pada sebuah array A[25], A[26], A[27]... A[87] Alamat Dasarnya 150 Nilai W adalah integer Tentukan lokasi A[60] ?
Jawaban : LOC(A[60]) = 150 + 2(60-25) = 150 + 2(35) = 150 + 70 = 220 Jadi lokasi A[60] = 220
Array 2 Dimensi Array 2 dimensi (matrik/tabel) adalah kumpulan elemen data sejenis dimana setiap elemennya dinyatakan dengan 2 subscript . . . .
Contoh Array 2 Dimensi Gudang
1
2
3
4
1
50
30
45
15
2
30
40
65
20
3
60
50
15
40
4
55
35
50
25
5
40
45
40
60
6
70
10
0
55
Barang
Misal: Nama Array adl : stock, maka : Stock [1,1] = 50 Stock [1,2] =30 Stock [1,3] =45 . . . Stock [6,4] =55 Jadi ukuran array ini adalah 6 x 4 = 6 baris dan 4 kolom, dengan jumlah elemen datanya 6 x 4 = 24 elemen data.
Representasi Array 2 Dimensi • Di memori array A disajikan dalam m.n lokasi memori yang berurutan, yaitu secara : Baris/Baris
Bila array 2D dengan ordo 2.3 (2 baris dan 3 kolom)
1,1
1,2
1,3
2,1
2,2
2,3
Kolom/Kolom
1,1
1,1
1,2
2,1
1,3
1,2
2,1
2,2
2,2
1,3
2,3
2,3
• Untuk menghitung alamat array 2 Dimensi A m.n • Baris per baris LOC(A[j,k]) = BASE(A) + W[N(j-1) +(k-1)] • Kolom per kolom LOC(A[j,k) = BASE (A)+ W[M(k-1)+(j-1)]
Contoh • Bila array dua dimensi dengan A[3,5] dimana m=3, n=5 alamat dasarnya : 150 Nilai W : Char Tentukan lokasi A[2,4] dimana j=2, k=4, secara baris per baris • Jawab : LOC[j,k] = BASE(A) + W[N(j-1) +(k-1)] LOC [2,4] = 150 + 1[5(2-1)+(4-1)] = 150 + 1[5(1) + (3)] = 150 + 1[8] = 158 • Tentukan secara Kolom per kolom !!!!
Representasi Array 3 Dimensi • Dapat digambarkan sebagai sebuah ruang yang terdiridari baris, kolom dan halaman. • Dalam memori array A disajikan dalam k1, k2, k3 dimana k1 adalah baris, k2 adalah kolom dan k3 adalah halaman. Sehingga array diurutkan dalam memori secara berurutan berdasarkan : a. Baris per baris b. Kolom per kolom
• Bila array 3D dengan ordo 2.2.2 (2 baris, 2 kolom dan 2 halaman) Baris/Baris
Kolom/Kolom
1,1,1
1,1,1
1,1,2
2,1,1
1,2,1
1,2,1
1,2,2
2,2,1
2,1,1
1,1,2
2,1,2
2,1,2
2,2,1
1,2,2
2,2,2
2,2,2
Menghitung alamat array 3D • Baris/baris : LOC(A[k1,k2,k3]) = BASE(A)+W((E1.L2+E2)L3+E3) • Kolom/kolom : LOC(A[k1,k2,k3]) = BASE(A) +W((E3.L2+E2)L1+E1) • Banyaknya elemen array data suatu array bisa dihit sbb : Li = Bai – Bbi +1 • Bankyaknya indek Ei = Ki -Bbi
Contoh : • Bila array 3D dengan A[3,5,2] alamat dasarnya :150 nilai W : Char tentukan alamat lokasi A[2,4,2] secara baris per baris • Jawab : BB1= 1 BA1=3 K1=2 L1=3 E1=1 BB2=1 BA2=5 K2=4 L2=5 E2=3 BB3=1 BA3=2 K3=2 L3=2 E3=1 LOC(A[k1,k2,k3]) = BASE(A)+W((E1.L2+E2)L3+E3) LOC(A[2,4,2]) = 150+1((1.5+3)2+1) = 150 +1((8)2+1) = 150 + 17 = 167