Pertemuan 4 ALGORITMA REKURSIF Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Rekursif Suatu metode yang memanggil dirinya sendiri baik secara langsung ataupun melalui metode yang lainnya Proses pemanggilan diri itu sendiri yang disebut sebagai rekursi Contoh sederhana fenomena rekursif: menentukan nilai maksimum pada suatu array berukuran n yang didekati oleh pembandingan data ke-n terhadap largest (n-1) data lainnya
Rekursif Suatu metode yang memanggil dirinya sendiri baik secara langsung ataupun melalui metode yang lainnya Proses pemanggilan diri itu sendiri yang disebut sebagai rekursi Contoh metode menentukan nilai x pangkat n (bil-bul) yang dapat disolusikan dengan: ◦X* (x pangkat (n-1)) untuk n>0 ◦(1/x) /(x pangkat (n-1) untuk n<0 ◦1 untuk n=0
Rekursif Ciri suatu permasalahan dapat disolusikan secara rekursif adalah bahwa permasalahan tersebut dapat direduksi ke dalam permasalahan yang lebih kecil (datanya) Secara umum metode rekursi terdiri atas dua komponen ◦Bagian induksi, satu atau lebih kasus yang menyelesaikan masalah serupa namun dengan ukuran data ataupun metode yang lebih sederhana ◦Bagian penyetop, satu atau lebih kasus yang paling sederhana dan solusinya tidak perlu lagi terjadi rekursi
Contoh Lain (Binary Search) Binary Search-Suatu metode penelusuran dengan ide mempersempit ruang pencarian menjadi ½-nya untuk setiap kali ulangan Hanya dapat dilakukan pada data yang telah terurut
Contoh Lain (Binary Search) BinSer(A[],a,b,x){ if A[i]=x return I else if at=a bw=b c=floor((at+bw)/2) endif }
Bagaimana Bekerjanya? Ketika sebuah metode rekursif dipanggil S(n) maka aksi ini akan di push ke stack di register Demikian pula Ketika S(n) memanggil S(n-1) Hingga S(k) yang merupakan komponen penyetop dipanggil maka barulah isi stack di pop
Kompleksitas Rekursif
Wassalamu’alaikum … Terima Kasih Departemen Ilmu Komputer FMIPA-IPB 2009