download

Matakuliah
Tahun
: T0034 / Perancangan & Analisis Algoritma
: 2008
Pertemuan 25
MERANCANG ALGORITMA
DENGAN KOMPLEKSITAS TERTENTU
REVIEW (1)
• Pengenalan algoritma
• Komponen-komponen algoritma
– Perulangan
– Percabangan
– Modul
• Rekursif
• Induksi matematika
• Analisis algoritma
– Fungsi kompleksitas
• Abstract Data Type
– Stack
– Queue
• Priority Queue
– Tree
• Binary Tree
• Heap
– Graph
Bina Nusantara
REVIEW (2)
• Divide and Conquer
– Pengurutan
•
•
•
•
•
Selection Sort
Insertion Sort
Buble Sort
Merge Sort
Quick Sort
– Pencarian
• Sequential Search
• Binary Search
• Metode Greedy
–
–
–
–
Bina Nusantara
Knapsack Problem
Pengurutan jobs berdasar deadline
Minimum Spanning Tree
Shortest Path
REVIEW (3)
• Dynamic Programming
–
–
–
–
–
•
•
•
•
Fibonacci Sequence Problem
Coin Change Problem
Multistage Graph Problem
Traveling Salesman Problem
Knapsack Problem
Code Optimization
Huffman Code
Graph Coloring
Search Tree
– Tree Traversal
– Backtracking
– Branch and Bound
• Traveling Salesman Problem
Bina Nusantara
MEMBUAT PROGRAM KOMPUTER
•
Meneliti masalah
– Jika masalah berupa sebuah soal, baca dan pahami soal dulu sebaik-baiknya
•
•
•
•
Memahami masalah
Membuat model masalah
Merancang algoritma
Membuat pseudocode
– Menterjemahkan pseudocode ke bahasa pemrograman
•
Analisis algoritma
– Menghitung fungsi kompleksitas
– Menghitung Big-Oh
•
•
•
•
•
•
Optimisasi algoritma
Kompilasi
Percobaan
Implementasi
Pelatihan bagi pengguna
Perawatan
Bina Nusantara
KASUS 1
• Buatlah sebuah algoritma untuk menghitung
jumlah faktor pembagi bilangan N !
Bina Nusantara
TAHAP 1
• Pahami dulu soalnya !
• Kasus ini mirip dengan kasus bilangan prima
–
–
–
–
Faktor pembagi = bilangan yang habis membagi bilangan tertentu
Bilangan prima : mencari apakah jumlah faktor = 2
Kasus 1 : mencari jumlah faktor sebuah bilangan N
Misal :
• Jumlah faktor dari 5 adalah 2
– 5 dibagi 1 = 5
– 5 dibagi 5 = 1
• Jumlah faktor dari 6 adalah 4
–
–
–
–
Bina Nusantara
6 dibagi 1 = 6
6 dibagi 2 = 3
6 dibagi 3 = 2
6 dibagi 6 = 1
TAHAP 2
• Buat model masalah !
• Contoh permodelan sederhana :
– Sebuah bilangan X adalah faktor dari N jika N mod X = 0
Bina Nusantara
TAHAP 3
• Merancang algoritma
• Untuk sebuah bilangan N, kita perlu mencari semua
bilangan X yang habis membagi N
• Jadi, semua bilangan dari 1 hingga N dicoba satu per satu
• Contoh pseudocode awal
1
2
3
4
5
6
7
Bina Nusantara
iJumFak=0
for x=1 to N do
if (N mod x)=0 then
iJumFak=iJumFak+1
end if
end for
display iJumFak
TAHAP 4
• Analisis algoritma
• Hitung fungsi kompleksitas
• Hitung Big-Oh
Bina Nusantara