Selasa, 16 Oktober 2012

PANGKAT REKURSIF


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:





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