Pertemuan 4 ALGORITMA REKURSIF Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Rekursif Suatu metode yang memanggil dirinya sendiri 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 Rekursif
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)
Contoh Lain (Binary Search) BinSer(A[],a,b,x){ t=(a+b)/2 if A[t]=x return t else if(a=b) return -1 else if(x<A[t]) return BinSer(A,a,t-1,x) else return BinSer(A,t+1,b,x) endif } Contoh Lain (Binary Search)
Kompleksitas Rekursif Coba gimana? Kompleksitas Rekursif
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 Bagaimana Bekerjanya?
Wassalamu’alaikum … Terima Kasih Departemen Ilmu Komputer FMIPA-IPB 2009