Anda di halaman 1dari 21

Kompleksitas

Algoritma
Matakuliah Design Analysis Algorithm
S1 Teknik Informatika STIKOM PGRI Banyuwangi
Dosen Pengampu: Khoirul Umam, M.Kom
Apakah usaha yang dibutuhkan untuk memindahkan seember
kecil air lebih besar dibandingkan usaha untuk memindahkan
segelas air dengan asal dan tujuan yang sama?
Apakah energi yang dibutuhkan untuk bepergian dari Banyuwangi
Lets Think! ke Rogojampi sama besar dengan usaha yang dibutuhkan untuk
bepergian dari Banyuwangi ke Srono?
Apakah THR yang diberikan saat lebaran ke keluarga dekat lebih
sedikit dibandingkan dengan yang diberikan ke keluarga besar?

DAA 1 - Kompleksitas Algoritma 2


Semakin besar ukuran masalah, semakin besar energi yang
dibutuhkan untuk menyelesaikannya
Umumnya... Masalah tidak dapat dikecilkan, namun energi bisa diakali
Temukan cara terbaik menghadapi masalah itu efisiensi

DAA 1 - Kompleksitas Algoritma 3


Efisiensi waktu runtime
Efisiensi Efisiensi ruang memory usage

DAA 1 - Kompleksitas Algoritma 4


Dapat menggunakan satuan waktu pada umumnya
Milidetik, detik, menit, dsb

Mengukur Kekurangannya?
Bergantung kepada kecepatan komputer, compiler, dll
Runtime Solusi?
Algoritma Hitung jumlah eksekusi tiap langkah dalam algoritma

Sulit?
Batasi pada basic operation-nya saja

DAA 1 - Kompleksitas Algoritma 5


Basic Operation
Operasi/prosedur di dalam algoritma yang paling banyak/paling
sering dijalankan dan menghabiskan waktu

Contoh:
Basic operation kasus pengurutan sekumpulan data adalah pembandingan 2 elemen data
Basic operation kasus pencarian suatu data adalah pembandingan data yang dicari dengan data lainnya
Basic operation perkalian matriks adalah proses perkalian dan penjumlahan tiap elemen

DAA 1 - Kompleksitas Algoritma 6


Jika:
n input size
cop waktu eksekusi suatu basic operation
Formulasi C(n) jumlah eksekusi
T(n) running time
Running Time
Maka:

DAA 1 - Kompleksitas Algoritma 7


Contoh Kasus
Tower of Hanoi

DAA 1 - Kompleksitas Algoritma 8


A B C
Initial state
n buah cincin di tiang A

Analisis Tower
of Hanoi

Final state
n buah cincin di tiang C

DAA 1 - Kompleksitas Algoritma 9


A B C
Initial state
n buah cincin di tiang A

=
Memindahkan n-1
buah cincin ke tiang B

Analisis Tower =

of Hanoi Memindahkan cincin 1


ke tiang C

Memindahkan n-1
cincin ke tiang C

DAA 1 - Kompleksitas Algoritma 10


A B C

Analisis Tower
of Hanoi
Jadi untuk memindahkan n buah cincin dari tiang A ke tiang C pada Tower of Hanoi
dibutuhkan waktu:

= +

DAA 1 - Kompleksitas Algoritma 11


= 2 1 + 1 = 2 2 2 + 1 + 1
1 = 2 2 + 1 = 4 2 + 2 + 1

2 = 2 3 + 1 = 4 2 3 + 1 + 2 + 1
= 8 3 + 4 + 2 + 1

Generalisasi:

Telescoping = 2 + 1
=0 2

Tower of Hanoi = 2 + 2 1 = 21 + 21 1
Jika hanya ada 1 cincin di tiang A, =
berapa langkah yang dibutuhkan
untuk memindahkan cincin itu ke
tiang B?
1 langkah saja

1 =1
Maka = 1

DAA 1 - Kompleksitas Algoritma 12


A B C

Analisis Tower
of Hanoi
Jadi untuk memindahkan n buah cincin dari tiang A ke tiang C pada Tower of Hanoi
dibutuhkan waktu:

=
Jika seseorang bisa memindahkan 1 buah cincin per detik, berapa waktu yang
dibutuhkan oleh orang tersebut untuk memindahakan 64 buah cincin dari tiang A ke
tiang C? ( = )
DAA 1 - Kompleksitas Algoritma 13
Empat buah algoritma masing-masing memiliki formulasi running
time sebagai berikut:
A B C
1 = 22 + 3 4 = 3 10
Latihan! = 1
2

Hitunglah waktu yang dibutuhkan oleh masing-masing algoritma


jika input size-nya bernilai 10, 100, 1000, 10.000!

DAA 1 - Kompleksitas Algoritma 14


n A B C
1 = 22 + 3 4 = 3 10
= 1
2

Pembahasan 10 45 226 990


100 4.950 20.296 999.990
1000 499.500 2.002.996 999.999.990
10.000 49.995.000 200.029.996 999.999.999.990

DAA 1 - Kompleksitas Algoritma 15


Seberapa cepat suatu fungsi tumbuh?
Order of Linear, kuadratik, faktorial, atau konstan?

Growth Analisis efisiensi tidak menghiraukan konstanta pengali dan hanya


fokus pada order of growth

DAA 1 - Kompleksitas Algoritma 16


Runtime (T)

1
Input size (n)
DAA 1 - Kompleksitas Algoritma 17
Kasus algoritma
Worst
Cworst(n) Case
dengan runtime
paling lama

Kasus algoritma
Base
Kasus Efisiensi dengan runtime
Case
Cbest(n)
paling cepat

Kasus algoritma
Average
Cavg(n) Case
dengan runtime
wajar

DAA 1 - Kompleksitas Algoritma 18


Asimtot = pendekatan
Notasi yang menunjukkan pendekatan besaran kompleksitas
suatu algoritma
Bukan nilai kompleksitas sebenarnya
Notasi Nama Fungsi
Big Oh Batas atas order of growth
Notasi Big Omega Batas bawah order of growth
Big Theta Standar/rata-rata order of growth
Asimtotik
Contoh :
1
2 100 + 5 2 1 2
2
3 2 0,000013 2 4 + + 1 2
1
3 2 1 2 100 + 5 2
2

DAA 1 - Kompleksitas Algoritma 19


DAA 1 - Kompleksitas Algoritma 20
Class Nama
1 Konstan
log Logaritmik
Basic Linear
Asymptotic log N-log-N
Eficiency 2 Kuadratik
Classes 3 Kubik
2 Eksponensial
! Faktorial

DAA 1 - Kompleksitas Algoritma 21