Rabu, 08 Januari 2020

Rekursif pada Java

Apa itu Rekursif?
Rekursif adalah proses memanggil dirinya sendiri yang biasa dilakukan oleh fungsi atau prosedur pada pemrograman prosedural. Rekursif akan terus berjalan sampai kondisi berhenti terpenuhi.Rekursif  merupakan sebuah perulangan di dalam sebuah program. perulangan yang satu ini sangat berbeda dengan perulangan pada umumnya, seperti while dan for. Walaupun fungsinya sama yaitu perulangan atau looping. Letak perbedaannya adalah dari cara kerjanya. jika for dan while merupakan sebuah perulangan yang menggunakan sebuah kondisi atau boolean, maka pada rekursif ini terjadi pada sebuah fungsi atau metode yang memanggil dirinya sendiri.

Contoh program Rekursif
untuk lebih memahami apa itu program rekursif, coba kalian pahami contoh program dibawah ini

Contoh 1
disini kita akan mencetak nilai a dan b, menambahkan dan menguranginya.

pada objek init nilai a=0 dan b=0, kemudian pada objek tambah dia me-return nilai a dan b kemudian ditambahkan, kemudian pada objek kurang juga dia  me-return nilai a dan b kemudian diproses pengurangan. lalu untuk objek cetak (int n) dengan perintah cetak dibawahnya artinya adalah kita akan memasukkan nilai n pada perintah terakhhir.
System.out.println("a="+a) merupakan perintah cetak untuk variabel a
System.out.println("b="+b), sama seperti pada perintah cetak a
a=5;b=7 inilai yang digunakan untuk mereturn nilai a, jadi nilai a dan b inilah yang digunakan untuk objek tambah dan kurang.
cetak(5) ini yang ada pada objek cetak
cetak((3+tambah())) merupakan penjumlahan dari nilai 3 dan hasih dari tambah (a+b)
cetak (kurang()) merupakan hasil dari objek kurang yang kembali di proses pada objek cetak
Output:

contoh 2
disini kita akan menghitung nilai  dari suhu dengan memasukkan nilai C(celcius) setelah di run.
pada objek reamur akan me-return rumus untuk mencari reamur sama halnya pada objek fahrenhit, dan kelvin. pada objek cetak, dia akan panggil kembali saat ada perintah cetak dan mencetak =.
dengan scanner.baca kita bisa meng-input nilai Celcius setelah di run, kemudian dengan int C dia akan mengganti nilai X pada rumus dengan C(celcius) yang kita masukkan pada nilai Celcius. setelah itu dia akan mencetak nilai celcius, reamur, fahrenhit, dan kelvin dengan mencetak tanda = pada objek cetak.
Output:


contoh 3
disini kita akan mencari keliling dan lias persegi panjang

pada objek keliling dia akan me-return 2*(x+y) dimana x dan y merupakan panjang dan lebar. sama halnya pada objek luas, dia akan me-return x*y. kemudian dengan scanner.baca kita bisa memasukkan nilai panjang dan lebar setelah di run, dengan nilai panjang dan lebar itulah kemudian program akan mencetak keliling dan luas.
Output:


contoh 4
disini kita akn mencari nilai deret, deret 1, fak, pangkat, fibo dan GCD. pada program dibawa terdapat int yang merupakan bilangan bulat.
pada objek deret terdapat seleksi if (n>0) dia akan me-return deret (n-1)+n jika benar, namun jika salah dia kan di eksekusi pada else dan me-return 0
pada objek deret1, if (n>0) maka dia kan me-return deret1(a,b,n-1)+a+(n-1)*b jka benar, namun jika salah dia akan di eksekusi oleh else dan me-return 0.
pada objek fak, if (n>0) dia akan me-return (n*fak(n-1)) jika benar, namun jika salah dia akan lari ke else  dan me-return 1.
pada objek pangkat, if(n>0) dia akn me-return a*pangkat(a,n-1) jika benar, namun jika salah dia kan me-return 1.
selanjutnya untuk objek fibo, if (n>2), dia akan me-return fibo(n-1)+fibo(n-2) jika benar, namun jika salah dia kan di eksekusi oleh else dan me-return 1.

selanjutnya objek GCD, if (b!=0) atau jika b tidak sama dengan 0 maka dia akan me-return GCD(b,a%b) dimana % adalah sisa bagi, namun jika if salah maka dia akan di eksekusi oleh else dan me-return a.
kemudian bagian bawah merupakan perintah cetak untuk deret (3), deret1(2,3,5), fak (4), pangkat(5,3), fibo (5), GCD(45,10), dan GCD(10,45).
Output:

contoh 5
kita akan mengulangi program diatas namun dengan beberapa perbedaan.

coba kalian perhatikan pada bagian int dan return

dari perintah cetak ditambahkan angka 0 pada deret dan deret1, sedangkan fak dan pangkat ditambahkan angka 1, jika pada GCD tidak ada perubahan.

hasilnya akan berbeda dengan contoh 4 karena nilai yang kita tambahkan pada perintah cetak, juga pada method return yang di jalankan telah dirubah.



SEKIAN, SEMOGA BERMANFAAT....

Sumber

Tidak ada komentar:

Posting Komentar

SEKUENSIAL PADA JAVA

A. Pengertian Jadi, sekuensial programing adalah pembuatan atau penulisan source code dari sebuah program yang jika dieksekusi akan dila...