Wednesday, April 9, 2014

Fungsi Rekursif dalam C++

Fungsi Rekursif

Fugsi rekursif adalah fungsi yang untuk melaksanakan suatu tugas tertentu, kembali memanggil dirinya sendiri. Fungsi rekursif menangani variable dan argumennya melalui tumpukan (stack), sehingga sebuah fungsi rekursif akan memerlukan waktu dan memori yang lebih banyak. Karena itu, dalam hal efisiensi pemakaian waktu dan memori, pemrograman lebih cenderung untuk menggunakan fungsi iterative.

            Agar sebuah fungsi tidak melakukan pengulangan pemanggilan secara terus-menerus, maka harus diberi beberapa syarat. Syarat-syarat rekursif :
1.      Harus ada kasus penghentian (termination case)
2.      Setiap struktur pemanggilan harus lebih sederhana daripada struktur sebelumnya
Contoh program:
#include <iostream>
using namespace std;
int main()
{
    int m, n;
    long pangkat(int, int);
    cout<<"Berikan bilangan dan eksponen: ";
    cin>>m>>n;
    cout<<m<<" pangkat p"<<n<<" = "<<pangkat(m, n);
    return 0;
}
long pangkat (int m, int n)
{
    long p;
    if (n==0)
        p = 1;
    else
        p = m * pangkat(m, n-1);
    return p;
}


2 comments: