250 likes | 870 Vues
Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF. Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008. INDUKSI MATEMATIKA. Sebuah cara untuk membuktikan bahwa sebuah persaman bernilai benar untuk semua bilangan asli (bilangan bulat positif) Langkah induksi :
E N D
Pertemuan 2INDUKSI MATEMATIKA &FUNGSI REKURSIF Matakuliah : T0034 / Perancangan & Analisis Algoritma Tahun : 2008
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
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
CONTOH INDUKSI MATEMATIKA (2) • Asumsikan benar untuk n = k • Tambahkan (k+1) di kedua ruas
RUMUS MATEMATIKA • Untuk menyegarkan ingatan
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]
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]
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]
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
MASALAH REKURSIF • Alokasi memory • Kondisi berhenti (menghindari infinite loop) • Teknik debugging • Pemahaman scope variable
LATIHAN • Buktikan kebenaran dengan induksi matematika! • Buatlah pseudocode untuk menghitung jumlah N bilangan ganjil yang pertama dengan menggunakan teknik rekursif!
REVIEW • Apa yang sudah dipahami? • Apa yang akan dibahas selanjutnya?