380 likes | 644 Views
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 .
E N D
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
Struktur Data ….. model logika/matematik yang secara khusus mengorganisasi data Review ...
Contoh Struktur Data ….. Review ...
Contoh Struktur Data ….. Review ...
Operasi terhadap data Tempat Penyimpanan Data Struktur 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 - Struktur Data paling mudah - Memori ekonomis, bila semua elemen terisi - Waktu akses sama ke setiap elemen KELEBIHAN & KEKURANGAN Array / Larik Review ... • KEKURANGAN • - Boros memori jika banyak elemen yang tidak digunakan • - Struktur Data Statis
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 PROSES LARIK Array / Larik Review ... • Catatan :Tipe Data sejenis (homogen) • Indeks data memiliki keterurutan
CONTOH PROSES 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 Array / Larik ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0 Endfor Review ... 0 0 0 0 0 0 0 0
CETAK ELEMEN Array / Larik ALGORITMA For Indeks 1 to 8 do PrintA[Indeks] Endfor 4 9 2 7 1 3 7 5 Review ... 5 7 1 3 2 9 4 7
PROSES BENTUK LAIN Array / Larik ALGORITMA For Indeks 1 to 8 do Proses Larik Endfor Review ... qMencari bilangan maksimun/minimum pada larik qMenjumlahkan nilai seluruh elemen larik qMembuat rata-rata nilai seluruh elemen larik q Mencari nilai tertentu pada larik 5 7 1 3 2 9 4 7
5 7 1 3 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 ...
HITUNG PANJANG 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 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 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
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 - Struktur Data paling mudah - Memori ekonomis, bila semua elemen terisi - Waktu akses sama ke setiap elemen KELEBIHAN & KEKURANGAN Matriks • KEKURANGAN • - Boros memori jika banyak elemen yang tidak digunakan • - Struktur Data Statis
Kamus Data Matriks KAMUS A : array [1..2, 1..3] ofinteger{ukuran 2x3} Nilai : array [1..50,1..4] ofreal {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
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 Endfor PROSES MATRIKS Matriks Baris demi Baris
PROSES MATRIKS Matriks Baris demi Baris 18 3 69 24 8 70
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 Endfor PROSES MATRIKS Matriks Kolom demi Kolom
PROSES MATRIKS Matriks Kolom demi Kolom 18 3 69 24 8 70
CONTOH PROSES Matriks ALGORITMA For Baris 1 to M do For Kolom 1 to N do PROSES MATRIKS Endfor 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 Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor Endfor 0 0 0 0 0 0
Isi dengan 1,2,3,4,5,6 Matriks Indeks = 1 For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = Indeks Indeks = Indeks + 1 Endfor 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) = ??? Indeks = ??? Endfor Endfor 1 3 5 7 9 13
18 3 69 24 8 70 CETAK ELEMEN Matriks For Baris = 1 to 2do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor Endfor 18 3 69 24 8 70
PROSES LAINNYA Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = ??? ??? Endfor Endfor PROSES MATRIK DAPAT DIMODIFIKASI, sbb : qMenjumlahkan nilai pada setiap baris qMembuat rata-rata pada setiap baris atau setiap kolom qMencari nilai tertentu pada matrik qMenjumlahkan/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 Endfor 18 3 69 90 24 8 70 102
18 1 3 2 69 3 24 4 8 5 70 6 Menjumlahkan C = A + B 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 Endfor +
18 3 69 24 8 70 Mengalikan 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 Endfor Endfor