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 mn 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
© Copyright 2024 Paperzz