Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Python 101:
Recursion
Andra Fadhlan - 190640007
M. Alif Herdin B. - 1906399120
M. Daffa Syammary - 1906399146
Naufal Pramudya Y. - 1906293266
Kelompok
C5:
Dosen: Fariz Darari, S.Kom, M.Sc., Ph.D.
Outline
Recursion in Python
02
Pros and Cons of
Recursion
04
What is Recursion?
01
Recursion example
03
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
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
Fungsi di atas akan bekerja seperti:
factorial(5) = 5 x 4 x 3 x 2 x 1 = 120
Mengapa demikian?
How?
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!
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, …)
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)
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
● https://realpython.com/python-thinking-recursively/
● https://koding.alza.web.id/menghitung-nilai-fibonacci/
● https://medium.com/@williambdale/recursion-the-pros-and-cons-76d32d75973a
Referensi
Thank You
● Presentation template by Slidesgo
● Icons by Flaticon
CREDITS

More Related Content

Python 101: Recursion

  • 1. Python 101: Recursion Andra Fadhlan - 190640007 M. Alif Herdin B. - 1906399120 M. Daffa Syammary - 1906399146 Naufal Pramudya Y. - 1906293266 Kelompok C5: Dosen: Fariz Darari, S.Kom, M.Sc., Ph.D.
  • 2. Outline Recursion in Python 02 Pros and Cons of Recursion 04 What is Recursion? 01 Recursion example 03
  • 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
  • 10. ● https://realpython.com/python-thinking-recursively/ ● https://koding.alza.web.id/menghitung-nilai-fibonacci/ ● https://medium.com/@williambdale/recursion-the-pros-and-cons-76d32d75973a Referensi
  • 12. ● Presentation template by Slidesgo ● Icons by Flaticon CREDITS