Minggu, 28 April 2013

Tugas 7 & 8 Implementasi Fungsi Rekursi Dalam Perhitungan Faktorial

,

Fungsi Rekursif adalah suatu fungsi yang mana dalam proses memecahkan masalah, fungsi ini memanggil fungsinya sendiri. Biasanya fungsi rekursi ini digunakan untuk memecahkan masalah tertentu, dimana solusinya bisa diperoleh dari bentuk permasalahan yang lebih sederhana. Dan solusi dari permasalahan yang lebih sederhana tadi diperoleh dari solusi permasalahan yang lebih sederhana lagi, begitu seterusnya. Fungsi rekursif ini biasanya digunakan dalam bahasa pemrograman procedural seperti bahasa pemrograman C, C++ dan berbagai bahasa program procedural lainnya. Adapun konsep kerja dari fungsi rekursif ini sendiri adalah, fungsi akan melakukan pemanggilan terhadap fungsinya sendiri sampai proses kondisi terakhir terpenuhi.

Pada contoh program berikut ini merupakan implementasi fungsi rekursif untuk menghitung nilai factorial dari suatu bilangan. Secara umum cara kerja program ini adalah sebagai berikut : awalnya program meminta input kepada user bilangan yang akan difaktorial dan ditampung pada variabel “m”, setelah program / variabel “m” mendapatkan nilai input bilangan, maka nilai tersebut akan diteruskan kedalam fungsi factorial yang mana nilai pada variabel “m” akan ditampung oleh variabel “k”, setelah variabel “k” menerima nilai masukan, maka program akan melakukan pengecekan, jika “k” samadengan “0”, maka akan dikeluarkan nilai factorial samadengan “1”, jika tidak , maka proses perhitungan factorial secara rekrusif dimulai, proses perhitungan ini akan berjalan terus sampai batas akhir kondisi terpenuhi, setelah itu data hasil perhitungan factorial tersebut akan dikembalikan lagi ke fungsi utama, sehingga pada fungsi utama program nilai factorial bisa ditampilkan kelayar.
Untuk lebih jelas lagi berikut video tutorial implementasi penggunaan fungsi rekursif dalam perhitungan factorial. Selain itu, penjelasan dari masing – masing baris dalam program juga telah disertakan dalam program yang dibuat.




Source Code :

#include <stdio.h> //library untuk proses input - output
#include <stdlib.h> // library untuk fungsi pause (fungsi jeda)

int main(void){ /* fungsi utama program yang menjalankan seluruh baris code
                           int main (void) mengembalikan nilai 0*/

      int m; // deklarasi variabel integer private
      int Faktorial (int k); // prototype fungsi rekrusif faktorial yang bertipe data integer

      printf("Masukan sembarang bilangan bulat positif :"); // perintah untuk meminta input ke user, data yang diinput berupa bilangan bulat positif
       scanf("%d",&m); // data yang diinputkan user akan ditampung dalam variabel m

       printf("\nMelalui perhitungan rekursif, %d! = %d\n",m, Faktorial(m)); /*perintah untuk menampilkan kelayar, baik bilangan bulat dalam variabel m yang diinputkan user maupun hasil perhitungan rekrusif, sedangkan Faktorial(m) merupakan pemanggilan fungsi rekursif, dimana nilai yang dihitung dalam fungsi rekrusi diambil dari data yang diinputkan user yang ditampung dalam variabel m*/

       system ("pause"); // fungsi jeda program, sehingga kita bisa melihat hasil input dan output program dan untuk mengakhiri program user harus menekan tombol enter
       return 0; //program utama akan mengembalikan nilai 0
}

// fungsi rekrusif
int Faktorial(int k){ // fungsi yang bernama Faktorial dan bertipe data integer
       // nilai k = nilai yang diinputkan user yang ditampung dalam variabel m
       if(k==0) // kondisi, dimana jika k==0, maka fungsi faktorial akan mengembalikan nilai 1
              return 1; // perintah mengembalikan nilai 1
       else // kondisi statement else akan dijalankan apabila kondisi k==0 tidak terpenuhi
              return k*Faktorial(k-1); // pengembalian nilai k*Faktorial(k-1) dan sekaligus pemanggilan fungsi faktorial() sendiri
} // batas akhir dari fungsi faktorial 


Screen Shot :

Running Program
 




0 komentar to “Tugas 7 & 8 Implementasi Fungsi Rekursi Dalam Perhitungan Faktorial”

Posting Komentar