REKURSIF

Rekursif adalah suatu proses dari sebuah fungsi yang dapat memanggil dirinya sendiri secara berulang-ulang.Dasar untuk mempelajari rekursif adalah harus mahir dalam function.

Penerapan rekursif biasanya lebih cocok untuk masalah-masalah yang dapat dipecahkan dalam bentuk masalah yang lebih kecil dan serupa dengan msalah aslinya.Setiap panggilan rekursif mengurangi ukuran masalah hingga mencapai base case,dimana fungsi akan berhenti memanggil dirinya sendiri dan kembali ke panggilan fungsi sebelumnya untuk menyelesaikan masalah.

Berikut Contoh Program Menggunakan Rekursif
PENJUMLAHAN REKURSIF
*Versi Primitif
Source Code
//Judul : Penjumlahan Bentuk Primitif
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int a,b,hasil;
//Deskripsi
int main(){
    cout << "======================================="<<endl;
    cout << " Penjumlahan 2 Bilangan Bentuk Primitif "<<endl;
    cout << "======================================="<<endl;
    cout << " Masukkan bilangan pertama = ";
    cin>>a;
    cout << " Masukkan bilangan kedua = ";
    cin>>b;
    hasil = a+b;
    cout << "======================================="<<endl;
    cout<<endl;
    cout << " Hasil Penjumlahan dari " << a << " dan " << b << " adalah " << hasil <<endl;
    cout << "======================================="<<endl;
}

Hasil Running Program
    

*Versi Function
Source Code
//Judul : Penjumlahan Bentuk Function
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int a,b,hasil;

int tambah(int x,int y)
    {
        int hsl;
        hsl=x+y;
    }
//Deskripsi
int main(){
    cout << "========================================"<<endl;
    cout << " Penjumlahan 2 Bilangan Bentuk Function "<<endl;
    cout << "========================================"<<endl;
    cout << " Masukkan bilangan pertama = ";
    cin>>a;
    cout << " Masukkan bilangan kedua = ";
    cin>>b;
    cout << "========================================"<<endl;
    cout<<endl;
    cout << " Hasil Penjumlahan dari " << a << " dan " << b << " adalah " << tambah(a,b) <<endl;
    cout << "========================================"<<endl;
}
Hasil Running Program

*Versi Rekursif
Source Code
//Judul : Penjumlahan Bentuk Rekursif
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int a,b,hasil;

int jml_rekursif(int x,int y)
    {
        int hsl;
        if(x == 0)
            {
                hsl = y;
            }else
                {
                    hsl =jml_rekursif (x-1,y)+1;
                }
    }

//Diskripsi
int main(){
    cout << "============================================"<<endl;
    cout << " Penjumlahan 2 Bilangan Menggunakan Rekursif "<<endl;
    cout << "============================================"<<endl;
    cout << " Masukkan bilangan 1 = ";
    cin>>a;
    cout << " Masukkan bilangan 2 = ";
    cin>>b;
    cout << "============================================"<<endl;
    cout<<endl;
    cout << " Hasil Penjumlahan dari " << a << " dan " << b << " adalah " << jml_rekursif(a,b) <<endl;
    cout << "============================================"<<endl;
}
Hasil Running Program


PERKALIAN REKURSIF
*Versi Primitif
Source Code
//Judul : Perkalian Bentuk Primitif
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int pertama,kedua,jml;
//Diskripsi
int main(){
    cout << "======================================="<<endl;
    cout << " Perkalian 2 Bilangan Bentuk Primitif "<<endl;
    cout << "======================================="<<endl;
    cout << " Masukkan bilangan pertama = ";
    cin>>pertama;
    cout << " Masukkan bilangan kedua = ";
    cin>>kedua;
    jml = pertama* kedua;
    cout << "======================================="<<endl;
    cout<<endl;
    cout << " Hasil Perkalian dari " << pertama << " dan " << kedua << " adalah " << jml <<endl;
    cout << "======================================="<<endl;
}
Hasil Running Program


*Versi Function
Source Code
//Judul : Perkalian Bentuk Function
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int bil2,bil,hasil;

int kali(int x,int y)
    {
        int hsl;
        hsl=x * y;
    }
//Diskripsi
int main(){
    cout << "========================================"<<endl;
    cout << " Perkalian 2 Bilangan Bentuk Function "<<endl;
    cout << "========================================"<<endl;
    cout << " Masukkan bilangan pertama = ";
    cin>>bil;
    cout << " Masukkan bilangan kedua = ";
    cin>>bil2;
    cout << "========================================"<<endl;
    cout<<endl;
    cout << " Hasil Perkalian dari " << bil << " dan " << bil2 << " adalah " << kali(bil,bil2) <<endl;
    cout << "========================================"<<endl;
}
Hasil Running Program


