1 REUVEN BAR ON
IQ rata-rata berpengaruh 6% dalam keberhasilan maksimal 20% EQ INVENTORY
Peringkat Karakteristik %
1 Jujur 88
2 Berpikiran Maju 71
3 Kompeten 66
4 Dapat Memberi Inspirasi 65
5 Cerdas 47
6 Adil 42
7 Berpandangan Luas 40
8 Mendukung 35
9 Terus Terang 34
10 Bisa Diandalkan 33
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Contents
1
3 Review Materi 1 s.d 8
2
3 Decrease and Conquer
3
4 DFS and BFS
10
TUGAS KELOMPOK PS-MTI
ANG. 40-A (MK-ADA)
Tabel 1. Pembagian Kelompok dan Materi yang diskusikan pada kelompok
No. Kelompok Materi
1 Absen 1 s.d 5 Algoritma Greedy (Prinsip, Knapsak Problem, Huffman Code)
2 Absen 6 s.d 10 Penulusuran pada Graf (DFS, BFS) dan minimum spanning tree
(Algoritma Prim, Algoritma Kruskal)
3 Absen 11 s.d 14 Mencari lintasan terpendek pada graf (algoritma Dijkstra, Algoritma
Floyd-Warshall, Algoritma-Ford)
4 15 s.d 18 Pewarnaan peta (Deskripsi, algoritma welsh powell, aplikasi)
Buat Slide presentasi yang membahas materi yang telah ditentukan sesuai dengan tabel 1.
11
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
ALGORITMA ?.
ALGORITMA ?.
ALGORITMA ?.
VARIABLES
VARIABLES
EXPRESSION
THE ARRAYS
INDEX OF AN ARRAY
THE FUNCTIONS
Algoritma :
Definisi : Langkah-langkah pemecahan suatu masalah atau
pekerjaan, yang dinyatakan secara sistematis, rinci, dan jelas,
sehingga bila dilaksanakan pada kondisi awal tertentu, akan
berakhir dalam selang waktu terbatas dan menghasilkan
keluaran seperti yang diharapkan.
Desain Algoritma :
1. Uraian langkah-langkah dalam pemecahan masalah
yang ada
2. Permasalahan dibagi menjadi sub-masalah yang lebih
mudah dikerjakan.
3. Sub-masalah dibagi lagi menjadi sejumlah sub-
masalah yang lebih kecil sampai menjadi bagian yang
mudah diselesaikan (pemrograman modular).
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Desain Algoritma :
1. Pengkajian berulang, sehingga akan diperoleh
algoritma yang paling lengkap, tepat, benar dan
relevan, dan siap untuk diimplementasikan dalam
bentuk program.
2. Fase kajian akhir dilakukan untuk memastikan sudah
tidak ada lagi permasalahan lain yang terlupakan.
Karakteristik Algoritma
1. Terstruktur
2. Efisien
3. Rinci
4. Tidak bermakna ganda
5. Independen
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Terstruktur :
1. Terdiri dari sejumlah langkah, blok, prosedur & fungsi
2. Satu pintu masuk dan satu pintu keluar
3. Aliran Kendali mengikuti pola tertentu
4. Mudah dikelola & dikembangkan
RINCI :
1. Mudah dinyatakan dengan satu atau beberapa
perintah bahasa pemrograman
2. Tidak menimbulkan keraguan makna
INDEPENDENT :
Tidak tergantung pada bahasa pemrog- raman
tertentu
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Algoritma :
1. Terdiri atas langkah-langkah yang terdefinisi dengan baik
2. Bisa dihitung (computable) atau bisa diukur (measurable)
3. Menerima input, menghasilkan output
4. Memungkinkan komputer melakukan proses penyelesaiain
suatu masalah
Runtunan (Sequence)
1. Algoritma merupakan runtunan (sequence) satu atau
lebih instruksi/pernyataan,
2. setiap pernyataan dikerjakan secara berurutan sesuai
dengan urutan penulisannya. Sebuah instruksi
dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan.
3. Urutan instruksi menentukan keadaan akhir algoritma
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Pemilihan (Selection)
if kondisi then
aksi
endif
if kondisi then
aksi1
else
aksi2
endif
Pengulangan (Repetition)
for var awal to akhir do
aksi
endfor
repeat
aksi
until kondisi_stop
while kondisi_ulang do
aksi
endwhile
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
EFISIENSI I/O :
1. I/O yang berpengaruh langsung terhadap
pemakai, maksudnya input yang dimasukkan
oleh pemakai cukup jelas dan mudah dimengerti
begitu juga untuk output yang dihasilkan.
2. I/O yang berpengaruh secara langsung terhadap
mesin.
Pengkodean
Pendefinisian Algoritma
Masalah
Implementasi dan uji
coba dengan komputer
Deskripsi
Masalah
Tidak
Perancangan Sesuai
Aloritma Ya
Program Siap
A pakai
CO paru-paru.
Citra Input Cropping Citra Ekstraksi Area Deteksi nodul Hitung luas area
(Image) Input paru dalam paru nodul
Deklarasi
k : integer {Pencacah untuk jumlah langkah}
j : integer {Pencacah untuk penelusuran array}
N : integer {Ukuran baris citra}
M : integer {Ukuran kolom citra}
Program Matlab :
H(1:Lmax) =0;
for i = 1 : N
for j = 1 : M
H(Im(i,j)) = H(Im(i,j)) +1;
end
end
2500 0.01
2000 0.008
1500 0.006
1000 0.004
500 0.002
0 0
0 50 100 150 200 250 300 0 50 100 150 200 250 300
Citra Optis
Pengelompokan Jenis – Jenis Citra
DAFTAR PUSTAKA
Wajib:
[1] Kenneth H. Rosen, Discrete Mathematics and Its Applications, 6th Ed, 2007, McGraw-Hill Inc.
[2] Peter Van Roy & Seif Haridi, Concepts, Techniques, and Models of Computer Programming, 2004, MIT
[3] Press.Gilles Brassard, Paul Bratley, Algorithmics: Theory & Practice, 1988, Prentice Hall.
Tambahan:
[4] Harsh Bhasin, Algorithms: Design and Analysis, 2015, Oxford.
Last modified: Monday, 28 September 2020, 12:17 AM
96
Permasalahan eksponensial: Hitung xn
n-1 multiplications
• Brute Force:
T(n) = 2*T(n/2) + 1
• Divide and Conquer: = n-1
97
Insertion sort
To sort array A[0..n-1], sort A[0..n-2] recursively and then insert A[n-1] in its
proper place among the sorted A[0..n-2]
Example: Sort 6, 4, 1, 8, 5
6|4 1 8 5
4 6|1 8 5 Exercise :
1 4 6|8 5
1 4 6 8|5
1 4 5 6 8
98
Pseudo code Insertion sort
99
100
101
Kompleksitas waktu algoritma Insertion Sort:
Penyelesaian:
T(n) = cn + T(n – 1)
= cn + { c ⋅ (n – 1) + T(n – 2) }
= cn + c(n – 1) + { c ⋅ (n – 2) + T(n – 3) }
= cn + c ⋅ (n – 1) + c ⋅ (n – 2) + {c(n – 3) + T(n – 4) }
= ...
= cn+c⋅(n–1)+c(n–2)+c(n–3)+...+c2+T(1)
= c{ n + (n – 1) + (n – 2) + (n – 3) + ... + 2 } + a
= c{ (n – 1)(n + 2)/2 } + a
= cn2/2+cn/2 +(a–c)
= O(n2)
102
Selection Sort
• Algoritma sorting
• Sorting perbandingan pada element
• Terbagi menjadi 2 :
• Sorted list
• Sisa himpunan yang belum tersorting
103
Selection sort
104
105
• Misalkan tabel A berisi elemen-elemen berikut:
106
• Kompleksitas waktu algoritma:
107
Depth-First Search (DFS)
• Mengunjungi vertex-vertex pada grafik dengan selalu bergerak dari vertex yang
terakhir dikunjungi ke vertex yang belum dikunjungi, lakukan backtrack apabila
tidak ada vertex tetangga yang belum dikunjungi.
• “Redraws” atau gambar ulang grafik dalam bentuk seperti pohon (dengan edges
pohon dan back edges untuk grafik tak berarah/undirected graph)
108
Pseudo code DFS
109
Example: DFS traversal of undirected graph
a b c d
e f g h
2 3
4 5 6 7
8
1
2 3
4 5 6 7
8
1
2 3 4
5 6 7
8 9
Notes on DFS
• Time complexity of DFS is O(|V|). Why?
• each edge (u, v) is explored exactly once,
• All steps are constant time.
114
Breadth-first search (BFS)
• Mengunjungi vertex-vertex grafik dengan berpindah ke semua vertex tetangga
dari vertex yang terakhir dikunjungi.
• “Redraws” atau gambar ulang grafik dalam bentuk seperti pohon (dengan edges
pohon dan back edges untuk grafik tak berarah/undirected graph)
115
Example of BFS traversal of undirected graph
a b c d
e f g h
117
Notes on BFS
• Asumsi: setiap simpul dapat membangkitkan b buah simpul baru.
• Misalkan solusi ditemukan pada aras/level ke-d
• Jumlah maksimum seluruh simpul:
118
Breadth First Search (grafik berarah)
2 4 8
s 5 7
3 6 9
119
Breadth
Shortest path
First1Search
2 4 8
from s
0 s 5 7
3 6 9
Undiscovered
Discovered Queue: s
Top of queue
Finished 120
Breadth First Search
1
2 4 8
0 s 5 7
3 6 9
Undiscovered
Discovered Queue: s 2
Top of queue
Finished 121
Breadth First Search
1
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: s 2 3
Top of queue
Finished 122
Breadth First Search
1
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: s 2 3 5
Top of queue
Finished 123
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: 2 3 5
Top of queue
Finished 124
Breadth First Search
1 2
2 4 8
5 already discovered:
0 s 5 7
don't enqueue
1
3 6 9
Undiscovered
Discovered Queue: 2 3 5 4
Top of queue
Finished 125
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: 2 3 5 4
Top of queue
Finished 126
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
Undiscovered
Discovered Queue: 3 5 4
Top of queue
Finished 127
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 3 5 4
Top of queue
Finished 128
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 3 5 4 6
Top of queue
Finished 129
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 5 4 6
Top of queue
Finished 130
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 5 4 6
Top of queue
Finished 131
Breadth First Search
1 2
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 4 6
Top of queue
Finished 132
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 4 6
Top of queue
Finished 133
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1
3 6 9
1 2
Undiscovered
Discovered Queue: 4 6 8
Top of queue
Finished 134
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2
Undiscovered
Discovered Queue: 6 8
Top of queue
Finished 135
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 6 8 7
Top of queue
Finished 136
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 6 8 7 9
Top of queue
Finished 137
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 8 7 9
Top of queue
Finished 138
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished 139
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished 140
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished 141
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 7 9
Top of queue
Finished 142
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 9
Top of queue
Finished 143
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 9
Top of queue
Finished 144
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue: 9
Top of queue
Finished 145
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Undiscovered
Discovered Queue:
Top of queue
Finished 146
Breadth First Search
1 2 3
2 4 8
0 s 5 7
1 3
3 6 9
1 2 3
Level Graph
147
148
• Latihan: Gunakan algoritma BFS dan DFS untuk menemukan pohon merentang
(spanning tree) dari graf G di bawah ini jika traversalnya dimulai dari simpul k.
Dalam menjawab soal ini, perlihatkan traversal BFS/DFS sebagai pohon berakar
dengan e sebagai akarnya.
149
Binary Search Tree
Several algorithms on BST requires recursive
processing of just one of its subtrees, e.g.,
k
• Searching
• Insertion of a new key
• Finding the smallest (or the largest) key
<k >k
150
Binary Search Tree
151
152
153
154
Bagaimana spider menjelajahi (surfing) web?
155
Latihan 1 :
https://colab.research.google.com/drive/1RPu5UZpOQWlece8zmKExXyIyPM_HUUs8
Latihan 2:
https://colab.research.google.com/drive/1GZl1Pbh-FEhjY-raIOwqlUyqxUSgxA1p
Latihan 3:
https://colab.research.google.com/drive/1bOOZ88cTmOId3ePblFQqR9oijY4h7do4#scrollTo=FtEvz4j5SB9B
Latihan 4 :
https://colab.research.google.com/github/cs231n/cs231n.github.io/blob/master/python-colab.ipynb#scrollTo=qPsHSKB1L9hF
156