Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

MATERI 9 FUNGSI REKURSIF. Pengantar Rekursif merupakan suatu metode pada procedure atau function yang di dalamnya terdapat perintah untuk memanggil procedure.

Presentasi serupa


Presentasi berjudul: "MATERI 9 FUNGSI REKURSIF. Pengantar Rekursif merupakan suatu metode pada procedure atau function yang di dalamnya terdapat perintah untuk memanggil procedure."— Transcript presentasi:

1 MATERI 9 FUNGSI REKURSIF

2 Pengantar Rekursif merupakan suatu metode pada procedure atau function yang di dalamnya terdapat perintah untuk memanggil procedure atau function itu sendiri. Contoh sederhana : def a(p) = if p=0 then exit fi printnumber(p); a(p-1); enddef a(5); Program 9.1 base Rekursif

3 Pengantar Pada pemanggilan pertama a(5), definisi a akan dijalankan yang pada awal definisi akan mencetak nilai p, yaitu 5. Setelah itu ada pemanggilan definisi a lagi dengan parameternya adalah p-1 yaitu 4. Pemanggilan definisi a ini akan menjalankan definisi a, kali ini dengan nilai p adalah 4. Yang dicetak di layar adalah nilai p yaitu 4. Setelah itu kembail terjadi pemanggilan definisi a dengan parameter p-1, yaitu 3. Proses ini berulang lagi, dengan mencetak nilai 3 kemudian memanggil a dengan parameter 2. Begitu seterusnya secara berulang-ulang.

4 Penentuan Kondisi Program 9.1 merupakan contoh program rekursif namun masih memiliki cacat, yaitu perulangan yang terjadi tidak akan pernah berhenti karena dengan nilai parameter berapapun, pasti terjadi proses rekursif (pemanggilan kembali definisi a). Untuk melengkapi definisi a, perlu ditentukan kapan dilakukan proses rekursif dan kapan tidak. Jika misalnya diinginkan untuk melakukan proses rekursif selama nilai parameter yang diberikan > 0 maka Program 9.1 dapat dilengkapi seperti pada Program 9.2.

5 Penentuan Kondisi def a(p) = printnumber(p); if (p>1) then a(p-1) fi enddef a(5); Program 9.2 Base Rekursif

6 Penentuan Kondisi Dengan demikian proses rekursif hanya akan terjadi pada saat nilai p > 0, yaitu mulai dari pemanggilan pertama, 5, kemudian pada saat rekursif dengan nilai p = 4, p = 3, p = 2 dan p = 1. Dengan demikian proses rekursif hanya akan terjadi pada saat nilai p > 0, yaitu mulai dari pemanggilan pertama, 5, kemudian pada saat rekursif dengan nilai p = 4, p = 3, p = 2 dan p = 1. Pada saat pemanggilan a(p) dengan nilai p adalah 1, maka yang dikerjakan adalah mencetak nilai p, yaitu 1. Setelah itu karena kondisi (p>1) untuk nilai p=1 akan bernilai false maka tidak akan terjadi proses rekursif. Pada saat pemanggilan a(p) dengan nilai p adalah 1, maka yang dikerjakan adalah mencetak nilai p, yaitu 1. Setelah itu karena kondisi (p>1) untuk nilai p=1 akan bernilai false maka tidak akan terjadi proses rekursif. Penentuan kondisi ini merupakan hal yang sangat penting dan harus dituliskan dengan benar untuk menghindarkan program dari kesalahan. Penentuan kondisi ini merupakan hal yang sangat penting dan harus dituliskan dengan benar untuk menghindarkan program dari kesalahan. Proses rekursif akan memberikan solusi yang sulit diselesaikan dengan menggunakan repetition biasa. Misalnya pada kasus menghitung faktorial. Proses rekursif akan memberikan solusi yang sulit diselesaikan dengan menggunakan repetition biasa. Misalnya pada kasus menghitung faktorial.

7 Pengertian Rekursif Program yang dalam prosesnya memanggil dirinya sendiri, tetapi dengan nilai parameter yang berbeda. 2 hal yang harus diperhatikan – Ada nilai batas (base) – Fungsi rekursifnya konvergen (mendekat) ke arah nilai batas

8 Rekursif dengan simbol matematika Dalam matematika rekursif biasa disimbolkan seperti berikut ini Kalau diberikan x=5 maka nilai fungsi tersebut f(5) = 5 * f(4) 5*24 = 120 f(4) = 4 * f(3) 4 * 6 = 24 f(3) = 3 * f(2) 3 * 2 = 6 f(2) = 2 * f(1) 2*1 = 2 f(1) = 1 Jadi hasilnya f(5) = 120 sama saja dengan 1*2*3*4*5 base rekursif

9 Rekursif pada Pascal Program 9.3 merupakan contoh program rekursif pada bahasa Pascal untuk menghitung hasil faktorial dari suatu bilangan. Program 9.3 merupakan contoh program rekursif pada bahasa Pascal untuk menghitung hasil faktorial dari suatu bilangan.

10 uses crt; function f(n : integer); begin if (n=1) then f := 1; else f := n * f(n-1); end;BEGINwrite(f(5));END. Program 9.3 Bandingkan dengan simbol matematika di hal 8 dan eksekusinya

11 Output Program 9.3 : Output Program 9.3 : Pemanggilan f(5) : = 5 * f(4) = 5 * 4 * f(3) = 5 * 4 * 3 * f(2) = 5 * 4 * 3 * 2 * f(1) = 5 * 4 * 3 * 2 * 1 = 120

12 Latihan 1 Terjemahkan dalam Rekursif (menggunakan pascal) untuk menghitung apa f(x,y) berikut ini ? Ubah program pascal tersebut dengan menggunakan perintah perulangan while … do atau for Buatlah tabel analisis untuk membuktikan bahwa program yang anda buat adalah benar dengan f(3,5)!

13 Latihan 2 Terjemahkan dalam Rekursif (menggunakan pascal) untuk menghitung apa f(k) berikut ini ? Tuliskan langkah-langkah eksekusinya dengan tabel analisis (agar mengerti) untuk f(5)

14 Latihan 3 Terjemahkan dalam Rekursif (menggunakan pascal) untuk menghitung bilangan berpangkat x^(n)? Buatlah tabel analisis untuk program di atas jika diketahui 4^8.

15 -selesai-


Download ppt "MATERI 9 FUNGSI REKURSIF. Pengantar Rekursif merupakan suatu metode pada procedure atau function yang di dalamnya terdapat perintah untuk memanggil procedure."

Presentasi serupa


Iklan oleh Google