Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the blog-designer-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/sandidharma/wp-includes/functions.php on line 6114
Apa itu Recursive Function? | Sandi Dharma - Akademi Manajemen Informatika

Akademi Manajemen Informatika

Halo semuanya, Selamat datang kembali di Blog Sandi Dharma. Gimana kabarnya hari ini? Lagi semangat kan? πŸ˜€πŸ˜€πŸ˜€ Pada kesempatan ini kita akan belajar tentang recursive function. Apa itu recursive function? Apakah Anda pernah menggunakannya? Yuk langsung saja kita mulai!

Recursive Function

Recursive function adalah sebuah fungsi yang memanggil dirinya sendiri. Fungsi ini biasanya digunakan Kepada menyelesaikan masalah yang dapat dipecah menjadi submasalah yang lebih kecil yang sama dengan masalah Esensial. Sebagai Teladan, Kita dapat menggunakan fungsi rekursif Kepada mencari faktorial dari sebuah bilangan. Dalam kasus ini, faktorial dari suatu bilangan dapat didefinisikan sebagai bilangan tersebut dikalikan dengan faktorial dari bilangan sebelumnya.

Kepada menggunakan fungsi rekursif, Kita harus Membangun basis kasus (juga dikenal sebagai kondisi akhir), yang merupakan kondisi di mana fungsi Bukan Kembali memanggil dirinya. Hal ini sangat Krusial, karena Kalau Bukan Eksis basis kasus, fungsi akan Maju memanggil dirinya secara Maju-menerus, yang disebut rekursi tanpa akhir dan dapat menyebabkan crash pada program.

Teladan Penggunaan

Sebagai Teladan, di Rendah ini adalah implementasi fungsi rekursif Kepada mencari faktorial dari sebuah bilangan di Python:

def factorial(n):
  if n == 1:
    return 1
  else:
    return n * factorial(n-1)

print(factorial(5))  # Output: 120

Dari kode di atas, kita Membangun basis kasus dengan mengecek apakah n sama dengan 1. Kalau ya, maka kita langsung mengembalikan nilai 1. Kalau Bukan, kita kembalikan nilai n dikalikan dengan faktorial dari n – 1. Fungsi akan Maju memanggil dirinya sendiri dengan mengurangi nilai n Tamat n sama dengan 1, di mana basis kasus terpenuhi dan fungsi akan berhenti memanggil dirinya.

READ  Fitur Terbaru Laravel 10.33 - Blog Sandi Dharma

Selain itu, recursive function juga dapat digunakan Kepada menyelesaikan masalah yang lain, seperti traversal pada tree, pencarian biner, dan masalah lain yang dapat dipecah menjadi subproblems yang lebih kecil.

Recursive Function vs Looping

Recursive function dan looping sama-sama dapat digunakan Kepada menyelesaikan masalah yang sama, Tetapi Eksis beberapa perbedaan dalam hal efisiensi.

Secara Lumrah, looping lebih efisien daripada recursive function dalam hal waktu eksekusi. Hal ini karena looping Bukan membutuhkan overhead yang terlalu besar Kepada menyimpan informasi dari setiap pemanggilan fungsi seperti yang dibutuhkan oleh recursive function. Selain itu, looping juga membutuhkan memori yang lebih sedikit daripada recursive function, karena Bukan perlu menyimpan informasi dari setiap pemanggilan fungsi.

Tetapi, Eksis juga beberapa kasus di mana recursive function lebih efisien daripada looping. Sebagai Teladan, Kalau masalah yang akan diselesaikan Mempunyai struktur yang cocok dengan pendekatan rekursif, maka recursive function dapat lebih mudah dibaca dan ditulis daripada looping.

Jadi, tergantung pada masalah yang akan diselesaikan dan preferensi pribadi, salah satu dari kedua pendekatan tersebut dapat lebih efisien daripada yang lainnya. Selalu Krusial Kepada mempertimbangkan kelebihan dan kekurangan masing-masing pendekatan dan memilih yang paling sesuai Kepada masalah yang akan diselesaikan.

READ  Apa itu Bot? Ini Arti, Fungsi, Manfaat, dan 7 Contohnya

Itulah sedikit penjelasan tentang recursive function. Saya harap Sahabat-Sahabat sudah paham dengan apa yang telah saya jelaskan di atas. Kalau Eksis yang kurang paham, jangan ragu Kepada bertanya di kolom komentar ya!

Kompleksitas Waktu pada Recursive Function

Kompleksitas waktu adalah ukuran yang mengukur berapa Pelan sebuah algoritma atau program dijalankan Kepada menyelesaikan suatu masalah. Kompleksitas waktu dapat ditentukan dengan Menyaksikan jumlah operasi yang dilakukan oleh program tersebut, terutama operasi yang dilakukan dengan frekuensi yang bergantung pada ukuran masalah.

Kepada menghitung kompleksitas waktu suatu recursive function, pertama-tama perlu ditentukan berapa banyak operasi yang dilakukan pada setiap pemanggilan fungsi. Kemudian, perlu ditentukan berapa banyak kali fungsi tersebut dipanggil Kepada menyelesaikan masalah.
Sebagai Teladan, di Rendah ini adalah implementasi fungsi rekursif Kepada mencari nilai maksimum dalam sebuah array:

def find_max(arr):
  if len(arr) == 1:  # Basis kasus
    return arr[0]
  else:
    return max(arr[0], find_max(arr[1:]))

Dari kode di atas, setiap pemanggilan fungsi hanya melakukan 2 operasi, Yakni pemanggilan fungsi max() dan pemanggilan fungsi find_max() Kembali. Dengan demikian, kompleksitas waktu dari fungsi ini adalah O(2^n), di mana n adalah panjang dari array.

READ  7 Variasi dan 7 Langkah Mengatasinya

Perlu diingat bahwa kompleksitas waktu ini hanya merupakan Perkiraan Lumrah, dan dapat berbeda tergantung pada implementasi yang digunakan. Jadi, sebaiknya selalu melakukan pengujian terhadap program Kepada mengetahui performa sebenarnya dari suatu algoritma atau program.

Ketika Harus Menggunakan Recursive Function?

Seperti yang sudah dijelaskan, recursive function biasanya digunakan Kepada menyelesaikan masalah yang dapat dipecah menjadi submasalah yang lebih kecil yang sama dengan masalah Esensial. Sebagai Teladan, Kita dapat menggunakan recursive function Kepada mencari faktorial dari sebuah bilangan, mencari nilai maksimum dalam sebuah array, atau melakukan traversal pada sebuah tree.

Selain itu, recursive function juga dapat digunakan Kepada menyelesaikan masalah yang Mempunyai struktur yang sesuai dengan pendekatan rekursif, seperti pencarian biner, perhitungan fibonacci, dan masalah lain yang membutuhkan pendekatan bottom-up.

Tetapi, perlu diingat bahwa recursive function Bukan selalu merupakan pilihan yang terbaik Kepada setiap masalah. Sebagai Teladan, Kalau masalah yang akan diselesaikan membutuhkan Pengulangan yang banyak dan Bukan Mempunyai struktur yang sesuai dengan pendekatan rekursif, maka looping mungkin lebih sesuai.

Jadi, sebaiknya pertimbangkan apakah masalah yang akan diselesaikan cocok dengan pendekatan rekursif atau Bukan sebelum memutuskan Kepada menggunakan recursive function. Selalu Krusial Kepada mempertimbangkan kelebihan dan kekurangan dari setiap pendekatan dan memilih yang paling sesuai Kepada masalah yang akan diselesaikan.