Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.

Presentasi serupa


Presentasi berjudul: "LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI."— Transcript presentasi:

1 LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI

2 Pengantar Rekursi adalah proses dimana sebuah subprogram yang memanggil dirinya sendiri. Rekursif  menyelesaikan masalah dengan menggunakan konsep tumpukan. Adapun syarat suatu subprogram dapat disebut subprogram rekursi : Subprogram itu memanggil dirinya sendiri. Terdapat anchor (kondisi dimana fungsi rekursi selesai) untuk menghentikan proses rekursi. Namun, penggunaan rekursi tidak dianjurkan, karena lebih banyak menggunakan sumber daya memori saat program dijalankan.

3 Contoh Rekursi (1) n! = n*(n-1)! , jika n>1
Faktorial Fungsi faktorial dari bilangan bulat positif n didefinisikan sbb : n! = n*(n-1)! , jika n>1 n! = 1 , jika n = 0, n=1

4 Fungsi Menghitung Faktorial
Function Faktorial (input integer)  integer Deklarasi {tidak ada} Deskripsi If (n = 0) or (n = 1) then Return(1) Else Return(n*Faktorial(n-1)) Endif Jika n diinputkan oleh dengan angka 5, bagaimana hasilnya ? N = 5 : nilai kembalian  5*faktorial(4) N = 4 : nilai kembalian  4*faktorial(3) N = 3 : nilai kembalian  3*faktorial(2) N = 2 : nilai kembalian  2*faktorial(1) N = 1 : nilai kembalian  1 Hasil : 120

5 Kondisi tumpukan rekursi faktorial
Di dalam memori komputer saat rekursi ini dieksekusi akan membentuk stack (tumpukan). N Faktorial N=1 1 N=2 2 * Faktorial(1) N=3 3 * Faktorial(2) N=4 4 * Faktorial(3) N=5 5 * Faktorial(4)

6 Bagan pemanggilan modul rekursi
Instruksi 1 Instruksi 2 Call Modul 1 End Modul 1 Instruksi 1 Instruksi 2 Call Modul 1 End Modul 1 Instruksi 1 Instruksi 2 Call Modul 1 End Modul 1 Instruksi 1 Instruksi 2 Call Modul 1 End Modul 1 Instruksi 1 Instruksi 2 ……… End Modul 1 N=5 N=4 N=3 N=2 N=1

7 Contoh Rekursif(2) Procedure rekursi (input n:integer) Deklarasi
{tidak ada} Deskripsi Write(n) If(n<5) then Rekursi(n+1) End if Jika n diinputkan oleh user dengan angka 1, bagaimana hasilnya ? N = 1 : Cetak 1 (1<5) rekursi(1+1)=2 N = 2 : Cetak 2 (2<5) rekursi(2+1)=3 N = 3 : Cetak 3 (3<5) rekursi(3+1)=4 N = 4 : Cetak 4 (4<5) rekursi(4+1)=5 N = 5 : Cetak 5 (5<5) SALAH  STOP Hasil : 1, 2, 3, 4, 5

8 Contoh Rekursif(3) Procedure rekursi (input n:integer) Deklarasi
{tidak ada} Deskripsi If(n<5) then Write(n) Rekursi(n+1) End if Jika n diinputkan oleh user dengan angka 1, bagaimana hasilnya ? N=1  (1<5)  Cetak 1 rekursi(1+1)=2 N=2  (2<5)  Cetak 2 rekursi(2+1)=3 N=3  (3<5)  Cetak 3 rekursi(3+1)=4 N=4  (4<5)  Cetak 4 rekursi(4+1)=5 N=5  (5<5)  SALAH  STOP Hasil : 1,2,3,4

9 Contoh Rekursif (4) Procedure rekursi (input n:integer) Deklarasi
{tidak ada} Deskripsi If(n<5) then Rekursi(n+1) End if Write(n) Jika n diinputkan oleh user dengan angka 1, bagaimana hasilnya ? N=1  (1<5)  rekursi(1+1)=2 N=2  (2<5)  rekursi(2+1)=3 N=3  (3<5)  rekursi(3+1)=4 N=4  (4<5)  rekursi(4+1)=5 N=5  (5<5)  SALAH  STOP Cetak 5 Cetak 4 Cetak 3 Cetak 2 Cetak 1 Hasil : 5, 4, 3, 2, 1 (Ingat Konsep Stack !!)

10 LATIHAN 8 Dengan menggunakan rekursif, tampilkan deret fibonacci sebagai berikut : Input = 10 Output = 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 Output = 55, 34, 21, 13, 8, 5, 3, 2, 1, 1


Download ppt "LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI."

Presentasi serupa


Iklan oleh Google