Program Rekursif C++ Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi ini akan terus berjalan sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah fungsi rekursif perlu terdapat 2 blok penting, yaitu blok yang menjadi titik berhenti dari sebuah proses rekursi dan blok yang memanggil dirinya sendiri. Contoh program rekursif: 1. Rekursif pembalik kata #include #define MAX 100 void rekursif_angka_terbalik(int); main() { int i,j,jml=0; char bil[MAX]; printf("\n======================="); printf("\n=NAMA : MAHFUZ ="); printf("\n=NIM : 100533405403="); printf("\n=KELAS : PTI '10 B ="); printf("\n======================="); printf("\n"); printf("\n^_^Program Pembalik Angka^_^"); printf("\n"); printf("\nMasukkan bilangan yang akan dibalik kawan= "); gets(bil); for (i=0;bil[i];i++) jml=jml++; printf("\n"); printf("Maka hasilnya adalah= "); for(j=jml-1;j>=0;j--) printf("%c",bil[j]); printf("\n"); } 2. Rekursif rumus bangun ruang #include #include void main() { int pilihan; float Lsegitiga,Ksegitiga,Lpersegi,Kpersegi,Lpersegipanjang,Kpersegipanjang,Llingkaran,Klingkaran,Vkubus,LPkubus,Vbalok,LPbalok,Vbola,LPbola,Vlimassegiempat,LPlimassegiempat,Vtabung,LPtabung ; float a, t, s, p, l, r, phi,sAB,sBC,sCA; char ulang; do { cout<<"(c) Created 2009 by dsuryanta.Inc"<>pilihan; switch (pilihan) { case 1 : cout<<"Menghitung Luas Segitiga"<>a; cout<<"Masukkan tinggi segitiga : ";cin>>t; cout<<"Masukkan sisi AB segitiga : ";cin>>sAB; cout<<"Masukkan sisi BC segitiga : ";cin>>sBC; cout<<"Masukkan sisi CA segitiga : ";cin>>sCA; Lsegitiga = 0.5*a*t; Ksegitiga = sAB+sBC+sCA; cout<<"Luas segitiga adalah : "<>s; Lpersegi = s*s; Kpersegi = 4*s; cout<<"Luas bujursangkar : "<>p; cout<<"Masukkan lebar : ";cin>>l; Lpersegipanjang = p*l; Kpersegipanjang = (p+l)*2; cout<<"Luas Persegipnjng: "<>r; phi = 3.14; Llingkaran = phi*r*r; Klingkaran = phi*(r+r); cout<<"Luas lingkaran adalah : "<>s; Vkubus = s*s*s; LPkubus = 6*s; cout<<"Volum kubus adalah : "<>p; cout<<"Masukkan lebar balok : ";cin>>l; cout<<"Masukkan tinggi balok : ";cin>>t; Vbalok = p*l*t; LPbalok = (2*p*l)+(2*p*t)+(2*l*t); cout<<"Volum balok adalah : "<>r; cout<<"Masukkan tinggi bola : ";cin>>t; phi = 3.14; Vbola = 4/3*phi*r*t*t*t; LPbola = 4*phi*r*r; cout<<"Volum bola adalah : "<>p; cout<<"Masukkan lebar limas segi empat : ";cin>>l; cout<<"Masukkan tinggi limas segi empat : ";cin>>t; Vlimassegiempat = (p*l*t)*1/3; LPlimassegiempat = ((p+l)*t)+(p*l); cout<<"Volum limas segi empat adalah : "<>r; cout<<"Masukkan tinggi tabung : ";cin>>t; phi = 3.14; Vtabung = phi*r*r*t; LPtabung = (2*phi*r)*(r*t); cout<<"Volum tabung adalah : "<>ulang; }while(ulang == 'y'); } 3. Rekursif segitiga siku-siku terbalik #include #include #include using namespace std; void rekursif(int argc, char *argv[]) { int t,y,x; cout << "Masukkan tinggi segitiga : "; cin >> t; cout << "----------------------------\n"; for(y=1;y<=t;y++) { cout<<" "; for(x=1;x<=y;x++) { cout << "*"; } cout << " " << endl; } cout< #include int main(){ int i,j, sudut[3]; for (i=0;i<3;i++){ printf("Sudut ke - %d : ",i+1); scanf("%d",&sudut[i]); } int sum; bool samaKaki = false; for (i=0;i<3;i++){ sum = 0; for (j=0;j<3;j++){ if (j != i) { sum += sudut[j]; } } if (sudut[i] == sum){ printf("Segitiga Sama Kaki"); samaKaki = true; } } if (! samaKaki){ printf("Bukan segitiga sama kaki"); } getch(); return 0; }