Anda akan sering menemukan bahwa kode Anda mengandung nilai konstanta yang muncul berulang kali. Atau Anda mungkin menemukan bahwa kode Anda tergantung pada suatu angka tertentu yang susah untuk diingat — di mana angka tersebut tidak memiliki arti sama sekali bagi Anda.
Lalu apa sebenarnya yang dimaksud dengan Konstanta itu sendiri? Konstanta (Constants) adalah item yang memiliki nama yang menyimpan nilainya secara tetap selama aplikasi Anda dijalankan. Nilai π, atau 3.1415926535, adalah contoh dari sebuah konstanta numerik atau angka; huruf A adalah contoh dari sebuah karakter konstanta. Berbeda dengan variabel yang nilainya dapat diganti, maka konstanta merupakan lawan dari variabel. Nilai konstanta tidak dapat diganti.
Konstanta dapat digunakan di bagian manapun di kode Anda untuk menempatkan nilai yang sebenarnya. Sebuah konstanta bisa merupakan sebuah String atau angka, atau kombinasi yang menyertakan aritmetik atau operator logika kecuali Is dan exponentiation.
Contoh:
Const A = "MyString"
Dalam hal ini, Anda dapat meningkatkan kemampuan pembacaan kode Anda — dan membuatnya lebih mudah untuk dipelihara — dengan menggunakan konstanta. Konstanta merupakan nama yang memiliki arti yang menggunakan angka atau String yang tidak berubah. Meskipun konstanta menyerupai variabel, Anda tidak dapat mengganti nilai konstanta atau menugaskan sebuah nilai baru kepadanya seperti halnya yang bisa Anda lakukan terhadap variabel.
Ada dua sumber untuk konstanta:
1. Konstanta yang didefinisikan oleh system atau sering dikenal dengan istilah Konstanta Intrinsik adalah konstanta yang disediakan oleh aplikasi dan control. Konstanta Visual Basic didaftarkan di Visual Basic (VB) dan di pustaka object (object libraries) Visual Basic for Applications (VBA) pada jendela Object Browser. Aplikasi lainnya yang menyediakan pustaka object, seperti Microsoft Excel dan Microsoft Project, juga menyediakan sebuah daftar konstanta yang dapat Anda gunakan dengan object, method, dan properties mereka. Konstanta juga ditetapkan di pustaka object untuk setiap ActiveX control.
2. Konstanta yang didefinisikan oleh pengguna atau sering dikenal dengan istilah Konstanta Simbolik merupakan konstanta yang dideklarasikan dengan menggunakan pernyataan atau kata kunci Const.
Di Visual Basic, nama konstanta dibuat dalam format campuran, dimulai dengan sebuah awalan yang mengindikasikan pustaka object yang menetapkan konstanta tersebut. Konstanta dari Visual Basic dan pustaka object Visual Basic for Applications (VBA) diawali dengan “vb” — misalnya, vbTileHorizontal.
Awalan nama konstanta dimaksudkan untuk mencegah adanya bentrokan yang tidak disengaja apabila ada nama konstanta yang sama namun memiliki nilai yang berbeda. Meskipun menggunakan awalan, masih tetap memungkinkan bahwa dua pustaka object mengandung konstanta yang sama yang memiliki nilai yang berbeda. Konstanta yang mana yang dikaitkan dalam kasus ini tergantung pada pustaka object yang mana yang memiliki prioritas yang lebih tinggi.
Cara untuk menghindari adanya bentrokan pada nama konstanta yang sama, Anda dapat menggunakan referensi yang digunakan oleh konstanta tersebut dengan menggunakan sintaks berikut:
[libname.][modulename.]constname
Libname biasanya merupakan nama class dari control atau pustaka (library). Modulename adalan nama module yang menetapkan konstanta tersebut. Constname adalah nama dari konstanta yang bertalian. Setiap elemen-elemen ini ditetapkan di dalam pustaka object, dan dapat ditampilkan melalui jendela Object Browser.
Membuat Konstanta Anda Sendiri
Sintaks untuk mendeklarasikan sebuah konstanta adalah seperti ini:
[Public
Private] Const constantname[As type] = expression
Argumen constantname adalah nama simbolik yang valid (aturan yang digunakan adalah sama seperti pembuatan nama variabel), dan expression terdiri dari konstanta angka atau String dan operator. Meski demikian, Anda tidak dapat menggunakan pemanggilan function di dalam expression.
Sebuah pernyataan Const dapat mewakili sebuah persamaan matematika atau nilai tanggal/waktu (date/time):
Const conPi = 3.14159265358979
Public Const conMaxPlanets As Integer = 9
Const conReleaseDate = #1/1/95#
Pernyataan Const juga dapat digunakan untuk menetapkan konstanta String:
Public Const conVersion = "07.10.A"
Const conCodeName = "Enigma"
Anda dapat menempatkan lebih dari satu pendeklarasian konstanta pada sebuah baris jika Anda memisahkannya dengan tanda koma:
Public Const conPi = 3.14, conMaxPlanets = 9, _
conWorldPop = 6E+09
Ekspresi di sebelah kanan dari tanda sama dengan ( = ) sering kali berupa nomor atau String secara harfiah, tapi dia juga dapat berupa sebuah eskpresi yang menghasilkan sebuah angka atau String (meskipun ekspresi itu tidak dapat mengandung pemanggilan ke functions). Anda bahkan dapat menetapkan konstanta berdasarkan nilai konstanta yang sudah ditetapkan sebelumnya:
Const conPi2 = conPi * 2
Setelah Anda menetapkan suatu konstanta, Anda dapat menempatkan mereka di kode Anda untuk membuatnya lebih dapat dibaca. Sebagai contoh:
Static SolarSystem(1 To conMaxPlanets)
If numPeople > conWorldPop Then Exit Sub
Ruang Lingkup Konstanta yang Didefinisikan oleh Pengguna (User-Defined Constants)
Sebuah pernyataan Const memiliki ruang lingkup seperti sebuah pendeklarasian variabel, dan aturan yang sama menetapkan:
1. Untuk membuat sebuah konstanta yang terdapat hanya di dalam sebuah procedure, deklarasikan dia di dalam procedure itu.
2. Untuk membuat sebuah konstanta tersedia untuk semua procedure di dalam sebuah module, tapi tidak untuk kode apapun di luar module tadi, deklarasikan dia di bagian deklarasi (paling atas) dari module tersebut.
3. Untuk membuat sebuah konstanta tersedia di seluruh aplikasi, deklarasikan konstanta tersebut di bagian deklarasi (paling atas) dari sebuah standard module, dan gunakan kata kunci Public sebelum kata kunci Const. Konstanta Public tidak dapat dideklarasikan di sebuah form atau class module.
Menghindari Kaitan Melingkar (Circular References)
Karena konstanta dapat didefinisikan dalam konstanta yang lain, Anda harus berhati-hati untuk tidak mengesetnya menjadi sebuah lingkaran, atau kaitan yang melingkar di antara dua atau lebih konstanta. Sebuah lingkaran terjadi ketika Anda memiliki dua atau lebih konstanta Public, di setiap yang telah didefinisikan yang berada di dalam lainnya.
Sebagai contoh:
' Di dalam Module 1:
Public Const conA = conB * 2 ' Tersedia di seluruh
' aplikasi.
' Di dalam Module 2:
Public Const conB = conA / 2 ' Tersedia di seluruh
' aplikasi.
Jika sebuah lingkaran terjadi, Visual Basic membangkitkan sebuah galat ketika Anda berusaha menjalankan aplikasi Anda. Anda tidak dapat menjalankan kode Anda sampai Anda mengatasi kaitan melingkar tadi. Untuk menghindari pembuatan lingkaran, batasi semua konstanta Public Anda ke sebuah module tunggal atau paling tidak, sejumlah kecil module tertentu.
v