21 April 2014

VB.NET: Variable Scope, Lifetime, dan Access Level

Artikel Sebelumnya

Variable memiliki scope (jangkauan), yang mengindikasikan variable dapat dikenali atau digunakan dibagian mana pada suatu program.
Menurut scope nya variable dibagi menjadi dua bagian umum yaitu local variable dan module level variable.

1. Local Variable
Variable local terbagi lagi menjadi 2 yaitu procedure level dan block level.

Semua variable yang dideklarasikan di dalam fuction, sub procedure, event procedure, atau property merupakan local variable procedure level. Variable tersebut hanya dapat diakses dan digunakan pada rutin tersebut, dan lifetime nya adalah selama rutin tersebut berjalan.

Contoh:
Public Sub HitungJumlah()
   Dim intA As Integer = 5
   Dim intB As Integer = 4
   Dim intTotal As Integer

   intTotal = intA + intB  
End Sub


intTotal, intA, dan intB merupakan variable local procedure level, yang hanya dapat diakses dalam sub procedure HitungJumlah, dengan lifetime selama sub procedure tersebut berjalan saja.

Sementara block level mencakup block code seperti if..then, for..next, with..end with, dan sejenisnya.

Contoh:
Public Sub HitungJumlah()
   Dim intA As Integer = 5
   Dim intB As Integer = 4
   Dim intTotal as Integer

   intTotal = intA + intB  

   If intTotal > 6 Then
      Dim strMessage As String = "Lulus"
      msgbox strMessage
   End If
End Sub


Variable strMessage erupakan variable local block level, yang hanya dapat diakses dalam block level diantara if dan end if yang bersangkutan dengan lifetime selama code block antara if dan end if dijalankan.

Local variable dapat memperpanjang waktu penggunaan nya dengan medeklarasikan nya menggunakan Static (bukan Dim)
Static intLonger As Integer = 0 

2. Module Level Variable
Variable yang dideklarasikan pada sebuah class (atau struktur, atau module) diluar prosedure apapun yang ada di class tersebut dapat diakses dimanapun pada class tersebut. Selain dalam class itu sendiri ada variable yang dapat dipanggil/digunakan di scope yang lebih luas lagi tergantung setting Access Level.

Access ModifierKeteranganContoh Deklarasi
PublicVariable yang dapat diakses secara luas meskipun dari project, aplikasi, ataupun komponen yang berbeda.Public I As Integer
ProtectedProtected variable hanya dapat digunakan dalam class yang bersangkutan, tidak bisa diakses dari luar class. Tipe Access ini hanya diimplementasikan pada class saja, tidak pada module ataupun structures.Protected I As Integer
FriendVariable ini dapat diakses dimanapun selama masih dalam 1 assembly dan dapat diterapkan pada class, structure, maupun module Friend I As Integer
Protected FriendVariable yang menggabungkan fasilitas yang didapatkan oleh protected dan Friend. Dapat diakses dalam class dan inherited class, di dalam satu assembly yang sama. Tipe access ini hanya dapat diimplementasikan pada class saja.Protected Friend I As Integer
PrivateDapat diakses dimanapun selama dalam class, structure, atau module yang bersangkutan saja. Variable ini juga tersembunyi dari inherited class.Private I As Integer

Click here if you like this article.


0 comments: