Mungkin sudah banyak yang mengetahui perbedaan deklarasi parameter dengan ByVal dan ByRef ini, namun saya rasa tidak ada salahnya untuk membahasnya lagi disini. Siapa tahu masih ada sejumlah visitor yang belum mengetahuinya (Kemana aja selama ini..?).

Untuk deklarasi parameter pada suatu method sub / function secara default akan menggunakan keyword ByVal. VB.Net 2008 akan menambahkannya secara otomatis saat anda mendeklarasikan sebuah parameter.

Jika suatu parameter dideklarasikan sebagai ByVal maka nilai parameter tersebut adalah copy-an nilai / salinan dari method pemanggilnya. Jadi ketika parameter tersebut diubah pada method sub / function, ia tidak akan berpengaruh pada nilai di pemanggilnya / hanya berubah didalam sub / functionnya sendiri.

Maka kebalikannya terjadi jika anda menggunakan ByRef, dengan ByRef maka parameter akan menggunakan nilai dan objek yang sama dengan pemanggilnya (mereferensi ke objek di pemanggilnya). Jadi jika nilai parameternya berubah di dalam sub / function tersebut maka perubahan juga terjadi di method pemanggilnya.

Saya rasa dari penjelasan diatas perbedaan antara deklarasi parameter dengan ByVal dan ByRef sudah cukup jelas dan tidak perlu dicontohkan.

3 komentar

  1. Pranciskus sutris // 17 September 2012 pukul 22.59  

    Saya belum jelas Pak...

    berikan contoh dong

    fransiskussutris@ymail.com

  2. Anonim // 8 November 2012 pukul 03.32  

    kirim dund gan contoh'a biar lbih jlas.

  3. Anonim // 24 Mei 2014 pukul 03.27  

    gak jelas banget. kalo nggak niat ngajari, gausah ngepost