Deretan Fibonacci, Iteratif & Rekursif

Kebetulan pagi-pagi ada yang nanya gw soal gimana cara ngerjain program deretan Fibonacci. Sebenernya sih bahasannya mirip dengan waktu gw ngebahas faktorial beberapa waktu yang lalu, cuma kasusnya sedikit lebih ribet. Deretan Fibonacci ini bentuknya kayak begini.

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …

Di atas ini gw ngasih deretan Fibonacci mulai dari bilangan pertama sampe bilangan kesepuluh. Di deretan Fibonacci ini bilangan pertama & keduanya udah pasti nilainya 1, untuk bilangan ketiga & seterusnya dipakai rumus ini.

F(n) = F(n-1) + F(n-2)

F(n) nilai bilangan ke-n di deretan Fibonacci
F(n-1) nilai bilangan ke-(n-1) di deretan Fibonacci
F(n-2) nilai bilangan ke-(n-2) di deretan Fibonacci

Jadi bilangan ketiga sama dengan bilangan pertama ditambah bilangan kedua, bilangan keempat sama dengan bilangan kedua ditambah bilangan ketiga, bilangan kelima sama dengan bilangan ketiga ditambah bilangan keempat, & seterusnya sampe bilangan ke-n.

Continue reading

Recursive Function

Recursive function, biasa kalo di bahasa Indonesia disebutnya fungsi rekursif, itu function yang di dalamnya ada perintah buat manggil function itu sendiri. Gunanya yang paling utama sih buat ngulang proses yang ada di dalam function itu juga. Pertanyaannya, ngapain kita pake fungsi rekursif kalo kita bisa pake looping for, while, atau do while buat ngulang perintah? Karena dalam beberapa kasus, fungsi iteratif (yang pake looping for, while, & do while tadi) lebih ribet daripada fungsi rekursif atau malah nggak bisa ngeberesin masalahnya sama sekali.

Pernah denger tentang faktorial? Faktorial itu perhitungan di matematika, biasanya sih dipake di perhitungan untuk peluang. Notasi matematika & penyelesaiannya kayak begini.

3! = 3 * 2 * 1 = 6

Faktorial ini salah satu contoh soal yang paling umum yang dipake buat ngajarin fungsi rekursif di kelas-kelas pemrograman sih. Contoh lainnya biasanya pake deretan Fibonacci, tapi di sini biar gampang gw pake contoh faktorial aja.

Continue reading