MATERI 9 FUNGSI REKURSIF Pengantar Rekursif merupakan suatu
- Slides: 15
MATERI 9 FUNGSI REKURSIF
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
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.
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.
Penentuan Kondisi def a(p) = printnumber(p); if (p>1) then a(p-1) fi enddef a(5); Program 9. 2 Base Rekursif
Penentuan Kondisi n n 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. 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.
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
Rekursif dengan simbol matematika • Dalam matematika rekursif biasa disimbolkan seperti berikut ini base rekursif • 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
Rekursif pada Pascal n Program 9. 3 merupakan contoh program rekursif pada bahasa Pascal untuk menghitung hasil faktorial dari suatu bilangan.
uses crt; function f(n : integer); begin if (n=1) then f : = 1; else f : = n * f(n-1); end; BEGIN write(f(5)); END. Program 9. 3 • Bandingkan dengan simbol matematika di hal 8 dan eksekusinya
n 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
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)!
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)
Latihan 3 • Terjemahkan dalam Rekursif (menggunakan pascal) untuk menghitung bilangan berpangkat x^(n)? • Buatlah tabel analisis untuk program di atas jika diketahui 4^8.
-selesai-
- Burroughs 6700
- Mata kuliah pip
- Soal tentang obligasi
- Materi pengantar teknologi kelautan
- Materi pengantar manajemen
- Power point siklus akuntansi perusahaan dagang
- Piramida sistem informasi
- Rekursi
- Contoh flowchart fungsi rekursif
- Contoh kasus algoritma rekursif
- Pengertian fungsi rekursif
- Fungsi linier dan non linier
- Tentukan fungsi invers dari fungsi fungsi berikut jika ada
- Materi perbandingan trigonometri
- Makalah penaksiran fungsi permintaan
- Xiivi