Skip to main content

๐Ÿ” Fungsi Rekursif

Pernah mendengar istilah โ€œrekursifโ€ ketika belajar pemrograman? Misalnya saat membuat fungsi fibonacci() atau faktorial()? Nah, konsep itu sebenarnya berasal dari matematika, dan namanya adalah fungsi rekursif.

Fungsi rekursif merupakan salah satu cara untuk mendefinisikan sesuatu secara bertahap โ€” dengan merujuk kembali ke dirinya sendiri. Kedengarannya agak membingungkan, ya? Tenang, kita bahas pelan-pelan.


๐Ÿค” Apa Itu Fungsi Rekursif?โ€‹

Secara sederhana, fungsi rekursif adalah fungsi yang didefinisikan berdasarkan versi yang lebih kecil dari dirinya sendiri. Untuk membuat fungsi rekursif yang baik dan benar, biasanya ada dua bagian penting:

  1. Basis โ€” bagian yang menjadi titik akhir atau kondisi berhenti dari proses rekursi.
  2. Langkah rekursif โ€” bagian yang memanggil fungsi itu sendiri, dengan masukan yang lebih kecil.

Tanpa adanya basis, fungsi akan terus memanggil dirinya sendiri tanpa henti โ€” dan bisa menyebabkan program macet atau bahkan crash.


๐Ÿงช Contoh Fungsi Rekursif: Faktorialโ€‹

Misalkan kita ingin menghitung faktorial dari suatu bilangan n (ditulis sebagai n!). Faktorial adalah hasil perkalian semua bilangan bulat positif dari 1 sampai n.

Contoh:

5! = 5 ร— 4 ร— 3 ร— 2 ร— 1 = 120

Dengan pendekatan rekursif, kita bisa mendefinisikan:

n! = n ร— (n โˆ’ 1)!, untukn > 00! = 1 โ† iniadalahbasisnya

Jika kita menghitung 5!, prosesnya menjadi seperti ini:

5! = 5 ร— 4!

4! = 4 ร— 3!

3! = 3 ร— 2!

2! = 2 ร— 1!

1! = 1 ร— 0!

0! = 1 โ† sampai di sini, kita mulai menghitung balik ke atas

๐Ÿ“ˆ Contoh Lain: Deret Fibonacciโ€‹

Deret Fibonacci adalah urutan bilangan di mana setiap bilangan merupakan jumlah dari dua bilangan sebelumnya. Urutannya seperti ini:

0, 1, 1, 2, 3, 5, 8, 13, ...

Fungsi rekursifnya ditulis seperti ini:

F(n) = F(n โˆ’ 1) + F(n โˆ’ 2), untukn โ‰ฅ 2F(0) = 0F(1) = 1

Contoh : F(4) = F(3) + F(2)

= (F(2) + F(1)) + (F(1) + F(0))

= ((F(1) + F(0)) + 1) + (1 + 0)

= ((1 + 0) + 1) + 1

= 3

โš ๏ธ Hal yang Perlu Diperhatikanโ€‹

  • Fungsi rekursif sangat berguna, tetapi dapat menjadi tidak efisien jika tidak dirancang dengan hati-hati. Contohnya seperti pada Fibonacci, banyak perhitungan yang berulang.
  • Untuk mengatasinya, sering kali digunakan teknik seperti penyimpanan hasil sementara (memoization) atau menggunakan pendekatan iteratif dari bawah ke atas.

๐Ÿง  Kesimpulanโ€‹

Fungsi rekursif adalah alat yang sangat berguna dalam matematika maupun pemrograman. Ia memungkinkan kita menyelesaikan masalah dengan membaginya menjadi versi yang lebih kecil dari masalah yang sama.

Yang terpenting adalah selalu memastikan ada basis atau kondisi akhir, supaya fungsi tidak berjalan tanpa henti.