BelajarVBA 002 - Gimana sih cara nulis kode itu ?

Coretan Mr. Kid

Sabar adalah pintu gerbang ilmu

Kali ini kita akan membahas hal terakhir tentang hal-hal yang mendasar yang sering dipelajari sambil lalu oleh sebagian besar pembelajar VBA.

Kode yang dimaksud dalam judul adalah kode pemrograman (programming code). Agar lebih mudah dipahami, mari kita siapkan arena bermainnya.
  1. Buat sebuah workbook baru dan simpan dengan format Excel Macro-Enabled Workbook (.xlsm) didalam folder BelajarVBA yang pernah dibuat.
  2. Beri nama sesukanya, tetapi usahakan untuk bisa dengan mudah menemukan file hasil uji coba dari setiap coretan.
  3. Buka VBE dengan menekan ALT F11
  4. Buat sebuah module dengan menu Insert -> pilih Module
  5. Buat lagi sebuah module dengan menu Insert -> pilih Module
  6. Buat sebuah UserForm dengan menu Insert -> UserForm
  7. Aktifkan Module1 dengan double click Module1 yang ada di Project Explorer
  8. Simpan file dengan menekan CTRL S

Kode program diletakkan pada sebuah object class yang sesuai kebutuhan. Penulisan kode program dilakukan di dalam code window.




Peringatan !!! 

  • Silakan dicoba sendiri dikomputer agar lebih terasa gurihnya. 
  • Jika bertemu dengan kode program, terutama yang berupa kode program berbaris-baris, maka ketiklah daripada melakukan Copy Paste. Bisa jadi proses copy paste justru akan lebih memungkinkan muncul error.

Option Explicit

Option Explicit adalah pernyataan bahwa setiap penggunaan variabel akan didahului dengan adanya baris deklarasi variabel. Pernyataan Option Explicit selalu diletakkan di baris pertama setiap code window. Option Explicit bisa diatur agar selalu secara default disematkan oleh VBE disetiap code window ketika code window tersebut dibentuk pertama kali. Pengaturan tersebut adalah dengan mencentang item Require Variable Declaration yang ada dalam tab Editor di sub menu Options pada menu Tools.

Procedure

Prosedur adalah sebuah blok berisi suatu kode program yang bertujuan untuk melakukan sesuatu. Sebuah blok prosedur memiliki bentuk dasar yang terdiri dari 3 hal yang selalu tetap urutannya, yaitu :
  1. baris deklarasi prosedur sebagai awal blok prosedur
  2. area baris-baris kode program
  3. baris pernyataan akhir prosedur sebagai akhir blok prosedur

Gambar di atas adalah contoh sebuah prosedur.
1. baris deklarasi prosedur
Bunyi baris deklarasi prosedur pada gambar adalah :
         Public Sub ProsedurPertama()
yang terdiri dari :
  1. Scope (area kerja) yang berupa kata Public
  2. Jenis prosedur yang berupa kata Sub
  3. Nama prosedur yang berupa kata ProsedurPertama()
Ketiga hal diatas adalah bentuk tersederhana dalam deklarasi prosedur. Jadi, setiap deklarasi prosedur, minimal akan selalu berisi 3 hal tersebut, yaitu : scope, jenis prosedur, nama prosedur.

2. area baris-baris kode program
Seluruh baris-baris kode perintah diletakkan diarea ini seperti dalam contoh tersebut di atas. Pemberian indent (memasukkan area ini lebih kedalam daripada baris deklarasi prosedur) dimaksudkan untuk memudahkan pembacaan kode program. Dengan susunan demikian, maka dengan mudah akan diketahui mana saja yang berupa baris deklarasi prosedur dan mana saja yang berupa baris-baris kode program.

Pemberian indent juga sebaiknya dilakukan ketika ada baris-baris program yang membentuk sebuah blok, seperti blok IF, blok loop (perulangan), blok With, dan sebagainya. Hal ini dimaksudkan agar pembacaan kode akan lebih mudah, terutama dalam menemukan batas-batas suatu blok perintah.

Pada gambar di atas, baris kode yang diproses adalah yang berbunyi :
         MsgBox "Belajar VBA bersama Belajar-Excel"

3. baris pernyataan akhir prosedur
Baris ini selalu memiliki bentuk yang tetap yaitu diawali dengan End yang diikuti dengan jenis prosedur. Pada contoh prosedur yang ada dalam gambar, baris pernyataan akhir prosedur adalah berbunyi :
         End Sub
Karena pada baris deklarasi prosedur dinyatakan bahwa jenis prosedur adalah Sub, maka baris pernyataan akhir prosedur adalah End Sub.

Baris akhir pernyataan prosedur akan otomatis dibuatkan oleh VBE ketika baris deklarasi prosedur selesai dibentuk, yaitu ketika menekan tombol Enter saat ada dibaris deklarasi prosedur. Kadangkala, baris akhir pernyataan terhapus akibat kegiatan pemrogram. Ketika kursor berada diakhir baris deklarasi prosedur kemudian terjadi penekanan tombol Enter, maka baris pernyataan akhir prosedur akan dibuatkan tepat 2 baris setelah baris deklarasi prosedur. Hal ini akan menyebabkan seluruh kode yang telah dibuat untuk prosedur tersebut menjadi berada diluar prosedur. Disinilah salah satu keuntungan dari pemberian indent pada area baris-baris kode program, karena akan dengan mudah menemukan baris terakhir kode program untuk prosedur tersebut.

Menjalankan Procedure

Pada umumnya (karena ada bentuk deklarasi prosedur tertentu yang tidak dapat dijalankan dengan cara yang akan dijelaskan ini), cara menjalankan prosedur yang telah dibuat adalah dengan meletakkan kursor didalam prosedur kemudian menekan tombol F5. Tombol F5 setara dengan menekan menu item Run Sub/UserForm yang ada di menu Run. Juga setara dengan menekan tombol dengan icon play yang ada didalam toolbar standard atau toolbar debug.

