Rekursif
Rekursif
ialah salah satu teknik pemrograman dengan cara memanggil sebuah fungsi dari
dirinya sendiri, baik itu secara langsung maupun tidak langsung. Pemanggilan
fungsi rekursif secara langsung berarti dalam fungsi tersebut terdapat
statement untuk memanggil dirinya sendiri sedangkan secara tidak langsung
berarti fungsi rekursif tersebut memanggil 1 atau lebih fungsi lain sebelum
memanggil dirinya sendiri.
Penggunaan Fungsi Rekursif
- Fungsi pangkat
- Factorial
- Barisan Fibonacci
Tapi disini saya akan membahas
tentang fungsi pangkat rekursif.
Dalam fungsi pangkat xy, jika x dipangkatkan 0, maka nilainya adalah
1. Jika x dipangkatkan y, yang mana y lebih dari 0, maka hasilnya adalah sama
dengan x dikalikan x dipangkatkan y-1.
Xy
= 1, jika y = 0
Xy=x * xy-1, jika y > 0
Pada y > 0, bentuk pemangkatannya
muncul kembali di sisi kanan. Itulah yang disebut rekursif, fungsi yang
mendefinisikan fungsi itu sendiri. Definisi rekursif selalu dimulai dengan
kasus penyetop atau penghenti, dalam hal ini terjadi ketika nilai y = 0. Dalam
hal ini yang tadinya x dipangkatkan
dengan y, kini bentuk pemangkatan menjadi lebih sederhana, yaitu y – 1. Hal ini dimaksudkan untuk “menggiring” masalah kompleks ke kasus dasar atau penyetop rekursinya. Untuk x = 10 dan y = 0, hasil dari xy adalah 1. Untuk x = 10 dan y = 3 hasilnya dapat digambarkan sebagai berikut:
dengan y, kini bentuk pemangkatan menjadi lebih sederhana, yaitu y – 1. Hal ini dimaksudkan untuk “menggiring” masalah kompleks ke kasus dasar atau penyetop rekursinya. Untuk x = 10 dan y = 0, hasil dari xy adalah 1. Untuk x = 10 dan y = 3 hasilnya dapat digambarkan sebagai berikut:
Penjabarannya :
1.
103 = 10 * 102
(102 di dapat dari 103-1)
2.
Kemudian 102 = 10 * 101
3.
101 = 10 * 100
(dimana 100 = 1), dan jika sudah sampai pada pangkat 0 maka
berhenti.
Dimana 101 = 10 * 100 = 10 * 1 = 10.
102 = 10 * 101 = 100. Dan 103 = 10 * 102
= 1000.
Berikut
ini contoh coding untuk pangkat rekursif :
public class PangkatRekursif { //pertama
kita membuat classnya yang diberi nama PangkatRekursif
public static int hitungPangkat(int a,int b, int y){ // Lalu kita mebuat parameter untuk method hitungPangkat
if (y==0){ //
jika pangkat
dengan variable y sama dengan 0
return a+b; // maka kembali ke nilai pertambahan variable a dengan variable b
}else{ // jika pangkat selain dengan pangkat y sama dengan 0
return (a+b)*hitungPangkat(a,b,y-1); // Maka hasilnya adalah a ditambah b
di kali isi dari
parameter hitungPangkat (a,b, variabel untuk pangkat y-1
}
}
public static void main(String[] args) {// kemudian kita implementasikan fungsi dari method
hitungPangkat dengan nilai seperti di bawah ini
System.out.println("hasil (2+3) pangkat 3 = "+
hitungPangkat(2,3, 3));
}
}
Hasil outputnya adalah :
hasil
(2+3) pangkat 3 = 125
dipostingkan oleh :
HELMI MAHFUDHATUL HARUM
1100631026
MI. A
Tidak ada komentar:
Posting Komentar