• Tidak ada hasil yang ditemukan

PERTEMUAN11 REKURSIF

N/A
N/A
Protected

Academic year: 2018

Membagikan "PERTEMUAN11 REKURSIF"

Copied!
16
0
0

Teks penuh

(1)
(2)

Rekursif

Dapat digunakan ketika inti dari masalah terjadi

berulang kali

Sedikit lebih efisien dari iterasi tapi lebih elegan

Method-methodnya dimungkinkan untuk

memanggil dirinya sendiri

Data yang berada dalam method tersebut

(3)

 Iterasi

Dapat digunakan pada struktur kontrol pengulangan Proses diakhiri ketika kondisi loop gagal dilaksanakan • Lebih cepat

 Rekursif

Memanggil suatu method secara berulang-ulang

Menggambarkan sebuah masalah kedalam lingkup yang lebih kecil dari pengulangan itu sendiri

• proses yang berakhir dengan kondisi tertentu disebut permasalahan dasar yang telah tercukupi oleh suatu pembatasan kondisi

(4)
(5)

Memangkatkan bilangan real tak nol dengan suatu pangkat bilangan bulat

1.public static double pangkatRekursif (double x,

(6)

pangkatRekursif (4.0, 2)

return (4.0 * pangkatRekursif (4.0, 1));

pangkatRekursif (4.0, 1)

return (4.0 * pangkatRekursif (4.0, 0));

pangkatRekursif (4.0, 0) return 1.0;

pangkatRekursif (4.0, -2)

return (1 / pangkatRekursif (4.0, 2));

pangkatRekursif (4.0, 2)

return (4.0 * pangkatRekursif (4.0, 1));

pangkatRekursif (4.0, 1)

return (4.0 * pangkatRekursif (4.0, 0));

pangkatRekursif (4.0, 0) return 1.0;

pangkatRekursif (4.0, -2)

(7)

Ciri masalah yang dapat diselesaikan secara rekursif

adalah masalah itu dapat di-reduksi menjadi satu atau

lebih masalah-masalah serupa yang lebih kecil

Secara umum, algoritme rekursif selalu mengandung dua

macam kasus:

kasus induksi: satu atau lebih kasus yang pemecahan

masalahnya dilakukan dengan menyelesaikan masalah

serupa yang lebih sederhana (yaitu menggunakan

recursive calls

)

kasus dasar atau kasus penyetop (

base case

): satu

atau lebih kasus yang sudah sederhana sehingga

pemecahan masalahnya tidak perlu lagi menggunakan

recursive-calls

.

Supaya tidak terjadi rekursi yang tak berhingga, setiap

langkah rekursif haruslah mengarah ke kasus penyetop

(8)

1. public class RekursifPangkat{

2. public static void main (String args[]){

3. RekursifPangkat p = new RekursifPangkat(); 4. System.out.print("3 pangkat 6 = ");

5. System.out.print(p.HitungPangkat(3,6));

6. }

7. public int HitungPangkat(int x, int y){

8. if(y==1){

9. return x;

10. }

11. else {

12. return x * HitungPangkat(x,y-1);

13. }

(9)

Definisi Rekursif :

factorial(n) = factorial(n-1) * n, n adalah

suatu integer yang bernilai positif

factorial(1) = 1

Contoh:

factorial(2) = factorial(1)*2 = 2

(10)
(11)

1.

class FactorialIter {

9.

public static void main(String args[])

10.

{

11.

System.out.println(factorial(3));

12.

}

(12)

1.

class FactorialRecur {

8.

public static void main(String args[]) {

9.

System.out.println(factorial(3));

(13)

1.

public class RekursifFibonacci{

2.

public static void main (String args[]){

3.

RekursifFibonacci f = new

RekursifFibonacci();

4.

System.out.println("Deret Fibonacci : ");

5.

for (int i=0;i<10; i++)

6.

{

7.

System.out.print(f.HitungDeret(i)+" ,");

8.

}

9.

System.out.print("...");

(14)

11.

public int HitungDeret(int x){

12.

if(x==0){

13.

return x;

14.

}

15.

else if(x==1){

16.

return x;

17.

}

18.

else {

19.

return HitungDeret(x-1) +

HitungDeret(x-2);

20.

}

(15)

Deret Fibonacci :

(16)

public static int bad (int n)

{

if (n == 0) return 0;

return bad (n * 3 - 1) + n - 1;

}

public static int bad (int n)

{

if (n == 0) return 0;

Referensi

Garis besar

Dokumen terkait

Pada gambar di samping segitiga ABC dan segitiga DEF kongruen, pasangan sudut berikut yang sama besar adalah ….. Pada gambar di samping  ABC dan DEF kongruen, pasangan garis

Kandungan klorofil-a fitoplankton pada suatu perairan berbeda-beda, khususnya danau kerena dipengaruhi oleh faktor fisika-kimia dan biologi dari suatu perairan Danau

Penggunaan berbagai jenis limbah pertanian sebagai bahan penyusun pakan komplit sampai dengan 25% dari total ransum tidak menyebabkan perbedaan produksi edible portion karkas

Jaring insang lingkar (koncong) menjadi alat tangkap dominan ke dua di PPI Pulolampes Brebes, keberadaanya semakin ditinggalkan karena kalah saing jumlah hasil

Beberapa hal yang dapat dikembangkan yaitu (1) sumber putaran penjatahan pupuk dan benih menggunakan poros roda traktor, (2) penggunaan metode pengolahan tanah tipe alur,

Bila Penggugat danTergugat bertempat kediaman diluar negeri, maka gugatan diajukan kepada Pengadilana Agama/ Makhamah Syar’iah yang yang daerah hukumnya meliputi tempat

Risiko kemungkinan dapat dikurangi dengan meningkatkan pengetahuan atau melakukan penelitian. Di mana manajeman lebih banyak mengetahui persoalan ketidakpastiannya