Rekursi JavaScript (dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang rekursi di JavaScript dengan bantuan contoh.

Rekursi adalah proses memanggil dirinya sendiri. Fungsi yang memanggil dirinya sendiri disebut fungsi rekursif.

Sintaks untuk fungsi rekursif adalah:

 function recurse() ( // function code recurse(); // function code ) recurse();

Di sini, recurse()fungsinya adalah fungsi rekursif. Itu memanggil dirinya sendiri di dalam fungsi.

Bekerja rekursi di JavaScript

Fungsi rekursif harus memiliki kondisi untuk berhenti memanggil dirinya sendiri. Jika tidak, fungsi tersebut dipanggil tanpa batas.

Setelah kondisi terpenuhi, fungsi berhenti memanggil dirinya sendiri. Ini disebut kondisi dasar.

Untuk mencegah rekursi tak terbatas, Anda dapat menggunakan pernyataan if… else (atau pendekatan serupa) di mana satu cabang membuat panggilan rekursif, dan yang lainnya tidak.

Jadi, biasanya terlihat seperti ini.

 function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();

Contoh sederhana dari fungsi rekursif adalah menghitung mundur nilainya menjadi 1.

Contoh 1: Cetak Nomor

 // program to count down numbers to 1 function countDown(number) ( // display the number console.log(number); // decrease the number value const newNumber = number - 1; // base case if (newNumber> 0) ( countDown(newNumber); ) ) countDown(4);

Keluaran

 4 3 2 1

Dalam program di atas, pengguna mengirimkan angka sebagai argumen saat memanggil fungsi.

Dalam setiap iterasi, nilai bilangan dikurangi 1 dan fungsi countDown()dipanggil hingga bilangan tersebut positif. Inilah newNumber> 0kondisi dasarnya.

Panggilan rekursif ini dapat dijelaskan dalam langkah-langkah berikut:

 countDown (4) mencetak 4 dan panggilan countDown (3) countDown (3) mencetak 3 dan panggilan countDown (2) countDown (2) mencetak 2 dan panggilan countDown (1) countDown (1) mencetak 1 dan panggilan countDown (0)

Ketika angkanya mencapai 0 , kondisi dasarnya terpenuhi, dan fungsinya tidak dipanggil lagi.

Contoh 2: Temukan Faktorial

 // program to find the factorial of a number function factorial(x) ( // if number is 0 if (x === 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) const num = 3; // calling factorial() if num is non-negative if (num> 0) ( let result = factorial(num); console.log(`The factorial of $(num) is $(result)`); )

Keluaran

 Faktorial 3 adalah 6

Saat Anda memanggil fungsi factorial()dengan bilangan bulat positif, fungsi tersebut akan memanggil dirinya sendiri secara rekursif dengan mengurangi angkanya.

Proses ini berlanjut hingga angkanya menjadi 1 . Kemudian ketika angkanya mencapai 0 , 1 dikembalikan.

Cara kerja rekursi JavaScript di Faktorial

Panggilan rekursif ini dapat dijelaskan dalam langkah-langkah berikut:

 faktorial (3) mengembalikan 3 * faktorial (2) faktorial (2) mengembalikan 3 * 2 * faktorial (1) faktorial (1) mengembalikan 3 * 2 * 1 * faktorial (0) faktorial (0) mengembalikan 3 * 2 * 1 * 1

Artikel yang menarik...