Ringkasan dokumen tersebut adalah:
Rekursi dalam Python merupakan kondisi dimana sebuah fungsi dijalankan berulang kali dengan memanggil fungsi itu sendiri sampai pada kondisi base case. Contoh penerapannya adalah fungsi faktorial dan deret Fibonacci yang menyelesaikan masalah dengan memecahnya menjadi bagian yang lebih kecil hingga mencapai kondisi dasar.
3. Recursion bisa diartikan sebagai sesuatu
yang dilakukan secara berulang dengan
kondisi yang berbeda, namun hasilnya akan
serupa dengan sebelumnya.
Bayangkan anda membuka sebuah kotak
hadiah yang di dalamnya ternyata ada kotak
hadiah lagi yang berukuran lebih kecil, dan
didalamnya ada kotak yang lebih kecil lagi.
Begitu pula seterusnya sampai kotak terkecil
terbuka.
What is Recursion ?01
4. Di Python, recursion adalah sebuah kondisi
dimana sebuah fungsi dijalankan secara terus
menerus dengan memanggil fungsi itu sendiri
sampai pada kriteria (base case) yang telah
ditentukan oleh pembuat fungsi.
Recursion in Python02
5. Fungsi di atas akan bekerja seperti:
factorial(5) = 5 x 4 x 3 x 2 x 1 = 120
Mengapa demikian?
How?
6. How it actually works
Pada dasarnya, rekursi merumuskan suatu masalah kompleks menjadi bagian-bagian yang lebih kecil:
n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3 x 2 x 1
n! = n x (n−1)!
Sampai pada akhirnya masalah tersebut dapat diselesaikan tanpa dipecah menjadi lebih kecil lagi. Hal ini
disebut sebagai base case:
n! = n x (n−1)!
n! = n x (n−1) x (n−2)!
…………………………….
N! = n x (n-1) x (n-2) x (n-3) …. X 3!
n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3 x 2!
n! = n x (n−1) x (n−2) x (n−3) ⋅⋅⋅⋅ x 3 x 2 x 1!
7. Recursion
example
Seperti yang telah dijelaskan
sebelumnya, rekursif dapat
digunakkan sebagai pengerjaan
suatu faktorial. Beberapa
pengerjaan lain yang menggunakan
pengulangan juga akan lebih
mudah apabila menggunakan
rekursif. Berikut contoh fungsi
rekursif yang mengembalikan nilai
dari suatu deret fibonacci.
03
def fibonacci(x):
if x<=0:
return 0
elif x=1:
return 1
fib = fibonacci(x-1) + fibonacci(x-2)
return fib
Catatan:
Deret fibonacci yang
digunakan menggunakan
referensi f(0) = 0, f(1) = 1,
dan seterusnya (0, 1, 1, 2,
3, 5, 8, …)
8. Penjelasan
Program
Fibonacci adalah deret angka yang berasal
dari jumlah kedua bilangan sebelumnya.
Terdapat beberapa referensi berbeda
mengenai deret ini, terkadang nilai 0 tidak
dimasukkan. Dalam program ini, referensi
yang digunakkan yang memiliki nilai 0. Deret
bilangan ke-x untuk x kurang dari 0 dianggap
bernilai sama dengan 0 (dalam artian tidak
memiliki nilai). Base case pada program ini
terletak pada kondisi x kurang dari 0 yang
mengembalikan nilai 0 dan x sama dengan 1
yang mengembalikan nilai 1.
Contoh:
f(5) = f(4) + f(3)
f(4) = f(3) + f(2) = 2 + 1 = 3
f(3) = f(2) + f(1) = 1 + 1 = 2
f(2) = f(1) + f(0) = 1 + 0 = 1
Maka,
f(5) = 3 + 2 = 5
Pengerjaan dimulai dari
base case (f(0) dan f(1)),
lalu ke atas. f(x) disini
berarti fibonacci(x)
9. Pros and Cons of Recursion
Menggunakan
memori yang cukup
besar
Dapat mengurangi
kompleksitas waktu
Menambah kejelasan
pada kode
Mengurangi waktu
untuk menulis dan
men-debug kode
Jika tidak
diimplementasi
dengan benar,
rekursi bisa menjadi
lambat
04
Pros
Cons