PEMBAHASAN
Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir. Contoh paling sederhana dari proses rekursif ini adalah proses menghitung nilai faktorial dari suatu bilangan bulat positif dan mencari deret Fibbonacci dari suatu bilangan bulat. Nilai faktorial secara rekursif dapat ditulis sebagai 0 ! = 1 N ! = N x (N-1) ! yang secara pemrograman dapat ditulis sebagai Faktorial(0) = 1 Faktorial(N) = N*Faktorial(N-1)
TUGAS
import java.util.Scanner; public class Tugas1 { static void Perpindahan(int jumlah, char sumber, char tujuan, char perantara){ if(jumlah == 0){ return; } else { Perpindahan(jumlah-1, sumber, perantara, tujuan); System.out.println("Pindahkan cakram " + jumlah + " dari " + sumber + " ke " + tujuan); Perpindahan(jumlah-1, perantara, tujuan, sumber); } } public static void main(String[] arg){ Scanner in = new Scanner(System.in); System.out.print("masukan jumlah : "); int a = in.nextInt(); Perpindahan(a, 'A', 'B', 'C'); } }
import java.util.Scanner; public class Tugas2 { public static void PembalikanAngka(int Angka) { if (Angka < 10) { System.out.println(Angka); return; } else { System.out.print(Angka % 10); PembalikanAngka(Angka/10); } } public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Masukan Beberapa Deret Angka : "); int a = in.nextInt(); System.out.print("Deret Angka Setelah Pembalikan : "); PembalikanAngka(a); } }
LISTING PROGRAM public class Praktik1 { static long faktorial(long i){ if (i==0) return 1; return i*faktorial(i-1); } public static void main(String[] arg){ System.out.println(faktorial(4)); } }
import java.util.Scanner; public class Latihan1{ static int faktorial(int i){ if (i==0) return 1; return i*faktorial(i-1); } public static void main(String[] arg){ Scanner in = new Scanner(System.in); System.out.print("Masukan Nilai Faktorial : "); int a = in.nextInt(); System.out.println(faktorial(a)); } }
public class Latihan2 { public static void main(String[] args){ int a=0,b=1; int n = 10; for (int i=1;i<=n;i++){ System.out.print(a+" "); a=a+b; b=a-b; } } }
KESIMPULAN
Fungsi rekursif merupakan salah satu konsep yang penting untuk dikuasai. Hal inidikarenakan fungsi ini memiliki sangat banyak implementasi, yang dalam hal iniadalah implementasi dalam algoritma. Fungsi rekursif
memiliki
kelebihan
dankelemahan
masing-masing.
Secara
umum
fungsi
rekursif
memiliki algoritma yanglebih mudah dipahami dan dibuat tetapi membutuhkan penggunaan memori yang besar.