*Versi Rekursif
Source Code 
//Judul : Perkalian Bentuk Rekursif
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int a,b,hasil;

int kali_rekursif(int x,int y)
    {
        int hsl;
        if(x == 1)
            {
                hsl = y;
            }else
                {
                    hsl = y + kali_rekursif (x-1,y);
                }
    }
//Diskripsi
int main(){
    cout << "============================================"<<endl;
    cout << " Perkalian 2 Bilangan Menggunakan Rekursif "<<endl;
    cout << "============================================"<<endl;
    cout << " Masukkan bilangan 1 = ";
    cin>>a;
    cout << " Masukkan bilangan 2 = ";
    cin>>b;
    cout << "============================================"<<endl;
    cout<<endl;
    cout << " Hasil Perkalian dari " << a << " dan " << b << " adalah " << kali_rekursif(a,b) <<endl;
    cout << "============================================"<<endl;
}
Hasil Running Program


FAKTORIAL REKURSIF
* Versi Primitif
Source code
//Judul : Faktorial primitif
//oleh Akfi
#include <iostream>
using namespace std;


//kamus
int a,b,hasil;

//Diskrispi
int main()
{
    cout << "======================================="<<endl;
    cout << " Faktorial Bentuk Primitif "<<endl;
    cout << "======================================="<<endl;
    cout << " Masukkan bilangan  = ";
    cin>>a;
    hasil =1;
    b=1;
    while(b<=a)
    {
        hasil =hasil * b;
        b++;
    }
    cout << " Hasil faktorial = " << hasil <<endl;
}
Hasil Running Program

*Versi Function Berparameter
Source Code
//Judul : Faktorial primitif
//oleh Akfi
#include <iostream>
using namespace std;

//Kamus
int a,hasil;
int faktorial(int b)
    {
        cout << "======================================="<<endl;
        cout << " Faktorial Bentuk Function "<<endl;
        cout << "======================================="<<endl;
        cout << " Masukkan bilangan pertama = ";
        cin>>a;
        hasil =1;
        b=1;
        while(b<=a)
            {
                hasil =hasil * b;
                b++;
            }
            cout << " Hasil faktorial = " << hasil <<endl;
    }

//Diskripsi
int main()
{
    faktorial(a);
}

Hasil running Program


* Versi Rekursif
Source Code

//Judul : Faktorial Bentuk Rekursif
//oleh akfi
#include  <iostream>
using namespace std;

//kamus
int a,b,hasil;

int kali_rekursif(int x)
    {
         int hsl;
    if(x == 1)
    {
        hsl = 1;
    }else
        {
            hsl = x * kali_rekursif(x-1);
        }
    }


//Diskripsi
int main(){
    cout << "============================================"<<endl;
    cout << "   Faktorial Bilangan Menggunakan Rekursif "<<endl;
    cout << "============================================"<<endl;
    cout << " Masukkan bilangan faktorial = ";
    cin>>a;
    cout << "============================================"<<endl;
    cout<<endl;
    cout << " Hasil Faktorial adalah  " << kali_rekursif(a) <<endl;
    cout << "============================================"<<endl;
}

Hasil Running Program


PERPANGKATAN REKURSIF
Source Code

#include <iostream>
using namespace std;

int pangkatiterasi(int a, int b) {
    int hasil = 1; // Mengubah nilai awal hasil menjadi 1
    int i = 0;     // Memulai iterasi dari 0
    while (i < b) {
        hasil = hasil * a;
        i++;
    }
    return hasil;
}

int rekursif(int x, int y) {
    if (y <= 0) {  
        return 1;  
    } else {
        // Cetak pesan hanya sekali sebelum rekursi
        cout << "Rekursif dengan y = " << y << endl;
        return x * rekursif(x, (y - 1));
    }
}

int main() {
    int a;
    int b;
    cout << "Masukkan angka = ";
    cin >> a;
    cout << "Masukkan pangkat dari angka = ";
    cin >> b;
    cout << "Hasil iterasi = " << pangkatiterasi(a, b) << endl;
    cout << "Hasil rekursif = " <<endl <<rekursif(a, b) << endl;
}

Hasil Running Program 












Komentar

Postingan populer dari blog ini