Sabtu, 27 April 2013

TMD02, Pemrograman C, Rekrusi

REKRUSI


Rekrusi merupakan teknik pemrograman yang menyebabkan suatu fungsi/prosedur memanggil dirinya sendiri. Pemanggilan diri sendiri ini berlangsung terus menerus sampai batas terkecil yang nilai dari fungsi tersebut disebutkan secara eksplisit. Salah satu contoh dari penerapan rekursi adalah perhitungan faktorial. Dalam faktorial, n! = n*(n-1)! dengan pengecualian 0! = 1. Berikut contoh perhitungannya:
0! = 1
1! = 1 = 1*(0!) = 1
2! = 2*1 = 2*(1!) = 2
3! = 3*2*1 = 3*(2!) = 6
4! = 4*3*2*1 = 4*(3!) = 24
dan seterusnya...
Dalam matematika, faktorial dari bilangan asli n adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan n. Faktorial ditulis sebagai n! dan disebut n faktorial.
Sebagai contoh, 7! adalah bernilai 7×6×5×4×3×2×1 = 5040. Berikut ini adalah daftar sejumlah faktorial
Dengan menggunakan pendekatan bahasa pemrograman, contoh perhitungan diatas dapat juga ditulis seperti berikut ini:
faktorial(0) = 1
faktorial(1) = 1 * faktorial(0)
faktorial(2) = 2 * faktorial(1)
faktorial(3) = 3 * faktorial(2)
faktorial(4) = 4 * faktorial(3)
Atau lebih singkatnya yaitu:
if (n == 0)
faktorial(n) = 1;
else
faktorial(n) = n * faktorial(n-1);

berikut adalah listing programnya yang telah di beri comment

#include<stdio.h>
#include<stdlib.h>
#include<stdint.h>

int main(void)
{
int m; //deklarasi variabel m dengan tipe data integer
int Faktorial(int k); //deklarasi faktorial (int k) dengan tipe data integer
printf("Masukan sebarang bilangan bulat positif>"); //untuk mencetak string
scanf("%d",&m);//untuk membaca dengan konversi data %d &m untuk memanggil variabel m
printf("\nMelalui perhitungan rekursif, %d!=%d\n", m,faktorial(m));
/*untuk mencetak string nilai dari variabel m dalam bentuk 
faktorial (%d!) dengan cara memanggil variabel m
variabel faktorial (m)) adalah memasukan nilai m ke fungsi faktorial (int k)*/
system("pause");
return 0;

}
  /* fungsi faktorial */
int faktorial(int k)
{
if (k==0)//jika variabel k samadengan nol (0)
return 1; 
else
return k*faktorial (k-1);/*Perhatikan bahwa fungsi faktorial() memanggil dirinya
jika diisi faktorial 4, maka perhitungannya
    I = 4xfaktorial 3*
II= 4x faktorial 2 ...dst*/
}

saya akan sangat berterimakasih jika ada saran atas kekurangan atau kesalahan pada  penjelasan yang telah saya tuliskan diblog saya ini



Tidak ada komentar:

Posting Komentar