Rekursi Java
Rekursi adalah teknik membuat pemanggilan fungsi itu sendiri. Teknik ini memberikan cara untuk memecah masalah rumit menjadi masalah sederhana yang lebih mudah untuk dipecahkan.Rekursi mungkin agak sulit untuk dipahami.
Cara terbaik untuk mengetahui cara kerjanya adalah dengan bereksperimen dengannya.
Contoh Rekursi
Menjumlahkan dua angka bersama-sama mudah dilakukan, tetapi menambahkan rentang angka lebih rumit.Dalam contoh berikut, rekursi digunakan untuk menjumlahkan rentang angka dengan memecahnya menjadi tugas sederhana menambahkan dua angka:
Contoh
Gunakan rekursi untuk menambahkan semua angka hingga 10.Input :
public class Main {
public static void main(String[] args) {
int result = sum(10);
System.out.println(result);
}public static int sum(int k) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;
}
}
}Output :
55Contoh Dijelaskan
Saat fungsi sum() dipanggil, ia menambahkan parameter k ke jumlah semua angka yang lebih kecil dari k dan menampilkan hasilnya. Ketika k menjadi 0, fungsi hanya mengembalikan 0. Saat dijalankan, program mengikuti langkah-langkah berikut:10 + sum(9)
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0Karena fungsi tidak memanggil dirinya sendiri saat k adalah 0, program berhenti di sana dan menampilkan hasilnya.
Kondisi berhenti
Sama seperti loop dapat mengalami masalah perulangan tak terbatas, fungsi rekursif dapat mengalami masalah rekursi tak terbatas. Rekursi tak terbatas adalah ketika fungsi tidak pernah berhenti memanggil dirinya sendiri. Setiap fungsi rekursif harus memiliki kondisi berhenti, yaitu kondisi dimana fungsi berhenti memanggil dirinya sendiri. Pada contoh sebelumnya, kondisi penghentian adalah saat parameter k menjadi 0.Akan sangat membantu untuk melihat berbagai contoh berbeda untuk lebih memahami konsepnya. Dalam contoh ini, fungsi menambahkan rentang angka antara awal dan akhir. Kondisi penghentian untuk fungsi rekursif ini adalah saat akhir tidak lebih besar dari mulai:
Contoh
Gunakan rekursi untuk menjumlahkan semua angka antara 5 hingga 10.Input :
public class Main {
public static void main(String[] args) {
int result = sum(5, 10);
System.out.println(result);
}public static int sum(int start, int end) {
if (end > start) {
return end + sum(start, end - 1);
} else {
return end;
}
}
}Output :
45
KAMU SEDANG MEMBACA
Bahasa Pemrograman Java Pemula Dan Tingkat Lanjut
FantasiaTutorial dan pembelajaran Bahasa Pemrograman Java Lengkap Untuk Pemula dan tingkat lanjut. Di sertai contoh yang mudah di pahami Berbahasa Indonesia. Persyaratan untuk mengikuti tutorial Mempunyai minat menjadi seorang programmer dan atau menjadi mo...