Perbedaan Antara Parameter ByRef dan ByVal di VB6/VBNET
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(ByRef a As Integer, ByVal b AsInteger)
a = 100
b = 200
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load
Call djie_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.
Sumber : http://djiesoft.blogspot.com/2012/08/perbedaan-antara-parameter-byref-dan.html
0 KOMENTAR