Pertemuan - 3 Array dan Matriks (Bab 2) Oleh : Boldson Herdianto. S., Skom., MMSI.
Apa itu Struktur Data ?
PROGRAM
ALGO RITMA
STRUKTUR DATA
Algoritma …..
deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. ditulis dengan notasi khusus 2. notasi mudah dimengerti 3. notasi dapat diterjemahkan menjadi sintaks suatu bahasa pemrograman
Struktur Data …..
model logika/matematik yang secara khusus mengorganisasi data
Contoh Struktur Data ….. Array A satu dimensi : 8 indeks (1 s/d 8) dan data 1, 7, 18 dst. 1
7
18
03
69
24
08
70
1
2
3
4
5
6
7
8
Contoh Struktur Data ….. Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18
03
69
2
24
08
70
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
Struktur Data :
Array / Larik
Tujuan Membahas struktur data yang paling sederhana dan mudah pengoperasiannya, yaitu array / larik. 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
KEKURANGAN - Boros memori jika banyak elemen yang tidak
digunakan - Struktur Data Statis
PROSES LARIK
Array / Larik
Program Proses_Larik KAMUS Const Indeks A
: N = 8 {jumlah elemen larik} : integer : array [1..N] of integer {deklarasi larik A dengan tipe data integer}
ALGORITMA For Indeks 1 to N do PROSES LARIK Endfor Catatan
:
Tipe Data sejenis (homogen) Indeks data memiliki keterurutan
CONTOH PROSES
Array / Larik
ALGORITMA For Indeks 1 to N do PROSES LARIK Endfor Mengisi
elemen larik dengan 0 (inisialisasi) Mengisi
elemen larik dari piranti
masukan Mencetak
keluaran
elemen larik ke piranti
INISIALISASI
Array / Larik
ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0 Endfor
0
0
0
0
0
0
0
0
CETAK ELEMEN
Array / Larik
ALGORITMA For Indeks 1 to 8 do Print A[Indeks] Endfor
2 7 4 9 5 3 1
1
3
5
7
2
9
4
7
PROSES BENTUK LAIN
Array / Larik
ALGORITMA For Indeks 1 to 8 do Proses Larik Endfor q
Mencari bilangan maksimun/minimum pada
larik 5 nilai 7 seluruh 1 3 2 elemen 9 4larik 7 q Menjumlahkan q Membuat rata-rata nilai seluruh elemen larik q Mencari nilai tertentu pada larik
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 1
3
5
7
2
9
4
7
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]) K Awal (LA) W LB
– lokasi elemen dengan indeks K, yang dicari -- Indeks yang dicari -- Lokasi awal dari larik – jumlah byte untuk menyimpan 1 elemen larik -- 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
Lokasi Memori
Array
Awal -
100
Jual(1990)
104
Jual(1991)
108
Jual(1992)
112
Jual(1993)
116
Jual(1994)
112
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 Ar ray B dua di mensi (matr iks) : - j uml ah bari s 2, kol om 3 - d ata 18, 03, 69, 24, 08, 70.
1
2
3
1
18
03
69
2
24
08
70
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
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 Catatan
:
: array [1..100, 1..2] of Waktu Tipe Data sejenis (homogen) Indeks data memiliki keterurutan
Proses Matriks 1. 2.
Elemen Matriks diproses Baris demi Baris Elemen Matriks diproses Kolom demi Kolom Array B dua di mensi (matr iks) : - j uml ah bari s 2, kol om 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18
03
69
2
24
08
70
PROSES MATRIKS
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 Endfor
PROSES MATRIKS
Matriks
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18 18
303
69 69
2
24 24
808
70 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 Endfor
PROSES MATRIKS
Matriks
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18 18
303
69 69
2
24 24
808
70 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
keluaran
elemen matriks ke piranti
INISIALISASI
Matriks
For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor Ar ray B dua di mensi (matr iks) : j uml ah bari s 2, kol om 3 Endfor - d ata 18, 03, 69, 24, 08, 70. 1 1
0
2
0
18
24
2
0
03
08
0
3
0
69
70
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 Ar ray B dua di mensi (matr iks) : - j um l ah bari s 2, + kol om 3 Indeks = Indeks 1 - d ata 18, 03, 69, 24, 08, 70. Endfor 1 2 3 Endfor 1
1
2
4
18
24
2
03
08
5
3
69
70
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) = ??? Ar ray B dua di mensi (matr iks) : - j um l ah = bari s 2, kol om 3 Indeks ??? - d ata 18, 03, 69, 24, 08, 70. Endfor 1 2 3 Endfor 1
1
2
7
18
24
3
03
08
9
5
69
70
13
CETAK ELEMEN
Matriks
For
70 8 24 69 3 18
Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor dua Endfordi mensi (matr iks) :
Ar ray B - j uml ah bari s 2, kol om 3 - d ata 18, 03, 69, 24, 08, 70.
1 1
18
2
24
18
24
2
3
03
08
8
3
69
69
70
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 : 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] Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
Endfor Print Total Baris Endfor
1
2
3
1
18
18
03
3
69 69
90
2
24
24
08
8
70 70
102
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
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18 18
03 3
69 69
2
24 24
08 8
70 70
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18 1
03 2
69 3
2
4 24
08 5
70 6
Mengalikan
Matriks
For Baris = 1 to 2 do For Kolom = 1 to 3 do C[Baris, Kolom] = 0 For K = 1 to P do Array B duaA[Baris,K] dimensi + (matriks) : C[Baris,Kolom] =C[Baris,Kolom]+ B[K,Kolom]
Endfor Endfor Endfor
- jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70.
1
2
3
1
18
18
03
3
69 69
2
24
24
08
8
70 70
Minggu depan : - Matriks Jarang - Pengalamatan Matriks