PENGERTIAN REKURSIF
Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir.Rekursi biasanya di gunakan secara iteratif yaitu melakukan pengulangan operasi sampai jumlah pengulangan yang di inginkan.
ini ada beberapa contoh rekursif mungkin bisa menambah referensi anda :)
1. faktroial
//faktorial #include"stdio.h" void menu(); void iterasi(); int rekursif(int ); int tail(int ,int); main(){ menu(); } void menu(){ char pil,jawab; int a=1,f; do{ puts("PROGRAM FAKTORIAL"); printf("1.iterasi biasa\n2.rekursif\n3.rekursif tail\n"); fflush(stdin); printf("masukan pilihan : "); pil=getchar(); switch(pil){ case '1':iterasi();break; case '2': { puts("\n========================="); puts("\t rekursif "); puts("========================="); printf("masukan faktorial dari : "); scanf("%d",&f); printf("faktorial=%d",rekursif(f)); break; } case '3':{ puts("\n========================="); puts("\t TAIL "); puts("========================="); printf("masukan faktorial dari : "); scanf("%d",&f); printf("faktorial=%d",tail(f,a)); break; break; } } //if(pil=='1') // iterasi(); fflush(stdin); printf("\nmau input lagi : "); jawab=getchar(); }while(jawab=='y'||jawab=='Y'); } void iterasi(){ int i,f,hasil=1; puts("\n========================="); puts("\t iterasi "); puts("========================="); printf("masukan faktorial dari : "); scanf("%d",&f); for(i=f;i>=1;i--){ hasil=hasil*i; } printf("\nhasil faktorial = %d\n",hasil); } int rekursif(int f){ if(f==1) return 1; else if(f==0) return 1; else return(f*rekursif(f-1)); } int tail(int n, int a){ if (n < 0) return 0; else if (n == 0) return 1; else if (n == 1) return a; else return tail(n-1,n*a); }