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