Compiler Option di Visual Basic 2005
Compiler Option adalah pilihan aturan yang akan menentukan aturan dasar penanganan program pada saat dikompilasi.
Didalam Visual Basic 2005 terdapat tiga compiler option yaitu :
1. Option Explicit (On/Off)
Untuk menentukan apakah variabel-variabel yang digunakan dalam program harus dideklarasikan dahulu atau tidak. Default nilainya adalah On.
Contoh 1 :
Option Explicit Off
Public Class TestExplicit
Sub test()
i = 100
End Sub
End Class
Program diatas jika dikompilasi tidak akan menyebabkan kesalahan karena Option Explicit bernilai Off
Contoh 2 :
Option Explicit On
Public Class TestExplicit
Sub test()
i = 100
End Sub
End Class
Program diatas jika dikompilasi akan menyebabkan kesalahan Name ‘i’ is not declared, karena Option Explicit bernilai On
Untuk option ini saya menyarankan selalu untuk menggunakan Option Explicit On, karena akan mengendalikan penggunaan variable yang bisa berdampak pada permborosan penggunaan memory.
2. Option Strict (On/Off)
Untuk menentukan apakah compiler memperbolehkan atau tidak konversi nilai implicit yang berpotensi menyebabkan kehilangan data, misalnya kita akan memasukan nilai dari suatu variabel dengan type data yang lebih lebar ke variabel yang tipe data yang lebih sempit atau dari tipe data yang berbeda, i.e : integer ke string dan sebagainya, secara default nilai dari Option Strict adalah Off.
Contoh 1 :
Option Strict Off
Public Class TestExplicit
Sub test()
Dim i As Integer
Dim j As Short
i = 2500
j = i
End Sub
End Class
Program diatas jika dikompilasi tidak akan menyebabkan kesalahan karena Option Strict bernilai Off
Contoh 2 :
Option Strict On
Public Class TestExplicit
Sub test()
Dim i As Integer
Dim j As Short
i = 2500
j = i
End Sub
End Class
Program diatas jika dikompilasi akan menyebabkan kesalahan Option Strict On disallows implicit conversions from ‘Integer’ to ‘Short’, karena Option Strict bernilai On
Note :
Untuk option ini saya menyarankan untuk menggunakan Option Strict On, karena kita akan mendapatkan keuntungan pada saat runtime.
Contoh program :
Dim i As Integer
Dim j As Short
i = 2500
j = i ‘// Konversi Implicit
j = Cshort(i) ‘// Konversi Explicit
Konversi Implicit : saat develop cepat, karena kita tidak perlu menuliskan keyword untuk konversi, akan tetapi pada saat runtime system akan mengidentifikasi dahulu nilai yang akan dikonversi sebelum melakukan konversi yang benar.
Konversi Explicit : saat develop sedikit memakan waktu, karena harus menuliskan keyword untuk konversi, akan tetapi pada saat runtime system tidak akan mengidentifikasi lagi akan tetapi langsung melakukan mengkonversi.
Dalam buku Profesional VB 2005 terbitan Wiley Publishing, Inc, Chapter 3 hal 82 dikatakan : Use option strict; it’s not just about style, it’s about performance. hmm…
3. Option Compare (Binary/Text)
Adalah untuk menentukan bagaimana tipe data string dibandingkan antara satu dengan yang lainnya. Nilai defaultnya adalah Binary.
Jika Option Compare bernilai Binary maka perbandingan bersifat case sensitif, adapun aturan yang berlaku pada option ini adalah A<B<C.
Jika Option Compare bernilai Text maka perbandingan tidak bersifat case sensitif, aturan yang berlaku pada option ini adalah (A=a) < (B=b) < (C=c)
Contoh 1 :
Option Compare Binary
Public Class TestExplicit
Sub test()
Dim x As String
Dim y As String
x = “abc”
y = “ABC”
MsgBox(x = y)
End Sub
End Class
Bila dieksekusi program akan akan menghasilkan False
Contoh 2 :
Option Compare Text
Public Class TestExplicit
Sub test()
Dim x As String
Dim y As String
x = “abc”
y = “ABC”
MsgBox(x = y)
End Sub
End Class
Bila dieksekusi program akan akan menghasilkan True
Note :
Untuk option ini, up to you aja deh…, kalau saya sih pilih Binary.
Jika anda kurang setuju dengan nilai default yang ada ,anda dapat merubah nilai default dari compiler option sesuai dengan keinginan anda, caranya masuk ke menu project properties anda kemudian pilih tab Compile.

Tampilan Project Properties, tab Compile
Daftar Pustaka :
Profesional VB 2005, Wiley Publishing, Inc.
Bahasa Pemrograman VB .Net oleh Hendra Soewarno.
Filed under: VB .Net