Perbedan antara ByRef dan ByVal secara sederhana adalah :
- ByRef = Parameter yang dikirimkan adalah object sehingga perubahan Nilai dari object tersebut yang diolah/diubah pada sub/function akan berakibat mengubah juga nilai dari object tersebut secara langsung.
- ByVal = Parameter yang dikirimkan adalah Nilai dari sebuah object sehingga anda tidak dapat mengubah Nilai Object tersebut, anda hanya dapat mengolah/mengubah nilai object tersebut di dalam sub/function saja, setelah sub/function tersebut selesai, perubahan nilai object di sub/function tidak akan mengubah nilai object yang sebenarnya.
Biar tidak bingung saya membuat contoh sederhana seperti dibawah ini :
Dim a As Integer = 0
Dim b As Integer = 0
Public Sub djie_test_ubah_nilai(ByRefa As Integer, ByVal b As Integer)
a = 100
b = 200
End Sub
Private Sub Form1_Load(ByValsender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load
Calldjie_test_sub(a, b)
MessageBox.Show("Nilai A=" + a.ToString + " : Nilai B=" + b.ToString, "djiesoft Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Penjelasan dari contoh diatas adalah :
- Pertama deklarasi variable a dan b dengan default value = 0
- Panggil fungsi untuk mengubah nilai, a dikirim dengan ByRef (berarti object a nya yang dikirim) sedangkan b dengan ByVal (berarti nilai b nya yang dikirim yaitu 0)
- Fungsi tersebut mengubah nilai a menjadi 100 dan b menjadi 200
- Setelah fungsi itu selesai, kita test nilai variable a dan b dengan menampilkannya ke MessageBox dan hasilnya adalah A=100 (Berubah) dan B=0 (tetap)
Semoga setelah anda mengeti perbedaan ini anda dapat mengaplikasikannya dengan benar di coding/sintak anda. Terimakasih
Tags:
contoh program vbnet, apa itu byval, pengertian byref vbnet, bedanya byval dan byref, contoh penerapan byval dan byref
Ada aplikasi nya kah min?
BalasHapus