Lompat ke konten Lompat ke sidebar Lompat ke footer

Recursive Function Pada Python

Daftar Isi
1. Pengertian Recursive Function
2. Menyusun Recursive Function pada Python

Pada umumnya, proses loop dilakukan menggunakan while atau for. Tergantung kebutuhan proses yang dilakukan. Tapi pernah ga sih terfikir untuk melakukan proses loop menggunakan function?. Nah, inilah yang akan dibahas tentang recursive function.

recursive_function

Pengertian Recursive Function

Secara sederhana, recursive function dilakukan dengan memanggil function yang dibuat pada function itu sendiri. Biar lebih jelas, kira-kira begini penulisan recursive function pada python.

def contoh(n):
    return n + contoh(n)

Secara sekilas, function di atas cukup aneh, nama function dan argumennya adalah contoh(n), akan tetapi return nya contoh(n). Tapi, coba kita telusuri bagaimana outputnya. Biar lebih enak, kita panggil functionnya dengan argumen seperti di bawah ini

1   def contoh(n):
2       return n + contoh(n)
3
4   c = contoh(5)

sekarang kita analisis nilai variabel c, dimana disitu dipanggil function contoh dengan argumen 5. ketika dipanggil, function contoh akan me-return n + contoh(n).

c = 5 + contoh(5)

karena yang direturn adalah function, yaitu contoh(5), maka function tersebut dipanggil lagi. Sekali lagi, output dari contoh(5) adalah 5 + contoh(5). Sehingga variabel c menjadi.

c = 5 + 5 + contoh(5)

ternyata contoh(5) ada lagi, otomatis akan dipanggil lagi, dan hasilnya seperti di bawah ini

c = 5 + 5 + 5 + contoh(5)

Nah, kelihatan kan polanya. Karena yang direturn adalah sebuah function itu sendiri, otomatis function tersebut dipanggil secara berulang-ulang. Inilah yang disebut sebagai recursive function, atau function yang berulang-ulang.

Pada contoh di atas, sampai kapan terus berulang? Function tersebut tidak akan berhenti, alias akan jalan terus sampai error. Biasanya di python akan berhenti dan muncul semacam maximum recursion tercapai.

Karena itu, dalam penyusunan recursive function harus hati-hati sehingga tidak terjadi loop yang tidak berujung.


Menyusun Recursive Function pada Python

Ketika menyusun recursive function, harus ada kondisi yang menyebabkan loop nya berhenti pada kondisi yang ditentukan. 

Sebagai contoh, berikut ini script recursive function pada python untuk menghitung faktorial dari angka. Sebagai pengingat, faktorial adalah nilai dikalikan nilai-1 hingga habis. Misal 5!, nilainya 5x4x3x2x1 = 120

Berikut ini contoh scriptnya.

1  def faktorial(n):
2      if n > 1:
3          return n * faktorial(n - 1)
4      else:
5          return 1
6
7  print(faktorial(3))

out:
6

Pada script di atas, ada kondisi if n > 1 di-return n * faktorial(n-1). Sedangkan selain itu, atau n <= 1, akan direturn 1.

Artinya, nilai input faktorial akan terus berkurang, hingga akhirnya menjadi 1. Ketika nilainya sudah 1, yang di-return adalah 1, bukan function lagi. Sehingga ketika input function faktorial adalah 1, tidak ada lagi pemanggilan function, yang artinya proses recursive nya sudah selesai.

Biar lebih jelas, kira-kira seperti ini proses setiap loop nya.

iterasi 1
3 * faktorial(2)

iterasi 2
3 * 2 * faktorial(1)

iterasi 3
3 * 2 * 1

Jelas kan, n yang menjadi input dari function tersebut terus berkuran. Setelah n mencapai 1, yang di-return adalah 1 bukan function faktorial(n) lagi, sehingga proses recursive function berhenti.

Posting Komentar untuk "Recursive Function Pada Python"