Penggunaan Variabel dan Konstanta pada VBA Excel
Variabel dan konstanta merupakan istilah yang dipakai dalam pemrograman bukan hanya pada VBA saja akan tetapi bahasa pemrograman JAVA, DELPHI, PHP dan yang lainya. Fungsi dan penggunaan variabel dan konstanta dalam pemrograman sangat penting yaitu untuk memudahkan penulisan program oleh programmer dan mengefisienkan eksekusi program ketika dijalankan.
Penggunaan Variabel pada VBA
Variabel adalah sebuah nama yang digunakan untuk merepresentasikan sebuah nilai dalam pemrograman. Nama variable yang digunakan dalam pemrograman akan disimpan pada memori komputer dan dapat diubah pada saat program dieksekusi atau dijalankan. Untuk menggunakan variabel dalam pemrograman anda dapat gunakan pernyataan Dim untuk mengenalkan variabel tersebut dalam program. berikut ini cara deklarasi variabel dalam VBA excel.
Deklarasi Variabel
Nama variable dibuat dengan cara mendeklarasikan statement. Deklarasi variable harus memuat nama variable, tipe data, scope dan jangka waktunya. Biasanya kita hanya menggunakan pernyataan Dim saja akan tetapi ada berbagai pernyataan
Sintax deklarasi Variabel:
Dim/Public/Private/Static NamaVariabel [As <tipe data>]
Contoh penulisan deklarasi cariabel:
Dim StrNama As String Dim IntNomor As Integer Public DteTgl As Date Private VarNilai As Variant
Membuat Nama Variabel
Ketika anda mendeklarasikan sebuah variable dalam program, anda juga harus menambahkan nama variabelnya. Visual Basic for Application (VBA) akan mengalokasikan memori dalam computer untuk menyimpan nama variable tersebut.
Syarat menuliskan Variabel dalamVBA:
- Nama variable harus dimulai dengan Letter atau Abjad
- Tidak menggunakan karakter khusus
- Maksimal adalah 255 karakter.
- Nama variable tidak boleh sama dengan perintah VBA (sub, end, TRUE, FALSE, dll)
Memberikan Nilai kedalam Variabel
Memberikan nilai kedalam variable yang sudah dibuat, dapat anda lakukan dengan cara menambahkan sama dengan setelah nama variable diikuti dengan argumennya.
Sintax:
NamaVariabel = argument
Contoh Penulisan variable:
IntNomor = 1 LngTotal = LngTotal+Activecell.Value
Menuliskan nama variable disarankan sesuai dengan faedah penulisan program yang baik, hali ini dimaksudkan agar nama variable tersebut terdokumentasi dengan baik. Anda dapat tambahkan inisial dibelakang nama variable sesuai dengan jenis datanya, contoh IntNo yang berarti variable nomor dengan jenis datanya adalah integer.
Jenis dan Tipe Data Variabel
Ketika kita mendeklarasikan sebuah variable, kita dapat menambahkan spesifikasi dari data tersebut. Kita dapat memilih tipe data yang sesuai dengan jenis variable yang digunakan. Hal ini sangat penting terhadap penulisan program dari sisi akurasi, efisiensi, alokasi memori dan meminimalisir kesalahan (error) pada program VBA yang telah anda buat.
Menuliskan tipe data pada variable akan menentukan:
- Alokasi memory untuk menyimpan variabel
- Nilai dalam variable harus sesuai dengan tipe data yang ditambahkan. Anda hanya dapat menambahkan integer untuk variable dengan tipe data integer.
- Variabel dapat dilakukan operasi penambahan, pengurangan, perkalian, dan lain sebagainya.
Jika anda menuliskan variable tanpa mendeklarasikan tipe datanya dalam prosedur secara otomatis VBA akan mengoperasikan tipe datanya adalahVariant dimana memori yang dialokasikan akan lebih besar dan akan memperlambat jalanya program.
Tipe data dalam variable yang dapat anda simpan didalam memori ada 2 yaitu tipe Numeric dan string. Anda dapat melakukan operasi data numeric dengan penambahan, pengurangan, perkalian, pembagian, perpangkatan, dll. Tipe data string dapat anda lakukan operasi concatenate (&) dan pola string.
Berikut ini adalah jenis dan tipe data yang dapat kita gunakan dalam variable:
TYPE | SIZE | PREFIX | VALUE |
Boolean | 2 bytes | bln | TRUE/FALSE |
Byte | 1 byte(int) | byt | 0 – 255 |
Integer | 2 bytes(int) | int | -32.768 sampai 32.767 |
Long | 4 bytes (int) | lng | -2.147.483.648 s/d 2.147.483.648 |
Single | 4 bytes | sng | -3,402823E+38 sampai -1,401298E-45 untuk nilai negatif. 1,401298E-45 sampai 3,402823E+38 untuk nilai positif. |
Double | 8 bytes | dbl | -1,79769313486232E+308 s/d 4,94065645841247E-324 untuk nilai negatif. 4.94065645841247E-324 s/d 1.79769313486232E+308 untuk nilai positif. |
Currency | 8 bytes | cur | -922.337.203.685.477,5808 s/d 922.337.203.685.477,5807 |
Decimal | 8 bytes | dec | +/- 79.228.162.514.264.337.593.543.950.335 (tanpa nilai desimal). +/- 7,9228162514264337593543950335 (28 tempat desimal). |
String (fix length) | Sesuai Panjang karakter | Str | 0-65,400 |
String | Sesuai Panjang karakter+10 byte | Str | 0-2 milyar karakter |
Date | 8 bytes | dat | 1 January 100 sampai 31 Desember 9999 |
Variant(numeric) | 16 bytes | Var | Sembarang jenis data |
Variant(text) | 22 bytes | Var | Semua jenis data |
Object | 4 bytes | Obj | Referensi objek |
Cakupan (scope) Variabel
Deklarasi variable menggunakan Dim, Private, Public, atau Static akan menentukan scope (cakupan) dari variable tersebut. Cakupan variable akan mendefinisikan referensi variable akan dapat dipanggil dari prosedur atau module yang lain.
- Lingkup Prosedur (procedure level)
Mendeklarasikan variable dengan lingkup prosedur adalah variable hanya dapat dipanggil dan tampil hanya dalam satu prosedur saja, atau biasa dinamakan local variabel. Anda dapat mendeklarasikan variable dengan keyword Dim atau static didalam procedure.
- Lingkup Module (module Level)
Variabel level module dideklarasikan menggunakan keyword Dim atau Private yang diletakan di dalam module. variabel lingkup module dapat dideklarasikan di luar prosedur dalam satu module, yang nantinya dapat dipanggil oleh beberapa prosedur dalam satu module. Dalam hal ini prosedur diletakan di module yang sama ketika variabel tersebut dideklarasikan.
- Public Variable (lingkup Projek)
Public keyword digunakan untuk mendeklarasikan sebuah variable agar dapat direferensikan di semua lingkup objek. Public keyword hanya dapat diletakan dalam module.
Untuk memudahlan menuliskan scope variable gunakkan keyword deklarasi variable berikut ini:
- Local (Dim, Static)
- Module (Private, Dim)
- Public (public)
Anda dapat dengan mudah memahami scope variable dengan ilustrasi diagram dibawah ini:
Dari gambar diatas dapat kita artikan
- Prosedur A dapat melihat: A1, A2, Mod1, X, Y
- Prosedur B dapat melihat: B1, Mod1, X, Y
- Prosedur C dapat melihat: C1, Frm1, X, Y
- Prosedur D dapat melihat: D1, D2, Frm2, X, Y
Deklarasi Implisit dan Explicit
Menambahkan variabel dalam program tanpa kita mendeklarasikannya dengan Dim, Private, atau Public variabel ketika dijalankan tetap memberi hasil. Ini dikarenakan VBA mengenal deklarasi implisit yaitu semua variabel otomatis diberi nilai blank, meski tak dikenal.
Kondisi semacam ini kurang baik dalam pemrograman, sebaiknya dinyatakan bahwa semua variabel harus dideklarasikan agar tidak terjadi kesalahan penulisan variabel dan menghemat memori. untuk menghindari kesalahan penulisan variable anda dapat menambahkan Option Explicit sebelum penulisan prosedur.
Menambahkan Option Explicit pada Visual Basic for Application akan memaksa programmer untuk mendeklarasikan nama variable dalam prosedur. Ketika sebuah variable ditambahkan tanpa mendeklarasikan VBA akan menampilkan pesan error bahwa nama variable dalam prosedur tidak dikenali atau tidak terdefinisi.
Tambahkan deklarasi variable setelah penulisan prosedur, yang berfungsi untuk mengatur scope dan tipe datanya. Hasilnya seperti tampilan berikut ini.
Konstanta
Konstanta adalah sebuah nama variable special yang dideklarasikan dalam variable yang tidak dapat diubah nilainya pada saat program dieksekusi atau dijalankan. Konstanta dapat anda tambahkan pada baris program jika anda sulit mengingat sebuah nilai atau satuan. Konstanta merupakan bagian dari variable dimana variable tersebut akan disimpan didalam memori. Scope dari konstanta adalah private, anda dapat merubah scope readability menjadi public denhgan cara merubahnya menjadi Public.
Syntax:
[public][Private]Const NamaKonstanta [<As Type] =<ekspresi>
Contoh:
Const Pi As double = 3,14159265358979 Const Pi As double = 22/7 Public Const DQ As String = ””
Dari materi ini diharapkan anda dapat :
- Mengenal variabel dan konstanta
- Dapat menggunakan variabel dalam pemrograman
- Mengetahui fungsi deklarasi , scope, dan tipe data variabel