1-1
Analisis Algoritma:
Fakultas Teknologi dan Desain Program Studi Teknik Informatika
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rdEdition, Pearson Education, Inc., Addison-Wesley
Bab 4: Decrease-and-Conquer
Agenda.
• Definition• Three Major Varian of Decrease-and-Conquer
• Insertion Sort
• Topological Sort
Analisis Algoritma | 2
Definition
• Decrease-and-conquer, sebuah teknik yang berdasar pada relasi antara solusi untuk suatu kasus dan solusi untuk bagian yang lebih kecil dari kasus tersebut.
• Pendekatan yang digunakan: top-down-approach atau bottom-up-approach(incremental approach)
• 3 bentuk variasi dari teknik decrease-and-conquer:
1. decrease by constant; 2. decrease by constant factor; 3. variable size decrease
Three Major Varian of Decrease-and-Conquer
Decrease by Constant Variation.
• Ukuran kasus diperkecil (reduce) dengan nilai konstanta yang sama pada setiap iterasi sebuah algoritma.
• Pada umumnya nilai konstantanya adalah 1.
• Contoh kasus: Decrease by constant. 89 12 57 8 16 25 11
Latihan 1.
Kasus: Decrease by constant.
U –N –I –V –E –R –S –I –T –A –S Problem 1: Tunjukkan penerapan decrease-by-constant untuk mengurutkan alphabet acak di atas menggunakan metode selection sort!
Analisis Algoritma | 5
Three Major Varian of Decrease-and-Conquer
Three Major Varian of Decrease-and-Conquer
Insertion Sort.
• Insertion sort menggunakan metode deacrese-by-constant untuk melakukan proses pengurutan suatu deret.
• Contoh kasus: Insertion sort.
Problem: Tentukan prosedur pengurutan deret secara ascending menggunakan metode sorting insertion sort!
Analisis Algoritma | 6
Insertion Sort
Latihan 2. Kasus: Insertion Sort
Problem: Urutkan deret bilangan di bawah ini menggunakan metode
sorting insertion sort!
89 12 57 16 25 11 75
Decrease by a Constant Factor Variation.
• Ukuran kasus diperkecil (reduce) dengan nilai faktor konstanta yang sama pada setiap iterasi sebuah algoritma.
• Pada umumnya nilai faktor konstantanya adalah 2.
• Beberapa algoritma variasi decrese-and-conquer ini adalah:
• binary search; dan • russian peasant multification.
Three Major Varian of Decrease-and-Conquer
Decrease by a Constant Factor Variation.
Binary Search.
• Binary search adalah sebuah algoritma yang digunakan untuk mencari nilai tertentu, baik pada suatu deret bilangan yang acak atau telah terurut. • Contoh kasus: Prosedur pencarian bilangan sembarang tertentu.
Problem: Tentukan prosedur untuk melakukan pencarian suatu bilangan pada suatu deret terurut tertentu.
Analisis Algoritma | 9 1-10
Analisis Algoritma:
Fakultas Teknologi dan Desain Program Studi Teknik Informatika
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rdEdition, Pearson Education, Inc., Addison-Wesley
Three Major Varian of Decrease-and-Conquer
Latihan 3.
Kasus: Pencarian bilangan tertentu sembarang.
12 20 34 41 80 89 100
Problem 1: Tentukan pseudocode untuk melakukan pencarian bilangan 80 pada deret terurut diatas.
Three Major Varian of Decrease-and-Conquer
Russian Peasant Multiplication.
• Russian peasant multiplication adalah algoritma yang digunakan untuk mencari hasil perkalian 2 buah bilangan bulat positif, baik bilangan positif genap maupun ganjil.
• Terdapat 2 formula yang digunakan dalam algoritma ini berdasarkan jenis bilangan :
Three Major Varian of Decrease-and-Conquer
• Jika merupakan bilangan ganjil
• Contoh kasus: Russian peasant multiplication. 50 * 65
Problem: Selesaikan operasi perkalian diatas menggunakan algoritma russian peasant multiplication.
Analisis Algoritma | 13
Three Major Varian of Decrease-and-Conquer
Analisis Algoritma | 14
Three Major Varian of Decrease-and-Conquer
Variable Size Deacrease Variation.
• Ukuran kasus berkurang (size-reduction) dari operasi algoritma sebelumnya.
• Algoritma yang menggunakan varian decrese-and-conquer ini
adalah Euclid’s algorithm.
� , = � ,
Topological Sorting
• Topological sorting (toposort):“merupakan suatu urutan linear
setiap simpul dimana setiap yang saling terhubung secara langsung (direct), simpul muncul sebelum simpul dalam
suatu urutan.”
• Topological sorting menerapkan algoritma traversal yang diterapkan pada metode searching DFS (depth first search) dan disajikan dalam bentuk digraph/direct graph.
Topological Sorting
• Adjacency matrix, menggambarkan hubungan antar simpul dalam bentuk matriks.
• Adjacency list, menggambarkan hubungan antar simpul yang diwakili oleh edge.
• Adjacency matrixdan adjacency list merupakan dasar dari algoritma DFS untuk digraph.
• Penerapan algoritma DFS untuk graph pada umumnya dalam bentuk stack penelusuran dan pohon DFS.
Analisis Algoritma | 17
Topological Sorting
Contoh digraph.
Analisis Algoritma | 18
• Gambar digraph disamping dapat diuraikan menjadi:
• tree edges (ab, bc, de) • back edges (ba) • forward edges (ac) • cross edges(dc)
Topological Sorting
• Contoh kasus: DFS algorithm
Problem 1: Tentukan adjacency matrix, adjacency list dan stack penelusuran graph di atas!
d c
Problem: Tentukan pohon DFS, adjacency matrix dan adjacency list 2 buah graph di bawah ini!
Topological Sorting
Problem 2: Terapkan algoritma DFS pada graph di bawah ini untuk menentukan stack penelusuran dan pohon DFS!
Analisis Algoritma | 21
f a
d c d e
b
• Pada digraph, algoritma DFS digunakan untuk menentukan stack penelusuran (traversal stack) untuk menentukan popping-order.
• Popping-orderdigunakan untuk menentukan topological sorting yang dihasilkan.
• Contoh kasus: Topology sorting &
source-removel algorithm
Problem: Tentukan topology sorted list digraph di samping!
Topological Sorting
Analisis Algoritma | 22
Topological Sorting
• Contoh kasus: Topology sorting & source-removel algorithm Problem 1: Tentukan topology sorted list
digraph di samping! 1). DFS
2). popping-off order
Problem 2: Dengan menerapkan algoritma source-removel algorithm, urutkan simpul-simpul tersebut!
Topological Sorting
Latihan 4.
1-25