08 April 2013

Memahami KeyWord ByVal dan ByRef di Visual Basic

Dibawah ini merupakan contoh kode sehingga kita bisa memahami KeyWord ByVal dan ByRef . Untuk itu, copas code dibawah ini :


Option Explicit

Private Sub Form_Load()
    Dim iNumber As Integer
    iNumber = 1
    MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(ByVal Pesan As String) As String
    TampilkanPesan = Pesan
End Function
Coba bedakan dengan yang ini
Fungsinya akan menampilkan error yakni argumen yang tidak sama (cocok/mismatch)
Private Sub Form_Load()
    Dim iNumber As Integer
    iNumber = 1
    MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(Pesan As String) As String
    TampilkanPesan = Pesan
End Function
Untuk mengatasi error di atas maka cocokan saja argumennya yakni
dengan mengubah variable iNumber yang asalnya integer menjadi String
Private Sub Form_Load()
    Dim iNumber As String
    iNumber = 1
    'sekarang tidak akan terjadi error karena type datanya sama yakni string
    MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(Pesan As String) As String
    TampilkanPesan = Pesan
End Function
Atau Anda beri statement ByVal pada argumen fungsinya
Private Sub Form_Load()
    'Dim iNumber As String
    iNumber = 1
    'sekarang tidak akan terjadi error karena type datanya sama yakni string
    MsgBox TampilkanPesan(iNumber)
End Sub

Function TampilkanPesan(ByVal Pesan As String) As String
    TampilkanPesan = Pesan
End Function
Maka kesimpulannya:
  • Secara default Visual Basic 6.0 telah menyertakan ByRef pada argumen walaupun kita tidak menuliskannya, terkecuali secara explicit kita menuliskan ByVal pada argumen tersebut.
  • Penggunaan ByVal akan memaksa sebuah argumen untuk dijadikan data type tertentu sebagai contoh:
  • ByVal Pesan As String maka pesan akan dipaksa untuk memiliki data type string.
  • Penggunaan KeyWord ByVal menjadikan sebuah argumen tidak lagi memiliki hubungan dengan variable yang melewatinya. Sebagai contoh:
    Dim i as integer
    i = 1
    Msgbox TampilkanPesan(i)
    Msgbox i 'maka i disini, tetap saja memiliki nilai satu.

Function TampilkanPesan(ByVal Pesan As String) As String
    Pesan = 2
    TampilkanPesan = Pesan
End Function


Semoga bermanfaat

No comments:

Post a Comment

Recent Comment

Contact Form

Name

Email *

Message *

2012 © Jabat Software