Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 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 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) Asumsikan benar untuk n = k Tambahkan (k+1) di kedua ruas Bina Nusantara
Untuk menyegarkan ingatan RUMUS MATEMATIKA Untuk menyegarkan ingatan Bina Nusantara
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
Adalah algoritma yang mengeksekusi dirinya sendiri. 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 Bina Nusantara
Kondisi berhenti (menghindari infinite loop) Teknik debugging MASALAH REKURSIF Alokasi memory Kondisi berhenti (menghindari infinite loop) Teknik debugging Pemahaman scope variable Bina Nusantara
dengan induksi matematika! LATIHAN Buktikan kebenaran dengan induksi matematika! Buatlah pseudocode untuk menghitung jumlah N bilangan ganjil yang pertama dengan menggunakan teknik rekursif! Bina Nusantara
Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? REVIEW Apa yang sudah dipahami? Apa yang akan dibahas selanjutnya? Bina Nusantara