Anda di halaman 1dari 3

Recursion

Recursion merupakan salah satu metode pemecahan masalah dimana sebuah solusi pada masalah
tersebut bergantung pada solusi dari masalah yang lebih kecil yang merupakan bagian dari masalah
tersebut. Recursion adalah salah satu hal yang paling penting di bidang Computer Science dan
sebaiknya dikuasai oleh mereka yang bergelut di bidangtersebut.

Bahasa pemrograman biasanya mengimplementasikan recursion ini dengan mengijinkan sebuah


fungsi untuk memanggil dirinya sendiri. Pada pembentukan fungsi dengan recursion atau lebih
dikenal dengan recursive function,terdapat dua hal yang penting, yakni penentuan: base case dan
step reduction.

Secara umum, base case merupakan kondisi dimana fungsi akan berhenti (tidak lagi berulang) dan
step reduction adalah bagaimana agar fungsi tersebut kembali memanggil dirinya sendiri dengan
tahapan hingga mencapai base case.

Sebagai contoh, pada operasi perhitungan factorial, dimana kita ketahui bahwa factorial
merupakan hasil yang didapatkan dengan mengalikan angka yang ada hingga mencapai nilai 1.

Contoh: Faktorial dari 5 adalah 5 * 4 * 3 * 2 * 1 = 120.

Dengan demikian kita ketahui bahwa:

5! = 5 * 4 * 3 * 2 * 1

4! = 4 * 3 * 2 * 1

3! = 3 * 2 * 1

1! = 1

0! = 1

Secara tidak langsung artinya:

5! = 5 * 4!

4! = 4 * 3!

3! = 3 * 2!

2! = 2 * 1!

1! = 1
0! = 1

Bila kita definisikan dalam bentuk recursive function, maka kita dapatkan bahwa bila nilai akan berhenti
pada saat bertemu 0 atau 1. Hal inilah yang disebut dengan base case.

Sedangkan dapat kita lihat bahwa hasil factorial kita dapatkan dengan mereduksi nilai sebanyak 1
(contoh 5! Adalah 5 * 4! =>dari 5 ke 4).

Dengan demikian, step reductionnya adalah:

N! = N * (N-1)!

Atau bila kita terjemahkan: factorial(N) = N * factorial (N-1).

Fungsi factorial yang dibahas ini dapat didefinisikan sebagai berikut:

Pada program di atas bila: factorial(5) dipanggil akan menghasilkan instruksi sebagai berikut:
Sehingga di dapatkan bahwa factorial 5 adalah 5 * 4 * 3 * 2 * 1 = 120.

Anda mungkin juga menyukai