Kuliah Ke - 2 Array dan Matriks (Bab 2) Informatics Engineering Department TRUNOJOYO UNIVERSITY
Apa itu Struktur Data ? PROGRAM Review ... ALGO RITMA STRUKTUR DATA
Algoritma ….. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis Review ... ditulis dengan notasi khusus notasi mudah dimengerti notasi dapat diterjemahkan menjadi sintaks suatu bahasa pemrograman
model logika/matematik yang secara khusus mengorganisasi data Struktur Data ….. model logika/matematik yang secara khusus mengorganisasi data Review ...
Contoh Struktur Data ….. Review ...
Contoh Struktur Data ….. Review ...
Tempat Penyimpanan Data Struktur Data ….. Tempat Penyimpanan Data Operasi terhadap data Review ... Traversal (Traversing) : mengunjungi setiap elemen SD Pencarian (Searching) : menemukan elemen/lokasi pada SD Penyisipan (Inserting) : menambah elemen baru pada SD Penghapusan (Deleting) : menghapus elemen dari SD
Struktur Data : Array / Larik Tujuan Membahas struktur data yang paling sederhana dan mudah pengoperasiannya, yaitu array / larik. Review ... Definisi struktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks
KELEBIHAN & KEKURANGAN Array / Larik KELEBIHAN - Struktur Data paling mudah - Memori ekonomis, bila semua elemen terisi - Waktu akses sama ke setiap elemen Review ... KEKURANGAN - Boros memori jika banyak elemen yang tidak digunakan - Struktur Data Statis
PROSES LARIK Review ... Program Proses_Larik KAMUS Array / Larik Program Proses_Larik KAMUS Const : N = 8 {jumlah elemen larik} Indeks : integer A : array [1..N] of integer {deklarasi larik A dengan tipe data integer} ALGORITMA For Indeks 1 to N do PROSES LARIK Endfor Review ... Catatan : Tipe Data sejenis (homogen) Indeks data memiliki keterurutan
CONTOH PROSES Review ... A[Indeks]=0 ALGORITMA For Indeks 1 to N do Array / Larik ALGORITMA For Indeks 1 to N do PROSES LARIK Endfor Review ... A[Indeks]=0 Mengisi elemen larik dengan 0 (inisialisasi) Mengisi elemen larik dari piranti masukan Mencetak elemen larik ke piranti keluaran Input A[Indeks] Print A[Indeks]
INISIALISASI Review ... ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0 Array / Larik ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0 Endfor Review ...
CETAK ELEMEN 4 2 9 7 5 7 3 1 Review ... 1 3 5 7 2 9 4 7 ALGORITMA Array / Larik ALGORITMA For Indeks 1 to 8 do Print A[Indeks] Endfor 4 2 9 7 5 7 3 1 Review ... 1 3 5 7 2 9 4 7
PROSES BENTUK LAIN Review ... 1 3 5 7 2 9 4 7 ALGORITMA Array / Larik ALGORITMA For Indeks 1 to 8 do Proses Larik Endfor Review ... q Mencari bilangan maksimun/minimum pada larik q Menjumlahkan nilai seluruh elemen larik q Membuat rata-rata nilai seluruh elemen larik q Mencari nilai tertentu pada larik 1 3 5 7 2 9 4 7
Cari Bilangan Maksimum Array / Larik ALGORITMA Maks = A[1] For Indeks 2 to 8 do If A[Indeks] > Maks then Maks = A[Indeks] Endfor Print Maks Review ... 1 3 5 7 2 9 4
HITUNG PANJANG Panjang = UB - LB + 1 dimana: Array / Larik Panjang = UB - LB + 1 dimana: UB - upper bound ( indeks terbesar) LB - lower bound (indeks terkecil) Contoh : Seorang pedang mobil menggunakan larik untuk menyimpan data penjualan dari tahun 1990 sampai dengan tahun 2001. Berapa panjang (jumlah elemen) larik yang harus disediakan? LB = 1990 UB = 2001 Jadi panjang = UB – LB + 1 = 2001 – 1990 + 1 = 12
PENGALAMATAN LOK(LA[K]) = Awal(LA) + W(K - LB) di mana: Array / Larik LOK(LA[K]) = Awal(LA) + W(K - LB) di mana: LOK(LA[K]) – lokasi elemen dengan indeks K, yang dicari K -- Indeks yang dicari Awal (LA) -- Lokasi awal dari larik W – jumlah byte untuk menyimpan 1 elemen larik LB -- lower bound / batas bawah
PENGALAMATAN LOK(LA[K]) = Awal(LA) + W(K - LB) Array / Larik LOK(LA[K]) = Awal(LA) + W(K - LB) Contoh: Misalkan Awal (Jual) = 100 dan W= 4, maka LOK (JUAL[1990]) = 100 LOK (JUAL[1991]) = 104 LOK (JUAL[1992]) = 108 Berapa lokasi JUAL[2000] ? untuk mendapat lokasi tersebut LOK(LA[K]) = Awal(LA) + W(K - LB) = 100 + 4 * (2000 – 1990) = 140
PENGALAMATAN Array / Larik Array Awal - 100 Jual(1990) 104 Jual(1991) Lokasi Memori Array Awal - 100 Jual(1990) 104 Jual(1991) 108 Jual(1992) 112 Jual(1993) 116 Jual(1994) Jual(1995) 124 Jual(1996) 128 Jual(1997) 132 Jual(1998) 136 Jual(1999) 140 Jual(2000)
Kita lanjutkan untuk yang satu ini …..
Struktur Data : Matriks Definisi struktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks Array dua dimensi, yang memiliki indeks baris dan kolom
KELEBIHAN & KEKURANGAN Matriks KELEBIHAN - Struktur Data paling mudah - Memori ekonomis, bila semua elemen terisi - Waktu akses sama ke setiap elemen KEKURANGAN - Boros memori jika banyak elemen yang tidak digunakan - Struktur Data Statis
Kamus Data KAMUS A : array [1..2, 1..3] of integer {ukuran 2x3} Matriks KAMUS A : array [1..2, 1..3] of integer {ukuran 2x3} Nilai : array [1..50,1..4] of real {ukuran 50x4} Type WAKTU : record < JJ : integer [0..23], MM : integer [0..59], DD : integer [0..59] > Absensi : array [1..100, 1..2] of Waktu Catatan : Tipe Data sejenis (homogen) Indeks data memiliki keterurutan
Proses Matriks Elemen Matriks diproses Baris demi Baris Elemen Matriks diproses Kolom demi Kolom
PROSES MATRIKS Endfor Matriks Program Proses_Matrik_BarisdemiBaris KAMUS Const : M = 2 {jumlah baris matrik} Const : N = 3 {jumlah kolom array} Baris, Kolom : integer A : array [1..M, 1..N] of integer ALGORITMA For Baris 1 to M do For Kolom 1 to N do PROSES MATRIK Endfor Baris demi Baris
PROSES MATRIKS Matriks Baris demi Baris 18 3 69 24 8 70
PROSES MATRIKS Matriks Program Proses_Matrik_KolomdemiKolom KAMUS Const : M = 2 {jumlah baris matrik} Const : N = 3 {jumlah kolom array} Baris, Kolom : integer A : array [1..M, 1..N] of integer ALGORITMA For Kolom 1 to N do For Baris 1 to M do PROSES MATRIK Endfor Kolom demi Kolom
PROSES MATRIKS Matriks Kolom demi Kolom 18 3 69 24 8 70
CONTOH PROSES ALGORITMA For Baris 1 to M do For Kolom 1 to N do Matriks ALGORITMA For Baris 1 to M do For Kolom 1 to N do PROSES MATRIKS Endfor Mengisi elemen matriks dengan 0 (inisialisasi) Mengisi elemen matriks dari piranti masukan Mencetak elemen matriks ke piranti keluaran A[Baris,Kolom]=0 Input A[Baris,Kolom] Print A[Baris,Kolom]
INISIALISASI For Baris = 1 to 2 do For Kolom = 1 to 3 do Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor
Isi dengan 1,2,3,4,5,6 1 2 3 4 5 6 Indeks = 1 For Baris = 1 to 2 do Matriks Indeks = 1 For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = Indeks Indeks = Indeks + 1 Endfor 1 2 3 4 5 6
Isi dengan 1,3,5,7,9,11 Matriks Indeks = ??? For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = ??? Endfor 1 3 5 7 9 13
CETAK ELEMEN 8 70 24 18 69 3 18 3 69 24 8 70 For Baris = 1 to 2 do Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor 8 70 24 18 69 3 18 3 69 24 8 70
PROSES LAINNYA For Baris = 1 to 2 do For Kolom = 1 to 3 do Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = ??? ??? Endfor PROSES MATRIK DAPAT DIMODIFIKASI, sbb : q Menjumlahkan nilai pada setiap baris q Membuat rata-rata pada setiap baris atau setiap kolom q Mencari nilai tertentu pada matrik q Menjumlahkan/Mengurangkan dua buah matrik Mengalikan dua buah matrik
Menjumlahkan setiap baris Matriks For Baris = 1 to 2 do TotalBaris = 0 For Kolom = 1 to 3 do TotalBaris = TotalBaris + A[Baris,Kolom] Endfor Print Total Baris 18 3 69 90 24 8 70 102
Menjumlahkan C = A + B + For Baris = 1 to 2 do For Kolom = 1 to 3 do Dua buah Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do C[Baris,Kolom] =A[Baris,Kolom]+ B[Baris,Kolom] Endfor 18 3 69 24 8 70 1 2 3 4 5 6 +
Mengalikan For Baris = 1 to 2 do For Kolom = 1 to 3 do Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do C[Baris, Kolom] = 0 For K = 1 to P do C[Baris,Kolom] =C[Baris,Kolom]+ A[Baris,K] * B[K,Kolom] Endfor 18 3 69 24 8 70
Minggu depan : - Matriks Jarang - Pengalamatan Matriks