Apa itu Macro dan Apa itu VBA?
Macro
Sebenarnya adalah sebuah script pada sebuah aplikasi (tidak hanya excel/office tapi juga aplikasi-aplikasi lainnya) untuk membuat otomatisasi. Script tersebut, akan memerintahkan aplikasi untuk melakukan pekerjaan yang sama secara berulang-ulang.
Selanjutnya, macro tak hanya menjalankan script, tapi juga dapat merekam kegiatan keyboard dan mouse. Alhasil, pengguna aplikasi tersebut, cukup melakukan pekerjaan satu kali saja, merekamnya dan aplikasi akan menuliskan scriptnya. Selanjutnya, pengguna cukup menjalankan script tersebut untuk melakukan pekerjaan yang sama.
VBA
Visual Basic for Application adalah turunan dari bahasa pemrograman Visual Basic milik Microsoft. Namun berbeda dengan Visual Basic yang digunakan untuk membuat sebuah aplikasi stand alone (berdiri sendiri), maka VBA didesain untuk bekerja diatas sebuah aplikasi.
Gampangnya, VBA memang didesain untuk menumpang pada sebuah inang. VBA tidak membuat EXE. VBA hanya bisa dijalankan diatas inang tersebut.
Lalu, apa inangnya?
Inangnya adalah aplikasi-aplikasi yang membeli VBA dari Microsoft. Dan contoh inang dari VBA adalah MS Office yang salah satu aplikasinya adalah MS Excel.
Macro + VBA pada MS Office
Jadi, MS Office yang salah satu produknya adalah Excel, memiliki Macro untuk proses otomatisasi.
Dan Macro pada MS Office, menggunakan VBA. Alhasil, sintaks dan routin script macro pada Excel, sama persis dengan VB.
Karenanya, jika anda pengguna bahasa pemrograman VB, maka anda tak akan kesulitan dengan Macro Excel.
Dan jika anda sudah familiar dengan Macro Excel, akan mudah untuk belajar VB.
Mengenal Data Type
Apa itu Data Type?
Sebenarnya, biar gampang mengenal Data Type, kita sebaiknya kenal dulu apa itu variable. Karena sesungguhnya, data type itu dibutuhkan karena adanya variable.
Tapi masalahnya, kita belum akan membahas variable disini, so agar kita mengerti tentang data type, sebaiknya kita ulas dikiiiit aja tentang variable.
Variable
Variable itu seperti sebuah wadah. Sebut aja Baskom. Nah, baskom ini bisa kita isi benda, misalkan beras. Setiap saat, kita bisa mengisi sejumlah beras ke dalam baskom, dan setiap saat, kita juga bisa mengambilnya lagi.
Variable dan Data Type
Sekarang apa hubungannya variable dan data type?
Oke, kita kembali lagi ke baskom yah. Tadi, kita baru ngomongin satu benda, beras. Gimana kalo ternyata kita juga butuh tepung, air, susu, santan, kacang dll. Kalo jenis bendanya ada banyak, maka kita butuh lebih banyak baskom. Karena, benda-benda tadi gak bisa kita jadiin satu. Misal, tepung dicampur dengan air, wah bisa jadi bakwan donk..
Jadi, yang harus kita lakukan adalah, menyediakan lebih banyak baskom. Selanjutnya, baskom itu kita beri label. Misal, baskom beras, baskom susu, dll. Selanjutnya, kita harus memasukkan/mengambil benda-benda ke baskom sesuai dengan label.
Jadi, apa itu data type?
Jadi data type itu seperti halnya jenis-jenis benda pada pengandaian kita tadi. Kalo tadi ada beras, tepung, susu dll, maka data type ada Integer, String, Single, Double, Long, dll.
Dan ketika kita sudah memberi label pada sebuah variabel (melakukan deklarasi) dengan menentukan jenis data type yang boleh masuk ke variable tersebut, maka data type lainnya tidak boleh dimasukkan ke variable tersebut.
Kenapa jenis data harus dibeda-bedakan antara satu variable dengan variable yang lain?
Seperti pengandaian tadi, misal tepung digabung sama air, bisa jadi bakwan kan? Nah, begitu pula alasan kenapa ada data type. Selain meminimalisasi error, juga untuk efisiensi penggunaan penyimpanan.
Misal begini, kita punya benda duren. Kalo bendanya itu duren, maka baskom yang dibutuhkan adalah baskom besar. Karena wujud duren itu emang besar. Tapi untuk baskom beras, gak perlu besar-besar.
Dan tentu gak akan efisien kalo kita menggunakan baskom duren untuk menyimpan beras.
Jadi, kita butuh Data Type yang berbeda-beda sesuai kebutuhan.
Apa saja jenis-jenis Data Type?
Oke, berikut adalah jenis-jenis Data Type pada VBA berikut penjelasannya:
Data Type
Range
Besar
Penyimpanan
Byte
0 s/d 255
1 byte
Data type ini berupa angka dari·0 s/d 255. Tiap·angka, akan·dikodekan dalam binary sebesar·1 byte (8 bit). Misal, angka 1 yang kita beri label·Data Type Byte, akan dikodekan·dalam 8 bit menjadi 00000001.
Sedangkan·255 dikodekan menjadi·11111111.
Boolan
True or False
2 byte
Data type ini hanya memiliki 2 data·yaitu "True" dan "False". Disimpan sebagai Integer 16bit (2 byte).
"True" = 1 dalam biner·Integer, dan "false" = -1 dalam·biner Integer. Bagaimana Integer disimpan dalam·biner dapat dilihat pada bagian·Data Type Integer dibawah.
Integer
-32768 s/d 32767
2 byte
Data type ini dikodekan dalam biner dengan meggunakan sistem "Two's Complement".
Klik disini untuk penjelasan lengkapnya.
Long
(long integer)
-2147483648 s/d 2147483647
4 byte
Seperti pada data type Integer, namun 2 kali lebih besar kapasitasnya.
Single
(single precision
floating-point)
-3.402823E38 s/d -1.401298E-45 untuk nilai negatif
dan 1.401298E-45 s/d 3.402823E38.untuk nilai positif
4 byte
Jika Integer hanya menampung bilangan bulat, maka Data Type Single dapat· menampung bilangan pecahan. Data Type Single dikodekan dalam biner dengan menggunakan Standar IEEE 754 Binary32.
Silahkan klik disini untuk penjelasan· lengkapnya.
Double
(double precision
floating-point)
-1.79769313486231E308 s/d -4.94065645841247E-324 untuk nilai negatif;
4.94065645841247E-324 s/d 1.79769313486232E308
untuk nilai postif
8 byte
Sama dengan Data Type single namun 2 kali lebih besar. Pengkodeannya menggunakan Standar IEEE 754 Binary64.
Klik disini untuk penjelasan lengkap.
Currency
(scaled integer)
-922,337,203,685,477.5808 s/d 922,337,203,685,477.5807
8 bytes
Jika ada tertulis 24002500, maka untuk Data Type Currency akan dianggap sebagai 2400.2500. Jadi, 4 angka terakhir akan otomatis dianggap angka dibelakang koma. Currency disimpan ke dalam binary dalam format integer seperti pada data type integer.
Decimal
+/-79,228,162,514,264, 337,593,543,950,335
tanpa titik desimal;
+/-7.9228162514264337593543950335
dengan 28 letak titik desimal; angka non-zero terkecil +/- 0.0000000000000000000000000001
14 bytes
Data type Desimal memiliki struktut binary : 1 bit untuk tanda + (plus) atau - (minus) yang
membutuhkan 1 byte tempat penyimpanan, + 96 bit data integer dengan maksimum sampai 79,228,162,514,264,·337,593,543,950,335 yang membutuhkan 12 byte + 1 byte lagi untuk menentukan titik desimal. Dari 0 s/d 28.
Misal, angka -2 maka binarynya adalah 00000001 + 0000 ... 0010 (12 byte) + 00000000. Jika 1.4, maka 00000000 + 0000 ... 1110 + 00000001.
Byte terakhir (00000001) yang desimalnya : 1, artinya koma ada di posisi ke 1.
Date
January 1, 100 to December 31, 9999
8 bytes
Dikodekan dengan standar IEEE binary64.
Object
Any Objectreference
4 bytes
String
(variable-length)
0 to approximately 2 billion
10 bytes + string length
String
(fixed-length)
1 to approximately 65,400
Length of string
String di kodekan dalam biner dengan menggunakan kode ASCI dan UTF-16.
Variant
(with numbers)
Any numeric value up to the range of a Double
16 bytes
Variant
(with characters)
Same range as for variable-length String
22 bytes + string length
Data Type Variant adalah data type yang menampung semua jenis data type.
User-defined
(usingType)
The range of each element is the same as the range
of its data type.
Number required by elements
Mengenal Excel Visual Basic Editor
Apa itu Visual Basic Editor? Bagaimana menulis program di VB Editor? Bagaimana memunculkan message box dialog?
Selain itu, tutorial ini juga akan memberikan contoh cara menambahkan Macro pada Button Controls Form.
Sebelum melanjutkan tutorial ini, sebaiknya anda telah membaca tutorial pada link "Baca dulu" di atas.
Bagaimana jika tidak membaca tutorial diatas?
Maka, kami tidak akan bertanggung-jawab kalau anda muntah-muntah karena pusing.
Oke, kita anggap, semua sudah membaca tutorial diatas. Dan tutorial ini akan kami bagi menjadi beberapa segmen:
1. Tentang Visual Basic Editor
2. Object Sheet, Object Workbook dan Object Module
3. Menulis Baris Program
4. Menjalankan Baris Program dengan Button Controls Form
5. Inilah hasilnya
Mari kita mulai dari yang pertama:
1. Tentang Visual Basic Editor
Untuk menuliskan baris program pada VBA Excel, kita membutuhkan Visual Basic Editor (VB Editor). Lalu dimana VB Editor tersebut?
Untuk membuka VB Editor, Klik TAB "Developer" --> Klik "Menu Visual Basic". Lihat gambar dibawah:
Jika anda tidak menemukan Tab Developer, maka anda harus memunculkannya terlebih dahulu. Dan jika belum tahu caranya, berarti anda belum baca tutorial pada link "Baca dulu" di atas. Ayo! Baca dulu..
Jika anda sudah meng-klik Menu Visual Basic, maka akan muncul Window VB Editor seperti gambar berikut:
Di dalamnya terdapat Project Explorer dan Properties Explorer.
Lalu di mana tempat kita menulis Program!!!??
Tenang.. Program akan ditulis di Code Editor. Karena kita belum menulis baris program sebelumnya, maka tidak akan muncul Code Editor-nya. Yang ada hanya VB Editor kosong tanpa Code Editor. Dan di hal ini akan dibahas pada segmen berikutnya.
2. Object Sheet, Object Workbook, Object Form dan Object Module
Nah, anggap saja, kita akan menulis Program VBA untuk pertama kali. Karena itu, kita harus membuka code editor yang akan menjadi tempat menuliskan baris program kita.
Code Editor, bisa berada di Object Sheet, Object Workbook, Object Form atau juga Object Module.
Apa itu semua???
Waduh, berarti belum pernah denger OOP ya? Kalo belum, baca penjelasan singkat berikut ya..
VBA berasal dari Visual Basic (VB) yang merupakan bahasa pemrograman berbasis OOP (Object Oriented Programming).
Gampangnya, cara memahami VBA adalah seperti memahami suatu object sehari-hari. Contoh yang paling mudah misalkan Kucing. Ya, Kucing adalah object seperti halnya meja, pohon, bahkan kita (manusia) juga object.
Kembali ke contoh object Kucing.
Ada banyak spesies Kucing, salah satunya adalah kucing anggora. Nah anggap aja, sekarang ada kucing anggora bernama MANISE.
Seperti pada umumnya, kucing MANISE ini bisa bersuara "Meong" atau kita sebut mengeong. Selain itu, kucing MANISE juga bisa tidur, makan, dan sebagainya.
Kucing MANISE juga memiliki warna yang bermacam-macam. Bentuk tubuh, panjang ekor yang juga bermacam-macam.
Selain itu, saat kita elus kepalanya, kucing tersebut juga akan menjadi manja.
Jadi.. Kalo kita hubungkan Kucing dengan VBA, maka Kucing adalah Object.
Kucing bisa mengeong, tidur, makan dan aktifitas lainnya maka pada Object VBA aktifitas itu disebut METHOD.
Kucing memiliki warna yang bermacam-macam, panjang ekor yang bermacam dan lain-lain, maka pada Object VBA karakteristik itu disebut PROPERTIES.
Kucing juga jadi bersikap manja saat kita elus, maka pada Object VBA perilaku itu disebut BEHAVIOR (EVENT).
Jadi, sebuah Object pada VBA akan memiliki Method, Properties dan Event.
Oke, itu dulu tentang OOP. Sekarang kita lanjut ke Object Module..
Apa itu Module?
Module adalah salah satu object VBA. Berbeda dengan Object Worksheet yang nampak di MS Excel, Module hanya berisi Code Editor saja. Dan di Code Editor pada Module inilah kita akan menulis baris program.
Secara Default, Module belum muncul. Untuk memunculkannya, pada VB Editor lakukan, klik kanan --> pilih Insert --> Pilih Module.
Maka akan muncul Module. Ingat, Module adalah Object yang hanya berisi Code Editor saja. Lihat gambar dibawah.
Apakah kita harus selalu menulis baris Program pada Module?
Selain menulis di object module, kita dapat pula menulis baris program pada masing-masing Code Editor yang ada pada object Sheet dan object Worksheet.
Dan untuk membuat Object Sheet baru, kita cukup menambah worksheet pada Workspace Excel. Secara otomatis, object sheet akan muncul di Visual Basic Editor.
Untuk memunculkan Code Editor pada Object Sheet cukup Klik dua kali pada salah satu object sheet pada project Explorer (di VB Editor).
Selain itu, dari Excel, kita juga bisa membuka Code Editor dengan Klik Kanan pada Tab Sheet --> Pilih View Code.
Akan muncul code editor berikut:
3. Menulis Program
Untuk permulaan, kita akan mencoba menulis program yang sangat sederhana. Kita akan memunculkan sebuah window pop-up!
Lihat gambar dibawah:
Semua baris program, harus berada di dalam antara Sub "nama" () dan End Sub. Dan ini kita sebut sebagai prosedur.
Setiap prosedur harus kita beri nama. Pada gambar diatas, nama prosedur adalah: Pesan. Jadi baris programnya adalah sebegai berikut:
Sub Pesan ()
MsgBox "Halo, ini VBA Code pertama saya!"
End Sub
MsgBox adalah fungsi untuk memunculkan window pop-up.
Dah, selesai baris program kita.
4. Menjalankan Baris Program dengan Button Controls Form
Setelah kita membuat prosedur, maka langkah berikutnya adalah memanggilnya.
Sekarang, coba buat sebuah Button Controls Form. Silahkan baca tutorial tentang ini pada link "Baca dulu".
Setelah membuat Button Controls Form (ingat, gunakan Button yang Controls Form), maka akan muncul window yang meminta kita untuk menyematkan sebuah macro pada Button yang telah kita buat. Yang dimaksud dengan macro ini adalah prosedur yang sebelumnya telah kita buat.
Dan.. Ternyata, prosedur yang tadi telah kita buat ada disana. Kita cukup pilih Prosedur (Macro) Pesan dan klik OK.
5. Inilah hasilnya
Kalau semua sudah OK, sekarang coba klik di cell sembarang agar Button yang baru saja kita buat tidak ter-pilih.
Ciri-ciri Button sedang ter-pilih adalah, muncul titik-titik disekeliling Button. Dan saat kita tidak sedang memilihnya, titik-titik itu hilang. Lihat gambar dibawah:
Dan, jika button tidak sedang terpilih, saat kursor kita berada di atas button, maka kursor kita akan berubah menjadi gambar Jari. Lihat gambar dibawah.
Dan sekarang, silahkan Klik.
Daaan... Yup.. Akan muncul window seperti dibawah.
Selamat! Anda baru saja membuat sebuah program VBA..!
Mengenal Statement
Sip..! Kita mulai dari pertanyaan, apa itu Statement di VBA Excel?
Statement di VBA adalah rangkaian kata-kata yang bisa dipahami oleh VBA agar VBA melakukan sesuatu sesuai keinginan kita. Agar bisa dipahami oleh VBA, kata-kata itu harus mengikuti aturan.
Anggap aja kita sedang bermain kode dengan teman kita. Sebelumnya, kita sudah punya kesepakatan urutan-urutan cara menulis kode. Agar bisa dipahami teman kita, maka kode yang kita tulis harus sesuai aturan yang kita sepakati. Dan kali ini, teman kita adalah VBA.
So, say hi to VBA.. Hi...!
Apa saja jenis-jenis Statement dalam VBA?
Statement VBA, bisa kita pilah-pilah menjadi 3 jenis. Agar program kita bisa digunakan, maka kita harus menggunakan semua statement-statement ini. Jadi, pembagian ini hanya untuk mempermudah pemahaman kita saja. OK..
Nah berikut statement-stemanet itu:
1. Declaration Statement
2. Assignment Statement
3. Executeable Statement
Dan kita akan bahas satu-satu berikut contoh-contohnya, so terus dibaca yah..
1. Declaration Statement
Sesuai namanya, Declaration (Deklarasi), statement ini digunakan untuk mendeklarasikan procedure, variable, array dan constant.
Woi, apaan semua itu?
Tenang, kita akan mempelajarinya di tutorial lainnya. Jadi, untuk saat ini, kita cukup tahu namanya dulu. Oke..
Kita coba pahami maksud kata, mendeklarasikan. Maksudnya mendeklarasikan disini adalah, mengumumkan kepada VBA, bahwa kita telah membuat procedure, variable, array dan constant. Artinya, VBA tidak boleh mengijinkan, jika ada yang menggunakan nama yang sama.
Di dalam deklarasi inilah kita menentukan jenis dan scope item yang kita deklarasikan.
Analoginya seperti ini:
Saya punya usaha yang saya beri nama Bebek Ngarasan. Agar orang-orang tidak menggunakan nama yang sama untuk usaha mereka, maka saya mendeklarasikan ini ke pemerintah.
Dalam deklarasi saya ini, saya menyebutkan jenis usaha saya yaitu rumah makan. Sehingga, orang yang akan datang ke tempat usaha saya, bukan orang-orang yang mau menjahitkan pakaian, atau cabut gigi, tapi orang yang lapar dan ingin makan.
Selain jenis usaha, saya juga harus menyebutkan scope (cakupan) usaha saya. Apakah nama saya ini berlaku untuk di kota ini saja, ataukan se provinsi saja, atau dalam negara ini saja, atau bahkan seluruh dunia? Jika saya cuma pilih di kota ini saja, maka orang lain boleh membuat nama yang sama di kota lain.
Kita liat contohnya ya..
Sub ContohProc()
Const Jumlahmobil As Integer
Dim Namakaryawan As String
' Statement-statement lainnya
End Sub
Ada tiga deklarasi statement pada contoh di atas yaitu:
- Deklarasi Procedure. Dideklarasikan menggunakan Sub() dan End Sub.
- Deklarasi Constant. Dideklarasikan dengan Const
- Deklarasi Variable. Dideklarasikan dengan Dim.
Untuk detil masing-masing item, akan dibahas di tutorial terpisah.
2. Assignment Statement
Statement ini, digunakan untuk menugaskan sebuah nilai ataupun expresions pada Variable dan Constant.
Analogi lagi yah:
Saya sudah mendeklarasikan usaha rumah makan Bebek Ngarasan. Nah, selanjutnya yang harus saya lakukan adalah mengisi rumah makan saya dengan kelengkapan. Baik barang-barang, karyawan juga peraturan.
Disini juga sama. Variabel dan Constant yang telah kita deklarasikan harus kita beri tugas (diisi). Statement untuk mengisi/menugaskannya disebut Assignment Statement.
Contoh yah:
Sub ContohProc()
Dim Namakaryawan As string
Const Jumlahmobil as integer
Namakaryawan = "ngarasan"
Jumlahmobil = 1
End Sub
Contoh di atas, saya memasukkan nilai string: ngarasan pada variable Namakaryawan. Dan selanjutnya memasukkan nilai integer: 1 pada constantJumlahmobil.
3. Executeable Statement
Kalo statement yang ini, statement yang digunakan agar VBA melakukan suatu aksi. Statement golongan ini, dapat mengeksekusi sebuah method atau functiondan juga melakukan loop (pengulangan) dan branch (percabangan) misal menggunakan If.
Oke, cara nelaahnya, kalo stement-stement sebelumnya bersifat pasif, hanya untuk persiapan, maka di statement inilah hasil-hasil persiapan sebelumnya di eksekusi. Statement ini sangat banyak dan bervariasi. Mulai dari Loop menggunakan berbagai macam jenis, misal For .. Next, While, dll. Percabangan menggunakan If,Case of, dsb. Dan, di statement inilah sebuah method dan function di exsekusi.
Apa itu method dan function, lihat tutorial berikutnya.
Ini adalah contoh Executable Statement , hmm sebenernya semua statement ada disini:
Sub ApplyFormat()
Const limit As Integer = 33
For Each c In Worksheets("Sheet1").Range("MyRange").Cells
If c.Value > limit Then
With c.Font
.Bold = True
.Italic = True
End With
End If
Next c
MsgBox "All done!"
End Sub
Contoh di atas, ada Deklarasi statement --> Sub() .. end sub, dan const.
Sub ApplyFormat()
Const limit As Integer = 33
End Sub
Selain itu juga ada assignment statement --> digabung dengan deklarasi constant.
Const limit As Integer = 33
Dan ada Executable Statement:
For Each c In Worksheets("Sheet1").Range("MyRange").Cells
If c.Value > limit Then
With c.Font
.Bold = True
.Italic = True
End With
End If
Next c
MsgBox "All done!"
Mengenal tentang Procedure
Emangnya, apa sih Procedure itu?
Oke, kita mulai dengan tahu dulu, baru tempe eh, maksudku, kita mulai dari tahu dulu apa itu Procedure.
Pake analogi aja yah, biar gampang. Bayangin sebuah Pabrik Motor. Mereknya terserah, mo honda, yamaha, toyota eh gak ada dink merek toyota. Pokoknya mereknya apa aja.
Sebuah pabrik motor, gak semua bagian motor itu dibuat sendiri dipabrik tersebut. Sering kali, beberapa bagiannya di-sub kan ke pabrik lain. Misalkan bagian ban. Ban tidak dibuat dipabrik motor, tapi dibuat oleh pabrik Ban. Bisa juga bagian softbraker. Bagian ini juga dikerjakan oleh pabrik lainnya lagi.
Jadi, ternyata sebuah motor yang kita beli itu, gak semua bagiannya di buat di pabrik pembuat motor. Tapi banyak yang di-sub kan ke pabrik lainnya.
Nah, Procedure itu persis seperti pabrik yang ngerjain Ban, pabrik yang ngerjain softbraker dan seterusnya.
Jadi, sebuah procedure akan menunggu perintah dan juga inputan dari procedure lain, kemudian mengerjakan perintah tersebut sesuai dengan inputan yang diberikan. Dan kalau sudah selesai dikerjakan, hasilnya dikembalikan ke procedure yang memerintahkannya.
Setidaknya, ada dua jenis Procedure yaitu:
1. Sub Procedure
2. Function Procedure
(Sebenernya ada 1 lagi jenis procedure yaitu Properties Procedure. Tapi yang ini ntar-ntar aja deh..)
Apa bedanya?
Tenang, ini juga mau dijelasin.
Sub Procedure
Sub procedure itu berisi baris program untuk mengolah sesuatu. Bila baris program selesai dilakukan, maka procedure ini akan berhenti dan menutup. Dan Program dikembalikan ke program utama.
Oke, sekarang kita pakai analogi pabrik tempe yah. Kan sering tuh makan tempe. Proses pembuatan tempe itu disederhanakan sebagai berikut:
1. Mulai pengerjaan
2. Kedelai dicuci bersih.
3. Kedelai dikupas kulitnya.
4. Kedelai direbus.
5. Kedelai diragi
6. Kedelai dibungkus.
7. Selesai
Jadi...
No. 1, program utama dimulai.
Saat sampai ke No.2, program utama memanggil sub procedure: pencucian kedelai. Jika kedelai sudah bersih, dikembalikan ke program utama.
Kemudian, saat sampai ke No.3, program utama memanggil sub procedure: pengupasan kulit. Jika kulit sudah terkelupas, dikembalikan ke program utama. Dan seterusnya sampai selesai.
Begitulah cara kerja Sub Procedure.
Function Procedure
Jika sub procedure cuma menjalankan program, maka function procedure melakukan kalkulasi dan mengeluarkan hasil untuk dipakai program utama.
Kita masuk lagi ke analogi pembuatan tempe. Ternyata, agar tempe dapat ter-ragi dengan sukses, maka harus menghitung besarnya kantong, banyaknya kedelai, dan banyaknya ragi. Jadi, kalo ada 10 kg kedelai, trus kantong plastiknya 1/4 kg-an, berapa jumlah ragi yang dibutuhkan?
Nah, agar pembuatan tempe-nya sukses, maka pada proses di atas, harus ditambahkan sebuah function procedure. Jadinya adalah sebagai berikut:
1. Mulai pengerjaan
2. Kedelai dicuci bersih.
3. Kedelai dikupas kulitnya.
4. Kedelai direbus.
5. Hitung jumlah ragi yang dibutuhkan umtuk 10 kg kedelai dan plastik 1/4 kg-an.
6. Kedelai diragi
7. Kedelai dibungkus.
8. Selesai
No.1 sampai No.4 masih sama seperti sebelumnya. Tapi setelah sub procedure: perebusan selesai, dan program dikembalikan ke program utama, maka program utama akan memanggil function procedure: penghitungan ragi. Inputan-nya adalah: kedelai 10 kg dan plastiknya 1/4 kg-an.
Function procedure kemudian akan menghitung dan memberikan hasil ke program utama. Misalkan hasilnya adalah 10 gram ragi. Hasil dari function ini bisa digunakan oleh procedure-procedure lainnya.
Kemudian, program utama akan memanggil sub procedure berikutnya hingga selesai.
Wah, tambah pusing..! Ada contoh pogramnya gak?
Oke, sekarang kita coba buat sebuah sub procedure ya. Semakin banyak latihan, semakin cepet pinter kan..
Pada gambar di atas, kita buat 2 sub procedure. (programutama dan testsubproc).
Sebenernya, dua-duanya adalah sub procedure, tapi untuk mempermudah gambaran, kita anggap yang pertama adalah program utama dan yang kedua sub procedure. Sesungguhnya, program utama itu ya Excel itu sendiri.
Oke pertama, kita buat program utama (anggap aja ini program utama ya, meski sebenernya sama-sama sub procedure).
Didalam program utama, kita memanggil sub procedure: testsubproc. Cara manggilnya gampang, cukup tulis namanya saja.
Sub programutama()
'didalam program utama, kita akan panggil sub procedure testsubproc
testsubproc
End Sub
Sekedar info, tanda petik satu ('), menunjukkan kalimat setelah tanda ini adalah sekedar keterangan saja. Dan VBA tidak akan memprosesnya sebagai baris program.
Nah, selenjutnya kita buat sub procedure testsubproc.
Sub testsubproc()
'sub procedure ini berisi sebuah perintah untuk menampikkan pesan.
MsgBox "halo..! saya lagi belajar VBA"
End Sub
Sekedar info lagi yah, perintah MsgBox sebenarnya adalah sebuah function loh. Tapi ini internal function, atau function yang udah built-in (dibuat) oleh Excel. Kita tinggal manggil aja.
Sekarang kita coba RUN program utama kita. Letakkan cursor pada programutama dan klik RUN seperti pada gambar dibawah.
Hasilnya adalah, akan muncul pesan seperti pada gambar berikut:
Sub Procedure kita SUKSES!!
Trus, gimana cara bikin Function Procedure?
Oke, sekarang kita coba buat sebuah function. Seperti pada sub procedure, kita akan pura-pura memiliki program utama (yang sebenernya adalah sebuah sub procedure juga. Ingat, program utama sesungguhnya adalah program Excel itu sendiri).
Biar gampang, kita tetap pakai code sebelumnya dan cukup kita tambah memanggil function procedure. Oke..
Function procedure kita adalah Penjumlahan. Berikut code function-nya:
Function penjumlahan(input1 As Integer, input2 As Integer) As Integer
'baris program di function untuk menjumlahkan dua variabel
penjumlahan = input1 + input2
End Function
Apa yang dilakukan code diatas adalah:
Function penjumlahan meminta inputan yang nantinya akan dimasukkan ke dalam variable input1 dan input2. Kedua variabel memiliki datatype integer. Hasil dari function ini tersimpan dalam variable penjumlahan dengan datatype yang juga integer. Selanjutnya, didalam function, kita tulis sebuah formula perhitungan dari variabel-variabel tadi (penjumlahan = input1 + input2).
Jadi, jika kita memanggil function penjumlahan dengan memberikan data inputan yang diminta, function akan memasukkan ke dalam variabel dan menghitungnya sesuai formula dan mengeluarkan hasilnya untuk pemanggil (program utama misalnya).
Oke, function sudah beres, sekarang waktunya memanggilnya di program utama. Ingat, kita masih memakai program utama sebelumnya dengan menambahkan pemanggilan function.
Sub programutama()
'didalam program utama, kita akan panggil sub procedure testsubproc
·· · testsubproc
'memanggil function procedure penjumlahan dan menampilkan hasilnya ke message box.
'input penjumlahannya adalah 2 dan 5. Hasilnya seharusnya 7.
MsgBox "ini hasil function : " & penjumlahan(2, 5)
End Sub
Pada program utama, function dipanggil bersamaan dengan perintah memunculkan pesan (perintah MsgBox). Data yang kita input adalah 2 dan 5.
Nah, jika kita RUN program utama kita (ingat, letakkan cursor pada program utama), maka akan muncul pesan seperti gambar dibawah. Hasil dari inputan 2 dan 5 adalah 7!
SUKSES LAGI!!!