ANALISIS ALGORITMA
Langkah Desain Algoritma
Pemateri:
Adam Mukharil Bachtiar
adam@email.unikom.ac.id
Untuk bisa melakukan proses
desain algoritma maka ada
beberapa langkah yang harus
dilakukan
Understand the problem
Decide on:
Computational means,
exact vs approximate
solving, data structure(s),
algorithm design
technique
Design an algorithm
Prove correctness
Analyze the algorithm
Code the algorithm
Langkah-langkah
Desain Algoritma
Langkah 1:
Memahami Jangkauan Masalah
Untuk bisa memahai jangkauan
masalah maka kita harus
memetakan masalah
berdasarkan tipe masalahnya
Tipe permasalahan pada algoritma:
1 Pengurutan
2 Pencarian
3 Pemrosesan String
4 Graph
5 Kombinatorik
6 Geometrik
7 Numerik
Masalah 1: Pengurutan
Inti masalah:
Menyusun ulang hal-hal yang terdapat pada
daftar dengan urutan menaik/menurun
Tantangan:
1 Jika bentuk data adalah record maka kita butuh sebuah key
2 Terdapat beberapa algoritma pengurutan
Masalah 2: Pencarian
Inti masalah:
Menemukan suatu nilai dari sekumpulan nilai
yang ada
Jangkauan Algoritma:
Algoritma sekuensial atau binary search
(efisien tapi penggunaan terbatas)
Tantangan:
1 Kumpulan data yang sangat besar
2 Update: add, edit, delete
Masalah 3:
Pemrosesan String
Masalah Khusus:
Pencocokan string (pencarian kata dalam
suatu teks)
Jangkauan Algoritma:
Algoritma untuk text string, binary string,dan
gene sequences
Masalah 4: Graph
Inti masalah:
Penelusuran graph, pencarian jarak
terpendek, sorting topologic pada graph
dengan ujung berarah
Tantangan:
1 Travelling Salesman Problem
2 Pewarnaan graph
Masalah 5:
Kombinatorik
Inti masalah:
Menemukan suatu objek kombinatorik
(permutasi, kombinasi, atau subset) yang
memiliki batasan-batasan tertentu dan
memiliki property yang diinginkan
Tantangan:
1 Sejumlah objek kombinatorik tertentu tumbuh dengan cepat
seiring perkembangan ukuran masalah
2 Tidak diketahui algoritma eksak untuk menyelesaikan masalah
tersebut dalam waktu yang diinginkan
Masalah 6:
Geometrik
Inti masalah:
membangun bentuk geometrik dengan
menggunakan titik, garis, dan polygon, dan
lainnya
Tantangan:
1 Aplikasi komputer grafik, robot, dan tomography
2 Closest-pair
3 Convex-full
Masalah 7:
Numerik
Jangkauan Algoritma:
Melibatkan objek matematis yang memiliki
sifat
Inti masalah:
membangun bentuk geometrik dengan
menggunakan titik, garis, dan polygon, dan
lainnya
Tantangan:
1 Melibatkan objek matematis yang bersifat kontinu
2 Perubahan fokus pada komputasi industri
Langkah 2:
Memutuskan beberapa hal:
1 Problem memerlukan algoritma eksak atau perkiraan
2 Struktur data yang optimal
3 Teknik desain algoritma
Algoritma eksak tidak akan
ditolerir apabila memerlukan
waktu yang relatif lama
Contoh masalah:
cari solusi dari akar pangkat dua dari
bilangan x dimana x adalah bilangan real.
Jenis masalah:
Algoritma perkiraan karena solusi berupa
bilangan kontinu.
Operasi Array Dynamic Linked List
Get() Ο(1) Ο(%)
Add() Ο(1) Ο 1 à insert first/last
Remove() Ο(%) Ο(%)
Brute Force VS. Divide and Conquer
Contoh masalah:
Pencarian bilangan pada array berukuran
10000
Langkah 3:
Desain algoritma
Pilihan desain algoritma:
1 Menggunakan Bahasa alami
2 Flowchart
3 Desain hardware
4 Menggunakan source code program
5 Pseudo code
6 Bentuk lain?
Langkah 4:
Pembuktian Kebenaran Algoritma
Membuktikan bahwa algoritma
menghasilkan output yang
sesuai dengan input yang
diberikan dalam waktu tertentu
Pilihan pembuktian kebenaran:
1 Induksi matematis
2 Tracing algoritma sederhana
3 Untuk algoritma perkiraan à error < limit error
Langkah 5:
Analisis Kualitas Algoritma
Kualitas algoritma meliputi:
1 Correctness
2 Time and space efficiency
3 Simplicity
4 Generality: masalah dan jangkauan input
Langkah 6:
Koding Algoritma
Hal-hal yang diperhatikan:
1 Transisi yang benar dan efisien
2 Pembuktian kebenaran program
3 Testing dan Debugging

Analisis Algoritma - Langkah Desain Algoritma