Perbedaan Antara Parameter ByRef dan ByVal di VB6/VBNET

Perbedaan Antara Parameter ByRef dan ByVal di VB6/VBNET

Perbedan antara ByRef dan ByVal secara sederhana adalah :
  1. 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.
  2. 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 IntegerByVal 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 :
  1. Pertama deklarasi variable a dan b dengan default value = 0
  2. 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)
  3. Fungsi tersebut mengubah nilai a menjadi 100 dan b menjadi 200
  4. 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