Skip to main content

Apa itu rekursi ekor?

Rekursi ekor adalah jenis panggilan metode pemrograman di mana metode memanggil dirinya sendiri, kemudian segera mengembalikan nilai panggilan kedua itu.Dengan kata lain, rekursi ekor terjadi ketika pernyataan terakhir di dalam metode adalah panggilan lain ke metode yang sama.Parameter dalam panggilan metode kedua umumnya berbeda dari yang pertama, tetapi ini tidak diperlukan.Agar rekursi ini berfungsi, metode yang disebut di dalam dirinya sendiri harus mengembalikan nilai konkret, seperti angka, string, atau objek lain.Metode batal, yang tidak mengembalikan nilai, tidak berfungsi dengan baik untuk rekursi.

Persyaratan bahwa panggilan rekursif harus menjadi pernyataan terakhir dalam metode panggilannya tidak berarti bahwa panggilan rekursif adalah baris terakhir dalam metode ini.Panggilan rekursi ekor yang tepat juga dapat ditemukan di dalam struktur kontrol, yang berarti bahwa, dalam kode sumber, struktur kontrol dapat mengakhiri metode daripada panggilan.Perbedaan penting dalam kasus ini adalah bahwa struktur kontrol bukanlah pernyataan pemrograman, tetapi bagian bawaan dari bahasa komputer.

Rekursi ekor ada dalam banyak bahasa komputer, termasuk Java dan C ++.Seringkali, panggilan rekursif ini dapat ditulis ulang menggunakan cara lain, seperti untuk loop, sementara loop, atau pernyataan goto.Kegunaan rekursi ditemukan saat membuat banyak panggilan berurutan ke metode yang sama.Rekursi sering merupakan cara paling bersih dan termudah untuk menyelesaikan tugas yang berulang.

Contoh umum dari rekursi ekor adalah metode yang menghitung faktorial angka.Proses ini sangat ideal karena, mulai dari angka apa pun, setiap angka sebelum dikalikan bersama.Jadi, untuk menemukan faktorial 5, proses yang tepat untuk melakukan itu adalah mengalikan 5*4*3*2*1.Rekursi masuk karena bagaimana metode faktorial terstruktur: jika faktorial adalah 1, kembali 1, jika tidak mengembalikan faktorial dari jumlah yang diberikan kepada metode dikurangi satu.Metode ini juga berguna karena dapat ditulis secara setara menggunakan kedua jenis rekursi ekor, dengan atau tanpa pernyataan kontrol di sekitar panggilan metode akhir.

Rekursi ekor hanyalah salah satu contoh dari berbagai jenis rekursi.Konsep dalam semua jenis rekursi pada dasarnya sama, yang dalam beberapa metode disebut metode itu sendiri.Dari jenis ini, perbedaan rekursi ekor adalah bahwa nilai panggilan rekursif segera dikembalikan, dan tidak ada lagi yang terjadi dalam metode panggilan setelah panggilan itu.