Kuliah Ke - 2
Array dan Matriks (Bab 2)Informatics Engineering DepartmentTRUNOJOYO UNIVERSITY
Apa itu Struktur Data ?
PROGRAM
ALGORITMA
STRUKTUR DATA
Algoritma …..
deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis
1. ditulis dengan notasi khusus2. notasi mudah dimengerti3. notasi dapat diterjemahkan menjadi
sintaks suatu bahasa pemrograman
Struktur Data …..
model logika/matematik yang secara khusus mengorganisasi data
Contoh Struktur Data …..
1 7 18 03 69 24 08 70
1 2 3 4 5 6 7 8
Array A satu dimensi :8 indeks (1 s /d 8) dan data 1 , 7 , 18 dst.
Contoh Struktur Data …..
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
Struktur Data …..
Tempat Penyimpanan Data
Operasi terhadap data
• 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
1 7 18 03 69 24 08 70
1 2 3 4 5 6 7 8
Array A satu dimensi :8 indeks (1 s /d 8) dan data 1 , 7 , 18 dst.
Struktur Data :Struktur Data : Array / Larik Array / LarikTujuanMembahas struktur data yang paling sederhana dan mudah pengoperasiannya, yaitu array / larik.
Definisistruktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks
KELEBIHAN & KEKURANGAN
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
Array / LarikArray / Larik
PROSES LARIKArray / LarikArray / Larik
Catatan : Tipe Data sejenis (homogen) Indeks data memiliki keterurutan
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
CONTOH PROSES Array / LarikArray / Larik
Mengisi elemen larik dengan 0 (inisialisasi)Mengisi elemen larik dari piranti masukanMencetak elemen larik ke piranti keluaran
ALGORITMA For Indeks 1 to N do PROSES LARIK Endfor
1 7 18 03 69 24 08 70
1 2 3 4 5 6 7 8
Array A satu dimensi :8 indeks (1 s /d 8) dan data 1 , 7 , 18 dst.
INISIALISASIArray / LarikArray / Larik
ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0A[Indeks] = 0 Endfor
0 0 0 0 0 0 0 0
1 7 18 03 69 24 08 70
1 2 3 4 5 6 7 8
Array A satu dimensi :8 indeks (1 s /d 8) dan data 1 , 7 , 18 dst.
CETAK ELEMENArray / LarikArray / Larik
ALGORITMA For Indeks 1 to 8 do Print A[Indeks] A[Indeks] Endfor
1 3 5 7 2 9 4 7
13572947
1 7 18 03 69 24 08 70
1 2 3 4 5 6 7 8
Array A satu dimensi :8 indeks (1 s /d 8) dan data 1 , 7 , 18 dst.
PROSES BENTUK LAINArray / LarikArray / Larik
ALGORITMA For Indeks 1 to 8 do Proses Larik Endfor
1 3 5 7 2 9 4 7
Mencari bilangan maksimun/minimum pada larik Menjumlahkan nilai seluruh elemen larik Membuat rata-rata nilai seluruh elemen larik Mencari nilai tertentu pada larik
Cari Bilangan MaksimumArray / LarikArray / Larik
ALGORITMA Maks = A[1] For Indeks 2 to 8 do If A[Indeks] > Maks then
Maks = A[Indeks] Endfor Print Maks
1 7 18 03 69 24 08 70
1 2 3 4 5 6 7 8
Array A satu dimensi :8 indeks (1 s /d 8) dan data 1 , 7, 18 dst.
1 3 5 7 2 9 4 7
HITUNG PANJANGArray / LarikArray / 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 = 1990LB = 1990UB = 2001UB = 2001Jadi panjang = UB – LB + 1 = 2001 – 1990 + 1 = 12Jadi panjang = UB – LB + 1 = 2001 – 1990 + 1 = 12
PENGALAMATANArray / LarikArray / Larik
LOK(LA[K]) = Awal(LA) + W(K - LB) di mana: LOK(LA[K]) – lokasi elemen dengan indeks K, yang dicariK -- Indeks yang dicariAwal (LA) -- Lokasi awal dari larikW – jumlah byte untuk menyimpan 1 elemen larikLB -- lower bound / batas bawah
PENGALAMATANArray / LarikArray / Larik
LOK(LA[K]) = Awal(LA) + W(K - LB) Contoh:Misalkan Awal (Jual) = 100 dan W= 4, maka LOK (JUAL[1990]) = 100LOK (JUAL[1991]) = 104LOK (JUAL[1992]) = 108 Berapa lokasi JUAL[2000] ? untuk mendapat lokasi tersebut LOK(LA[K]) = Awal(LA) + W(K - LB)
= 100 + 4 * (2000 – 1990)= 140
PENGALAMATANArray / LarikArray / Larik
Lokasi Memori Array
Awal - 100Awal - 100 Jual(1990)
104104 Jual(1991)
108108 Jual(1992)
112112 Jual(1993)
116116 Jual(1994)
112112 Jual(1995)
124124 Jual(1996)
128128 Jual(1997)
132132 Jual(1998)
136136 Jual(1999)
140140 Jual(2000)
Kita lanjutkan Kita lanjutkan untuk yang satu ini …..untuk yang satu ini …..
Struktur Data :Struktur Data : Matriks MatriksDefinisi•struktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks •Array dua dimensi, yang memiliki indeks baris dan kolom
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
KELEBIHAN & KEKURANGAN
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
MatriksMatriks
Kamus DataMatriksMatriks
Catatan : Tipe Data sejenis (homogen) Indeks data memiliki keterurutan
KAMUSA : 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
Proses Matriks1. Elemen Matriks diproses Baris demi
Baris2. Elemen Matriks diproses Kolom demi
Kolom
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
PROSES MATRIKSMatriksMatriks
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 MATRIKSMatriksMatriks
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
18 3 69
24 8 70
PROSES MATRIKSMatriksMatriks
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 MATRIKSMatriksMatriks
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
18 3 69
24 8 70
CONTOH PROSES MatriksMatriks
Mengisi elemen matriks dengan 0 (inisialisasi)Mengisi elemen matriks dari piranti masukanMencetak elemen matriks ke piranti keluaran
ALGORITMA For Baris 1 to M do For Kolom 1 to N do PROSES MATRIKS Endfor Endfor
INISIALISASIMatriksMatriks
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0A(Baris, Kolom) = 0 EndforEndfor
0 0 00 0 0
Isi dengan 1,2,3,4,5,6MatriksMatriks
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
Indeks = 1For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = IndeksA(Baris, Kolom) = Indeks
Indeks = Indeks + 1Indeks = Indeks + 1 EndforEndfor
1 2 34 5 6
Isi dengan 1,3,5,7,9,11MatriksMatriks
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
Indeks = ???For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = ???A(Baris, Kolom) = ???
Indeks = ???Indeks = ??? EndforEndfor
1 3 57 9 13
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
18 3 6924 8 70
CETAK ELEMENMatriksMatriks
For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0A(Baris, Kolom) = 0 EndforEndfor
1836924870
PROSES LAINNYAMatriksMatriks
For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = ???A(Baris, Kolom) = ??? ?????? EndforEndfor
PROSES MATRIK DAPAT DIMODIFIKASI, sbb : Menjumlahkan nilai pada setiap baris Membuat rata-rata pada setiap baris atau setiap kolom Mencari nilai tertentu pada matrik Menjumlahkan/Mengurangkan dua buah matrik• Mengalikan dua buah matrik
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
18 3 69
24 8 70
Menjumlahkan setiap barisMatriksMatriksFor Baris = 1 to 2 do
TotalBaris = 0 For Kolom = 1 to 3 do
TotalBaris = TotalBaris + A[Baris,Kolom]
Endfor Print Total BarisEndfor
90
102
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
18 3 69
24 8 70
Menjumlahkan C = A + BDua buah MatriksDua 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
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
1 2 3
4 5 6
1 8 0 3 6 9
2 4 0 8 7 0
1
Ar ra y B dua di me ns i (ma tr ik s ) :- j uml a h ba ri s 2 , k ol om 3- d a ta 1 8 , 0 3 , 6 9 , 2 4 , 08 , 7 0 .
2
1 2 3
18 3 69
24 8 70
MengalikanMatriksMatriks
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
Minggu depan :Minggu depan :
- Matriks Jarang - Matriks Jarang - Pengalamatan Matriks - Pengalamatan Matriks
Recommended