Skip to main content

Apa itu panggilan rekursif?

Dalam pemrograman, panggilan rekursif adalah perintah dalam subrutin atau fungsi yang memberi tahu program untuk menjalankan subrutin yang sama lagi.Kinerja berulang mungkin merupakan hasil langsung dari fungsi, atau fungsi kedua dapat dipicu bahwa, pada gilirannya, mengacu kembali ke fungsi pertama.Panggilan rekursif memiliki beberapa kesamaan dengan loop tak terbatas yang ditakuti, tetapi subrutin selalu memiliki pernyataan bersyarat yang memberi tahu program kapan harus berhenti mengulangi rekursi.

Konsep rekursi mungkin paling baik diilustrasikan melalui penggunaan contoh.Misalkan seorang roofer menerapkan herpes zoster baru ke rumah.Untuk memulai, ia harus membawa seikat herpes zoster ke atap.Begitu dia telah memaku bundel pertama di tempatnya, dia harus menuruni tangga, mengambil bundel lain dan memakukannya di tempatnya.Prosesnya berlanjut sebagai serangkaian go, ambil, kembali sampai sirap terakhir telah diterapkan.Pada saat itu, roofer bebas untuk pindah ke pekerjaan berikutnya atau pulang.

Meskipun contohnya adalah penyederhanaan yang berlebihan, itu berisi semua elemen panggilan rekursif.Ada titik awal, roofer harus mengambil apa yang dia butuhkan, kembali ke awal dan, ketika kondisi akhir dipenuhi, berhenti.Ini pada dasarnya apa yang dilakukan program;Itu dimulai, mengimplementasikan suatu tindakan, kembali ke dirinya sendiri dan berakhir ketika kondisi akhir terjadi.

Kondisi akhir disebut sebagai kasus dasar.Itu penting untuk semua panggilan rekursif;Tanpa itu, fungsi akan terus mengulangi.Paling -paling, ini menghasilkan pengeringan sumber daya memori sistem.Biasanya kelebihan beban akan menghancurkan program di beberapa titik, tetapi pada saat masalah ditemukan, kerusakan signifikan dapat dilakukan.

Pemrogram yang berpengalaman mungkin mengenali kesamaan antara panggilan rekursif dan untuk atau saat loop.Jika, misalnya, tujuannya adalah untuk menemukan jumlah persediaan total dari semua stok dengan nomor bagian yang lebih besar dari 999, untuk loop memberi tahu program untuk menemukan semua instance yang memenuhi syarat dan beberapa saat Loop memberi tahu program untuk menjalankan loop hanya saat dinyatakan yang dinyatakan yang dinyatakan yang dinyatakankondisi valid.Panggilan rekursif dapat dikatakan menggabungkan beberapa fitur dari loop ini dengan pernyataan jika-kemudian-else;Jika kondisi ini benar, maka lakukan ini, atau lakukan sesuatu yang berbeda jika kondisinya salah.Namun, rekursi biasanya memungkinkan kode yang lebih ringkas, dan memungkinkan masalah untuk diteruskan ke fungsi lebih dekat titik yang dibutuhkan.