Pertemuan - 3 -...

38
Pertemuan - 3 Array dan Matriks (Bab 2) Oleh : Boldson Herdianto. S., Skom., MMSI.

Transcript of Pertemuan - 3 -...

Page 1: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

Pertemuan - 3

Array dan Matriks (Bab 2) Oleh : Boldson Herdianto. S., Skom., MMSI.

Page 2: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

Apa itu Struktur Data ?

PROGRAM

ALGO

RITMA

STRUKTUR

DATA

Page 3: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 4: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

Struktur Data …..

model logika/matematik

yang secara khusus

mengorganisasi data

Page 5: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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.

Page 6: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 7: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 8: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 9: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 10: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 11: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 12: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

INISIALISASI Array / Larik

ALGORITMA

For Indeks 1 to 8 do

A[Indeks] = 0

Endfor

0 0 0 0 0 0 0 0

Page 13: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 14: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 15: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 16: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 17: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 18: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 19: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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)

Page 20: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

Kita lanjutkan

untuk yang satu ini …..

Page 21: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 22: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 23: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 24: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 25: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 26: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 27: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 28: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 29: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 30: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 31: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 32: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 33: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 34: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 35: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 36: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 37: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

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

Page 38: Pertemuan - 3 - boldson.staff.gunadarma.ac.idboldson.staff.gunadarma.ac.id/Downloads/files/42686/Pertemuan+ke-3...PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990)

Minggu depan :

- Matriks Jarang

- Pengalamatan Matriks