Desain Dan Analisis Algoritma
Desain Dan Analisis Algoritma
Pertemuan 03
Contents
3 1 2 3
Latihan
Buatlah fungsi rekursif untuk menghitung nilai
Xn
Algorithm pangkat(X, n) //algoritma untuk menghitung nilai Xn secara rekursif //input : integer positif X dan n //output : nilai Xn if n = 1 return X else return (X * pangkat(X, n-1))
Pohon rekursifnya?
9
10
13
14
Basic Operation: if n = 1
17
Nilai initial condition C(1) disubtitusikan ke C(n i) pada bentuk umum C(n). C(n) = C(n - i) + i C(n) = C(1) + i C(n) = 0 + i C(n) = i
19
21
Analisa waktu:
T(n) = T(n - 1) + 1 T(n) = (T(n - 2) + 1) + 1 = T(n - 2) + 2 T(n) = (T(n - 3) + 1) + 2 = T(n - 3) + 3
Latihan 1
Buatlah fungsi rekursif untuk menghitung nilai
faktorial bilangan n
23
Latihan 2
Buatlah fungsi rekursif untuk menghitung
permasalahan Menara Hanoi
Algorithm Hanoi(n, A, B, C) if n = 1 pindahkan piringan A ke B else Hanoi(n-1,A,C,B) pindahkan piringan A ke B Hanoi(n-1,C,B,A) end if
25
Relasi rekurens :
T(n) = 1 untuk n=1 T(n) = 2T(n-1) + 1 untuk n>1
26
Latihan Soal
Ini ada beberapa soal buat latihan biar terbiasa
mengerjakan soal2 perhitungan estimasi. Mohon dikerjakan
27
Soal 1
Buatlah fungsi rekursif untuk menghitung bilangan
fibonacci ke n
Dari pohon rekurisfnya hitung estimasi waktunya Buat algoritma non rekursif untuk menghitung bilangan
fibonacci ke n, hitung estimasi waktunya lalu bandingkan dengan algoritma rekursif di atas
28
Soal 2
Desainlah algoritma untuk menghitung 2n untuk
semua n integer positif berdasarkan konsep 2n
= 2n1 + 2n1.
29
Soal 3
Apa tujuan dari Algoritma ini? Buatlah persamaannya lalu hitung estimasi
waktu ekseskusinya jika basic operationya adalah multiplication
30
Soal 4
Perhatikan algoritma rekursif untuk menghitung S(n) =
13 + 23 + . . . + n3.
Soal 5
32