Perbedaan Parameter ByRef dan ByVal di VB.NET

Apa Perbedaan ByVal dan ByRef ?

  • 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.

Contoh:

Public Class Form1
    'deklarasi variabel x dan y dengan nilai 0
    Dim x As Integer = 0
    Dim y As Integer = 0

    'membuat prosedur dengan parameter x dan y
    'parameter x dengan ByRef, parameter y dengan ByVal

    Private Sub ProsedurParameter(ByRef x As Integer, ByVal y As Integer)
        x = 10  'memberikan nilai 10 untuk x
        y = 20  'memberikan nilai 20 untuk y
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'memanggil ProsedurParameter dan memberikan nilai x,y untuk parameter
        ProsedurParameter(x, y)
        'menampilkan variabel x dan y di messagebox
        MsgBox("Nilai X: " & x & ", Nilai Y: " & y)
    End Sub
End Class
Perbedaan Parameter ByRef dan ByVal di VB.NET

Keterangan:

  • Deklarasi variable x dan y dengan default value = 0
  • Panggil ProsedurParameter untuk mengubah nilai, x dikirim dengan ByRef (berarti object x nya yang dikirim) sedangkan y dengan ByVal (berarti nilai y nya yang dikirim yaitu 0)
  • Isi ProsedurParameter tersebut mengubah nilai x menjadi 10 dan y menjadi 20
  • Ketika Prosedur dijalankan maka akan menampilkan ke MessageBox dengan hasil X=10 (berubah) dan Y=0 (tetap)

1 comment:
Write komentar