Recursive Function dan Kegunaannya — Id More Academy

Yusuf Akhsan H.
2 min readOct 14, 2019

--

Recursive function artian sederhanannya adalah function yang mengeksekusi diri sendiri, nah jika tidak ada kondisi khusus, maka bisa membuat eksekusi kode terus berulang dan tak pernah stop. Berikut adakah contoh recursive function dengan javascript

const recursive = (n) => { return 1 + recursive(n) } recursive(1)

Baris diatas jika dieksekusi maka memang tidak ada yang error, tapi tidak akan pernah stop karena perulangannya tak pernah berhenti. Berikut penjelasan resultnya,

recursive(1), maka returnnya akan selalu 1 + recursive(n), dan tak akan berhenti hingga ram jebol atau dihentikan oleh intepreter.

Kapan Diperlukan

Meskipun menghasilkan looping recursive, bukan berarti metode ini tidak boleh dipakai. Tentu ada banyak kondisi yang mengharuskan menggunakan recursive function seperti ini. Contoh sederhanan ketika hitung faktorial 20 , alias 20!.

Ada beberapa cara yang bisa digunakan, antara lain menggunakan for :

function factorial(n) { for(let m = n - 1;m > 0;m-- ) { n = n * m } return n }

Memang cara diatas tidak salah, tapi jika menggunakan recursive function maka codenya bisa lebih clean, menjadi seperti ini.

function factorial(n) { if(n == 0) { return 0 } else if(n == 1) { return 1 } else { return n * factorial(n - 1) } } //expected result 3 * 2 * 1 = 6 factorial(3)

Terus bagaimana cara untuk memastikan bahwa baris diatas aman dan siap dieksekusi. Kondisi pertama sangatlah penting yakni jika n == 0 || n == 1 maka perulangan akan distop.

Untuk elsenya karena menggunakan 3 maka 3! = 3 * 2 * 1.

Berikut adalah penjelasan dari recursive function diatas :

  • n = 3, maka langsung eksekusi di bari terakhir
  • menjadi 3 * factorial (2) , lalu
  • menjadi 2 * factorial (1) , sama dengan 2 * 1 = 2
  • sisanya 3 * 2 = 6 (abaikan semua factorial())

Tantangan

Code factorial diatas belum sempurna, nah tugas kamu untuk mencari tahu apa yang kurang dan berikan di komentar ya.

Originally published at https://academy.byidmore.com.

--

--

Yusuf Akhsan H.

if you do not want to do, don’t do. If you want to do, do it effectively and efficiently.