Pertemuan - 3
Array dan
Matriks
(Bab 2)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
Contoh Struktur Data …..
1 7 18 03 69 24 08 70
1
2
3
4
5
6
7
8
Array A satu dimensi :
Contoh Struktur Data …..
18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70.
2
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
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
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
CONTOH PROSES
Array / LarikMengisi elemen larik dengan 0
(inisialisasi)
Mengisi elemen larik dari piranti
masukan
Mencetak elemen larik ke piranti
keluaran
ALGORITMA
For Indeks 1 to N do
PROSES LARIK
INISIALISASI
Array / Larik ALGORITMA For Indeks 1 to 8 do A[Indeks] = 0 Endfor0 0 0 0 0 0 0 0
CETAK ELEMEN
Array / Larik ALGORITMA For Indeks 1 to 8 do Print A[Indeks] Endfor1
3
5
7
2
9
4
7
1
3
5
7
2
9
4
7
PROSES BENTUK LAIN
Array / Larik ALGORITMA For Indeks 1 to 8 do Proses Larik Endfor1
3
5
7
2
9
4
7
q Mencari bilangan maksimun/minimum pada
larik
q Menjumlahkan nilai seluruh elemen larik
q Membuat rata-rata nilai seluruh elemen larik
Cari Bilangan Maksimum
Array / LarikALGORITMA
Maks = A[1]
For Indeks 2 to 8 do
If A[Indeks] > Maks then
Maks = A[Indeks]
Endfor
Print Maks
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
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
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
Struktur Data :
Matriks
Definisi
•struktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks
•Array dua dimensi, yang memiliki indeks baris dan kolom
18 03 69
24 08 70
1
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.
2
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
Kamus Data
Matriks
Catatan : Tipe Data sejenis (homogen)
Indeks data memiliki keterurutan
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] >
Proses Matriks
1. Elemen Matriks diproses Baris demi
Baris
2. Elemen Matriks diproses Kolom demi
Kolom
18 03 69 24 08 70
1
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.
2
PROSES MATRIKS
Matriks Program Proses_Matrik_BarisdemiBarisKAMUS
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
Matriks18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70.
2
1 2 3
18
3
69
24
8
70
PROSES MATRIKS
Matriks Program Proses_Matrik_KolomdemiKolomKAMUS
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
Matriks18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70.
2
1 2 3
18
3
69
CONTOH PROSES
MatriksMengisi elemen matriks dengan 0
(inisialisasi)
Mengisi elemen matriks dari piranti
masukan
Mencetak elemen matriks ke piranti
keluaran ALGORITMA For Baris 1 to M do For Kolom 1 to N do PROSES MATRIKS Endfor Endfor
INISIALISASI
Matriks
18 03 69
24 08 70
1
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. 2 1 2 3 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
Matriks18 03 69
24 08 70
1
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. 2 1 2 3 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
Matriks18 03 69
24 08 70
1
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. 2 1 2 3 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 03 69
24 08 70
1
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. 2 1 2 3
18
3
69
24
8
70
CETAK ELEMEN
Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor Endfor18
3
69
24
8
70
PROSES LAINNYA
Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = ??? ??? Endfor EndforPROSES 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
18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70.
2
1 2 3
18 3 69 24 8 70
Menjumlahkan setiap baris
MatriksFor Baris = 1 to 2 do TotalBaris = 0
For Kolom = 1 to 3 do
TotalBaris = TotalBaris + A[Baris,Kolom]
Endfor
Print Total Baris
Endfor
90 102
18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70. 2 1 2 3 18 3 69 24 8 70
Menjumlahkan C = A + B
Dua buah MatriksFor Baris = 1 to 2 do
For Kolom = 1 to 3 do
C[Baris,Kolom] =A[Baris,Kolom]+ B[Baris,Kolom]
Endfor Endfor
18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70.
2
1 2 3
1 2 3
18 03 69
24 08 70
1
Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3
- data 18, 03, 69, 24, 08, 70. 2 1 2 3 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 doC[Baris,Kolom] =C[Baris,Kolom]+ A[Baris,K] + B[K,Kolom]
Endfor
Endfor Endfor