Apa itu Recursion Di Pemrograman Dan Contohnya! |
Apa itu Recursion
Secara umum, rekursi atau pengulangan adalah konsep referensi diri yang terdefinisi dengan baik. Ini adalah penentuan suksesi elemen dengan beroperasi pada satu atau lebih elemen sebelumnya menurut aturan atau formula yang melibatkan sejumlah langkah yang terbatas.
Dalam ilmu komputer, rekursi adalah teknik pemrograman menggunakan fungsi atau algoritma yang memanggil dirinya sendiri satu kali atau lebih sampai kondisi tertentu terpenuhi di mana sisa setiap Recursion diproses dari yang terakhir dipanggil ke yang pertama.
Penting: Setiap rekursi harus memiliki setidaknya satu kasus dasar, di mana rekursi tidak berulang (yaitu, tidak merujuk ke dirinya sendiri).
Lebih banyak contoh rekursi:
- Boneka Matryoshka Rusia. Setiap boneka terbuat dari kayu solid atau berlubang dan berisi boneka Matryoshka lain di dalamnya.
- OS modern mendefinisikan direktori sistem file dengan cara rekursif. Sistem file terdiri dari direktori tingkat atas, dan isi direktori ini terdiri dari file dan direktori lain.
- Sebagian besar sintaks dalam bahasa pemrograman modern didefinisikan dengan cara rekursif. Misalnya, daftar argumen terdiri dari (1) argumen atau (2) daftar argumen diikuti dengan koma dan argumen.
Hal yang harus diperhatikan saat menggunakan Recursion
Untuk merancang algoritma rekursif untuk masalah yang diberikan, akan berguna untuk memikirkan berbagai cara kita dapat membagi masalah ini untuk mendefinisikan masalah yang memiliki struktur umum yang sama dengan masalah aslinya. Proses ini terkadang berarti kita perlu mendefinisikan kembali masalah asli untuk memfasilitasi submasalah yang tampak serupa.
Beberapa pengamatan: (1) Hindari jika mungkin fungsi rekursif yang membuat beberapa panggilan tumpang tindih ke dirinya sendiri, yang mengarah ke kompleksitas eksponensial; dan (2) pengulangan dalam kode dapat dicapai melalui rekursi.
Dalam contoh berikut, Anda harus selalu bertanya pada diri sendiri apa kasus dasar dan langkah rekursifnya, perhatikan kewajaran implementasinya, pahami bagaimana fitur penggantian loop dari rekursi terlibat, dan mungkin pikirkan tentang penggunaan waktu dan ruang yang berjalan .
0 Comments