Monday, December 10, 2012

VB6 Code - Memahami Recursive Function (Fungsi Recursive)

Di bawah ini merupakan contoh kode sehingga kita dapat memahami fungsi recursive. Apa yang dimaksud dengan fungsi recursive? fungsi recursive adalah fungsi yang memanggil dirinya sendiri. Coba perhatikan contoh kode di bawah ini:
Private Sub Form_Load()
MsgBox Factorial(9)
End Sub

Function Factorial (ByVal MyVar As Integer) ' Function declaration.
MyVar = MyVar - 1
If MyVar = 0 Then
Factorial = 1
Exit Function
End If
Factorial = Factorial(MyVar) * (MyVar + 1)
End Function
Dalam contoh kode di atas, fungsi tersebut memanggil dirinya sendiri (yang diberi warna merah).Untuk keperluan fungsi recursive ada beberapa hal yang harus diperhatikan, yaitu: Pemberian KeyWord ByVal (coba Anda hilangkan ByVal maka apa yang terjadi?) Fungsi recursive harus ditutup/diakhiri jika tidak, maka fungsi tersebut akan menampilkan error yakni Runtime Error '28' Out Of Stack Space. Mengapa? karena fungsi tersebut terus menerus memanggil fungsinya tanpa memiliki akhir, kapan ia harus berhenti. Sebagai contoh kode yang error, copy dan pastekan code berikut:
Private Sub Form_Load()
MsgBox Factorial(9)
End Sub

Function Factorial(ByVal MyVar As Integer) ' Function declaration.
MyVar = MyVar - 1
If MyVar = 0 Then
Factorial = 1
End If
Factorial = Factorial(MyVar) * (MyVar + 1)
End Function
Kode di atas akan mengalami error, mengapa? karena kode tersebut tidak memiliki akhir (terus menerus memanggil dirinya sendiri). Seperti halnya kalimat di bawah ini: Jika sekolah maka libur, dan jika libur maka sekolah. Lho? kapan sekolah dan kapan liburnya!