Mengenal Rekursif Pada Java
Rekursif (recursive) merupakan sifat dari suatu prosedur atau algoritma, sedangkan rekursi (recursion) adalah objek prosedur atau algoritma itu sendiri. Secara bahasa, rekursif berarti suatu aturan atau prosedur yang dapat diterapkan berulang-ulang.
Rekursif pada pemrograman juga dapat diartikan dengan suatu konsep pemrograman yang memungkinkan sebuah fungsi dapat memanggil fungsi itu sendiri. Tujuan memanggil dirinya sendiri adalah untuk menghasilkan proses perulangan dengan pola tertentu dan batasan tertentu.
Antara Perulangan dan Rekursif
Untuk memudahkan kita memahami perbedaan antara Perulangan dan Rekursif, perhatikan kode program berikut ini:
Kode program di atas adalah contoh kode perulangan pada Java menggunakan for
. Perhatikan kode program rekursif berikut ini:
Dari kedua kode program di atas terlihat jelas perbedaan antara perulangan dan rekursif. Hal penting yang perlu digarisbawahi adalah:
- Rekursif tidak menggunakan statement
for
atauwhile
untuk melakukan looping, sedangkan pada Perulangan (iterasi) menggunakan statementfor
atauwhile
untuk melakukan looping. - Rekursif harus menggunakan fungsi atau method untuk melakukan looping, sedangkan pada Perulangan (iterasi) cukup menggunakan statement
for
atauwhile
untuk melakukan looping. - Rekursif harus menggunakan statement
if
atauswitch
untuk melakukan looping, sedangkan Perulangan (iterasi) tidak harus menggunakan statementif
atauswitch
untuk melakukan looping.
Contoh Rekursif
Berikut adalah salah satu contoh kode program Rekursif menggunakan Java.
Perhatikan fungsi atau method hitungFaktorial
di atas. Method tersebut adalah method yang Rekursif. Karena di dalam method hitungFaktorial
terdapat kode program yang memanggil method hitungFaktorial
itu sendiri. Namun, setiap kali method tersebut dipanggil, nilai variabel n
selalu dikurangi dengan 1. Sehingga program harus menyelesaikan setiap method yang dipanggil secara berulang-ulang.
Ketika kode program tersebut dijalankan, kita akan melihat output sebagai berikut:
Faktorial dari 5 adalah 120
Memahami Konsep Rekursif
Ada dua elemen di dalam sebuah fungsi Rekursif, antara lain:
- Kasus Basis (Base Case) yaitu kondisi yang menyatakan Rekursif harus berhenti. Rekursif akan terus berulang jika kondisi ini tidak terpenuhi.
- Kasus Berulang (Inductive Case) yaitu langkah berulang yang digunakan untuk menyelesaikan masalah pemrograman.
Kedua elemen pada fungsi Rekursif dapat dikenali dengan mudah. Misalnya saja Kasus Berulang, dapat ditandai dengan kode program yang memanggil nama fungsinya sendiri. Sedangkan Kasus Basis tidak ditandai dengan pemanggilan nama fungsinya sendiri. Dan, kedua jenis elemen ini berada di dalam statement kondisi if
atau switch
.
Studi Kasus: Faktorial
Pada dasarnya, rumus faktorial dapat kita selesaikan dengan cara perulangan biasa, seperti kode program berikut ini:
Kode program di atas akan menghasilkan output yang sama dengan kode yang menggunakan Rekursif. Berikut adalah kode program Faktorial menggunakan Rekursif:
Kesimpulan
Rekursif punya banyak kesamaan dengan perulangan, namun menghasilkan kode program yang berbeda dengan perulangan.