Anda di halaman 1dari 7

BAB VI

REKURSIF

6.1. Program Faktorial dengan Metode Iteratif


6.1.1. Listing Program
#include<stdio.h>
int fak(int n)
{
int i, fak;
if((n==0)||(n==1))
return 1;
else
{
fak=1;
for(i=1;i<=n;i++)
fak=fak*i;
return(fak);
}
}
main()
{
int fakt;
printf("Masukkan beberapa faktorial : ");
scanf("%d",&fakt);
printf("Hasil dari faktorial adalah : %d\n
",fak(fakt));
}
6.1.2. Screenshoot Program

Gambar 6.1. Program Faktorial Dengan Metode Iteratif


6.2. Program Faktorial dengan Metode Rekursif
6.2.1. Listing Program
#include<stdio.h>
int fak(int n)
{
if((n==0)||(n==1))
return 1;
else
return n * fak(n-1);
}
main()
{
int n, hasil;
printf("Masukkan bilangan bulat : ");
scanf("%d",&n);
hasil=fak(n);
printf("%d! = %d",n,hasil);
}
6.2.2. Screenshoot Program

Gambar 6.2. Program Faktorial dengan Metode Rekursif


6.3. Program Menara Hanoi dengan Rekursif
6.3.1. Listing Program
Salah
#include<stdio.h>
void tonggak(n,a,b,c)
{
if(n==1)
printf("Pindahkan piring dari %c ke %c \n",
a,c);
else
{
n-1,a,c,c);
tonggak(1,a,b,c);
tonggak(n-1,b,c,c);
}
}
main()
{
int jml_piring;
printf(" jumlah piringan");
scanf("%d", &jml_piring);
tonggak(jml_piring,A,B,C);
}

Keterangan Kesalahan
Benar
#include<stdio.h>
void tonggak(int n,int a,int b,int c)
{
if(n==1)
printf("Pindahkan piring dari %c ke %c \n",
a,c);
else
{
tonggak(n-1,a,c,b);
tonggak(1,a,b,c);
tonggak(n-1,b,a,c);
}
}
main()
{
int jml_piring;
printf(" jumlah piringan");
scanf("%d", &jml_piring);
tonggak(jml_piring,'A','B','C');
}
6.3.2. Screenshoot Program

Gambar 6.3. Program Menara Hanoi


6.4. Program Bilangan Fibbonaci dengan Rekursif
6.4.1. Listing Program
#include<stdio.h>

int fibo(int n);

main()
{
int n, hasil;
printf("Bilangan Fibbonanci ke-");
scanf("%d", &n);
hasil=fibo(n);
printf("fib (%d) = %d", n, hasil);
}
int fibo(int n)
{
if(n==1)
return 0;
else if(n==2)
return 1;
else if(n==0)
return 0;
else
return fibo(n-1)+fibo(n-2);
}
6.4.2. Screenshoot Program

Gambar 6.4. Program Bilangan Fibbonaci dengan Rekursif


6.5. Program Perpangkatan Bilangan dengan Rekursif
6.5.1. Listing Program
#include<stdio.h>
int pangkat (int a,int b)
{
int i;
if(b==1)
return a;
else if(b==0)
return 1;
else
{
return a*pangkat(a, b-1);
}
}
main()
{
int x,y,hasil;
printf("Masukkan Bilangan =");
scanf("%i", &x);
printf("Masukkan Pangkat =");
scanf("%i", &y);
hasil=pangkat(x,y);
printf("%i", hasil);
}
6.5.2. Screenshoot Program

Gambar 6.5. Program Perpangkatan Bilangan dengan Rekursif