52. PYTHON (Pemrograman Fungsional) – Recursion

Belajar Bahasa Python Lengkap

Recursion merupakan bagian yang sangat penting dalam pemrograman fungsional. Bagian dasar dari recursion adalah self-reference, dimana fungsi yang memanggil dirinya sendiri. Ini digunakan untuk menyelesaikan masalah yang dapat dipecah ke dalam sub-sub masalah dengan jenis yang sama.

Sebuah contoh klasik dari sebuah fungsi yang diimplementasikan secara rekursif adalah fungsi faktorial. Sebagai contoh, 5! = 5*4*3*2*1 = 120. Untuk mengimplementasikan ini secara rekursif, ingat bahwa 5! = 5*4!, 4! = 4*3!, 3 = 3*2! dan seterusnya. Secara umum n! = n * (n-1)!.

Selanjutnya, 1! = 1. Hal ini disebut dengan base case, seperti dapat dikalkulasi tanpa melakukan faktorial lain lagi.

Berikut contoh implementasi rekursif pada fungsi faktorial:

def faktorial(x):
     if x == 1:
         return 1
     else:
         return x * faktorial(x-1)
print(faktorial(5))
=====>120
=====>

Fungsi rekursif dapat menjadi tak terbatas, seperti halnya perulangan while. Hal tersebut terjadi ketika kita lupa untuk mengimplementasikan base case. Berikut adalah contoh yang salah pada fungsi faktorial yang tidak memiliki base case, sehingga akan terus berjalan sampai memori habis dan crash.

def faktorial(x):
     return x * faktorial(x-1)
print(faktorial(5))
=====>
RecursionError: maximum recursion depth exceeded 
=====>

Recursion dapat juga secara tidak langsung. Fungsi pertama memanggil fungsi kedua, fungsi kedua memanggil fungsi pertama, dimana fungsi pertama memanggil fungsi kedua dan seterusnya.

def genap(x):
     if x == 0:
         return True
     else:
         return ganjil(x-1)
def ganjil(x):
     return not genap(x)

print(ganjil(17))
print(genap(23))
=====>
 True
 False 
=====>


LANJUTKAN BACA MATERI LENGKAP


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.