Recursion
Recursion merupakan sebuah fungsi yang memanggil diri nya sendiri. Recursion akan berjalan sampai kondisi berhenti nya terpenuhi. Implemetasi recursion yang paling simple untuk menjelaskan tentang recursion adalah menghitung nilai faktorial. Berikut gambaran untuk mencari faktorial dari 5:
Faktorial (5)
- 5 * Faktorial (4)
- 5 * (4 * Faktorial (3))
- 5 * (4 * (3 * Faktorial (2)))
- 5 * (4 * (3 * (2 * Faktorial (1))))
- 5 * (4 * (3 * (2 * 1)))
- 5 * (4 * (3 * 2))
- 5 * (4 * 6)
- 5 * 24
- 120
Berikut implementasi dari recursion pada Bahasa C:
#include<stdio.h>
int faktorial(int x){ if(x==0 || x==1) return 1; else return x * faktorial(x-1); }
int main(){ printf(“%d\n”,faktorial(5));
return 0; } |
Selain untuk menghitung sebuah rumus matematika, recursion juga dapat digunakan untuk menggantikan looping. Misalkan kita diminta untuk mencetak deret angka 1 sampai 5 menggunakan for, maka code nya akan sebagai berikut:
#include<stdio.h>
int main(){ for(int i=1;i<=5;i++){ printf(“%d “,i); } return 0; } |
Code untuk mencetak deret 1 sampai 5jika ditulis menggunakan recursion sebagai berikut:
#include<stdio.h>
void cetak(int x){ if(x==0) return; cetak(x-1); printf(“%d ”,x); }
int main(){ cetak(5); return 0; } |
Pada materi inidapat disimpulkan terdapat dua komponenyang penting di dalam recursion yaitu kondisi berhenti recursion dan nilai pengurangan atau pembagian nilai data ketika fungsi recursion tersebut dipanggil.
Reference:
Paul Deitel & Harvey Deitel. (2016). C how to program : with an introduction to C++. 08. Pearson Education. Hoboken. ISBN: 9780133976892.