Kuliah Ke - 2 Matriks Array dan (Bab 2)

Download Report

Transcript Kuliah Ke - 2 Matriks Array dan (Bab 2)

Kuliah Ke - 2
Array dan Matriks (Bab 2)
Informatics Engineering Department
TRUNOJOYO UNIVERSITY
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 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
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
2
0
0
2
3
18
0
0
24
0
0
03
08
69
70
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
2
18
1
4
2
3
24
5
6
03
08
69
70
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
2
18
1
7
3
5
24
9
13
03
08
69
70
CETAK ELEMEN
Matriks
For
60
3
18
7
8
24
9
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
2
18
24
2
3
18
3
69
24
8
70
03
08
69
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
3
03
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
1
18
2
03
3
69
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