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.
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.
5! = 5 * 4 * 3 * 2 * 1
4! = 4 * 3 * 2 * 1
3! = 3 * 2 * 1
1! = 1
0! = 1
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).
N! = N * (N-1)!
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.