Pertemuan - 3 -...

Post on 20-Mar-2019

310 views 12 download

Transcript of Pertemuan - 3 -...

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 …..

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 …..

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

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

Array / Larik

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

Endfor

CONTOH PROSES Array / Larik

Mengisi 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

Endfor

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

1 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

Endfor

1 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

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]) – 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

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

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

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

Matriks

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] >

Absensi : array [1..100, 1..2] of Waktu

Proses Matriks

1. Elemen Matriks diproses Baris demi

Baris

2. Elemen Matriks diproses Kolom demi

Kolom

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

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

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

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

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

CONTOH PROSES Matriks

Mengisi 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

Array B dua dimensi (matriks) :

- jumlah baris 2, kolom 3- data 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 Matriks

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

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

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

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

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

CETAK ELEMEN Matriks

For Baris = 1 to 2 do

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 :

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

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 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 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 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 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

4 5 6

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 do

C[Baris,Kolom] =C[Baris,Kolom]+ A[Baris,K] + B[K,Kolom]

Endfor

Endfor

Endfor

Minggu depan :

- Matriks Jarang

- Pengalamatan Matriks