10 Rekursif 2
10 Rekursif 2
REKURSIF 2
NISA’UL HAFIDHOH, M.T.
TIM ALPRO – TI S1
Review
Sebelumnya sudah belajar tentang konsep dasar, analisis dan penerapan fungsi rekursif.
Tujuan Pembelajaran
Mahasiswa mampu menjelaskan lebih lanjut konsep rekursif, membuat fungsi rekursif, dan
menganalisis ekspresi rekursif
Penjumlahan Rekursif
Penjumlahan a + b sama dengan menjumlahkan a dengan angka 1 sebanyak b kali.
Contoh: 4 + 3 = 4 + 1 + 1 + 1 = 7
Dari sini kita dapat lihat, jika angak 1 akan ditambahkan terus sebanyak b kali, jika b sudah habis
kemudian ditambah a hal ini dapat digunakan sebagai acuan basis
◦ b = 0 -> a
Bagaimana cara mengurangi masalah? Tulis kembali persamaan yang lebih sederhana untuk
meraih basis, kita dapat lihat pola penjumlahannya.
◦ a+1+1+1
◦ Sebanyak b kali
Bentuk Kerangka Notasi Umum
Fungsi F(<berisi list-param>) :
If <kondisi-basis> then <ekspresi-1 >
else <kondisi-rekurens> then F(<ekspresi-2 >)
Fungsi Tambah(a:int,b:int) :
if b == 0 then
return a
else
return 1 + Tambah(a,b-1)
Analisis
Fungsi Tambah(a:int,b:int) Diketahui a = 4 dan b = 3
Fungsi Tambah(4,3) = 1 + Tambah(a,b-1)
= 1 + Tambah(4, 3-1)
= 1 + ( 1 + Tambah(4, 2-1) )
= 1 + ( 1 + ( 1 + Tambah(4, 1-1) ) , basis fungsi Tambah jika mencapai b=1-1=0
(jika b = 0, maka return a)
=1+(1+(1+4))
=1+(1+5)
=1+6
=7
Iterasi vs Rekursi
Rekursi mungkin lebih sederhana, lebih mudah dipahami secara intuitif
Rekursi mungkin lebih efisien dilihat dari sudut pandang programmer (tidak banyak mengetik
program)
Rekursi mungkin tidak efisien dilihat dari sudut pandang mesin
Penalaran Induktif
Penalaran induktif adalah proses berpikir untuk menarik kesimpulan berupa prinsip atau sikap
yang berlaku umum berdasarkan atas fakta-fakta yang bersifat khusus.
Prosesnya disebut induksi.
Contoh penalaran induktif :
◦ Harimau memiliki taring.
◦ Anjing memiliki taring.
◦ Serigala memiliki taring.
◦ Semua hewan karnivora memiliki taring.
Penalaran Induktif
Pada basis, pemangilan Kali dengan b = 1 tidak Fungsi Kali(a:int,b:int) :
memuat pemanggilan rekursif dan berhenti
if b == 1 then
Pada saat b > 1 akan membuat pemanggilan rekursif
dengan versi yang lebih kecil dari b; hal itu akan return 1
dilakukan terus menerus sampai pemanggilan b = 1 else
Jika diteruskan, pembahasan ini akan terkait dengan return a + Kali(a,b-1)
induksi matematika.
Fibonacci
Atau dikenal dengan deret fibonacci
Dinamai Fibonacci oleh Leonardo of Pisa (Ilmuan matematika dari italia)
Deret Fibonacci: 1,1,2,3,5,8,13,21,34,55,89,144...
Penerapan: Seni, Alam, Ekonomi, dll
https://en.wikipedia.org/wiki/Fibonacci_number
Contoh kasus Menebak Nilai Fibonacci
Asumsi x merupakan bilangan bulat positif yang digunakan sebagai acuan untuk mencari
bilangan fibonacci.
Misal
◦ Jika x = 1 maka ouput bilangan fibonaccinya adalah 1
◦ Jika x = 5 maka output bilangan fibonaccinya adalah 8