SlideShare a Scribd company logo
1 of 12
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

What's hot

Pengenalan Bahasa C
Pengenalan Bahasa CPengenalan Bahasa C
Pengenalan Bahasa Cguestaf3e8f4
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul viiDevi Apriansyah
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahBraga Rezpect
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaTipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaAs Faizin
 
Algoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/OAlgoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/OAndiNurkholis1
 
Algoritma dan Struktur Data (Python) - Perulangan
Algoritma dan Struktur Data (Python) - PerulanganAlgoritma dan Struktur Data (Python) - Perulangan
Algoritma dan Struktur Data (Python) - PerulanganAndiNurkholis1
 
7. pemrograman struktur
7. pemrograman struktur7. pemrograman struktur
7. pemrograman strukturRoziq Bahtiar
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait SinglyKelinci Coklat
 
Belajar perulangan di delphi 7
Belajar perulangan di delphi 7Belajar perulangan di delphi 7
Belajar perulangan di delphi 7Elan Mailiyanto
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman TerstrukturKelinci Coklat
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointerRoziq Bahtiar
 
Modul ix dan x algo
Modul ix dan x algoModul ix dan x algo
Modul ix dan x algoSTMIK AKAKOM
 
Laporan praktikum modul iv
Laporan praktikum modul ivLaporan praktikum modul iv
Laporan praktikum modul ivDevi Apriansyah
 
Laporan praktikum modul v
Laporan praktikum modul vLaporan praktikum modul v
Laporan praktikum modul vDevi Apriansyah
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program rKhair Norrasid
 

What's hot (18)

Pointer
PointerPointer
Pointer
 
Pengenalan Bahasa C
Pengenalan Bahasa CPengenalan Bahasa C
Pengenalan Bahasa C
 
Laporan praktikum modul vii
Laporan praktikum modul viiLaporan praktikum modul vii
Laporan praktikum modul vii
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Tipe Data pada Bahasa Java
Tipe Data pada Bahasa JavaTipe Data pada Bahasa Java
Tipe Data pada Bahasa Java
 
Pertemuan 12 Structure
Pertemuan 12 StructurePertemuan 12 Structure
Pertemuan 12 Structure
 
Latihan
LatihanLatihan
Latihan
 
Algoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/OAlgoritma dan Struktur Data (Python) - Struktur I/O
Algoritma dan Struktur Data (Python) - Struktur I/O
 
Algoritma dan Struktur Data (Python) - Perulangan
Algoritma dan Struktur Data (Python) - PerulanganAlgoritma dan Struktur Data (Python) - Perulangan
Algoritma dan Struktur Data (Python) - Perulangan
 
7. pemrograman struktur
7. pemrograman struktur7. pemrograman struktur
7. pemrograman struktur
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 
Belajar perulangan di delphi 7
Belajar perulangan di delphi 7Belajar perulangan di delphi 7
Belajar perulangan di delphi 7
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
6. pemrograman pointer
6. pemrograman pointer6. pemrograman pointer
6. pemrograman pointer
 
Modul ix dan x algo
Modul ix dan x algoModul ix dan x algo
Modul ix dan x algo
 
Laporan praktikum modul iv
Laporan praktikum modul ivLaporan praktikum modul iv
Laporan praktikum modul iv
 
Laporan praktikum modul v
Laporan praktikum modul vLaporan praktikum modul v
Laporan praktikum modul v
 
Laporan 1 penngantar program r
Laporan 1 penngantar program rLaporan 1 penngantar program r
Laporan 1 penngantar program r
 

Similar to Python 101: Recursion

Deret fourier
Deret fourierDeret fourier
Deret fourierL Silva
 
Presentation
PresentationPresentation
PresentationAiny Sara
 
Fungsi Pembangkit dan deret kuasa
Fungsi Pembangkit dan deret kuasaFungsi Pembangkit dan deret kuasa
Fungsi Pembangkit dan deret kuasaFauziyyah alimuddin
 
6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdfNestyoRizky
 
Matdis-fungsi pembangkit
Matdis-fungsi pembangkitMatdis-fungsi pembangkit
Matdis-fungsi pembangkitCeria Agnantria
 
Materi Rekrusif dengan Python PPTX (materi kuliah)
Materi Rekrusif dengan Python PPTX (materi kuliah)Materi Rekrusif dengan Python PPTX (materi kuliah)
Materi Rekrusif dengan Python PPTX (materi kuliah)OzanHacker
 
Diferensiabel kontinu
Diferensiabel kontinuDiferensiabel kontinu
Diferensiabel kontinubobbyrey
 
Kalkulus turunan dan integral
Kalkulus turunan dan integralKalkulus turunan dan integral
Kalkulus turunan dan integralHanifa Zulfitri
 
Matematika Diskrit part 1
Matematika Diskrit part 1Matematika Diskrit part 1
Matematika Diskrit part 1radar radius
 

Similar to Python 101: Recursion (14)

Deret fourier
Deret fourierDeret fourier
Deret fourier
 
Algoritma rekursif
Algoritma rekursifAlgoritma rekursif
Algoritma rekursif
 
Presentation
PresentationPresentation
Presentation
 
Matlab
MatlabMatlab
Matlab
 
Fungsi Pembangkit dan deret kuasa
Fungsi Pembangkit dan deret kuasaFungsi Pembangkit dan deret kuasa
Fungsi Pembangkit dan deret kuasa
 
6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdf
 
Fungsi pecah pada aljabar
Fungsi pecah pada aljabarFungsi pecah pada aljabar
Fungsi pecah pada aljabar
 
Fungsi Pecah
Fungsi PecahFungsi Pecah
Fungsi Pecah
 
Matdis-fungsi pembangkit
Matdis-fungsi pembangkitMatdis-fungsi pembangkit
Matdis-fungsi pembangkit
 
Materi Rekrusif dengan Python PPTX (materi kuliah)
Materi Rekrusif dengan Python PPTX (materi kuliah)Materi Rekrusif dengan Python PPTX (materi kuliah)
Materi Rekrusif dengan Python PPTX (materi kuliah)
 
Fungsi Rekursif
Fungsi RekursifFungsi Rekursif
Fungsi Rekursif
 
Diferensiabel kontinu
Diferensiabel kontinuDiferensiabel kontinu
Diferensiabel kontinu
 
Kalkulus turunan dan integral
Kalkulus turunan dan integralKalkulus turunan dan integral
Kalkulus turunan dan integral
 
Matematika Diskrit part 1
Matematika Diskrit part 1Matematika Diskrit part 1
Matematika Diskrit part 1
 

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