Jumat, 09 Desember 2011

Fungsi rekursif dalam bahas C

Fungsi rekursif digunakan untuk menyelesaikan suatu masalah atau kasus dengan algoritma yang lebih sederhana dibandingkan penggunaan fungsi iteretif, perbedaan mendasar antara fungsi rekursif dan iteratif adalah :
  • dalam fungsi rekursi hanya menggunakan pengandaian if dan perulangan yang memamanggil fungsi rekursif itu sendiri, dengan kata lain tidak menggunakan looping for maupun while dalam bahasa C.
  • sedangankan fungsi iteratif menggunakan pengulangan for maupun while.
kelebihan dari fungsi rekursif adalah algoritmanya lebih sederhana dalam beberapa kasus dan bila tepat penggunaannya..
berikut adalah contoh perhitungan banyaknya huruf vokal,konsonan,simbol dan lainnya menggunakan fungsi rekursif..

#include
#include
#include

void t();
char kata[161];
int a,i,u,e,o,konsonan,spasi,inc,simbol; //deklarasi pencarian vokal, konsonan,simbol, angka, dan lainnya

void cari(int h){

if(h==-1)
{
t();
}
else
{
if(kata[h]=='a') //pencarian a
{
++a;
}
else if(kata[h]=='i') //pencarian i
{
++i;
}
else if(kata[h]=='u') //pencarian u
{
++u;
}
else if(kata[h]=='e')//pencarian e
{
++e;
}
else if(kata[h]=='o')//pencarian o
{
++o;
}
else if(kata[h]=='0'||kata[h]=='1'||kata[h]=='2'||kata[h]=='3'||kata[h]=='4'||kata[h]=='5'||kata[h]=='6'||kata[h]=='7'||kata[h]=='8'||kata[h]=='9')
{
++inc; //pencarian angka
}
else if(kata[h]==' ')
{
++spasi; //pencarian spasi
}
else if(kata[h]=='!'||kata[h]=='@'||kata[h]=='#'||kata[h]=='$'||kata[h]=='%'||kata[h]=='^'||kata[h]=='&'||kata[h]=='*')
{
++simbol; //pencarian simbol
}
else
{
++konsonan;
}
--h;
cari(h);
}

}
void t(){
printf("\nJumlah karakter a\t\t: %d\n",a);
printf("Jumlah karakter i\t\t: %d\n",i);
printf("Jumlah karakter u\t\t: %d\n",u);
printf("Jumlah karakter e\t\t: %d\n",e);
printf("Jumlah karakter o\t\t: %d\n",o);
printf("Jumlah karakter Angka \t\t: %d\n",inc);
printf("Jumlah karakter konsonansonan\t: %d\n",konsonan);
printf("Jumlah karakter Spasi \t\t: %d\n",spasi);
printf("Jumlah Simbol \t \t\t: %d\n",simbol);

}

int main(void){
printf("*****Program Pencarian Huruf Vokal, Konsonan dan lainnya ***\n");
printf("************************************************************\n");
fflush(stdin);
printf("Masukkan kalimat = ");
gets(kata);
cari(strlen(kata)-1); //pemanggilan fungsi rekursif
system("pause");

return(0);
}


Tidak ada komentar:

Posting Komentar