download

Matakuliah
Tahun
: T0034 / Perancangan & Analisis Algoritma
: 2008
Pertemuan 2
INDUKSI MATEMATIKA &
FUNGSI REKURSIF
INDUKSI MATEMATIKA
• Sebuah cara untuk membuktikan bahwa sebuah
persaman bernilai benar untuk semua bilangan asli
(bilangan bulat positif)
• Langkah induksi :
– Buktikan bahwa P(1) benar
– Buktikan jika P(n) benar, maka P(n+1) juga benar
– Kesimpulan : n P(n) bernilai benar
Bina Nusantara
CONTOH INDUKSI MATEMATIKA (1)
• Buktikan bahwa jumlah n bilangan asli pertama
adalah n(n+1)/2
n
i 
i 1
n (n  1)
2
– Untuk n = 1 maka 1 = 1(1+1)/2  terbukti
– Untuk n = k harus dibuktikan bahwa pernyataan tersebut
juga benar untuk n = k +1
Bina Nusantara
CONTOH INDUKSI MATEMATIKA (2)
n
• Asumsikan  i 
n (n  1)
2
benar untuk n = k
• Tambahkan (k+1) di kedua ruas
i 1
1  2  3  ...  k 
k (k  1)
2
k (k  1)
 (k  1)
2
k (k  1) 2(k  1)
k (k  1)

 (k  1) 
2
2
2
(k  1)( k  2)
k (k  1)
 (k  1) 
2
2
(k  1)(( k  1)  1)
k (k  1)
 (k  1) 
2
2
1  2  3  ...  k  (k  1) 
Bina Nusantara
RUMUS MATEMATIKA
• Untuk menyegarkan ingatan
[[ n / a ] / b]  [ n / ab]
a  b logb ( a )
a0  1
log c (ab)  log c (a )  log c (b)
a1  a
log c (a / b)  log c (a )  log c (b)
a 1 
log b (a n )  n log b (a )
1
a
( a m ) n  a mn
(a n ) m  (a m ) n
a m  a n  a mn
lg( n)  log 2 ( n)
log b (a ) 
log b ( 1a )   log b (a )
log b (a ) 
1
log a (b)
ln( n)  log e ( n)
a logb ( c )  c logb ( a )
lg k ( n)  (ln( n)) k
n! 1 2  3  ...  n
0! 1
Bina Nusantara
log c (a )
log c (b)
MODUL
• Beberapa baris algoritma yang secara kesatuan
mengerjakan fungsi tertentu dapat dikelompokkan menjadi
sebuah modul.
• Sangat berguna apabila ada bagian tertentu dalam
algoritma yang perlu dijalankan oleh sejumlah proses
lainnya.
• Istilah dalam bahasa pemrograman :
– Procedure
– Sub
– Function
[buku utama, bab 2.5]
Bina Nusantara
PEMANGGILAN MODUL
• Modul dapat dipanggil oleh :
– Program utama
– Modul lain
– Modul itu sendiri
• Komunikasi pemanggilan modul pengan pemanggil:
– Melalui parameter
– By value : nilai tidak kembali
– By reference : nilai dikembalikan
• Pemanggilan oleh modul itu sendiri merupakan teknik
rekursif
[buku utama, bab 2.5.1, 2.5.2 dan 2.5.3]
Bina Nusantara
ALGORITMA REKURSIF
• Adalah algoritma yang mengeksekusi dirinya
sendiri.
• Memecah problem yang kompleks menjadi
problem yang lebih kecil.
– Setiap problem kecil diselesaikan.
– Menjadi bagian dari solusi masalah utama.
• Bila direncanakan dengan baik dapat menjadi
algoritma yang efektif.
[buku utama, bab 2.5.4]
Bina Nusantara
CONTOH FAKTORIAL
•
Factorial Problem
0! = 1, 1! = 1, 2! = 2 x 1, 3! = 3 x 2 x 1, 4! = 4 x 3 x 2 x 1, 5! = 5 x 4 x 3 x 2 x 1, dst
•
Menghitung Faktorial dengan algoritma biasa
1 module Factorial(N)
2
r=1
3
for i=1 to N do
4
r=r*i
5
end for
6
result=r
7 end module
•
Menghitung Faktorial dengan algoritma rekursif (pseudocode 2.22)
1 module Faktorial(N)
2
if N<=1 then
3
result=1
4
else
5
result=N*Faktorial(N-1)
6
end if
7 end module
Bina Nusantara
MASALAH REKURSIF
•
•
•
•
Alokasi memory
Kondisi berhenti (menghindari infinite loop)
Teknik debugging
Pemahaman scope variable
Bina Nusantara
LATIHAN
5  8  11  ...  (5  3(k  1)) 
• Buktikan kebenaran
dengan induksi matematika!
k (3k  7)
2
• Buatlah pseudocode untuk menghitung jumlah N
bilangan ganjil yang pertama dengan
menggunakan teknik rekursif!
Bina Nusantara
REVIEW
• Apa yang sudah dipahami?
• Apa yang akan dibahas selanjutnya?
Bina Nusantara