Rekursi pada Pemrograman C
Istilah rekursi bukan hanya ditemui pada pemrograman bahasa C saja, dalam bahasa pemrograman lain juga kita akan sering mendengarnya.
Sebelum memasuki contoh latihan soal tentang rekursi, terlebih dahulu kita akan memahami definisi atau pengertian dari Rekursi itu sendiri.
Apa itu Rekursi ?
Rekursi adalah kemampuan fungsi untuk memanggil dirinya sendiri. Persoalan rekursi banyak dijumpai pada matematika.Perhatikan gambar di bawah ini, dimana program berikut akan menghitung bilangan 1 sampai dengan 10 menggunakan rekurs
Outputnya adalah sebagai berikut :
Latihan Soal
Soal No.1Buatlah program bahasa C dengan menggunakan Rekursi yang menampilkan ouput sebagai berikut :
maju 3
maju 2
maju 1
mundur 1
mundur 2
mundur 3
Jawab:
#include <stdio.h>
#include <stdlib.h>
void rek(int i)
{
if(i > 0)
{
printf("maju %d\n", i);
rek(i-1);
printf("mundur %d\n", i);
}
}
main()
{
rek(3);
system("PAUSE");
return 0;
}
Soal No.2
Buatlah sebuah program untuk menghitung nilai suatu faktorial bilangan dengan menggunakan sistem Rekursi. Dalam program ini, user dapat menginput faktorial suatu bilangan, baru kemudian ditampilkan hasil jumlah faktorialnya seperti output di bawah ini :
Masukkan n faktorial = 5
5! = 120
Jawab :
#include <stdio.h>
#include <stdlib.h>
long int faktorial(unsigned int n)
{
if(n == 0 || n == 1)
return 1;
else
return n * faktorial(n-1);
}
main()
{
int n;
long int hasil;
printf("Masukkan n faktorial = ");
scanf("%d", &n);
hasil = faktorial(n);
printf("%d! = %1d\n", n, hasil);
system("PAUSE");
return 0;
}