Fungsi Rekursif

Bagikan di

Pengertian dan arti kata rekursi atau rekursif sendiri belum ada di dalam KBBI. Kata ini berasal dari bahasa Inggris yakni recursive. Fungsi rekursif secara sederhana adalah fungsi yang memanggil dirinya sendiri. Fungsi jenis ini tidak hanya muncul pada bidang komputer, namun juga pada bidang matematika.

Ouroboros simbol naga atau ular yang memakan dirinya sendiri

Kita akan melihat contoh fungsi matematis yang merupakan rekursif dan mengubahnya menjadi algoritma rekursif yang dapat dibaca oleh komputer.

 

Contoh Fungsi Rekursif

Contoh fungsi rekursif dapat kita temui pada fungsi Bilangan Fibonacci. Bilangan ini namanya berasal dari nama seorang matematikawan bernama Leonardo da Pisa, yang mempopulerkan bilangan ini di dunia barat.

Bilangan Fibonacci adalah barisan bilangan yang dihasilkan dengan cara menambahkan dua bilangan sebelumnya pada barisan tersebut. Jika masih bingung, mari kita lihat pola barisan fibonacci tersebut:

0 1 1 2 3 5 8 13 21 34 ...

Dapat kamu lihat bahwa bilangan ketiga pada baris tersebut jumlahnya sama dengan bilangan pertama ditambah bilangan kedua yakni 0 + 1 = 1. Kemudian bilangan keempat adalah 1 + 1 = 2.

Sehingga, untuk menentukan nilai-nilai yang ada pada barisan fibonacci dapat dirumuskan sebagai berikut ini,

Untuk bilangan urutan pertama, bernilai 0

Untuk bilangan urutan kedua, bernilai 1

Untuk bilangan urutan ke N: bernilai bilangan urutan N-1, ditambah bilangan urutan N-2.

Atau, secara matematis barisan bilangan fibonacci dapat dibuat rumus matematikanya menjadi,

\[Fib(0) = 0, Fib(1) = 1\] \[Fib(n) = Fib(n-1) - Fib(n-2)\]

Seperti yang kamu dapat lihat, untuk mendapatkan bilangan Fibonacci yang ke N, perlu memanggil fungsi Fib untuk menemukan nilai bilangan pada posisi N-1 dan N-2.

Fungsi yang seperti inilah yang disebut sebagai fungsi rekursif.

 


Uji Pemahamanmu

Barisan bilangan berikut yang bukan barisan fibonacci adalah,

a. 1, 2, 3, 5, 8

b. 2, 2, 4, 6, 10

c. 2, 3, 5, 8, 13

d. 1, 3, 3, 6, 9


 

Algortima Rekursif pada Pemrograman

Di dalam pemrograman, kita juga dapat membuat sebuah fungsi rekurif seperti pada deretan bilangan Fibonacci di atas.

Berikut ini adalah contoh program rekursif yang menghasilkan bilangan Fibonacci. Contoh fungsi rekursif ini dapat kamu lihat dalam bahasa C++, Python, dan Javascript.

function fib(n) {
  if (n === 0) {
    return 0;
  }
  if (n === 1) {
    return 1;
  }
  return fib(n-1) + fib(n-2);
}
def fib(n):
  if n == 0:
    return 0
  if n == 1:
    return 1
  return fib(n-1) + fib(n-2)
int fib(int n) {
  if (n == 0) {
    return 0;
  }
  if (n == 1) {
    return 1;
  }
  return fib(n-1) + fib(n-2);
}

 

Dengan memanggil fungsi fib(n) pada kode diatas, kamu dapat menemukan nilai bilangan pada baris ke N.

Tapi, fungsi ini sangatlah lambat! Coba kamu masukkan angka yang besar, fungsi ini akan sangat lama untuk memprosesnya. Bisakah kamu membuatnya menjadi lebih cepat? (Petunjuk: Dynamic Programming).

 

Info Menarik Terkait Rekursif

 

Google Search: Recursion

Coba kalian cari kata kunci recursion pada pencarian di Google. Kalian akan menemukan Google memberi saran untuk mencari kata recursion lagi! Inilah yang disebut rekursif yang tidak akan pernah berhenti. Kalau kamu klik link pada bagian “Did you mean” tersebut, kamu akan kembali ke halaman yang sama.

Google menyarankan hasil yang rekursif

 

Membuat Gambar Pohon

Dengan fungsi rekurif, sebuah program dapat membuat gambar pohon yang cukup realistis. Gambar dibawah ini merupakan hasil dari fungsi rekursif. Setiap batang pohonnya merupakan versi kecil dari batang pohon sebelumnya.

Gambar pohon dibuat menggunakan fungsi rekursif


Bagikan di


Kolom Diskusi

Sedang memuat...