Prosedur jenis Sub yang bisa dijalankan dari ribbon Developer tombol Macro di workbook window hanyalah yang terdaftar didalam dialog window Macro saja. Prosedur jenis Function, yang sering disebut UDF (User Defined Function), yang bisa digunakan dalam cell layaknya fungsi-fungsi bawaan Excel (Built-In-Function) hanyalah jenis prosedur Function dengan scope (area kerja) Public.

Baris kode

Baris kode adalah sebuah baris program yang berisi perintah kepada komputer untuk melakukan sesuatu. Jadi, yang diproses selalu baris per baris dalam sebuah prosedur.

Dengan demikian, sangatlah jelas berbeda antara baris program dan baris penulisan. Baris program pastilah selalu satu baris. Satu baris program ini bisa ditulis dalam beberapa baris penulisan dan ada kemungkinan beberapa baris program ditulis dalam satu baris penulisan.

Dalam penulisan baris program, terdapat beberapa karakter khusus yang penuh arti, antara lain :
  • karakter petik satu ( ' ) yang berarti bahwa mulai dari karakter tersebut adalah suatu keterangan yang tidak perlu diproses
  • karakter underscore ( _ ) yang berarti sebagai pindah baris penulisan untuk satu baris program tersebut. Artinya, satu baris program akan ditulis dalam beberapa baris penulisan.
  • karakter titik dua ( : ) yang berarti akhir baris program, sehingga bisa disambung dengan baris program berikutnya. Artinya, dalam satu baris penulisan akan terdapat beberapa baris program.
Contoh prosedur yang berisi karakter-karakter khusus di atas :
Public Sub KarakterKhususBarisProgram()

    Dim iLoop as Integer    'deklarasi variabel loop bertipe integer

    'baris ini juga contoh penggunaan karakter petik satu ( ' )

    'baris berikut ini adalah contoh penggunaan underscore ( _ )
    MsgBox _
           "Belajar VBA bersama Belajar-Excel"

    'baris berikut ini adalah contoh penggunaan karakter ( : )
    For iLoop=1 To 8 Step 2: MsgBox "iLoop bernilai " & iLoop: Next iLoop

End Sub

Pada prosedur diatas, 
bagian 1 :
teks berbunyi
   'deklarasi variabel loop bertipe integer
dan
   'baris ini juga contoh penggunaan karakter petik satu ( ' )
tidak diproses karena telah didahului adanya karakter petik satu


bagian 2 :
teks berbunyi
    MsgBox _
           "Belajar VBA bersama Belajar-Excel"
yang tampak sebagai 2 baris, sejatinya adalah satu baris program yang ditulis dalam dua baris penulisan. Keberadaan karakter underscore ( _ )setelah MsgBox menjadi tanda bahwa baris program tersebut masih berlanjut ke baris penulisan berikutnya.

bagian 3 :
teks berbunyi
    For iLoop=1 To 8 Step 2: MsgBox "iLoop bernilai " & iLoop: Next iLoop
yang tampak sebagai 1 baris, sejatinya adalah 3 baris program yang ditulis dalam satu baris penulisan.

Keberadaan karakter titik dua setelah Step 2 menjadi tanda bahwa baris program mulai dari For telah selesai sampai di Step 2 yang kemudian disambung oleh baris program berikutnya yang diawali oleh MsgBox. Baris program yang diawali oleh MsgBox akan berakhir di & iLoop karena hadirnya kembali karakter underscore, dan akan disambung dengan baris program berikutnya yang berbunyi Next iLoop.

Penulisan baris-baris program seperti ini sebaiknya dihindari. Akan jauh lebih mudah dibaca jika ditulis :
    For iLoop=1 To 8 Step 2
        MsgBox "iLoop bernilai " & iLoop
    Next iLoop
karena tampak jelas kehadiran blok loop dengan For mulai dari kata kunci For hingga kata kunci Next.

Setiap kali menekan tombol Enter, maka VBE akan memeriksa cara penulisan (syntax) baris kode, sehingga bisa segera diketahui letak kesalahan penulisannya. Jika terjadi kesalahan penulisan, maka baris tersebut akan berubah warnanya menjadi warna Syntax Error Text Foreground (menu Tools -> Options -> tab Editor Format -> area Code Colors -> item Syntax Error Text). Ketika item Auto Syntax Check tercentang (menu Tools -> Options -> tab Editor), maka saat terjadi kesalahan penulisan baris kode akan muncul sebuah kotak pesan.


Sampai disini, seluruh materi perkenalan yang sangat banyak itemnya dan panjang sudah selesai. Semoga sudah merasa lebih nyaman ketika memasuki VBE dan sudah tidak celingak-celinguk seperti ayam kehilangan induknya ketika mendengar kata VBA atau Macro. Setidaknya sudah mulai kenal dengan yang namanya prosedur. Sudah tahu (tapi jangan keminter sama yang belum tahu ya) tentang cara-cara menulis sebuah prosedur.

Mulai dari bahasan tentang prosedur di atas, Insya Allah perjalanan akan benar-benar memasuki area yang terkadang membuat pening dan terkadang membuat tertawa sendiri. Apalagi nanti ketika sudah memasuki pembahasan tentang prosedur dengan lebih detil dan mulai menyinggung masalah scope (yang juga sudah mulai dibisikkan di atas sana) atau mulai merambah variabel dan seterusnya.
 



1 komentar:

  1. Siap nyimak, 002 tidak ada kuis nyempil
    Siap njelimetin belajarVBA 003nya mas Kid hehehe

    BalasHapus