Rekursi - stmik el rahma

advertisement
MODUL MATA KULIAH
LOGIKA DAN ALGORITMA
STIMIK EL RAHMA
JOGJAKARTA 2015
JURUSAN : SISTEM INFORMASI
SEMESTER GENAP 2015
Rekursi
Rekursi adalah metode mengekspresikan sesuatu menggunakan dirinya sendiri.
Pada bidang pemrograman, rekursi dipakai untuk memecahkan berbagai masalah yang
memiliki sub-masalah serupa. Biasanya, penyelesaian itu diwujudkan dalam prosedur
rekursif atau fungsi rekursif.
Prosedur rekursif adalah prosedur yang memanggil dirinya sendiri, dan fungsi rekursif
adalah fungsi yang memanggil dirinya sendiri.
Perhatikan bahwa istilah rekursi merupakan kata benda, sementara rekursif merupakan
kata sifat.
Sehingga menyelesaikan suatu persoalan dengan rekursi sama artinya dengan
menyelesaikan persoalan itu secara rekursif.
Contoh Menghitung faktorial:
Nilai dari N faktorial (ditulis N!) didefinisikan sebagai:
N! = N×(N-1)×(N-2)×...×1
Secara rekursif, bisa ditulis:
N! = 1, jika N = 0
N! = N×(N-1)!, jika N > 0
Dengan begitu menghitung nilai dari N! bisa dilakukan dengan menghitung N dikali (N-1)! Untuk N = 0,
hasilnya langsung diketahui, yaitu bernilai 1.
Dalam Bahasa Pascal, bisa ditulis:
function Faktorial(N:longint):longint;
begin
if (N = 0) then begin
Faktorial := 1;
end else begin
Faktorial := N * Faktorial(N-1);
end;
end;
Perhatikan bahwa fungsi Faktorial memanggil fungsi Faktorial lagi, dengan
nilai N yang lebih kecil (yaitu N-1).
Menghitung fibonacci
Misalnya, deret Fibonacci didefinisikan sebagai berikut:
F(1) = 1
F(2) = 1
F(n) = F(n - 1) + F(n - 2), jika n ≥ 3
Dari definisi fungsi itu, kita bisa melihat bahwa untuk menghitung F(n) diperlukan
perhitungan terhadap F(n - 1) dan F(n - 2). Sangat jelas bahwa terdapat sifat rekursif pada
deret Fibonacci.
Kita dapat membuat sebuah fungsi rekursif yang menghasilkan nilai F(n) dengan mudah:
function Fibonacci(n: longint): longint;
begin
if (n = 1) or (n = 2) then begin
Fibonacci := 1;
end else begin
Fibonacci := Fibonacci(n - 1) + Fibonacci(n - 2);
end;
end;
Fungsi di atas akan menghasilkan hasil yang benar. Misalnya, pemanggilan Fibonacci(3)
akan menghasilkan 2, Fibonacci(4) akan menghasilkan 3, dan Fibonacci(5) akan
menghasilkan 5.
FAKTORIAL
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. Secara umum dapat dituliskan sebagai:
Sebagai contoh, nilai dari
daftar sejumlah faktorial
adalah
Berikut ini adalah
n n!
01
11
22
36
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800
12 479001600
14 87178291200
16 20922789888000
18 6402373705728000
20 2432902008176640000
Deret Fibonacci
ditemukan oleh Leonardi Pisano atau lebih dikenal dengan sebutan Leonardo Fibonacci
(diturunkan dari Filius Bonaccio atau anak dari Bonaccio, sebutan bagi ayahnya yang
bernama asli Guglielmo), pada abad 12 di Italia.
Pada dasarnya deret fibonacci merupakan barisan bilangan sederhana dimulai dari 0 dan 1
dan suku berikutnya merupakan jumlah dua bilangan sebelumnya.
Deret fibonacci bersifat rekursif karena menggunakan suku dalam deret tersebut untuk
menghitung suku setelahnya.
Dengan pengertian tersebut, maka suku-suku pada deret fibonacci adalah:
0 1 1 2 3 5 8 13 21 34 55 89 144 dan seterusnya
Angka 1 = 0
Angka ke-2 = 1
Angka ke-3= angka 1+ Angka ke-2
Angka ke-4 = angka 2+ Angka ke-3
dst…..
Ilustrasi Deret :
1, 3, 4, 7, 11 ……
0,2,4,6,10.16 ……..dll
Download