Kamis, 08 Juni 2017

Modul 3 - Fungsi Rekursif

FUNGSI REKURSIF
                                                                                               

Tujuan Praktikum :

1. Dapat menciptakan tipe dan bentuk dalam program
2. Dapat mengenal dan memahami fungsi rekursif
3. Dapat mengimplementasikan fungsi rekursif pada bahasa c/c++
4. Dapat menciptakan program mengguankan fungsi rekursif


    Dasar teori :

    Rekursi (recursion) adalah merupakan suatu fungsi yang dapat memanggil diriya sendiri . Fungsi rekursif dipakai karena memiliki kelebihan ,yaitu penulisan baris program menjadi lebih singkat. akan tetapi fungsi ini juga memiliki kekurangan ,yaitu membutuhkan banyak memori karena setiapprogram dipangil oleh dirinya sendiri ,dibutuhkan sejumlah ruang tambahan.

    Berikut contoh Fungsi Rekursuf :


    Xn    n adalah bilangan bulat positif. Contoh kasus :
     Jika n = =1 maka Xn  = X selain itu :   Xn  = X *  Xn-1

                     Misal X = 2 dan n = 3,  



    Praktikum 3.1



    Dalam perhitungan matematika dikenal perpangkatan dengan menentukan bilangan dasar yang akan dipangkatkan dan menentukan pangkat yang akan diterapkan pada bilangan dasar tersebut, bagaimana perhitungan matematika tersebut jika dibuat kedalam program.


    Script :



    #include <stdio.h> // Lan-balon.blogspot.co.id
    #include <conio.h>

    int pangkat (int x, int y) //parameter pangkat
    { //struktur pemilihan if else
    if (y == 0) //bila memasukan pangkat 0 maka akan dikalikan 1
    {
    return 1;
    }
    else
    { //bila selain angka satu maka akan diproses perkalian
    return x * pangkat (x, y - 1);
    }
    }

    int main()
    {
    int x, y; //variabel untuk bil bulat dan bil pangkat

    printf ("Masukan bilangan yang akan dipangkatkan = ");
    scanf ("%d", &x); //inputan bilangan bulat
    printf ("\nPangkat Bilangan = ");
    scanf ("%d", &y); //inputan pangkat
    printf ("\nHasil bilangan %d pangkat %d adalah %d", x, y, pangkat (x, y)); //pemanggilan fungsi pangkat
    getch();
    return 0;
    }

    Hasil Runningnya :






    Penjelasannya :


    Program ini di Buat untuk memudah kan Kalian untuk Mempangkatkan Suatu bilangan dengan Mudah dan Praktis ..

    Praktikum 3.2



    Bilangan yang ada merupakan runtutan jumlah dari bilangan sebelumnya, dengan demikian kita dapat mengetahui deret bilangan sebelumnya dengan melakukan faktorisasi dari bilangan tersebut. Hasil dari deret bilangan tersebut dapat dilakukan dengan sebutan faktorial.

    Contoh 4 difaktorialkan (4!) => 4 3 2 1 : (hasil kali 4!) = 24

    Script :


    #include <iostream.h>  // lan-balon.blogspot.co.id


    int factorial (int a) //parameter faktorial
    { //struktur pemiihian if
    if (a == 0)
    { //fungsi rekursif
    return 0;
    }
    else
    if(a > 1)
    {
    return (a * factorial (a-1));
    }
    else
    {
    return 1;
    }
    }

    int main()
    {
    int a;

    cout << "\t\tProgram Menampilkan Deret Nilai Faktorial" << endl;
    cout << "\nMasukan nilai factorial : ";
    cin >> a; //imputan faktorial
    cout << endl;
    cout << "\nRekursif --> Hasil perkalian semua nilai dari " << a << "! = " << factorial (a); //pemanggilan dan menampilkan faktorial
    return 0;
    }

    Hasil Runningnya :




    Penjelasanya :


    Fungsi Rekursif ini berfungsi untuk perkalian Berderet misal 5 maka hasilnya 120 seperti Gambar di atas .. 5*4*3*2*1 jadi Berderet perkaliannya ..



    Praktikum 3.3


    Bilangan fibonacci adalah bilangan yang melakukan penambahan terhadap dirinya sendiri dari nilai penjumlahan dari bilangan pada dirinya yang sebelumnya seperti teorinya berikut ini :


    f0 = 0, f1 = 1, fn>2 = fn-1 + fn-2
    f2 = f0 + f= 0 + 1 = 1

    f3 = f1 + f= 1 + 1 = 2
    f4 = f2 + f= 1 = 2 = 3
    f5 = f3 + f4 = 2 + 3 = 5

    Script :


    #include <stdio.h> // lan-balon.blogspot.co.id
    #include <conio.h>
    #include <iostream.h>


    int fibo (int i) //parameter fibo
    { //struktur pemilihan
    if (i == 0)
    {
    return 0;
    }
    else
    if (i == 1)
    {
    return 1;
    }
    else
    { //fungsi rekursif
    return fibo (i - 1) + fibo (i - 2);
    }
    }

    int main()
    {
    int bil, i;
    // judul program
    cout << "\tFungsi Rekursif Bilangan Fibonacci" << endl;
    cout << "\t----------------------------------" << endl;
    cout << "Masukan bilangan : ";
    cin >> bil; //input nilai fibo
    //pemanggilan nilai fibonacci
    for (i = 1; i <= bil; i++)
    {//pemanggilan fungsi
    cout << " " << fibo (i);
    }
    cout << "\nFibonacci (" << bil << ") = " << fibo (bil); //tampilan hasil deret fibo

    getche();
    return 0;
    }

    Hasil Runningnya :



    Penjelasannya :

    Program ini di gunakan untuk penjumlahan dari 1 ke n jadi misalkan 10 maka Penjumlahannya 1 1 2 3 5 8 13 21 34 55 dangat Mudah Kan Guys ..

    • Latihan 3.1
    • Latihan 3.2
    • Latihan 3.3

    Tidak ada komentar:

    Posting Komentar