Disusun Oleh :
Nama : Afdhal Akrom
NIM : 09101001006
Kelas : SK2B
1. Proses Rekursif
n! = 1 , n=0
1 x 2 x … x(n-1) x n , n>0
Sebagai contoh,
0! = 1
1! = 1
2! = 1 x 2
3! = 1 x 2 x 3
4! = 1 x 2 x 3 x 4
Proses untuk menghitung faktorial dari bilangan bulat n tak – negatif dinyatakan
dalam algoritma sebagai berikut:
function Faktorial (input n : integer) → integer
{mengembalikan nilai n!}
DEKLARASI
i : integer
F : integer
ALGORITMA
F←1
i ←1
while i ≤ n do
F←F*i
i ←i+i
endwhile
{i > n}
Return F
While KONDISI(x) do
AKSI (x) {sekumpulan aksi yang memanipulasi nilai x}
F (x) { aksi yang mengubah nilai x}
Endwhile
{not kondisi (x) }
Terminasi
Jika diperhatikan dari contoh – contoh diatas adalah maka definisi rekursif
disusun oleh dua bagian :
(i) Basis
Bagian yang berisi kasus yang terdefinisi secara eksplisit. Bagian ini
juga sekaligus menghentikan rekursif (dan memberikan sebuah nilai
yang terdefinisi pada fungsi rekursif)
(ii) Rekurens
Bagian ini mendefinisikan objek dalam terminologi dirinya sendiri
Pada basis (6) kita memperoleh nilai yang terdefinisi secara langsung
dan bukan faktorial dari bilangan lainnya. Dengan melakukan runut – balik
(backtrack) dari baris (6) ke baris (1), kita mendapatkan nilai pada setiap baris
untuk menghitung hasil pada baris sebelumnya :
(6’) 0! = 1
(5’) 1! = 1 x 0! = 1 x 1 = 1
(4’) 2! = 2 x 1! = 2 x 1 = 2
(3’) 3! = 3 x 2! = 3 x 2 = 6
(2’) 4! = 4 x 3! = 4 x 6 = 24
(1’) 5! = 5 x 4! = 5 x 24 = 120
#include <stdio.h>
#include <conio.h>
int pangkat(int a, int n) {
if(a==0)
{
return 1;
}
else
{
return a * pangkat(a, n-1);
}
}
int fak (int n){
int i, jumlah;
jumlah=0;
for(i=1;i<=n;i++)
{
jumlah += i*i;
}
return jumlah;
}
void main()
{
int hasil, a;
printf("Program Menghitung pangkat secara rekursif\n");
printf("banyaknya nilai = ");scanf("%d", &a);
hasil = fak(a);
printf("Hasil pangkat = %d", hasil);
getch();
}
Program Menghitung Deret Pangkat Dengan Rumus
𝒑
:: Algoritma
DEKLARASI
x : integer
p : integer
ALGORITMA
float rata (larik A, float n, int p)
if p == 0 then
return (A[0]/n)
else
return(A[p]/n + rata(A, n, p-1));
endif
#include <stdio.h>
#include <conio.h>
#define maks 10
void main()
{
int x, n, p;
float hasil;
larik A ;
printf("Program Menghitung deret Pangkat by Afdhal\n\n");
printf("Input Nilai X --> ");scanf("%d", &x);
printf("Input Jumlah Elemen Larik[1..10] --> ");scanf("%d",
&p);
printf("Input Nilai Elemen Larik \n");
for (int n=0;n<=p;n++){
printf("A[%i] --> ", n); scanf("%f", &A[n]);
}
hasil = sigma(A,x,p);
printf("Hasil dari f(%i) = %.2f", x, hasil);
getch();
}
::PrintScreen::
Referensi
http://dedekurniadi.web.id/2006/11/02/membuat-rekursif-dengan-c/
http://www.gudangpustaka.com/kategori/teknologi-informasi/programming/166-
implementasi-rekursif-dalam-pemrograman