download

Matakuliah
Tahun
: T0034 / Perancangan & Analisis Algoritma
: 2008
Pertemuan 26
PRAKTEK ANALISIS ALGORITMA
KASUS 1
• Buatlah sebuah algoritma untuk menghitung
jumlah faktor pembagi bilangan N !
Bina Nusantara
TAHAP 5
• Optimisasi code
• Cari bagian apa dari pseudocode yang bisa
disempurnakan!
– Periksa apakah semua batas atas dan batas bawah perulangan
sudah optimal
– Periksa apakah semua kondisi percabangan sudah ditempatkan
dengan benar
– Periksa apakah terdapat redundansi proses
– Periksa apakah ada bagian pseudocode yang bisa dibuang tanpa
mengubah hasilnya
– Periksa adakah teknik lain yang bisa digunakan
Bina Nusantara
TAHAP 6
• Menulis program, kompilasi, testing
• Lakukan perbaikan bila perlu
• Isu-isu dalam memilih bahasa pemrograman
–
–
–
–
–
Bina Nusantara
Kebutuhan masalah
Kecepatan
Tampilan
Kompatibilitas
Memori dan tipe data
TAHAP 7
• Implementasi, training, maintenance
• Tahap terakhir yang sering dilupakan
• Sebuah program tidak berarti apabila
penggunanya tidak tahu bagaimana cara
menggunakannya !
Bina Nusantara
KASUS 2
• Buatlah sebuah algoritma untuk menampilkan jumlah faktor
pembagi bilangan X, dengan X adalah 1 hingga N !
• Misal
–
–
–
–
–
–
–
Jumlah faktor dari 1 adalah 1
Jumlah faktor dari 2 adalah 2
Jumlah faktor dari 3 adalah 2
Jumlah faktor dari 4 adalah 3
Jumlah faktor dari 5 adalah 2
Jumlah faktor dari 6 adalah 4
dst
• Maka ditampilkan : 1, 2, 2, 3, 2, 4, dst
Bina Nusantara
PENYELESAIAN KASUS 2
• Lakukan penyelesaian kasus 2 dengan tahaptahap seperti kasus 1 !
• Apakah penyelesaian dengan teknik flagging dapt
menghasilkan algoritma yang lebih baik?
Bina Nusantara
TRAVELING SALESMAN PROBLEM
• Dalam matakuliah ini, TSP digunakan sebagai contoh
dalam beberapa teknik algoritma.
• Bisakah TSP diselesaikan dengan Divide and Conquer?
• Bisakah TSP diselesaikan dengan Metode Greedy?
Bagaimana hasilnya?
• Bagaimana penyelesaian TSP dengan Dynamic
Programming?
• Bagaimana penyelesaian TSP dengan Branch and Bound?
• Teknik mana yang paling baik untuk menyelesaikan TSP?
• Mengapa?
Bina Nusantara
PEMILIHAN TEKNIK ALGORITMA
• Masalah seperti apa yang paling baik diselesaikan dengan
Teknik Divide and Conquer?
• Masalah seperti apa yang paling baik diselesaikan dengan
Metode Greedy?
• Masalah seperti apa yang paling baik diselesaikan dengan
Dynamic Programming?
• Masalah seperti apa yang paling baik diselesaikan dengan
Teknik Backtracking?
• Masalah seperti apa yang paling baik diselesaikan dengan
Teknik Branch and Bound?
• Masalah seperti apa yang paling baik diselesaikan dengan
Full Search Tree?
Bina Nusantara
PENUTUP
• Kunci sukses dalam menguasai pemrograman
komputer adalah berlatih dan terus berlatih.
Bina Nusantara