Recursion adalah proses pengulangan barang dengan cara yang mirip. Konsep yang sama berlaku dalam bahasa pemrograman juga. Jika suatu program memungkinkan untuk memanggil suatu fungsi di dalam fungsi yang sama, maka itu disebut panggilan fungsi rekursif. Lihatlah contoh berikut –
|
1 2 3 4 5 6 |
func recursion() { recursion() /* function calls itself */ } func main() { recursion() } |
Bahasa pemrograman Go mendukung Recursion. Artinya, ini memungkinkan suatu fungsi untuk memanggil dirinya sendiri. Tetapi saat menggunakan Recursion, programmer perlu berhati-hati untuk mendefinisikan kondisi keluar dari fungsi, jika tidak maka akan menjadi loop tak terbatas.
Contoh Recursion dalam Go
Fungsi rekursif sangat berguna untuk menyelesaikan banyak masalah matematika seperti menghitung faktorial suatu angka, menghasilkan seri Fibonacci, dll.
Contoh 1: Menghitung Faktorial MenggunakanRecursion dalam Go
Contoh berikut menghitung faktorial dari angka yang diberikan menggunakan fungsi rekursif –
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package main import "fmt" func factorial(i int)int { if(i <= 1) { return 1 } return i * factorial(i - 1) } func main() { var i int = 15 fmt.Printf("Factorial of %d is %d", i, factorial(i)) } |
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
|
1 |
Factorial of 15 is 2004310016 |
Contoh 2: Seri Fibonacci Menggunakan Recursion in Go
Contoh berikut menunjukkan cara menghasilkan seri Fibonacci dari angka yang diberikan menggunakan fungsi rekursif –
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import "fmt" func fibonaci(i int) (ret int) { if i == 0 { return 0 } if i == 1 { return 1 } return fibonaci(i-1) + fibonaci(i-2) } func main() { var i int for i = 0; i < 10; i++ { fmt.Printf("%d ", fibonaci(i)) } } |
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
|
1 |
0 1 1 2 3 5 8 13 21 34 |
Oke itulah adalah pembahasan saya tentang Recursion dalam Bahasa Golang