Rekursif
return_data_type
function_name(parameter_list)
{
...
function_name(...);
...
}
Faktorial
• Fungsi factorial dari bilangan bulat positif n didefinisikan
sebagai berikut:
n!= n.(n-1)! , jika n>1
n!= 1 , jika n=0, 1
• contoh :
3!= 3. 2!
3!= 3. 2. 1!
3!= 3. 2. 1
3!= 6
Faktorial
• Faktorial dari n (ditulis n!), adalah hasil kali dari bilangan
tersebut dengan bilangan di bawahnya, di bawahnya hingga
bilangan 1
• Ada dua cara penyelesaian:
1. Teknik rekursif, menggunakan deklarasi pemanggilan dirinya
sendiri
2. Teknik iteratif, menggunakan looping yang mengalikan masing-
masing bilangan dengan hasil sebelumnya.
n! = (n)(n-1)(n-2) … (1)
Kode Program Faktorial dengan REKURSIF
#include<iostream>
#include<conio.h>
using namespace std;
int faktorial (int bil) {
if(bil==0) return 1;
else //fungsi rekursif
return bil*faktorial(bil-1);
}
int main(){
int n;
cout<<"Masukkan nilai n: "; cin>>n;
cout<<"Hasil faktorial : "<<faktorial(n);
}
Kode Program Faktorial dengan ITERATIF
#include<iostream>
using namespace std;
int main(){
int n, hasil=1;
cout<<"Masukkan nilai n: "; cin>>n;
if(n<0) return 0;
else {
for(int i=n; i>=1; i--) {
hasil=hasil*i;
}
}
cout<<"Hasil Faktorial: "<<hasil;
}
Kode Program Faktorial dengan ITERATIF
#include<iostream>
using namespace std;
int main(){
int n, hasil=1;
cout<<"Masukkan nilai n: "; cin>>n;
if(n<0) return 0;
else {
for(int i=1; i<=n; i++) {
hasil=hasil*i;
}
}
cout<<"Hasil Faktorial: "<<hasil;
}
Deret Fibbonanci
• Barisan bilangan fibbonaci : 1, 1, 2, 3, 5, 8, 13, 21, . . .
• Teknik rekursif pada algoritma untuk menentukan suku ke-n dari
barisan bilangan fibbonaci adalah :
Kode Program Deret Fibbonanci
#include<iostream>
#include<conio.h>
using namespace std;
int fibbonanci(int bil) {
if(bil==0) return 0;
else if(bil<=2) return 1;
else {
return fibbonanci(bil-1)+fibbonanci(bil-2);
}
}
Kode Program Deret Fibbonanci (lanjutan)
int main(){
int n;
cout<<"Masukkan nilai F(n): ";cin>>n;
cout<<"Deret fibonanci F("<<n<<"):
"<<fibbonanci(n);
}
Rekursif
Langkah-langkah untuk mendefinisikan fungsi dengan
domain bilangan cacah: