Anda di halaman 1dari 53

KOMPUTASI TAMBANG

PEMEROGRAMAN DENGAN VBA


(MODULE KULIAH)

Disusun Oleh:
Sedarta, ST., MT.
M. Eka Onwardana, ST., MT.
Tengku Tibri, ST., MT.
Lismawaty, ST., MT.

PROGRAM STUDI SARJANA TEKNIK PERTAMBANGAN


FAKULTAS TEKNOLOGI MINERAL
INSTITUT SAINS DAN TEKNOLOGI TD PARDEDE

Medan, Maret 2021


KATA PENGANTAR

Puji syukur kita panjatkan kepada TYME karena atas ridonya modul ini dapat
diselesaikan. Module ini dibuat untuk menyediakan salah satu bahan ajar bagi
mahasiswa terkait matakuliah Komputasi Tambang. Materinya disusun berdasarkan
pengalaman penulis dalam menggunakan VBA untuk berbagai keperluan terutama
terkait penanganan data dan simulasi.
Isi dari modul ini diawali dengan pemahaman tentang antar muka dilanjutkan
dengan metode pembuatan makro (VBA). Pengenalan jenis data dan variabel
menyiapkan mahasiswa untuk dapat menggunakan macro dalam berbagai proses
komputasi dan simulasi. Teknik-teknik dasar terkait metode pengembangan macro
untuk menangani komputasi peroalan-persoalan kompleks juga diberikan melalui
materi Class Module dan UserForm.
Pada kesempatan ini penulis mengucapkan terima kasih kepada semua civutas
akademi FTM dan ISTP yang telah menyediakan ruang bagi penulis dalam
menyebarluaskan ilmu pengetahuan dan teknologi terkait pengembangan ilmu-ilmu dan
Teknologi Pertambangan. Penulis sadar bahwa isi dari modul ini memiliki banyak
kekurangan dan oleh karenanya segala kritik, saran dan masukan yang sifatnya
membangun akan diucapkan terima kasih.

Hormat kami

Penulis
DAFTAR ISI

KATA PENGANTAR ....................................................................................................ii


DAFTAR ISI................................................................................................................. iii
DAFTAR GAMBAR ...................................................................................................... v
DAFTAR TABEL........................................................................................................... v

1 PENDAHULUAN ...................................................................................... 1-1


1.1 Latar Belakang ................................................................................................... 1-1
1.2 Maksud dan Tujuan ............................................................................................ 1-2
1.3 Ruang Lingkup ................................................................................................... 1-2

2 ANTAR MUKA VBA ................................................................................ 2-1


2.1 Pembuatan Macro-Baru ..................................................................................... 2-1
2.2 Jendela ke Lingkungan Pemerograman Macro .................................................. 2-2
2.3 Jenis Extension File dan Sistem Keamanan ....................................................... 2-3
2.4 Antarmuka Lingkungan Pemerograman VBA ................................................... 2-6
2.4.1 Tool Box.......................................................................................................... 2-7
2.4.2 Project Folder .................................................................................................. 2-9
2.4.3 Object Refferences ........................................................................................ 2-10

3 DATA DAN VARIABEL .......................................................................... 3-1


3.1 Nama Variabel ................................................................................................... 3-1
3.2 Type Variabel Standar........................................................................................ 3-2
3.3 Variabel Konstanta ............................................................................................. 3-3
3.4 Variabel Object .................................................................................................. 3-3
3.5 User-Defined Variable ....................................................................................... 3-4
3.6 Variabel Array .................................................................................................... 3-4

4 IMPLEMENTASI ALGORITMA ........................................................... 4-1


4.1 Sub Prosedure..................................................................................................... 4-1
4.2 Function.............................................................................................................. 4-2
4.3 Perintah Kondisi ................................................................................................. 4-2
4.4 Perintah Select .................................................................................................... 4-3
4.5 Implemntasi Algoritma ...................................................................................... 4-3
4.6 Perintah Perulangan ........................................................................................... 4-8
4.6.1 Perulangan menggunakan For … Next ........................................................... 4-8
4.6.2 Perulangan Menggunakan Do … While ....................................................... 4-10

Sedarta, VBA 4 mine computation. Hal.: iii dari 2


4.6.3 Contoh Implementasi Algoritma Looping .................................................... 4-11
4.6.3.1 Pembuatan Macro....................................................................................... 4-12
4.6.3.2 Inisialisasi Variabel .................................................................................... 4-12
4.6.3.3 Inisialisasi Kondisi ..................................................................................... 4-13
4.6.3.4 Penentuan Nilai Sinus sudut tertentu ......................................................... 4-13
4.6.3.5 Pencetakan nilai hasil eksekusi .................................................................. 4-14
4.6.3.6 Pengradasian nilai sudut ............................................................................. 4-14
4.6.3.7 Pengujian kondisi batas .............................................................................. 4-14
4.6.3.8 Pengeplotan kurva dari nilai-nilai output. .................................................. 4-14

5 CLASS MODULE ..................................................................................... 5-1


5.1 Pengertian dari Object ........................................................................................ 5-1
5.2 Pengertian dari Class .......................................................................................... 5-1
5.2.1 Cara Pembuatan Class ..................................................................................... 5-2
5.2.2 Property ........................................................................................................... 5-3
5.2.3 Methods ........................................................................................................... 5-4
5.2.4 Event ............................................................................................................... 5-4

6 USER FORM.............................................................................................. 6-1


6.1 Penyediaan Oject UserForm .............................................................................. 6-1
6.2 Penambahan Object Activex .............................................................................. 6-3
6.3 Mengeksekusi UserForm ................................................................................... 6-4

Sedarta, VBA 4 mine computation. Hal.: iv dari 2


DAFTAR GAMBAR

Gambar 2-1. Antar muka VBA melalui Ms-Excel ..................................................... 2-1


Gambar 2-2. Antar muka Ms-Excel ke jendela macro ............................................... 2-2
Gambar 2-3. Kotak dialog view Macro ...................................................................... 2-3
Gambar 2-4. Kotak dialog pendefinsian file untuk Macro ......................................... 2-4
Gambar 2-5. Setting sekuriti file Macro ..................................................................... 2-5
Gambar 2-6. Lingkungan Pemerograman VBA ......................................................... 2-6
Gambar 2-7. Toll-box antarmuka VBA ...................................................................... 2-7
Gambar 2-8. Tampilan Object Browser pada antar muka VBA ................................. 2-8
Gambar 2-9. Project folder dari VBA Ms-Excel ........................................................ 2-9
Gambar 2-10. Penambahan Object Refference ke dalam project ............................. 2-10
Gambar 2-11. Contoh implementasi references ....................................................... 2-11
Gambar 3-1. Pendeklarasian variabel constant ........................................................... 3-3
Gambar 3-2. Pendeklarasian Variabel Object ............................................................. 3-3
Gambar 3-3. Pendefinsian dan penggunaan User-Defined Variable .......................... 3-4
Gambar 4-1. Contoh algoritma, implementasi dan pengembangannya ...................... 4-4
Gambar 4-2. Prosedur yang menggunakan perintah For … Next .............................. 4-9
Gambar 4-3. Prosedur yang menggunakan perintah Do … While ........................... 4-10
Gambar 4-4. Contoh Implemenetasi Algoritma Looping ......................................... 4-11
Gambar 4-5. Sub routin untuk peneplotan kurva nilai-nilai sinus sudut tertentu ..... 4-15
Gambar 5-1. Prosedur pembuatan Class Pada Antar Muka VBA .............................. 5-2
Gambar 5-2. Property dari sebuah Object, Item dan Elemen (unsur) ......................... 5-3
Gambar 5-3. Contoh Class dari sebuah Bidang-persegi dan Implementasinya .......... 5-5
Gambar 5-4. Struktur dan Sifat dari Class Object ...................................................... 5-6
Gambar 6-1. Prosedur penyediaan User Form............................................................ 6-1
Gambar 6-2. Atributh dari sebuah UserForm ............................................................. 6-2
Gambar 6-3. Contoh pengimputan Activex kedalam Form AntarMuka .................... 6-3
Gambar 6-4. Metode eksekusi sebuah UserForm ....................................................... 6-5

DAFTAR TABEL

Tabel 3-1. Type variabel numerik............................................................................... 3-2


Tabel 3-2. Type variabel non numerik........................................................................ 3-2

Sedarta, VBA 4 mine computation. Hal.: v dari 1


1 PENDAHULUAN

1.1 Latar Belakang


Perkembangan ilmu pengetahuan dan teknologi serta tuntutan dari Era Industri
5.0 yang mengarah kepada penggunaan kecerdaan buatan mendorong Program Studi
Sarjana Teknik Pertambangan (PSTP) menyediakan kurikulum yang memuat prinsip-
prinsip komputasi. Muatan ini, salah satunya, dikemas dalam matakuliah Komputasi
Tambang (3-SKS). Mengingat cakupan dari materi komputasi yang cukup luas, baik
dari sisi perangkat, bahasa pemerograman hingga ke algoritma; modul ini memiliki
asumsi bahwa peserta dari matakuliahnya telah lulus matematika-1 yang terutama
membahas tentang fungsi, relasi dan jenis-jenis bilangan.
Sasaran dari matakuliah ini adalah membentuk mahasiswa PSTP yang mampu
membawa persoalan-persoalan operasi pertambangan terutama yang terkait geospasial
dan optimasi kedalam bentuk-bentuk digital. Dengan demikian mahasiwa dapat lebih
mudah mempelajari dan menganalisa sebuah persoalan mengarah ke pengembangan
ilmu pengetahuan dan belajar sepanjang hayat.
Mengingat proses-proses komputasi yang seperti itu melibatkan data numerik
atau citra digital yang nilai-nilai numeriknya dapat diakses; yang secara umum ditangani
dengan Ms-Ecel, maka salah satu bahasa pemerograman yang diajarkan adalah Visual
Basic For Application (VBA). VBA, walau bagaimanapun juga, adalah sebuah script
yang terinstal secara default pada Sistem Operasi Windos. Ia tertaut (embeded) pada
hampir semua program aplikasi yang terinstal di dalamnya sehingga applikasinya dapat
digunakan untuk penyediaan dan pengolahan data lintas program applikasi. VBA
menyediakan jendela untuk menaut-aktifkan library dan activex eksternal ke dalam
lingkungan pemerogramannya.
Peserta matakuliah ini adalah mahsasiswa angkatan pertama (semester II).
Mereka mungkin tidak memiliki pengetahuan dan kemampuan yang cukup dalam
membuat atau mengembangkan sebuah program applikasi. Oleh karenanya pelaksanaan
dari kulaih ini akan dipadukan antara teori dan praktek. Tiap mahasiswa diwajibkan
membawa sebuah komputer pada tiap tatap muka. Proses pemerograman diawali dengan
belajar membuat algoritma, diikuti dengan teknik-teknik implemenetasi algoritma dan
simulasi. Pengenalan variabel, jenis-jenis data dan konsekuensinya terhadap kecepatan
proses penanganan dan pengolahan data menjadi fokus dari diskusi sebelum Mid-
Semester. Metode operasi perhitungan baik untuk pernyataan berkondisi (kalang, If),
pemilihan (Select Case), hingga perulangan (For … Next dan Do … While); juga
diberikan. Visualisasi output dalam bentuk grafis juga diperkenalkan, didiskusikan dan
dipraktekkan.

Sedarta, VBA 4 mine computation. Hal.: 1-1 dari 2


Implementasi dari VBA untuk kasus-kasus komputasi sederhana mungkin
memerlukan latihan yang intensif. Oleh karenanya, pada tiap pertemuan mahasiswa
akan diberi tugas baik tugas kelompok ataupun mandiri. Goal akir dari modul ini adalah
mahasiswa mampu menggunakan VBA untuk keperluan penanganan-, pengolahan- data
numerik untuk berbagai keperluan dan tujuan.

1.2 Maksud dan Tujuan


Maksud dari modul ini adalah menyediakan sebuah panduan kepada mahasiswa
dalam mempelajari VBA terkait matakuliah Komputasi Tambang; sedangkan tujuannya
adalah membentuk mahasiswa agar mampu menangani data dalam jumlah besar.

1.3 Ruang Lingkup


Penggunaan VBA ditujukan untuk menyediakan tool bagi mahasiswa dalam
menangani dan mengolah data-data numerik terutama terkait perhitungan dan
visualisasi grafis. Data numerik yang diolah dapat berupa data elevasi, data produksi,
atau data eksplorasi dari sebuah wilayah studi.

Sedarta, VBA 4 mine computation. Hal.: 1-2 dari 2


2 ANTAR MUKA VBA

Visual Basic for Application (VBA) adalah sebuah bahasa pemerograman yang
dikembangkan oleh Microsoft bersama-sama dengan sistem operasi Microsoft
Windows. Bahasa pemerograman ini disebut dengan macro. Ia disediakan tidak saja
untuk pembuatan dan pengembangan program-program applikasi tetapi juga dapat
ditaut-padukan (embedded) dengan applikasi-applikasi yang terinstal didalamnya.
Dengan demikian, macro dapat diakses dari hampir semua applikasi termasuk Ms-Ecel
(lihat Gambar 2-1); membuat Sistem Operasi Microsoft Windows memiliki keunggulan
dalam hal kemampuan dan kemudahan terkait penanganan dan pengolahan data.

Gambar 2-1. Antar muka VBA melalui Ms-Excel


Ket.: Gambar terdiri atas 2 bagian: A) Interface Ms-Excel; dan B) Interface Macro.
Interface [B] dapat diakses dari [A] melalui jendela Menu-Tools via Macros.

VBA dikembangkan dari bahasa pemerograman basic, yang telah mendukung


even-driven, bersifat interpreter namun dapat ditaut-sempurnakan (seamless) dengan
beberapa module compiler yang dikembangkan oleh pihak-pihak ketiga yang terisntal
di lingkungan Ms WIndows. Oleh karenanya, VBA tidak hanya dapat diakses melalui
semua applikasi tetapi juga dapat diintegrasikan dengan semua module-module yang
terinstall pada sistem (Windows). Ia, selain mendukung even-driven juga menggunakan
routine didalam proses pengembangan algoritmanya. Tiap satu project memiliki satu
sub-Main. Proses pembuatan dan pengembangan programnya dilakukan melalui sebuah
lingkungan pemerograman (programming environment) yang umumnya dapat diakses
melalui menu macro yang terdapat pada tiap program applikasi yang terinstal di Ms
Windows.

2.1 Pembuatan Macro-Baru


Untuk tiap project pemerograman, VBA memiliki satu sub-Main. Sub-main
dapat di-create melalui menu macro. Jendela macro biasanya di-embedded-kan pada
menu View (lihat Gambar 2-2).

Sedarta, VBA 4 mine computation. Hal.: 2-1 dari 12


Gambar 2-2. Antar muka Ms-Excel ke jendela macro
Ket.:
Ms-Excel memiliki sebuah Bar (Kolom Atas) yang terdiri atas 2 bagian: Menu dan
Tool. Menu dan Tools saling terpaut dan keduanya merupakan jendela menuju
fungsi atau perintah standard yang disediakan oleh Ms Office.
Gambar terdiri atas 3 bagian: A) Bar Ms-Excel, B) Bar Ms-Excel: Tool untuk
Jendela ke Macro, dan C) Kotak dialog pembuatan macro.
Angka yang berada di dalam bulatan berwarna merah menyatakan tahapan
pembuatan macro baru.

Pembuatan sebuah sub-main dapat dilakukan melalui Menu View [1], Macro [2]
(lihat Gambar 2-2). Ketika [2] diclick, sebuah jendela akan muncul menampilkan
pilihan View Macros atau Record Macro … [3] yang jika diclick akan menampilkan
sebuah kotak dialog pembuatan Sub-Main macro baru.
Kotak dialog pembuatan macro baru menyediakan 1 (satu) kolom pendefinsian
nama dari Sub-Main [4] dimana Nama dari Sub-Main mengikuti aturan tertentu seperti
halnya penamaan dari variabel atau routine. Sub-Main yang didefinsikan dapat dibuat
memiliki sebuah short-Cut [5] mis.: Ctrl-Shif X, termasuk lokasi penyimpanan
dokumennya [6]. Untuk tahap pemula, tahap [5] dan [6] mungkin dapat diabaikan.
Konfirmasi atas nama project (Macro) [7] yang telah didefinikan akan disimpan. Ketika
[6] dipilih ‘This Workbook’ maka file macro disimpan kedalam file dokumennya.

2.2 Jendela ke Lingkungan Pemerograman Macro


Menu untuk masuk ke lingkungan pemerograman Macro berada pada tempat
yang sama seperti menu pembuatan Macro-baru (lihat Gambar 2-3). Walaupun
demikian, tahapan yang seperti itu dapat saja dilewati jika menggunakan short-cut yang
telah didefinisikan.

Sedarta, VBA 4 mine computation. Hal.: 2-2 dari 12


Gambar 2-3. Kotak dialog view Macro
Ket.: Gambar terdiri atas 2 bagian: A) Bar dari Ms-Excel; B) Kotak dialog
pengaturan Macro
Angka yang berada di dalam bulatan berwarna merah menyatakan step akses ke
lignkungan pemerograman VBA dibawah Ms-Excel.
1. Menu Bar untuk menuju ke kotak dialog View Macro
2. Nama sub-Main target (yang telah dibuat)
3. Menjalankan (mengeksekusi) sub-Main target. Sub-Main yang telah dibuat
dapat dijalankan/dieksekusi; tanpa harus masuk ke antarmuka dari Sub-
Main yang bersangkutan
4. Edit atau masuk ke lingkungan pemerograman Macro. Clickakan tampil
sebuah antarmuka, yaitu Interface VBA
5. Menghapus sub-Main target. Macro (Sub-Main) yang telah dibuat dapat
saja dihapus.
Ketika dilakukan ‘Delete’, macro yang dihapus hanyalah sub-Mainnya.
Modul atau Class-Module termasuk UserForm yang menjadi bagiannya
tidak ikuti ddihapus
6. Tempat dimana Macro disimpan. Macro dapat disimpan untuk cakupan
tertentu. Sub-Main dapat dieksekusi hanya pada Buku-kerja
(Workbook)nya dia atau pada semua Workbook pada antar-mukanya.
7. Menutup kotak dialog macro

2.3 Jenis Extension File dan Sistem Keamanan


Pada Ms Excel, terdapat dua hal penting yang perlu diperhatikan agar sebuah
Macro dapat diakses: yaitu format (extention) dan setting keamanan (security) dari
filenya. Ms Excel menyediakan akses terhadap 29 format (extention) file namun yang
digunakan khusus untuk pembuatan atau pengubahan Macro adalah yang berekstensi
*.xlsm; termasuk yang berekstensi biner (*.xlsb); selain itu macronya hanya dapat
diakses dengan cara-cara tertentu.

Sedarta, VBA 4 mine computation. Hal.: 2-3 dari 12


Gambar 2-4. Kotak dialog pendefinsian file untuk Macro
Ket.: Gambar terdiri atas 3 bagian: A) Kotak dialog pendefinsian nama file Ms-
Excel; B) Daftar ekstensi file excel; C) View dari explorer – tampilan yang spt itu
dapat diset melalui view explorer
Pada sisi kanan Gambar [B] disajikan extensi file Excel yang paling banyak
digunakan. *.xls adalah file dengan berformat dasar; yang compatible untuk
diakses oleh semua Ms-Excel termasuk ver 2000, 2003, 2007, 2013, 2019 dan 2021.
*.xlsx adalah file dengan format pengayaan tertentu. Ia akan compatible hanya
pada versi dimana ia dicreated; dan hanya akan dapat diakses oleh ver yang lebih
tinggi namun relatif tidak berlaku untuk sebaliknya apalagi rentang versinya
lebih dari 1. Misalnya File *.xlsx buatan (dicreated) ver 2021 dibuka oleh ver 2003;
biasanya akan gagal.
Angka yang berada didalam bulatan berwarna merah menyatakan urutan proses
pendefinsian extensi file untuk excel yang menganduung Macro.
1. Kolom isian nama dari file Excel yang mengandung macro. Penamaan
filenya mengikuti aturan penamaan file secara umum
2. Kolom pilihan format file. Click tanda panah ke-arah bawah masuk ke
tahap berikut.
3. Daftar pilihan format file. Khusus untuk macro, format file yang digunakan
adalah yang berekstensi *.xlsm
4. Kofirmasi dari pendefinsian nama file
5. Nama file yang akan muncul. Nama dari file dapat sama tetapi
ekstensinya dapat berbeda. File yang macronya dapat diakses hanyalah
yang berekstensi *.xlsm (file yang diberi tanda  )

Setelah file macro disimpan dalam format *.xlsm, sistem keamanan filenya
dapat diset dengan nilai-nilai seperti yang disajikan apda Gambar 2-5.

Sedarta, VBA 4 mine computation. Hal.: 2-4 dari 12


Gambar 2-5. Setting sekuriti file Macro
Ket.: Gambar terdiri atas 3 bagian. A) Bagian dari Menu File (Menu Bar); B) Kotak
dialog Options; dan C) terdiri atas C1 dan C2, masing-masing adalah kotak dialog
Trust Center. C1 setting untuk Activex sementara C2 untuk setting Macro
Proses pendefinisian setting keamanan file Macro dilakukan melalui:
A. Click menu file pada Bar Utama (main-bar Ms-Exce; lihat Gambar 2-1)
1. Pilih Options ➔ muncul kotak dialog
2. Pada kotak dialog pilih menu Trust Center” ➔ kotak dialog memunculkan
informasi termasuk sebuah tombol penyettingan
3. Click tombol penyettingan ➔ munucl sebuah kotak dialog Trust-Center
4. Pada kotak dialog Trust Center pilih menu Activex Setting
5. Select pilihan(option) ke empat (Enable all Controls …)
6. Pada kotak dialog yang sama pilih menu Macro setting
7. Select pilihan Enable VBA
8. Centang check-box Trust access to VBA Project
9. Click OK untuk konfirmasi setting yang yang telah didefinisikan. Kotak
dialog Trust-Center akan tertutup dan kembali ke kotak dialog Options.
Setting 4-5 dan 6-7-8 dapat saja dilakukan secara parsial. Oleh karenanya, 9
dan 9’ adalah dua tombol yang sama. Yang berbeda hanya isi dari antar-
muka kotak dialognya.
10. Clikc OK untuk konfirmasi semua setting yang telah didefinisikan

Format dan nilai-nilai setting keamanan file Macro yang telah didefinisikan
biasanya hanya akan aktif ketika file-nya dibuka ulang. Oleh karenanya, file
yang telah didefinsikan perlu ditutup lalu dibuka kembali. Tanda bahwa setting
tersebut telah aktif, antar muka dari file yang dibuka memunculkan sebuah pesan
(warning). Ketika activex-nya di-enable-kan maka settingnya menjadi
terkonfirmasi dan diaktifkan.

Sedarta, VBA 4 mine computation. Hal.: 2-5 dari 12


2.4 Antarmuka Lingkungan Pemerograman VBA
Antarmuka dari lingkungan pemerograman VBA disajikan pada Gambar 2-6.
Antar muka tersebut dapat diakses melalui tombol Edit [4] seperti yang ditampilkan
pada Gambar 2-3.

Gambar 2-6. Lingkungan Pemerograman VBA


Ket: Antarmuka VBA terdiri atas 4 bagian, termasuk: A) Bar; B) Project Folder; C)
Object Property; dan D) Object Code.

Secara umum, semua bagian dari antar muka yang disebutkan pada Gambar 2-6
harus diketahui terutama object-folder [B], object property [C] dan lembar program [D]
yaitu lembar dimana kode-kode program (perintah) akan ditempatkan. Bagian [C] dan
[D] dapat berubah-ubah isinya sesuai object yang dipilih pada [B].
Bagian dari Bar [A] terdiri atas Macro, Menu, Tools; termasuk jendela rountine.
Macro Bar menampilkan nama project yang aktif atauyang sedang digunakan. Ada
kalanya, pada sebuah antar muka yang sama kita dapat memiliki lebih dari satu macro
(sub-Main). Sub-Main yang digunakan akan disajikan pada bagian Macro-Bar. Tools
Bar dan Menu Bar keduanya memiliki fungsi yang relatif sama, yaitu untuk pengelolaan
file, pengaturan object, dan penanganan program yang dikembangkan. Pada bagian
bawah dari Bar terdapat sebuah jendela list berisi rutin-rutin yang terdapat pada sebuah
object folder.
Project folder [B] menampilkan object sheet, module dan class yang
ditambahkan ke dalam project. Jendela properties [C] menampilkan nilai-nilai
karakteristik dari object [B]; sementara jendela [D] menampilkan kode program yang
terdapat pada object [B]. Oleh karenanya, isi dari jendela [C] dan [D] tergantung kepada

Sedarta, VBA 4 mine computation. Hal.: 2-6 dari 12


object yang dipilih pada [B]. Proses pengaktipan object-dipilih dilakukan melalui
double-click.
Pada tahap awal, terutama pada kode program yang masih dalam keadaan
default, atau setting activex dan Macro belum didefinsikan, isi dari module-default dapat
berubah-ubah; bisanya bertambah seiring dengan hal-hal yang dilakukan baik pada antar
muka Ms-Excel maupun antar muka VBA. Ketika dilakukan penyimpanan, sebagai
contoh, rutine utama (sub-Main) ini akan mencatat perintah yang dieksekusi.

2.4.1 Tool Box

VBA menyediakan antar muka yang user-friendly terutama terkait tools yang
dapat diakses dengan mudah dan cepat untuk memenuhi kebutuhan didalam
pengembangan dan pengujian algorima yang diimplementasikan (penulisan kode
program). Secara default, bar dari antarmuka VBA terdiri atas 17 tool, dan yang paling
sering digunakan disajikan pada Gambar 2-7.

Gambar 2-7. Toll-box antarmuka VBA

[10] Run Macro (F5)


Tombol panah ke kanan berwarna hijau diclick untuk menjalankan perintah yang telah
didefinisikan. Ia merupakan perintah singkat (short Cut) dari Run Macro (F5) pada
menu Ran dari Bar. Oleh karenanya, tombol ( ) dan short-cut F5 (tekan key Fn + F5)
akan memiliki fungsi yang sama.
Pada beberapa kondisi, terutama bagi pemula, kode program yang diuji meengandung
perintah berulang tanpa batas. Handle (nomor ID execution) object yang dijalankan
mengendalikan antar muka VBA. Dengan demikian, antar muka VBA-nya harus ditutup
secara paksa melalui Task-Manager. Selain itu, VBA macro tidak dapat diakses atau
file-excelnya tidak dapat digunakan.

Sedarta, VBA 4 mine computation. Hal.: 2-7 dari 12


[13] Control Explorer (Ctrl+R)
Oleh karena kesilapan atau hal-hal tertentu, jendela [B] dan [C] gambar 2-6 dapat hilang
(tidak tampil). Kita tidak dapat mengakses object yang dibutuhkan kecuali melalui
Menu View pada Bar. Pada kasus ini, jendela [B] dapat ditampilkan melalui Tool [13]
(Project Explorer) sementara Property-nya dapat disajikan melalui Tool [14] (Object
Property).

[15] Object Browser (F2)


Seperti yang telah dijelaskan pada bagian sebelumnya bahwa Ms Windows
mendaftarkan (me-registrasi) semua applikasi yang diinstalkan didalamnya. Registrasi
termasuk nama object, alamat dan nilai-nilai settingnya. Oleh karenanya, VBA dapat
menyajikan semua object-object yang link dengan Macro (sub-Main) aktif sesuai
dengan yang didefinsikan. Click icon [15] sebuah jendela baru pada lembar kerja
pemerograman ditampilkan. Jendela tersebut berisi Library, Object dan property yang
dimiliki oleh Macro (lihat Gambar 2-8).

Gambar 2-8. Tampilan Object Browser pada antar muka VBA


Ket.: Gambar merupakan satu-kesatuan yang tergantung kepada [A]. [A]
merupakan daftar pilihan [C]. Object yang dipilih pada [C] menampilkan nama
object yang ada di dalamnya pada jendela [B]. Jadi [D] adalah [B] untuk pilihan
library VBA pada [C].

Sedarta, VBA 4 mine computation. Hal.: 2-8 dari 12


2.4.2 Project Folder

Macro adalah nama alias dari sebuah project pemerograman. Bahasa


pemorograman yang digunakan adalah visual basic; yang disebut dengan Visual Basic
for Application (VBA). VBA ini telah mengalami beberapa tahap pengembangan dan
saat ini telah sepenuhnya mendukung pemerograman berorientasi object (Object
Oriented Programming, OOP). Object dapat berupa class, liberary (*.dll) ataupun
activex (*.ocx). DLL dan OCX adalah reference (rujukan) yang merupakan kumpulan
dari class-class yang telah dibuat oleh pihak-pihak ketiga untuk tujuan tertentu yang
telah dikompile. Keduanya dapat di-embedded-kan ke dalam lingkungan pemerograman
yang dikembangkan sehingga menambah kemampuan dan ketangguhan applikasi yang
dapat dihasilkan. OCX berbasis tampilan sementara DLL hanya berupa routin atau
function.
Dalam penggunaannya, VBA dapat tertaut dengan applikasi yang digunakan
sehingga ia dapat diakses dan mengakses. Pada Ms-Excel, antarmuka VBA-nya
menampilkan nama dari modulnya; dan didalamnya mengandung 5 jenis object yang
dapat digunakan untuk mengembangkan sebuah applikasi. Ke-5 object tersebut adalah
Ms-Excel (Workbook, Worksheet), Form, Class, Modul dan Reference; 4 object pertama
di-list-kan (ditampilkan) pada Project Explorer (lihat Gambar 2.9).

Gambar 2-9. Project folder dari VBA Ms-Excel


Ket.:
Gambar terdiri atas 3 bagian yang terpisah. A) object Macro, parent dari macro
yang terdiri atas beberapa object; B) Project Explorer, memuat daftar object yang
tersedia di dalam project; C) tool box untuk menambahkan object yang
diinginkan: Userform, Modul atau Class Module.
Melalui Tool Box, kita dapat menambahkan object yang diinginkan. Object Form
(UserForm) merupakan sebuah canvas atau layar dimana object-object activex
(mis. tombol, textbox, check-box, dll) dapat ditempatkan. Ia mendukung sistem
koordinat sehingga dapat diatur baik melalui manual maupun melalui kode
program.
Object Module adalah kode-program yang tidak mendukung prinsip object-
oriented programming; sementara Class Module mendukung OOP.

Sedarta, VBA 4 mine computation. Hal.: 2-9 dari 12


Melalui project folder, kita dapat berpindah dari satu object ke object lainnya,
caranya melalui double-click terhadap oject yang diinginkan. Properti dari object akan
ditampilkan pada jendela Properties; sementara kode programnya disajikan pada
halaman kode. Blok-blok program baik kategori Sub ataupun Function bahkan mungkin
juga Event akan ditampilkan pada kolom Jendel Routine (lihat Gambar 2-6). Kita
(posisi Cursor) dapat berpindah dari satu blok program ke blok program lainnya dengan
cara memilih list yang ada pada kolom tersebut. Pengklasifikasian kode program yang
seperti ini membantu proses implementasi algoritma karena tiap tugas dapat di-kelola
oleh masing-masing object.

2.4.3 Object Refferences

Program-program applikasi baik yang diimplementasikan menggunakan bahasa


pemerogram C, C++, Java, Python, C#, Asp.Net, maupun Visual Basic, umumnya
berasaskan Object Orriented (OOP). Masing-masing dari mereka umumnya
dikembangkan melalui routine baik dalam bentuk library (Sub dan Function) maupun
activex (antarmuka). Library (*.DLL) dan Activex (*.OCX) tersebut, beberapa
diantaranya malah mengandalkan fungsi dan routine-routine yang telah ada pada sistem
operasi. Ketika diinstalasikan, mereka diregister ke dalam sebuah sistem registri
terutama nama dan alamat instalasinya. Dengan demikian mereka dapat ditemukan,
diakses, ditambahkan ke dalam Macro, dan digunakan pada macro yang dibangun sesuai
fungsi dan tujuannya (lihat Gambar 2-10).

Gambar 2-10. Penambahan Object Refference ke dalam project


Ket.: Gambar terdiri atas 2 bagian: A) menu; dan B) kotak-dialog daftar reference
Angka yang berada didalam bulatan berwarna hijau menyatakan tahapan
penambahan object referensi ke dalam lingkungan pemerogram Macro.

Sedarta, VBA 4 mine computation. Hal.: 2-10 dari 12


Object reference yang ada pada daftar tersebut umumnya hasil dari proses
enkapsulasi. Nama yang ada pada daftar tersebut adalah nama dari applikasinya. Ia
dapat ditambahkan ke dalam lingkungan pemerograman dengan cara:
1. Pada menu bar pilih Tools
2. Click references…. Proses ini akan menampilkan sebuah kotak dialog yang
berisi reference-reference yang teregistrasi pada sistem operasi
3. Cari references yang diperlukan lalu pilih dengan cara mencentang kotak
yang disediakan
4. Konfirmasi object yang diingikan

Oject Reference (*.dll) yang telah dipilih dapat digunakan pada routin yang
dibagun; dengan setatement ‘As’ setelah nama variabelnya. Impelemntasinya dapat
dideklarasikan secara langsung ataupun tidak langsung, mis.:
Dim xlApp as Excel.Application ---------------------------------------- (2-1)
Dim xlApp as Object ---------------------------------------------------- (2-2)
Alg [2-1] dan [2-2] memiliki pengertian yang sama namun berbeda dalam
implementasinya. Alg [2-1] diimplementasikan dengan cara:
Set xlApp = New Excel.Application ----------------------------------- (2-3)
Perintah [2-3] meminta interpreter untuk mencreate sebuah object baru sehingga
ia dapat digunakan di dalam macro. Perintah ini akan valid jika macro yang dibangun
dijalankan pada versi Ms-Excel yang sama; yang lainnya perintah tersebut akan
memunculkan pesan error.
Alg [2-2] diimplementasikan dengan cara:
Set xlApp = CreateObject(“Excel.Application) --------------------- (2-4)
Perintah [2-4] meminta interpreter untuk mencari Excel Appliation pada sistem
registry dan diikut sertakan pada macro yang sedang dibangun. Perintah ini umumnya
lebih fleksible. Perintah ini akan dapat diakses untuk semua versi Ms Excel.

Gambar 2-11. Contoh implementasi references


Ket.: Gambar terdiri atas 2 bagian. B’) adalah kotak dialog [B] gambar 2-10;
sementara C) adalah lingkungan pemerograman.

Object Microsoft Scripting Runtime adalah sebuah scrip default dari sistem
operasi yang digunakan untuk penanganan folder dan file. Ia bagian dari sistem operasi;
bukan bagian dari sebuah program applikasi.

Sedarta, VBA 4 mine computation. Hal.: 2-11 dari 12


Pada contoh di atas [C], Fso menyatakan nama vaeiabel (nama dari alamat
memory yang digunakan); As mengotoritaskan/mendelegasikan, sementara
Scripting.FileSystemObject manyatakan referensi yang digunakan dari library yang
dipilih. Jadi begitu statement itu dideklarasikan, maka object DLL yang dipilih di load
ke dalam memory dan siap digunakan di dalam macro.
Statement yang digunakan pada [C] adalah deklarasi explicit (langsung) dan
oleh karenanya ketika ia di set seperti alg [2-3] maka sub-object Folder (Fld) dan File
(Fls) dari object fso dapat diguanakan untuk mengelola file yang dimaksud.

Sedarta, VBA 4 mine computation. Hal.: 2-12 dari 12


3 DATA DAN VARIABEL

Proses komputasi selalu melibatkan data baik sebai input ataupun output. Data
dapat berupa informasi yang nilainya dapat dipahami dan diperbandingkan. Nilai-nilai
dari informasi tersebut dapat berupa angka numerik, kumpulan huruf (disebut string)
ataupun status (benar atau salah, kosong (Null) atau berisi (Not Null)); yang oleh
komputer akan digunakan pada saat ia bekerja atau mengeksekusi kode program yang
didefinsikan. Dalam pemerosesannya, nilai-nilai tersebut dicatat kedalam register dari
memory (RAM: Random Access Memory) atau storage (Hardisk atau flask disk) dengan
aturan tertentu. Nama dari lokasi memori atau storage yang digunakan untuk menandai
tiap jenis data disebut sebagai variabel.
Variabel, berdasarkan KBBI diartikan sebagai: 1) yang dapat berubah-ubah,
berbeda-beda, bermacam-macam; 2) sesuatu yang dapat berubah-ubah, faktor atau
unsur yang ikut menentukan perubahan. Ia dibedakan menjadi 2 jenis, yaitu: variabel
bebas dan variabel terikat. Variabel bebas diartikan sebagai faktor, hal atau unsur yang
dianggap dapat menentukan nilai dari variabel lainnya, sementara variabel terikat
diartikan sebagai gejala yang muncul atau berubah dalam sebuah pola yang teratur yang
bisa diamati oleh karena perubahan dari variabel lain.
Dalam ilmu-ilmu komputasi, variabel adalah sebuah nama yang
merepresentasikan suatu data atau yang memiliki nilai yang didalam proses komputasi
(pemerosesan komputer) digunakan sebagai nama dari alamat memori (register). Nilai
dari data (variabel) tersebut disimpan dalam bentuk register. Di dalam komputer,
register dibedakan dengan registry. Register menyatakan alamat dari suatu ruang
(memori atau hard-disk) yang menimpai sebuah nilai; sementara registry berisi daftar
sistem termasuk nilai-nilai setting yang ada pada sebuah sistem operasi (dapat diakses
melalui perintah: regedit).

3.1 Nama Variabel


Agar sebuah variabel dapat dikenali oleh VBA, maka ia harus memiliki nama.
Nama dari variabel harus unik dengan aturan tertentu. Sesuai dengan konsensus, nama
variabel harus dimulai dengan sebuah huruf dan tidak lebih dari 255 karakter. Spasi dan
karakter khusus: #,$,%,&,@ dan ! tidak di-izinkan ada dalam nama sebuah variabel.
Nama dari variabel tersebut dideklarasikan dengan cara:
Dim <<nama_variabel>> As <<Type_Variabel>> ----------------------------- (3-1)

Dalam prakteknya, nama dari variabel biasanya dibuat dengan


merepresentasikan sesuatu apakah jenis atau yang diwakilinya. Cara ini dapat

Sedarta, VBA 4 mine computation. Hal.: 3-1 dari 5


membantu proses analisa dan evaluasi dari kode program yang merupakan implementasi
dari algoritma yang dibangun, misalnya:

3.2 Type Variabel Standar


Berdasarkan jenis data yang diwakilinya, variabel dapat dibedakan menjadi tipe
numerik atau tipe string. Berdasarkan nilainya dapat benar (atau salah), kosong (Null)
atau berisi (Not Null). Bahwa variabel sebagai representasi sebuah object, juga dapat
diterapkan. Semuanya mengarah kepada besarnya alokasi memori (register) yang
dibutuhkan dalam mengeksekusi sebuah program didefinsikan.

Tabel 3-1. Type variabel numerik


Alokasi
Type data Nilai Satuan
Memory

Integer -32,768 to 32,767 2 bytes


Long -2,147,483,648 to 2,147,483,648 4 bytes
-3.402823E+38 to -1.401298E-45 for negative values
Single 4 bytes
1.401298E-45 to 3.402823E+38 for positive values.
-1.79769313486232e+308 to -4.94065645841247E-324 for negative values
Double 8 bytes
4.94065645841247E-324 to 1.79769313486232e+308 for positive values.
Currency -922,337,203,685,477.5808 to 922,337,203,685,477.5807 4 bytes

+/- 79,228,162,514,264,337,593,543,950,335 if no decimal is use


Decimal 4 bytes
+/- 7.9228162514264337593543950335 28 decimalplaces

Tabel 3-2. Type variabel non numerik


Alokasi
Type data Nilai Satuan
Memory
Boolean True/False 2 bytes

Tanggal January 1, 100 to December 31, 9999 2 bytes

String (fixed) 1 to 65,400 character 1 bytes/character


String (variable) 0 to 2 billion character 1 bytes/character
Object Any embedded object

Varian Semua jenis vvariabel 8 bytes

Meskipum alokasi memory untuk tiap tipe variabel tampak relatif kecil, namun
ketika operasinya melibatkan banyak variabel dan record yang besar, maka pendefinsian
variabel dapat berdampak terhadap realibiltas dari pengimplementasian algoritma.

Sedarta, VBA 4 mine computation. Hal.: 3-2 dari 5


3.3 Variabel Konstanta
Pada beberapa kasus, operasi perhitungan mungkin memnggunakan satu atau
beberapa konstanta. Nilai dari type variabel ini telah ditentukan dan tidak akan berubah
selama proses eksekusi program. Deklarasi dari konstanta dapat dilakukan dengan
beberapa cara, diantarnya:

Gambar 3-1. Pendeklarasian variabel constant

3.4 Variabel Object


Sebagian besar impelentasi algoritma kompleks umumnya ditangani dengan
object atau melibatkan pengolahan menggunakan object. Object dapat berupa cell,
range, image, enum (enumerasi), dll. Object-object yang seperti itu umumnya menjadi
bagian dari object workbook (xlWbk) ataupun worksheet (xlWs). Proses dklarasinya
sama seperti type-type variabel yang telah disebutkan di atas.

Gambar 3-2. Pendeklarasian Variabel Object

Semua object yang disebutkan itu hanya dapat digunakan jka telah terintegrasi
dengan Macro yang dicreated. Selain itu, bila ingin digunakan, maka mereka hanya
dapat dideklarasikan menggunakan jenis object. Akses kepada object yang tidak
didefinisikan secara eksplisit dapat dilakukan dengan deklarasi:
Dim xlApp as Object
Set xlApp = CreateObject(“Excel.Application”), atau
Set xlApp = GetObject(, “Excel.Application”)

Sedarta, VBA 4 mine computation. Hal.: 3-3 dari 5


3.5 User-Defined Variable
Kompleksitas dari kasus yang perlu diselesaikan termasuk metode dari
penyelesaiannya sering sekali membutuhkan pengelompokan variabel secara lebih
spesifik. Satu atau beberapa parameter yang terdiri atas beberapa variabel atau beberapa
konstanta yang nilai-nilainya telah tertentu perlu dikelompokkan sehingga tidak saja
proses pembuatan algoritma menjadi lebih sederhana tetapi implementasi dari
algoritmanya (proses pengkodean) juga menjadi lebih mudah dilakukan. Kumpulan dari
dua atau beberapa variabel untuk merepresentasikan sesuatu disebut sebagai variabel
yang didefinsikan user (user-defined variable). Variabel ini dibedakan menjadi 2 jenis,
yaitu: enum (Enumerasi) dan type. Enumerasi merupakan variabel konstant; sementara
type merupakan variabel bebas.

Gambar 3-3. Pendefinsian dan penggunaan User-Defined Variable


Ket.:
Gambar terdiri atas 4 bagian: A) pendefinsian variabel sesuai kebutuhan; B)
implementasi algoritma menggunakan jenis variabel yang didefinsikan user; C
dan D masing-masing adalah penggunaan User-defined variable.

Untuk setiap variabel yang didefinsikan, bila pendefinsiannya benar, maka baik
nama variabel maupun unsur-unsurnya akan direkam dan disimpan kedalam memori.
Baik nama type maupun nilai-nilai dari vaeriabel enum-nya dapat muncul (ditampilkan)
ketika nama variabelnya diketikkan diikuti dengan permintaan-nya. Variabel type harus
diikuti dengan tanda titik; variabel enum harus diikuti dengan tanda ‘=’ (sama dengan).

3.6 Variabel Array


Vektor adalah sebuah variabel dengan banyak data yang tersusun dalam bentuk
baris atau kolom; sementara matriks merupakan kumpulan nilai-nilai yang tersusun
dalam bentuk baris dan kolom. Variabel array adalah sebuah nama yang memiliki nilai-
nilai yang susunannya dalam bentuk baris dan kolom. Dimensi dari array dapat
berbentuk baris (1, 2, …, N) atau kolom (1, 2, …, M); matriks (1, 2, …, N; 1, 2, …, M);
bahkan 3 dmenssi (1, 2, …, X; 1, 2, …, Y; 1, 2, …, Z). Pendeklarasiannya dilakukan
dengan :

Sedarta, VBA 4 mine computation. Hal.: 3-4 dari 5


Dim Vi(ij to N) As <<type_varabel>>
Dim vj(ij to M) As <<type_variabel>>
Dim Mij(ii to N, jj to M) As <<type_variabel>>
Dim Topo(ii to X, jj to Y, kk to Z) As <<type_variabel>>

Nilai ij, ii, jj, dan kk harus bilangan bulat (integer) termasuk N, M, X, Y dan Z.
Variabel ij, ii, jj dan kk adalah nilai awal dari dimensi (biasanya 0 atau 1: dapat
didefinsikan menggunakan deklarasi Base 0 atau Base 1); sementara N, M, X, Y, dan Z
merupakan nilai akhir indeks (larik). Nilai awal larik harus lebih kecil dari nilai larik
akhir, mis.:
Dim Vi(0 to 2) As Integer ‘Mis utk variabel vektor Xi + Yi + Zi
Dim vj(1 to 20) As DATA_MAHASISWA ‘Mis utk data mahasiswa
Dim Mij(0 to 25, 0 to 30) As Double ‘Mis. utk Data Elevasi
Dim Topo(0 to10, 0 to 50, 0 to 10) As Double ‘Mis data 3D bawah permukaan

Sedarta, VBA 4 mine computation. Hal.: 3-5 dari 5


4 IMPLEMENTASI ALGORITMA

Algoritma biasanya diimplementasikan melalui kode-kode program. Kumpulan


dari kode-kode program yang melakukan tugas-tugas tertentu disebut dengan routine
atau prosedur. Berdasarkan fungsinya routine dibedakan menjadi 2 jenis, yaitu: 1) Sub-
routine atau disebut juga dengan Sub-procedure; dan 2) Function. Procedure Sub adalah
routine yang mengerjakan tugas tertentu tanpa mengembalikan nilai; sementara
procedure Function adalah routine yang mengembalikan nilai.

4.1 Sub Prosedure


Procedur Sub biasanya didefinsikan untuk mengerjakan suatu tugas tertentu
tanpa mengembalikan nilai (return) dari proses yang ia lakukan. Implementasinya
dilakukan dengan deklarasi:

Sub NAMA_ROUTINE ()
‘Kode Program
End Sub

Bula routine membutuhkan variabel input, maka deklarasinya dibuat dalam


bentuk:

Sub NAMA_ROUTINE (Nama_Variabel As <<type_variabel>>, ….)


‘Kode Program
End Sub

Jumlah dari variabel input tersebut dapat lebih dari 1 atau sesuai dengan
kebutuhan. Bila nilai dari variabel input tidak diizinkan untuk diubah maka proses
deklarasinya harus dilakukan dengan:
Sub NAMA_ROUTINE (byval Nama_Variabel As <<type_variabel>>, ….)
‘Kode Program
End Sub

Bila dalam prosesnya variabel input dapat diubah dan nilai akhirnya dibutuhkan
untuk sesuatu keperluan maka proses deklarasinya dilakukan dengan cara:

Sub NAMA_ROUTINE (byref Nama_Variabel As <<type_variabel>>, ….)


‘Kode Program
End Sub

Sedarta, VBA 4 mine computation. Hal.: 4-1 dari 15


4.2 Function
Procedure Function merupakan routine yang mengerjakan suatu tugas tertentu
yang hasil dari prosesnya dikembalikan ke pemanggilnya. Deklarasinya dilakukan
dengan cara yang relatif sama dengan yang di sub-prosedure.

Function Nama_Function () As <<Variable_Type>>


‘Kode Program
Nama_Function = Hasil dari proses
End Function

Seperti halnya pada Procedure Sub, Procedure Function juga dapat memerlukan
variabel input; dan karakteristik dari variabel inputnya juga dapat sama dengan yang
ditemui/dilakukan pada Procedure Sub.

4.3 Perintah Kondisi


Proses komputasi umumnya melibatkan proses perhitungan yang intensif
dengan berbagai kondisi yang harus penuhi. VBA menggunakan perintah If untuk
pernyataan yang mengandung kondisi, dengan deklarasi:

If <<bValue>> Then
‘Statemen
ElseIf <<bValue>> Then
‘Statemen
Else
‘Statemen
End if

Statemen yang berada dibawah kondisi tertentu itu hanya akan dieksekusi jika
variabelnya bernilai benar (True); selain itu perintah yang dibuat akan diabaikan (tidak
dieksekusi). Dalam prakteknya, variabel bValue dapat saja digganti dengan sebuah
perintah perhitungan atau status isi dari sebuah variabel, misalnya:

If IsNull(bObject) Then
‘Statement
End If

Untuk statement yang sederhana dengan 1 (satu) kondisi, format pernytaan


sebuah kondisi dapat dibuat dalam 1 (satu) baris: Pernyataan kondisi dan perintah yang
akan dieksekusi berada pada baris yang sama.
If bCondition Then ‘Statement

Sedarta, VBA 4 mine computation. Hal.: 4-2 dari 15


Pada kondisi tersebut deklarasinya tidak membutuhkan pernyataan End If.
Namun bila statementnya lebih dari 1 (satu) baris maka statement End If harus
disertakan seperti bentuk defaultnya.

4.4 Perintah Select


Bentuk lain dari pernyataan berkondisi dapat pula dibuat dalam bentuk
pemilihan (selection). VBA mengunakan perintah select dalam bentuk:

Select Case vVariable


Case Value1
‘Statement
Case Value2
‘Statement
Case ………..
‘Statement
Case Else
‘Statement
End Select

Dengan perintah tersebut, perintah yang akan dieksekusi hanyalah yang


memenuhi kondisi yang didefinsikan. Selain itu statement yang diberikan akan
diabaikan. Pernyataan Value1, Value2, …., ValueN hanya akan dikenali bilai terkait
dengan nilai dari vVariabel. Nilai dari vVariabel tentunya haruslah dari sebuah proses
yang telah dieksekusi sebelumnya.
Dalam struktur tersebut, diantara pernyataan Select Case dan Case pertama
tidak boleh mengandung perintah. Perintah yang dinyatakan diantara semua Case
diaggap merupakan bagian dari Case yang di dikutinya.

4.5 Implemntasi Algoritma


Untuk memahami materi yang telah didiskusikan di atas, implementasi dari
sebuah algoritma penentuan luas lingkaran dengan jari-jari tertentu didiskusikan.
Algoritma dan implementasi dari algoritmanya, sebagai contoh, disajikan pada Gambar
4-1. Pada contoh ini, data input (jari-jari) dan output (nilai yang diterima routine, nilai
akhir dari variabel input, dan output-dari-hasil-perhitungan) dari program ditempatkan
di dalam sel-sel Ms Excel. Worksheet Ms-Excel diimplemetasikan ke dalam sebuah
variabel (xlWs)

Sedarta, VBA 4 mine computation. Hal.: 4-3 dari 15


Gambar 4-1. Contoh algoritma, implementasi dan pengembangannya
Ket.: Algoritma contoh adalah solusi untuk penentuan luas dari sebuah lingkaran.
Gambar terdiri atas 3 bagian yang berbeda: A) Algoritma yang perlu di-
implementasikan; B dan C) Lingkungan pemerograman VBA dimana [C] berada
di bagian bawah dari [B]. D) lembar kerja Microsoft Excel (xlWs).
Angka di dalam bulatan berwarna (hijau dan merah) merupakan bagian utama
dari lingkungan pemerograman VBA
Angka berwarna merah-putih merupakan bagian-bagian dari routine program
(sub-Main). Gambar [B’] merupakan lembar kode utama implementasi dari
algoritma A. Lembar kerja ini merupakan tempat dimana perintah-perintah yang
akan dieksekusi oleh komputer; sementara Gambar [C] adalah routine yang
dikembangkan yang merupakan bagian dari sub-Main ‘ProgramBaru’. Dengan
demikian routine sub-main [4] menjadi sederhana dan lebih mudah untuk di-baca
dan di-pahami. Masing-masing dari bagian [C] it disebut dengan routine.

Bagian-bagian dari antar muka VBA dan kode implemntasi algoritma tersebut
diantaranya adalah:
1. Project Folder
Berdasarkan Project Folder-nya, Macro tersebut mengandung 3 buah worksheet,
yaitu: sheet1, sheet2, dan sheet3. Worksheet yang digunakan didalam program
hanyalah sheet3. Sheet1 dan Sheet2, walaupun ada (tertera didalam list folder)
mereka tidak dilibatkan di dalam proses pemerograman. Ketiga Worksheet tersebut
merupakan bagian dari parentnya (ThisWorkbook) seperti yang dijelaskan apda
Gambar 2-7.
Project ini menggunakan 1 Module (namanya Module1). Tiap project VBA yang
diakses melalui Macro harus memiliki paling tidak 1 buah Module. Sub-Main hanya
dapat diakses melalui macro bila ditempatkan di Module; selain itu routinya tidak
dapat diakses untuk dieksekusi. Routine-routine di tempat lainnya hanya akan dapat
dieksekusi oleh Sub-Main.

Sedarta, VBA 4 mine computation. Hal.: 4-4 dari 15


2. Pengaturan metode interpreter di dalam mengeksekusi program
Option Explicit -------------------------------------------------------------------- (4-1)
Alg [4-1] meminta kepada interpreter agar melakukan debuging terlebih dahulu
sebelum proses eksekusi dilakukan. Prosedur ini akan memberi tahu programmer
terhadap adanya variabel yang tidak dikenal atau adanya baris kode yang
menghasilkan kesalahan

Option Base 0 ------------------------------------------------------------------- (4-2)


Alg [4-2] memberi tahu interpreter bahwa indek dari sebuah array (vektor atau
matriks), jika tidak didefinsikan, dimulai dari 0 (nol). Pada kasus ini, perintah
tersebut belum digunakan. Semua routine yang dibuat belum mengandung variabel
array.
3. Variabel dan Scope (cakupan)
Di lingkungan pemerograman VBA, variabel memiliki ruang akses yaitu pada
bagian mana ia dapat dikenali. Cakupan tersebut dibedakan menjadi 2: 1) private,
dan 2) Public. Pada beberapa kode program istilah dari Public mungkin
dideklarasikan dengan Global, atau tergantung di bagian mana sebuah variabel
dideklarasikan.
Pada contoh di atas:
Private xlWs As Worksheet ------------------------------------------- (4-3)
letaknya dibagian atas dari lembar kerja Module1. Berarti variabel xlWs
hanya akan dikenali di seluruh bagian yang kode programnya berada pada
lembar kerja Module1. Variabel xlWs akan menjadi publik pada lembar-kerja
pemerograman Module1. Deklarasi tersebut dapat juga dibuat dengan:
Dim xlWs As Worksheet ------------------------------------------------ (4-4)

Private Const dpi As Double = 22 / 7 ------------------------------ (4-5)
Alg [4-5] adalah variabel konstant yang nilainya = 22/7. Deklarasinya dibuat
pada bagian atas dari lembar kerja Module1 dengan demikian konstanta dpi
akan menjadi publik pada lembar kerja pemerograman Module1. Deklarasi
tersebut dapat juga dibuat dalam bentuk
Const dpi As Double = 22/7 ------------------------------------------ (4-6)

Jenis variabel dari dpi (22/7 atau 3,14) dapat saja didefinsikan sebagai single
(desimal tunggal) ataupun Double. Perbedaan type variabel yang seperti ini
dapat berdampak terhadap tingkat ketelitian perhitungan yang dihasilkan
(lihat Tabel 3-1) terutama untuk kasus yang menggunakan proses
perhitungan berulang dalam jumlah besar. Untuk kasus-kasus sederhana
tanpa perulangan, perbedaan type variabel tersebut mungkin tidak dapat
diamati.

Sedarta, VBA 4 mine computation. Hal.: 4-5 dari 15


4. Sub-Main
Tiap macro memiliki 1 (satu) sub-Main yang namanya dapat didefinsikan
secara bebas. Nama dari sub-Main ini harus berada pada lembar kerja
Module dengan demikian akan ditampilkan pada kotak dilog akses-macro
(lihat Gambar 2-2).

Sub ProgramBaru() ---------------------------------------------------- (4-7)


Alg (4-7) memiliki beberapa baris perintah yang akan dieksekui oleh
interpreter secara berutuan, diantaranya:
Dim r1 As Double ➔mendeklarasikan (memperkenalkan) sebuah variabel
r1 yang cakupannya hanya pada routine Sub-Main ProgramBaru. Variabel
r1 tidak akan dikenali oleh kode-kode program yang ditulis
(diimplemntasikan) diluar dari baris sub ProgeamBaru()….. End Sub;
kecuali dilewatkan (passing variable) melalui cara-cara tertentu.
5. Penentuan Nilai Awal
Set xlWs = Sheet3 ----------------------------------------------------- (4-8)
Pada Alg [4-8] variabel xlWs yang sebelumnya didefinsikan sebagai
Worksheet, diisi dengan Sheet3. Perintah ini akan memindahkan semua
atribut dari Sheet3 ke dalam variabel xlWs. Dengan demikian, akses kedalam
sel-sel sheet3 dapat diwakili oleh xlWs, mis.:
r1 = xlWs.Cells(3, 3): …. …. …. : r3 = xlWs.Cells(5, 3) ------------- (4-9)

Perintah-perintah pada Alg [4-9] menetapkan nilai dari masing-masiing


variabel r1, r2, dan r3; sesuai dengan nilai dari sel xlWs pada Baris 3, 4,
dan 5; Kolom 3.
6. Penghitungan Luas r1
area = Luas_R1(r1) ---------------------------------------------------- (4-10)
Alg (4-10) menghitung luas lingkaran untuk jari-jari lingkaran = r1. Proses
perhitungannya dilakukan pada sebuah routine diluar dari routine (Sub-
Main) ProgramBaru(), yaitu di
Private Function Luas_R1(dr As Double) As Double -------------- (4-11)

Routine [4-11] adalah sebuah Function, bukan Sub; artinya ia akan


mengembalikan sebuah nilai ke routine yang memanggilnya yang dalam hal
ini adalah routine [4-7] yang mana nilai yang dikelmabliaknnya
ditempatkan pada variabel area [4-10].

Function [4-11] juga ditugaskan untuk menampilkan nilai jari-jari r1 (yang


ia terima) di sel Sheet3 (xlWs) pada Baris 3 Kolom 5:

Sedarta, VBA 4 mine computation. Hal.: 4-6 dari 15


xlWs.Cells(3, 5) = dr ---------------------------------------------------- (4-12)

Pada Alg [4-12], dr adalah variabel r1 yang dilewatkan (dititipkan, passing)


pada saat pemanggilan [4-11] oleh routine [4-7].

Proses perhitungan luas lingkaran diimplementasikan dengan kode:


dr = dr ^ 2 --------------------------------------------------------------- (4-13)
Luas_R1 = dpi * dr ➔nilai luas diisikan ke Luas_R1 (sbg Function)

Nilai yang dikembalikan oleh function Luas_R1, yang disimpan dalam


variabel area selanjutnya diplot ke sel Sheet3 (xlWs) pada Baris 3 Kolom
5. Proses pengeplotannya dilakukan oleh routine:
Private Sub PlotNilai(lBaris As Integer, dr As Double, area As Double)
----------------------------------------------------------------------------- (4-14)

Routine [4-14] adalah sebuah Procedure Sub bukan sebuah Procedure


Function. Artinya routine tersebut hanya akan melakukan tugas yang
diinstruksikan. Tidak ada nilai yang ia harus kembalikan ke yang
memanggil atau yang menggunakannya.
Pada alg [4-14], PlotNilai merupakan Nama dari sub routine-nya; sementara
lBaris As Integer, dr As Double, area As Double merupakan variabel yang
dilewatkan (dititipkan) pada saat pemanggilan.

Implementasi dari algoritma dengan cara seperti itu menghasilkan output:


Data input = 2, data yang dibaca (diterima) = 2, data yang di-proses atau
nilai dari r1 yang dikembalikan ketika dilewatkan (dititipkan) = 4, data luas
lingkaran yang dihasilkan = 12.57142857 (Lihat D– 10, 11, 12, 13; atau Baris
3 Kolom C, E,F, G).
7. Penghitungan Luas r2
area = Luas_R2(r2) --------------------------------------------------- (4-15)
Private Function Luas_R2(ByVal dr As Double) As Double ----- (4-16)

Kode program [4-15] dan [4-16] mirip dengan [4-10] dan [4-11]. Bedanya
terdapat pada metode penitipan (passing) dari variabelnya. Alg [4-16]
mengandung library Byval sementara Alg [4-11] tidak. Implementasi dari
metode ini menghasilkan output:
Data-input (r2) = 5, data dibaca (yang dipassing atau yang diterima, dr=r2)
= 5, data yang dikembalikan setelah diproses (r2=dr) = 5, dan luas lingkaran
yang dikembalikan = 78.57142857 (Lihat D– 10, 11, 12, 13; atau Baris 4 Kolom
C, E,F, G).

Sedarta, VBA 4 mine computation. Hal.: 4-7 dari 15


8. Penghitungan Luas r3
area = Luas_R3(r3) --------------------------------------------------- (4-17)
Private Function Luas_R3(ByRef dr As Double) As Double ----- (4-18)

Alg [4-17] dan [4-19] mirip dengan alg [4-15] dan 4-16] termasuk [4-10]
dan [4-11] bedanya, Alg [4-18] menggunakan liberari ByRef, Alg [4-16]
menggunakan ByVal, sementara Alg [4-11] tanpa argumen. Perbedaan
argumen ini menghasilkan output:
Data-input (r3) = 7, data dibaca (diterima, dr=r3) = 7, data yang
dikembalikan setelah diproses (r2=dr) = 49, dan luas lingkaran yang
dikembalikan = 154 (Lihat D– 10, 11, 12, 13; atau Baris 5 Kolom C, E,F, G).

Uraian di atas mengungkap bahwa sebuah algoritma yang diimplementasikan


dengan cara yang berbeda dapat menghasilkan output yang berbeda. Passing variabel
dengan argumen ByVal menghasilkan nilai return yang berbeda dengan argumen
ByRef; dan argumen ByRef sama dengan tanpa argumen.

4.6 Perintah Perulangan


Proses komputasi melibatkan perhitungan yang umumnya berulang (looping).
VBA memiliki beberapa metode dalam melakukan proses perhitungan yang berulang.
Dua diantaranya yang paling banyak digunakan adalah dengan perintah For …. Next
atau Do …. Loop.

4.6.1 Perulangan menggunakan For … Next

Perulangan menggunakan perintah For … Next dapat diterapkan untuk variabel


numerik skalar ataupun vector. Vector dapat berisi numeric atau yang lainnya termasuk
yang berbentuk object. Pertintah perulangan untuk numerik skalar dapat
diimplementasikan dengan prosedur:

For << intV >> = intA to intB step indGrid


′𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 ------------------------------ (4-19)
𝑁𝑒𝑥𝑡

Dimana intA, intB, intGrid ∈ Z, bilangan bulat (integer: …., -2, -1, 0, 1, 2, ….).
variabel intA = nilai awal sementara intB = nilai akhir. Variabel intV mewakili nilai-
nilai yang ada diantara intA dan intB (intA ≤ intV ≤ intB) dengan interval intGrid.
Perintah perulangan untuk variabel vetor diatur dengan prosedur:
For each ≪ iObj ≫ in Objects
′𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 -------------------------------------- (4-20)
𝑁𝑒𝑥𝑡

Sedarta, VBA 4 mine computation. Hal.: 4-8 dari 15


Berikut adalah contoh penggunaan For … next pada sebuah routine.

Gambar 4-2. Prosedur yang menggunakan perintah For … Next


Ket.: Routine ini merupakan bagian dari program penentuan kurva sinus yang
akan didiskusikan pada bagian selanjutnya. Variabel input dDelta merupakan
step peningkatan yang diinginkan.
Input dari routin ini baik untuk nilai awal ( dTeta1) maupun nilai akhir (dTeta2)
dalam bentuk desimal (single) termasuk interval peningkatan nilainya (dDelta).
Ketiganya bukan bilangan bulat. Oleh karenanya, jumlah interval mereka
berdasarkan nilai dDelta harus dideterminasi terlebih dahulu dengan perintah:

JlhIterasi = CLng((dTeta2 - dTeta1) / dDelta) + 1 ----------------------- (4-21)

Perintah For untuk perulangan diwakili oleh variabel Ij dikerjakan dari 0 hingga
JlhIterasi dengan step 1, yang diakhiri dengan pernyataan Next. Dengan demikian,
proses perhitungan melalui R = Nilai_Sin_PiRad(sudut) dilakukan secara terus menerus
sampai Ij mencapai nilai JlhIterasi atau nilai sudut > dTeta2.
Untuk tiap langkah (step), output dari eksekusinya diplot ke lembarkerja xlWs
pada baris irw kolom 2 (untuk nilai sudut) dan Kolom 3 (untuk Nilai R). Karena
nilai irw meningkat tiap langkah maka nilai-nilai hasil eksekusi diplot secara
berurutan dari atas ke bawah yaitu dari nilai baris yang lebih rendah ke nilai
baris yang lebih tinggi.

Sedarta, VBA 4 mine computation. Hal.: 4-9 dari 15


4.6.2 Perulangan Menggunakan Do … While

Perintah Do … While dapat diterapkan untuk sembarang nilai numerik tanpa


perlu melakukan penyesuaian seperti pada For … Next. Perintahnya dapat dilakukan
dengan beberapa bentuk, diantaranya:

𝐷𝑜 𝑊ℎ𝑖𝑙𝑒 𝐾𝑂𝑁𝐷𝐼𝑆𝐼
′𝑃𝑒𝑟𝑛𝑦𝑎𝑡𝑎𝑎𝑛/𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 ----------------------------------------------- (4-22)
𝐿𝑜𝑜𝑝

Dimana KONDISI merupakan sebuah variabel dengan kondisi yang ditentukan.


Pernyataan akan dieksekusi hingga KONDISI tidak terpenuhi. Contoh dari
implementasi perintah ini dapat dilihat pada Gambar 4-3.

Gambar 4-3. Prosedur yang menggunakan perintah Do … While


Ket.: Routine ini merupakan bagian dari program penentuan kurva sinus yang
akan didiskusikan pada bagian selanjutnya.
Variabel yang dilewatkan melalui rutin ini menggunakan data input yang sesuai
dengan kondisi penggunaan perintah perulangan For…Next.
Dalam menggunakan aturan tersebut (Do…While) sebuah variabel sudut
dideklarasikan. Kondsi awal sudut diset = dteta1 (tanda panah berwarna merah)
Dengan perintah Do While sudut < dTeta2 dimana perintah sudut dibuat = sudut + dDelta
yang diakhiri dengan pernyataan Loop, maka semua perintah yang ada di
dalamnya akan dieksekusi hingga kondisi sudut < dTeta2 tidak terpenuhi, atau
sudut > dTeta2. Pada saat itu, prosedur ini mengerjakan hal yang sama seperti yang
dijelaskan pada Gambar 4-2.

Sedarta, VBA 4 mine computation. Hal.: 4-10 dari 15


4.6.3 Contoh Implementasi Algoritma Looping

Gambar berikut mendiskusikan strategi pengimplementasian algoritma


pembuatan kurva Sinus pada rentang sudut 0 – 720 derajat (lihat Gambar 4-4).

Gambar 4-4. Contoh Implemenetasi Algoritma Looping


Ket.: Angka kombinasi, mis.: 1.1, 7.a.1, dll ➔ menyatakan point of view

Sedarta, VBA 4 mine computation. Hal.: 4-11 dari 15


Gambar 4-4 terdiri atas 3 bagian, yaitu: 1) algoritma [A]; 2) kode program,
implemetasi dari algoritma [A]; dan 3) lembar kerja Ms-Excel [G] yang menyajikan
output dari hasil eksekusi program [B]. Kode program dibagi menjadi 5 bagian, yaitu
B) Sub-Main Perulangan(); C) sub-routine yang mengimplementasikan statement For
… Next; D) sub-routine yang mengimplementasikan statement Do … While; E) sub-
routine proses insialisasi; dan F) Function yang menghitung nilai sinus dari sudut
tertentu. Function terdiri atas 2 proses konversi sudut ke radian yang berbeda: 1)
Nilai_Sin_PiRad mengkonversi nilai sudut dengan menggunakan konstanta pi (22/7)
dan konstanta radian (180); sementara 2) Nilai_Sin_WsFunct mengkonversi nilai sudut
ke radian dengan menggunakan library dari object Ms-Excel. Nilai_Sin_PiRad
dieksekusi oleh sub-routine Penggunaan_For_Next sementara Nilai_Sin_WsFunct
dieksekusi oleh sub-routine Penggunaan_Do_While.
Angka tunggal (1, 2, …, 7) yang berada pada gambar 4-4.A menyatakan tahapan
yang diimplementasikan ke dalam proses pengkodean program. Angka ganda baik
dalam bentuk kombinasi angka-angka, angka – huruf, ataupun angka-huruf-angka
menyatakan lokasi kode program yang mengimplementasikan algoritma yang
didefinsikan,
1. Pembuatan Macro/Sub Main
2. Inisialisasi Variabel
3. Inisialisasi Kondisi
4. Penentuan nilai sinus dari sudut tertentu
5. Pencetakan nilai hasil eksekusi
6. Pengradasian nilai sudut
7. Pengujian kondisi batas
8. Pengeplotan kurva dari nilai-nilai output.

4.6.3.1 Pembuatan Macro


Proses awal dari pengkodean adalah membuat nama dari Macro atau nama dari
sub-Main. Selain melalui antar muka lembarkerja Ms-Excel seperti dijelaskan pada sub
bab 2-1; proses pembuatan nama sub-Main dapat di-create langsung melalui lembar
kode Module. Lokasi pengimplementasiannya (peng-create-an Sub-Main) dapat
menggunakan Module yang telah ada namun dapat pula menggunakan Module baru.
Pada kasus ini pembuatan nama dari sub-Main dilakukan melalui Module-baru
(Module2) dan sub Main-nya dinamai dengan Sub Perulangan (lihat Gambar 4-4.B).

4.6.3.2 Inisialisasi Variabel


Karena pemerograman ini menggunakan VBA di lingkungan Ms-Excel, maka
output dari exksekusi program dapat ditangani dengan object Worksheet. Oleh
karenanya, sebuah variabel xlWs didefinsikan sebagai Worksheet. Untuk mempermudah

Sedarta, VBA 4 mine computation. Hal.: 4-12 dari 15


akses terhadapnya, ia dideklarasikan pada bagian publik, yaitu di atas dari sub Main Sub
Perulangan() atau pada bagian atas dari Module2. Deklarasi Option Explicit pada
bagian atas dari Module2 bertujuan untuk mendapat alert (peringatan) ketika
implementasi algoritma mengandung sebuah kesalahan; atau meminta interpreter agar
melakukan proses debuging terlebih dahulu sebelum proses eksekusi baris-perbaris di
lakukan.
Proses implementasi algoritma diawali dengan pendeterminasian variabel:
Dim delta As Single, Teta1 As Single, Teta2 As Single

Pemilihan nama dan type dari bvariabel-nya adalah atas pertimbangan pernyataan [1]
pada diagram alir (Algoritma); termasuk nilai awalnya:
Teta1 = 0: Teta2 = 720: delta = 0.5

Dengan mempertimbangkan bahwa output dari proses perulangan terdiri atas


banyak baris; maka inisialisasi lembar kerja dilakukan. Insialisasi lembar kerja diawali
dengan menetapkan (Set) lembar kerja yang akan digunakan, yang dalam hal ini
menggunakan Sheet4 (lihat point 1.2). Agar didalam proses simulasi selalu diperoleh
data yang uptodate, maka lembar kerja termasuk unsur-unsur yang ada di dalamnya
dimusnahkan (dihapus) dengan menggunakan perintah delete dan clear (lihat point 1.3).

4.6.3.3 Inisialisasi Kondisi


Untuk tujuan penerapan proses iterasi (perulangan) seperti yang telah dijelaskan
pada sub sebelumnya, maka proses penentuan nilai sinus untuk tiap sudut tertentu
dilakukan dengan 2 metode berbeda (lihat point 2.a dan 2.b). Point 2.a menggunakan
aturan For … Next; dan Point 2.b menggunakan Do … While. Proses inisialisasi point
2.a.1 dan 2.b.1 telah dijelaskan pada sub-bab sebelumnya (lihat diskusi Gambar 4-2 dan
Gambar 4-3). Sebagai tambahan, bahwa proses inisialisasi kondisi untuk lembar kerja
dibuat sama (BrsAwalPlot = 2) adalah untuk mendapatkan output yang seragam. Pada
aturan For…Next, proses inisialisasi (point 2.a.1) harus melalui penentuan jumlah
interasi (JlhIterasi = CLng((dTeta2 - dTeta1) / dDelta) + 1) karena prosedur For
… Next hanya dapat diterapkan untuk variabel ber-type integer.

4.6.3.4 Penentuan Nilai Sinus sudut tertentu


Fungsi sinus default yang disediakan oleh sistem operasi mengacu kepada sistem
radian; bukan sistem derajat seperti yang dipahami secara umum. Karena proses
pengkonversian satuan derajat ke radian dapat dilakukan dengan beberapa cara, maka
implementasi dari algoritma pada diskusi ini dibuat dalam 2 metode: 1) menggunakan
rasio konstanta; dan 2) menggunakan liberary Worksheet.Function. Sementara
penentuan nilai sinus sudut (radian) tertentu, pada kedua metode (3.a.2 dan 3.b.2) dibuat
dengan instruksi yang sama, yaitu:

Sedarta, VBA 4 mine computation. Hal.: 4-13 dari 15


R = Sin(dRad) ---------------------------------------------------------------------- (4-23)
Untuk kedua metode, nilai R, hasil perhitungan sinus sudut tretentu
dikembalikan ke routine yang memanggilnya:
Function_Name = R --------------------------------------------------------------- (4-24)

4.6.3.5 Pencetakan nilai hasil eksekusi


Untuk mendokumentasikan semua nilai sinus sudut tertentu, maka proses
pencetakan output dibuat dengan menggunakan instruksi (lihat point 4.a dan point 4.b):
xlWs.Cells(irw, iclm) = sudut ----------------------------------------------------- (4-25)
xlWs.Cells(irw, iclm+1) = R--------------------------------------------------------- (4-26)

Nilai irw bertambah dengan kemajuan perulangan; sementara iclm bernilai 2


(untuk point 4.a) dan 5 (untuk point 4.b). Instruksi tersebut merekam semua nilai sudut
dan nilai sinus (lihat point 4.a.1 dan point 4.b.1).

4.6.3.6 Pengradasian nilai sudut


Pengradasian atau peningkatan nilai sudut mulai dari nilai batas bawah hingga
batas atas dapat disediakan melalui instruksi berikut (lihat point 5.a dan point 5.b).
sudut = sudut + dDelta ---------------------------------------------------------- (4-27)

Alg [4-27] akan membuat nilai sudut meningkat sebesar dDelta untuk tiap
perulangan. Peningkatan nilai sudut akan menyebakan Alg [4-23] menghasilkan nilai
yang tertentu; dengan demikian, nilai sinus sudut tertentu mulai dari batas bawah hingga
batas atas dapat disediakan.

4.6.3.7 Pengujian kondisi batas


Agar nilai sudut berada pada rentang yang ditentukan, proses perhitungan
dibatasi oleh perbandingan nilai variabel sudut dan variabel Teta2 yang di passing
melalui pemanggilan routin yang melakukan perulangan. Kondisi tersebut dibuat
dengan instruksi (lihat point 6 yang implementasinya dibuat di point 6.a dan point 6.b):
sudut < dTeta2 ------------------------------------------------------------------- (4-28)

Instruksi untuk menghitung nilai sinus sudut tertentu hanya dihitung ketika
kondisi [4-28] terpenuhi. Yang lainnya diabaikan.

4.6.3.8 Pengeplotan kurva dari nilai-nilai output.


Semua data hasil perhitungan disimpan dalam bentuk array (larik) yang dalam
hal ini sel-sel lembar kerja (worksheet) Ms-Excel. Baik data yang dari point 7.a mapun

Sedarta, VBA 4 mine computation. Hal.: 4-14 dari 15


point 7.b akan disimpan pada kolom tertentu. Dari point 7.a nilai-nilai sinus
ditempatkan pada Kolom 2 dan 3; sementara yang dari point 7.b ditempatkan pada
Kolom 5 dan 6. Batas Baris atas telah didefinsikan = 2 sementara batas baris bawah
diperleh dari nilai irw. Array dari masing-masing kolom data ini dapat diakses melalui
object range dengan instruksi:
Set xRange = xlWs.Range(xlWs.Cells(rw1, Clm1), xlWs.Cells(rw2, Clm1)) - (4-29)
Set yRange = xlWs.Range(xlWs.Cells(rw1, clm2), xlWs.Cells(rw2, clm2)) (4-30)

Array range xRange dan yRange didefinisikan oleh object series dari chart
menjadi sebuah kurva dengan instruksi tertentu (lihat Point 7.1; Gambar 4-5); yang
hasilnya disajikan pada Gambar 4.4.G.

Gambar 4-5. Sub routin untuk peneplotan kurva nilai-nilai sinus sudut tertentu

Sedarta, VBA 4 mine computation. Hal.: 4-15 dari 15


5 CLASS MODULE

VBA mengizinkan kita untuk meng-create object buatan sendiri. Class Object
adalah sekumpulan data dan prosedur (fungsi dan Sub). Prosedure digunakan untuk
mengerjakan beberapa tugas terkait dengan data. Sebuah Worksheet, sbg contoh, terdiri
atas banyak Sub, Function dan property. Ia dikategorikan sebagai Class object karena
memiliki property. Ada bagian dari Worksheet yang dibuat memiliki nilai dan melalui
nilai sifat atau kharakteristik dari Worksheet dapat menjadi tertentu.
Penggunaan object dalam pemerograman mengizinkan kita untuk membangun
sebuah applikasi tertentu dalam bentuk blok-blok. Blok program menangani bagian
tertentu tanpa menganggu bagian lainnya, dengan demikian proses pemerograman
menjadi lebih mudah dan lebih efisien.

5.1 Pengertian dari Object


Object adalah sekumpulan dari procedure (prosedur) yang terdiri atas variabel,
method (Sub, dan Function) dan Property yang dapat direpresentasikan oleh sebuah
variabel pada rutin atau program yang lainnya bahkan pada dirinya sendiri. Object
mungkin dapat diilustrasikan sebagai sebuah benda nyata yang dibuat berdasarkan
rancangan yang didefinsikan di dalam Class. Bagian-bagian dari benda nyata itu diurai
dan tiap bagian dapat dibuat memiliki method dan property. Property menyatakan
ukuran, bentuk, warna, atau yang lainnya; sementara methods merepresentasikan yang
dapat ia lakukan mis.: lari, langkah, tendang, kekuatan tendangan, dll. Bagian-bagian
tersebut yang jika digabung menjadi satu-kesatuan yang memiliki nilai dan fungsi
disebut sebagai Object (Class sebagai object).

5.2 Pengertian dari Class


Class adalah prototype, atau cetak biru dari sebuah object nyata. Ia dapat
merepresentasikan unsur-unsur dari sebuah object tertentu dimana tiap bagian atau
unsur-unsurnya dapat didefinsikan memiliki methods, property dan Events. Oleh
karenanya pengertian object dari sebuah Class dapat diibaratkan menjadi sebuah benda
nyata, mis. mobil, kucing, bola, atau yang lainnya. Tiap object-object dalam contoh
yang disebutkan itu dapat memiliki atributh dan methods. Misalnya, kucing: memiliki
kaki, kepala, mata. Ia dapat berpindah posisi oleh karena kaki dengan methods
melangkah. Ia dapat mengetahui object sekitarnya dengan methods melihat. Ketika
bergerak, selain terjadi perpindahan mungkin akan ada yang diganggu yang wujud jika
dan hanya jika perpindahan terjadi. Hal perpindahan yang menyebabkan terjadinya
gangguna disebut sebagai Event.

Sedarta, VBA 4 mine computation. Hal.: 5-1 dari 8


5.2.1 Cara Pembuatan Class

Class dapat dibuat (di-create) melalui prosedur seperti yang disajikan apda
Gambar 5-1.

Gambar 5-1. Prosedur pembuatan Class Pada Antar Muka VBA


Ket. Gambar adalah antarmuka (Interface) lingkungan pemerograman VBA pada
Ms-Ecel. A. Menu dari Antar Muka; B. bagian-bagian dari Antar Muka; C. Shortcut
untuk penambahan Item Project Folder. Angka dalam bulatan berwarna merah
adalah urutan pembuatan Class Baru.

Proses pembuatan Class baru atau penambahan Object ke Project Folder dapat
dilakukan melalui 2 cara, yaitu melalui: 1) Menu Bar; atau 2) short-cut: Click Kanan
pada VBAProject (Project Folder). Keduanya akan menghasilkan output yang sama
yaitu penambahan object pada ProjectFolder [3]. Object Class yang ditambahkan,
defaultnya bernama ClassN (N ➔nomor urut; yang dalam contoh berniali 1 sehinga
bernama Class1). Ketika ia dipilih (select sehingga berwarna latar gela) maka property
dari object Class ditampilkan pada kolom Property [4]. Jika di-double-Click maka
lembar kerja dari Class akan ditampilkan [lihat B’]. Pada antar muka ini ada dua jendela
yang dapat digunakan untuk menelusuri kode-kode program yang dibuat. Nilai yang ada
di dalam kotakmerak sebelah kanan menyatakan methods (Declaration), sementara yang
di sebelah kiri menyatakan cakupannya (Scope).

Sedarta, VBA 4 mine computation. Hal.: 5-2 dari 8


5.2.2 Property

Property adalah nilai dari object, item atau unsur-unsur yang didefinsikan.
Pendefinsian item atau unsur-unsur dari object didasarkan kepada kebutuhann. Oleh
karenanya, property dapat melekat kepada Object, item, atau unsur-unsur dari object
classnya.
Pada Worksheet Ms Excel, sebagai contoh, Sheet5 merupakan nama objectnya;
sementara itemnya adalah lembar-kerja (Worksheet) dan unsur-unsurnya dapat berupa
sel atau garis dari antar selnya. Property dari object Sheet5 dapat dilihat melalui jendela
Property sementara property dari item atau unsur-unsurnya dapat diset melalui kode
program yang dieksekusi (lihat gambar 4-1)

Gambar 5-2. Property dari sebuah Object, Item dan Elemen (unsur)
Ket.: Gambar terdiri atas dua bagian: A, B, C, dan D adalah lingkungan
pemerograman VBA; sementara E adalah konstanta nilai dari IndeksColor.
A. Daftar Nama Object. Dalam hal ini object yang sedang dianalisa adalah
Sheet5.
B. Property dari Object. Ia menampilkan sifat atau karakter dari object
Sheet5; mis. nama dari sheet5. (Nama) dan Nama pada kolom pertama
memiliki makna yang berbeda. (Nama) menyatakan indeks dari object
(yang dalam hal ini adalah sheet5) Ia dipahami/digunakan oleh
ThisWorkbook; sementara Nama merupakan atribut yang muncul pada
lembar kerja yang dipahami oleh user (manusia). Penggantian nilai ini
akan menampilkan nama worksheet yang berbeda.
C. Kode Program untuk men-set nilai dari Property item, yang dalam hal ini
adalah Worksheet. Angka 6 menyatakan nilai dari property itemnya
D. Property dari unsur Interior dari semua Cells. ‘Me’ menyatakan bahwa ia
adalah Object (Class) dari Sheet5. Bila kata Cells diganti dengan, mis.:
Cells(5,5) ➔maka property Interiornya merepresentasikan unsur dari Cells
yang dalam hal ini khusus hanya pada cell(E5).
E. Daftar nomor (konstanta) dari Indeks warna yang dapat digunakan pada
berbagai lingkungan pemerograman

Sedarta, VBA 4 mine computation. Hal.: 5-3 dari 8


Property yang seperti itu dapat dibuat dengan deklarasi tertentu, mis.:

𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦 𝐿𝑒𝑡 𝑁𝑎𝑚𝑎𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦(𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝐴𝑠 ≪ 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑇𝑦𝑝𝑒 ≫


′𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 ------ (5-1)
𝐸𝑛𝑑 𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦
Atau
𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦 𝑆𝑒𝑡 𝑁𝑎𝑚𝑎𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦(𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝐴𝑠 ≪ 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑇𝑦𝑝𝑒 ≫
′𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 ------ (5-2)
𝐸𝑛𝑑 𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦

Untuk mendapatkan/membaca nilai dari properti yang aktif digunakan perintah


atau pernyataan:
𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦 𝐺𝑒𝑡 𝑁𝑎𝑚𝑎𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦() ≪ 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑇𝑦𝑝𝑒 ≫
′𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 --------------------- (5-3)
𝐸𝑛𝑑 𝑃𝑟𝑜𝑝𝑒𝑟𝑡𝑦

5.2.3 Methods

Methods adalah routine atau prosudur yang digunakan atau yang


diimplementasikan kedalam lembar-program dari objectnya. Methods dapat berupa Sub
ataupun Function. Scope (cakupan) dari keduanya tergantung kepada definsi yang
ditetapkan. Penggunaan kata Private akan mendefinsikan Methods menjadi local;
sementara yang lainnya menjadi Public yang artinya dapat diakses/digunakan dari
dalam dan luar object. Pengertian dari Sub dan Function disini sama dengan yang telah
didiskusikan pada sub bab sebelumnya (lihat Sub bab 41 dan 4.2).

5.2.4 Event

Event adalah sebuah Prosedur Sub (method) yang dapat dibangkitkan secara
otomatis oleh interpreter atau compiler. Ia bukan routine Function tetapi routine Sub;
yang biasa digunakan untuk tujuan tertentu ketika sebuah kondisi terpenuhi. Mis. bila
suatu variabel telah memiliki batas nilai tertentu maka Prosedur Sub yang didefinsikan
akan dieksekusi. Event yang seperti ini sering sekali dilekatkan kepada kondisi-kondisi
kritis, mis pada sistem keamanan gedung: ketika antar-muka medeteksi adanya asap,
maka sensor akan secara atomatis membangkitkan-event (menghidupkan) Alaram
(peringatan). Deklarasinya dibuat dengan perintah:
Event <<NamaEvent>>(<<NamaVariabel>> As <<VariableType>>) ------ (5-4)

Penggunaan Event yang dideklarasikan dinyatakan dengan:


RaiseEvent <<NamaEvent>>(<<VariableBeingPassed>>) ----------------- (5-5)

Sedarta, VBA 4 mine computation. Hal.: 5-4 dari 8


Implementasinya dideklarasikan di bagian variabel, cakupannya publik (lokal)
bukan global.
Private WithEvents <<NamaVariabel>> As ClassName -------------------- (5-6)
Alg [5-4 dan 5-5] dibuat di dalam class yang bersangkutan sementara alg [5-6]
dideklarasikan pada class lain yang menggunakan class yang didefinsikan.

Gambar 5-3. Contoh Class dari sebuah Bidang-persegi dan Implementasinya


Ket.: Gambar terdiri atas 2 bagian: A & B: Object Class CPersegi; C dan D: Object
Class CImplement. Angka berwarna merah/hijau-kuning menyatakan bagian dari
masing-masing Class Object bukan menyatakan Object Class

Sedarta, VBA 4 mine computation. Hal.: 5-5 dari 8


Pada Gambar 5-3 terdapat 2 istilah yang mungkin membingungkan bagi
pembaca, yaitu: 1) Object Class dan Class Object. Object Class merujuk kepada
bagunan dari Class-class termasuk Class Induk dan Class Anak. Property dari Object
Class dinyatakan dalam Jendela Property (lihat [B] dan [D]). Class Object merujuk
kepada atribuh dari Class-nya bukan kepada atributh dari object-nya. Property dari
Class dibuat pada lembar kerja [lihat angka berwarna dengan keterangan d sebelah
kanan). Oleh karenany, tiap Object pasti memiliki Class Object. Dengan
mempertimbangkan contoh sebelumnya, kucing adalah object-nya; dan yang
menyatakan bagian dari object-nya (kucing) disebut dengan Class. Tiap bagian dari
kucing, mis. kaki, mata, kepala atau yang lainnya dapat dibuat menjadi satu Class
tertentu (disebut sebagai Class Anak) dan gabungan dari Class-Class Anak disebut
sebagai Class Induk.
Class Anak dapat lebih dari satu tingkatan. Semua property dan methods dari
Class Anak dapat diwariskan ke Class yang mewarisinya; dan oleh karenanya mereka
disebut memiliki sifat turun-temurun. Semua sifat dari anak menjadi sifat dari kelas
induknya (yang mewarisinya). Pada contoh di atas, Class CPersegi ditaut-sempurnakan
(embeded) ke kelas CImplement dan CImplement nantinya hanya akan dapat digunakan
oleh Object Class atau Module lainnya. Dan jika CImplement dideklarasikan pada class
Module, mis.: Cimpl maka semua variabel tersebut menjadi saling terpaut dengan
struktur yang tertentu (lihat Gambar 5-4).

Gambar 5-4. Struktur dan Sifat dari Class Object


Ket.: Gambar terdiri atas 2 bagian: 1) bagian pertama terdir atas A, B dan C, yaitu
antarmuka VBA yang menyajikan Object Folder [A], Object Property [B] dan
lembar kerja pemerograman [C]; 2) bagian ke-2 yaitu [D] mengillustrasikan class-
class object yang diimplementasikan. Class CPsegi yang merupakan Class Object
dari ClsPersegi dienkapsulasikan ke dalam Class CImplement. Class CImplement
digunakan pada lembar pemerograman Module3 dengan nama variabel CImpl.
Dan oleh karenanya, pada lembar program Module urutan dari object-object dari
Classnya memiliki struktur yang tertentu (lihat [C]). Property dan bahkan
Methods dari ClcPersegi dapat telihat secara explisit di lembar pemerograman
Module3.

Sedarta, VBA 4 mine computation. Hal.: 5-6 dari 8


Pada Gambar 5-3, A dan C adalah Project Folder dari sebuah Macro; yang
menunjukkan object yang dipilih berikut dengan atributh-nya. Atributh menyatakan
unsur-unsur yang dimiliki oleh sebuah Object. Unsur-unsur tersebut terdiri atas 1) object
properties ([B] untuk object CPersegi, [D] untuk object Cimplement); dan 2) Class
property, methods dan Events. Atributh dari Class Object dtampilkan pada bagian kanan
gambar yaitu tulisan yang berwarna merah.
1. Variabel dari Class ClsPersegi. Ia terdiri atas 3, yaitu m_Panjang, m_lebar,
dan m_Luas; ketiganya bertype Double. Ke-3 variabel tersebut memiliki
cakupuan publik pada class tetapi bukan global yang dapat dikenali dari luar
Class. Mereka dikenali disemua routine yang ada pada Class ClsPersegi.
Diluar itu merka tidak dapat dikenali.
2. Event, yaitu sebuah variabel Event dengan nama HitungLuas. Variabel ini
akan mengirimkan sebuah nilai (luaspersegi bertype Double) ke lingkungan
yang menggunakannya.
3. Property dari ClsPersegi, methodsnya adalah Let dengan nama Panjang.
Artinya ClsPersegi akan menerima sebuah nilai (byval NewVal As Double)
yang diset (didelegasikan) ke variabel m_Panjang. Property ini dinyatajan
dalam kategoi Global (tidak mengandung kata Private) dan oleh karenanya
property Panjang akan dapat diakses dari luar Class ClsPersegi.
4. Property dari ClsPersegi, methodsnya adalah Get dengan nama Panjang.
Artinya Class ClsPersegi akan mengirimkan nilai dari variabel Panjang
yang type-nya adalah Double.
5. Methods dari Class ClsPersegi yang jenisnya adalah Sub (routine) dengan
nama HitungLuas. Cakupan dari sub ini adalah global (karena tidak
mengandung statement Private.
Sub Routine HitungLuas, selain memiliki instruksi menghitung luas
(m_Luas = m_Panjag * m_lebar) juga mengandung perintah untuk
membangkitkan event dari Class-nya, yaitu HitungLuas dengan melewatkan
nilai yang ada didalamnya, yaitu nilai dari variabel m_Luas
6. Methods dari Class ClsPersegi yang jenisnya adalah Function dengan type
Double. Hasil dari eksekusi perintah yang ada di dalamnya akan
dikembalikan ke routine yang memanggil/menggunaknnya. Cakupannya
bersifat global, artinya function tersebut dapat diakses dari luar ClsPersegi.
7. Methods dari Class ClsPersegi yang jenisnya adalah Insialisasi. Routine ini
memiliki cakupan local karena mengandung statement Private; dan oleh
karenanya ia tidak dikenali diluar dari blok dari routinnya. Blok kode
program (routine) ini akan secara atomatis dieksekusi oleh Object ketika ia
dinisialisasi.

Sedarta, VBA 4 mine computation. Hal.: 5-7 dari 8


8. Implementasi dari Class ClsPersegi ke dalam Class CImplement.
Implementasinya menyertakan statement Event (WithEvents) yang artinya
event yang dideklarasikan pada Class ClsPersegi dapat aktif pada Class
CImplement. Perlu dicatat bahwa deklarasi melalui metode yang seperti itu
tidak dapat menggunakan sistem instant tetap late.
VBA mengenal 2 sistem deeklarasi variabel: 1) Instant declaration; dan 2)
Late Declaration. Instant Declaration akan secara automatis dieksekusi oleh
interpreter ketika Objectnya diinisialisasi, dengan demikian semua atributh
yang dimiliki oleh class-nya akan dicopy-kan ke variabel yang digunakan.
Sebaliknya, Late Declaration menstate bahwa variabel yang dideklarasikan
type-nya adalah yang didefinisikan namun atributh dari Class yang
diwarisinya belum ada. Atributh dari Class hanya akan dicopy-kan ke
variabel yang digunakan ketika dinyatakan dengan perintah Set yang harus
dieksekusi. Siapa yang mengeksekusi adalah topik lainnya yang perlu untuk
dipahami.
9. Methods dari Class CImplement. Typenya adalah Insialisasi. Oleh
karenanya perintah yang ada didalamnya akan dieksekusi secara automatis
ketika Objectnya diinisialisasi.
Pada contoh ini, perintah yang dieksekusi oleh Methods Intialize adalah:
Set CPsgei = New ClsPersegi
Melalui perintah ini maka ketika Class CImplement dijalankan, maka CImpl
akan dapat mengenali CPsegi; selain itu, meskipun CPsegi telah terdaftar
sebagai bagian dari CImpl, CPsegi tidak akan dapat diakses karena belum
didelegasikan.
10. Implementasi Event dari Class ClsPersegi. Blok kode program (routine) ini
akan dieksekusi oleh class anak (CPsegi). Nama CPsegi yang terdapat pada

Private Sub CPsegi_HitungLuas(ByVal luaspersegi As Double)


MsgBox luaspersegi
End Sub
adalah nama Variabel yang dideklarasikan pada bagian [8]. Nama yang
tertulis (secara automatis) akan sesuai dengan yang dideklarasi. Nama
HitungLuas yang ada pada routine tersebut adalah sesuai dengan yang
dideklarasikan pada bagian [2].
Ketika routine [5] di eksekusi, maka routine [10] akan secara automatis
dieksekusi. Oleh karenanya Class Induk dan Class Anak menjadi satu
kesatuan sifat.

Sedarta, VBA 4 mine computation. Hal.: 5-8 dari 8


6 USER FORM

User Form adalah sebuah kotak dialog yang dibuat khusus yang membuat
pengentrian data atau komunikasi user dengan applikasi menjadi lebih dapat
dikendalikan dan lebih mudah dalam penggunaan-applikasinya. Ia, sebenarnya adalah
sebuah Class Berorientasi Object (Object Oriented Programming) dalam bentuk sebuah
layar (canvas) yang dapat terlihat secara visual. Object-object yang digunakan atau yang
ditempatkan diatas layar disebut sebagai activex (*.ocx).

6.1 Penyediaan Oject UserForm


Penyediaan userform ke dalam project (Macro) dapat dilakukan dengan 2 cara,
yaitu melalui: 1) Menu, atau 2) Short-Cut (lihat Gambar 6-1).

Gambar 6-1. Prosedur penyediaan User Form


Ket.: Gambar terdiri atas: A) Antar muka VBA dengan sebuah UserForm; B)
Jendela dari menu Insert; C) kotak dialog penambahan object ke Project Folder;
D) Daftar object yang dapat ditempelkan keatas UserForm [A’]; dan E) jendela
Property dari setiap object yang aktif (dipilih).
Angka didalam bulatan berwarna merah menyatakan step penyediaan Form
melalui menu; sementara yang didalam kotak berwarna hijau menyatakan step
penyediaan Form melalui Short-Cut. Kotak dialog [C] dapat ditampilkan dengan
cara Click-kanan pada VBAProject. Kedua metode tersebut akan menampilkan
sebauh Form baru dengan nama UserFormN (N sebuah bilangan bulat, tergantung
jumlah form yang ditambahkan ke dalam Project Folder). Nama dari tiap Object
Form yang ditambahkan ke dalam lingkungan pemerograman (Project Folder)
akan ditampilkan pada Folder Form.

Sedarta, VBA 4 mine computation. Hal.: 6-1 dari 6


Kanvas dari UserForm adalah permukaan A’ yang mengadung titik-titi teratur.
Tititk tersebut merepresentasikan koordinat dari permukaan Form. Activex [D], yang
terdri atas Label, TextBox, ComboBox, LisBox, CheckBox, OptionButton, ToogleButton,
Frame, CommandButton, TabStrip, MultiPage, ScrollBar, SpinButton, Image, dan
RefEdit; adalah object-object yang dapat ditambahkan ke dalam layar [A’]. Masing-
masing dari activex itu memiliki property dan Methods yang dapat ditampilkan pada
jendela Property.
Tiap Object UserForm memiliki atributh default yang masing-masing dapat
digunakan pada lingkungan pemerogramannya (lihat gambar 6-2).

Gambar 6-2. Atributh dari sebuah UserForm


Ket.: A) Nama dari ObjectForm (UserForm1); B) Property dari ObjectForm; C)
Methods dari Class Form; dan D) lembar-kerja koding. Lembar-keja koding ini
dapat ditampilkan dengan cara double-click pada permukaan Form.
Secara default ObjectForm telah memiliki property dan Methods Default. Property
object Form, mis.: Height (Tinggi), Width (Lebar), …, orderStyle (ada atau tidak
bingkai Form), dlsb. Object Form secara default memiliki 22 Methods, mis.: Click,
DoubleClick, MouseDown, …, dlsb. Method-method tersebut dapat digunakan di
dalam lingkungan pemerogram kita. Mereka, ketika dipilih, secara automatis
mengcreate sebuah blok program (routin) Sub dengan berbagai variabel input.
Perintah yang perlu untuk dieksekusi ditempatkan didalam blok routine ini.

Sedarta, VBA 4 mine computation. Hal.: 6-2 dari 6


6.2 Penambahan Object Activex
Agar form dapat menjadi informatif dan komunikatif ia biasanya dibubuhi
dengan berbagai object-object activex sesuai kebutuhan. Object-object Activex yang
berada pada ToolsBox (lihat Gambar 6-1.D) dapat diinputkan ke dalam Object
UserForm dengan cara men-drag object yang diinginkan (lihat Gambar 6-3).

Gambar 6-3. Contoh pengimputan Activex kedalam Form AntarMuka


Ket.: Gambar terdiri atas: A) UserForm yang akan diisi dengan activex yang
dibutuhkan; B & C) Property dari Object dimana [B] property dari object Label;
sementara [C] Property dari CommandButton; D) ToolsBox; dan E) lembar kerja
pengkodean dari object UserForm.

Dalam contoh ini sebuah form dengan 1 (satu buah) label dan 1 (satu buah)
tombol (CommandButoon) akan dibuat. Ketika dijalankan, click form akan
menghasilkan sebuah kotak dialog; click Tombol akan menutup form.
Untuk tujuan tersebut proses pembuatan form antarmukanya dilakukan dengan
cara:

Sedarta, VBA 4 mine computation. Hal.: 6-3 dari 6


1. Label dari dalam ToolBox di-drag (click-tahan-geser) ke-form. Label1 akan
menempel pada permukaan Form. Click Label [1’] akan mengaktifkan
jendela Property [B]. Tulisan didalam Label1 dapat diganti melalui Property
Caption-nya.
2. Dari dalam Toolbox, object CommandButon di-drag ke dalam form.
CommandButton1 akan menempel pada Form. Select (click) tombol
CommandButton akan mengaktifkan jendela Propertisnya. Tulisan pada
CommandButton dapat diganti pada proerty Captionnya.
3. Agar ketika CommandButton di-click (ketika UserForm sudah dijalankan)
antarmuka Form tertutup (program berakhir) maka DoubleClick
OjectCommandnya ➔ masuk ke blok pemerograman; lalu isikan perintah
‘End’. Perintah End diberikan untuk menutup program
4. Agar ketika di click (pada saat UserForm telah dijalankan) Object UserForm
menampilkan sebuah kotak dialog, maka pada sembarang tempat pada
kanvas lakukan DoubleClick. Metode ini akan menampilkan sebuah blok
pemerograman, pastikan bahwa event yang digunakan adalah
UserForm_Click(), lalu ketik perintahnya:
MsgBox "Kamu mengclick Form ..!", vbCritical, "Contoh Program Form"

MsgBox ➔memerintahkan interpreter untuk menampilkan sebuah kotak


dialog
vbCritical ➔menampilkan jenis tombol pada kotak dialog

6.3 Mengeksekusi UserForm


Object Form adalah sebuah ClassObject yang ditambahkan ke dalam Project
Macro. Ia tidak berdiri sendiri melainkan sebagai bagian dari Sub-Main (Project dari
Macro). Ia hanya dapat ditampilkan, atau kode program yang ada didalamnya hanya
akan dijalankan, jika dieksekusi oleh sebuah routin tertentu. Routine yang
mengeksekusinya harus tertaut dengan Sub-Main. Oleh karenanya, proses
pengembangan sebuah program (implementasi dari algoritma) harus memahami siapa
yang akan menjalankan; dan apa yan dijalankan (Event Driven). Komputer menjalankan
prosedur (mengeksekusi kode program) dengan cara berutuan sesuai diagram alir yang
diimplementasikan. Kode program yang ditulis pada lembar kerja pengkodean hanya
akan dijalankan bila ada routin yang mengeksekusinya; jika tidak maka kode program
ayng ditulis akan diabaikan (tidak dieksekusi).
Untuk tujuan pembuatan antarmuka sebuah UserForm seperti yang disebutkan
di atas (lihat Gambar 6.3) maka Sub-Main dari Macro-nya dibuat pada sebuah module
baru. Pada latihan ini Module yang digunakan adalah Module3 (lihat Gambar 6-4).
Proses ini dapat dilakukan seperti yang dijelaskan pada Gambar 2-1). Nama Macro yang
dibuat adalah MenampilkanUserForm.

Sedarta, VBA 4 mine computation. Hal.: 6-4 dari 6


Gambar 6-4. Metode eksekusi sebuah UserForm
Ket.: Gambar terdiri atas 2 baian: 1) antar muka VBA pada module3 [A]; dan 2)
antarmuka Userform ketika dieksekusi. [B] dan [C] adalah dua buah gambar
yang sama. Tampilan [C] adalah Gambar [B] ketika form diclick.
Angka yang berada di dalam bulatan berwarna merah menyatakan step yang
dilakukan untuk membuat program pengeksekusian UserForm yang dibuat
seperti pada Gambar 6-3.

Proses pengkodean untuk akses UserFormnya dilakukan dengan prosedur:


1. DoubleClick Module3 akan tampil lembar-kerja pemerograman Module3.
2. Ketik- atau masuk-ke- blok program
Sub MenampilkanUserForm()

End Sub

Pada blok program tersebut (diantara statement Sub dan End Sub) ketik nama
form yang ingin dieksekusi. Dalam hal ini nama Formnya adalah UsrFrm
Ketika tanda titik diketik (setelah kata UsrFrm) maka jendela property SerForm
akan mucul. Pilih metod yang diinginkan. Dalam hal ini methods yang dipilih
adalah Show, sehingga kode programnya menjadi:
UsrFrm.Show
3. Eksekusi perintah yang telah dibuat dengan meng-click tombol execution (tanda
panah berwarna hijau).
Jika pada saat eksekusi ditampilkan jendela nama dari Macro-macro yang ada,
pilih macro untuk project ini, yaitu MenampilkanUserForm.

Sedarta, VBA 4 mine computation. Hal.: 6-5 dari 6


Antarmuka UserForm tampil seperti pada Gambar [B]. UserForm tersebut
biasanya ditampilkan di antarmuka Worksheet aktif; jadi ia tidak tampil pada
antarmuka VBA
4. Click kanvas UserForm sembarang tempat akan tampil sebuah kotak dialog
seperti paad Gambar [C].
5. Click OK, maka kotak dialog akan tertutup dan antarmuka UserForm kembali
seperti pada [B]
6. Click Tombol Command (Click Saya) akan mengakhir eksekusi program.

Sedarta, VBA 4 mine computation. Hal.: 6-6 dari 6

Anda mungkin juga menyukai