in

Kombinasi Visual Basic dan Microsoft Excel dalam Berbagai Aplikasi

Seperti yang telah dijelaskan sebelumnya pada artikel mengenal macro excel bahwa terdapat dua cara untuk membuat Makro dalam Excel, yaitu dengan merekam (yang telah dibahas pada Bab sebelumnya) dan menggunakan Visual Basic for Application atau VBA.

VBA merupakan suatu bahasa pemrograman yang dikembangkan oleh Microsoft untuk bisa berjalan di dalam sebuah aplikasi yang sudah terintegrasi seperti Office. VBA memiliki fasilitas yang memungkinkan untuk membuat fungsi-fungsi khusus atau bahkan membuat suatu aplikasi secara mandiri.

Pada umumnya VBA ditulis pada Visual Basic Editor atau VBE yang telah disediakan oleh aplikasi yang mendukung VBA. VBE merupakan workspace berbasis GUI yang digunakan untuk membuat program dengan VBA. Hampir 90% program yang dibuat VBA mampu ditangani oleh VBE termasuk script dan user atau ActiveX.

2.1. Pendahuluan VBA

Pada bab sebelumnya telah dipelajari membuat Makro dengan cara merekamnya. Pada Bab ini akan dibahas cara lain membuat sebuah Makro yaitu dengan menggunakan Visual Basic for application atau VBA. Hal yang pertama yang harus diketahui sebelum membuat Makro dengan menggunakan VBA adalah bagaimana cara menampilkan VBA pada lembar kerja Excel.

Semua kebutuhan dalam membuat Makro telah tersedia dalam Tab Developer (unutuk menampilkan Tab Developer, lihat Bab I), begitu juga saat makro dibuat dengan VBA. Cara menampilkan VBA adalah dengan klik Visual Basic pada Tab Developer seperti pada Gambar 1.1 atau dengan menekan shortcut Alt + F11.

Gambar 2.1. Icon Visual Basic

Selanjutnya akan muncul tampilan lembar kerja VBA seperti pada Gambar 2.2.

Gambar 2.2. lembar Kerja VBA

Sebelum membuat makro dengan VBA yang harus diketahui adalah apa itu Object, Properti dan Event. VBA berasal dari Visual Basic (VB) yang merupakan bahasa pemrograman berbasis Pemrograman berorientasi objek (object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
Object atau objek adalah secara sederhana merupakan elemen yang menjadi bagian dari dokumen Excel. Tiap objek memiliki tipenya sendiri, bisa berupa tombol, cell, worksheet, dokumen workbook, dan banyak lagi tipe lainnya. Secara sederhana pengertian Object jika dihubungkan dengan keadaan sehari-hari merupakan sesuatu yang dapat melakukan atau dapat dilakukan aktifitas terhadapnya (misalnya hewan, meja, kursi, bahkan manusia merupakan sebuah object).
Sebagai contoh diketahui seekor burung, ada banyak jenis burung salah satunya adalah Kutilang. Seperti pada umunya Kutilang dapat bersuara yang biasa disebut dengan istilah “Berkicau”, selain itu Kutilang juga dapat melakukan aktifitas lain seperti makan, terbang dan sebagainya. Kutilang juga memiliki beberapa variasi warna bulu, bentuk tubuh, panjang ekor yang bermacam-macam. Pada contoh tersebut jika dihubungkan antara burung dengan VBA, maka burung merupakan Object, aktifitas yang dilakukan burung seperti makan, berkicau dan terbang merupakan sebuah method, serta warna, bentuk tubuh, dan panjang ekor merupakan properti.

2.2. Membangun VBA

Setelah banyak mengetahui tentang beberapa pengetahuan mengenai VBA, sekarang saatnya menyusun suatu Makro dengan VBA. Pembuatan bahasa VBA dapat ditulis salah satunya pada Module. Module dalam VBE (Visual Basic Editor) dapat dimunculkan dengan cara klik kanan pada VBAproject kemudian pilih menu insert dan pilih Module atau lebih jelasnya bisa dilihat pada Gambar 2.3.

Gambar 2.3. Membuat Module baru

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 akan ditulis baris program. Jika dapat diibaratkan Module merupakan sebuah object berupa kanvas atau kertas kosong yang didalamnya dapat dilukiskan seekor burung berwarna coklat yang sedang makan biji-bijian. Module dalam VBA atau yang diibaratkan sebuah kanvas tersebut dapat dilukiskan atau ditulis berbagai macam program dengan syarat memiliki struktur yang diijinkan oleh VBA. Umumnya semua kode VBA yang ditulis memiliki struktur sebagai berikut:
1. Object.Method
Suatu Object melakukan suatu aktifitas yang disebut dengan Method.
Burung.Berkicau
2. Object.Property
Selain melakukan aktifitas Object juga memiliki properti atau sifat-sifat yang melekat pada Object, dan biasany properti terbebut memiliki nilai atau value.
Burung.Bulu=Coklat
3. Object.Property.Sub-Property
Dalam penulisan kode VBA, selain memiliki properti Object juga dapat memiliki subproperti
Burung.Mata.Kanan=Hitam

2.2.1. Option Explicit

Bisanya Option Explicit diletakkan dibagian atas kode atau pada bagaian general. Option Explicit befungsi untuk memastikan bahwa semua variabel yang digunakan telah dideklarasikan sebelumnya. Jika terjadi kesalahan pengejaan variabel tanpa pengunaan Option Explicit VBA hanya mampu memberi tahu untuk membuat suatu variabel baru yang kemungkinan tidak sesuai yang diharapkan. Untuk lebih memahaminya perhatikan contoh pada Gambar 2.4.

Gambar 2.4. Contoh Tanpa Option Explicit

Pada Gambar 2.4. dapat dilihat bahwa variabel suhu yang telah dideklarasikan terjadi salah ketik pada kode yaitu hanya shu (tanpa huruf “U”). Jika kode tersebut dijalankan akan terlihat seperti Gambar 2.5.

Gambar 2.5. Contoh Run Tanpa Option Explicit

Pada Gambar 2.5. dapat dilihat bahwa hasil run kode tidak terdapat nilai suhu yang digunakan atau dengan kata lain tidak sesuai dengan kode yang telah dibuat. Hal ini akan menyulitkan jika kode yang telah dibuat sudah sangat komplek maka akan dibutuhkan waktu yang cukup lama untuk mencari kesalahan dari kode. Oleh karena itu perlu penambahan Option Explicit pada kode yang diletakkan diatas Sub ModulePertamaKu() atau lebih jelasnya bisa dilihat pada Gambar 2.6.

Gambar 2.6. Contoh dengan Option Explicit

Saat kode pada Gambar 2.6. dijalankan maka akan muncul peringatan bahwa variabel “shu” belum didefinisikan. Hal ini bisa dilihat seperti Gambar 2.7.

Gambar 2.7. Contoh Run dengan Option Explicit
2.2.2. Option Private Module

Pilihan ini memungkinkan Module yang telah dibuat dapat diakses oleh Module yang lain dalam satu proyek tetapi tidak dapat diakses oleh Module diluar proyek yang telah dibuat. Jika Option Private Module telah ditambahkan pada kode yang telah dibuat seperti Gambar 2.8. maka Module tersebut tidak akan muncul pada kotak dialog makro. Hal ini berfungsi untuk mencegah Module menjadi referensi proyek eksternal.

Gambar 2.8. Contoh dengan Option Private Module

Saat variabel dalam suatu Module ingin diakses oleh Module lainnya dalam suatu proyek perlu menuliskan nama Module sebelum nama variabel. Untuk lebih jelasnya dapat dilihat seperti Gambar 2.9.

Gambar 2.9. Contoh Memanggil Module Lain

Saat memanggil Module akan lebih mudah jika tidak menggunakan nama variabel yang sama (dengan variabel dalam suatu ruang lingkup proyek) karena akan mengakibatkan kebingungan variabel Module mana yang sedang diakses. Tetapi jika ingin menggunakan nama variabel yang sama maka lebih baik jika saat mendeklarasikan suatu variabel menggunakan Private untuk menghindari konflik saat dijalankan.

2.2.3. Option Compare {Binary|Text|Database}

Jika statemen Option Compare digunakan harus dituliskan atau ditempatkan pada awal module sebelum prosedure atau sub apapun.
Statemen Option Compare menentukan metode perbandingan string (Binary, Text atau Database) untuk module. Jika sebuah module tidak menggunakan statemen Option Compare, default metode perbandingan text adalah Binary.
Option Compare Binary hasil Binary dalam perbandingan string berdasarkan tata urutan yang berasal dari representasi biner internal karakter. Pada Excel, urutan ditentukan oleh halaman kode. Sebuah urutan biner khas ditunjukkan dalam contoh berikut: “AAA” < “aaa”.
Option Compare Text hasil dalam perbandingan string berdasarkan tata urutan teks case-insensitive ditentukan oleh sistem lokal Anda. Ketika karakter yang sama diurutkan menggunakan Option Compare Text , urutan teks berikut semacam ini dihasilkan: (A=a) < ( À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø).
Option Compare Database hanya dapat digunakan dalam Microsoft Access. Hal ini menyebabkan perbandingan string berdasarkan urutan ditentukan oleh ID lokal dari database dimana perbandingan string terjadi.

2.2.4. Option Base {0|1}

Sebuah array dibatasi oleh batas bawah dan batas atas. Secara default, batas bawah array adalah nol (0). Apabila batas bawah array adalah nol (0), maka pada Indeks diisikan dengan jumlah elemen dikurangi satu. Misalnya, akan digunakan 5 elemen array, maka pada saat mendeklarasikan array, Indeks diisikan dengan angka 4.
Selain dengan menggunakan batas bawah nol (0), juga dapat merubah batas bawah array dengan angka satu (1) dengan cara menambahkan pernyataan Option Base. Jika pilihan ini tidak ditentukan, standarnya batas bawah suatu array adalah 0.

2.3. Procedure

Procedure merupakan sekumpulan dari pernyataan yang melakukan satu atau beberapa tugas yang telah diberikan. Sebuah procedure akan menunggu perintah dan juga inputan dari procedure lain, kemudian mengerjakan perintah tersebut sesuai dengan inputan yang diberikan Jika sudah selesai dikerjakan maka hasilnya dikembalikan ke procedure yang memerintahkannya. Setidaknya terdapat dua Procedure yang sering digunakan yaitu : Subroutines dan Functions. Perbedaan dari keduanya adalah Subroutines berisi baris program untuk mengolah sesuatu. Jika baris program selesai dilakukan maka procedure ini akan berhenti dan menutup, dan program dikembalikan ke program utama. Sedangkan Functions melakukan kalkulasi dan mengeluarkan hasil untuk dipakai program utama.

2.3.1. Subroutines

Subroutines merupakan bagian terkecil dari suatu program yang akan dijalankan. Secara umum struktur yang digunakan dalam Subroutines adalah sebagai berikut :

[Private|Public|Friend][Static] Sub SubRoutineName ((parameters))
[statements]
End Sub

Private Subroutines dengan awal private hanya dapat dipanggil oleh Subroutines atau Funtions lain dalam satu Module.
Public Subroutines dengan awal public dapat dipanggil oleh Suroutines, Functions atau ClaasModule lainnya. Public Subroutines merupakan Subroutines default yang telah terdapat pada VBA.
Friend Kata kunci ini biasanya hanya digunakan pada Modul Class
Static Digunakan di tingkat prosedur untuk mendeklarasikan variabel dan mengalokasikan ruang penyimpanan. Variabel dideklarasikan dengan pernyataan Static mempertahankan nilai-nilai yang digunakan selama kode berjalan.
Parameters Dalam pembuatan Subroutines dapat mendeklarasikan satu atau lebih Parameters yang akan digunakan. Ketika Parameters yang digunakan telah ditentukan, prosedur yang digunakan untuk memanggil atau mengeksekusi Subroutines harus menyediakan nilai untuk parameter apapun yang diperlukan.
Supaya dapat lebih mempermudah penjelasan tentang deklarasi Subroutines, sekarang waktunya membuat sebuah Public Subroutines dengan nama SubroutinesPertamaSaya. Hal yang pertama yang harus dilakukan adalah:
1. Membuka lembar kerja Excel
2. Menampilkan halaman VBE dengan cara Developer – Visual Basic atau dengan shortcut Alt + F11
3. Mebuat Modul baru dengan cara Insert – Modul atau bisa dilihat pada Gambar 2.3.
4. Menuliskan kode sebagai berikut :

Sub SubroutinesPertamaSaya()
MsgBox “Hallo ini adalah Subroutines Pertama Saya !!!! Semangat Belajar”
End Sub

5. Menjalankan kode yang telah dibuat dengan klik run atau tekan F5

2.3.2. Fungsi dari MsgBox

MsgBox (kotak pesan) adalah sebuah kotak dialog yang dapat digunakan dalam Excel VBA untuk menampilkan informasi kepada pengguna program. Selain itu MsgBox juga dapat digunakan untuk input maupun output suatu program, misalnya untuk menghasilkan input Yes/No/Cancel yang selanjutnya digunakan untuk masukan langkah program berikutnya. MsgBox juga dapat digunakan untuk menghambat error yang dihasilkan dari input variabel yang tidak tepat, misalnya dengan cara memberi peringatan kepada pengguna program bahwa input variabel kurang tepat atau tidak lengkap.
Secara umum stuktur dalam penulisan MsgBox adalah sebagai berikut:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

Parameter prompt merupakan teks yang ingin ditampilkan, sedangkan buttons parameter merupakan tombol kontol yang ingin ditampilkan pada MsgBox. Jika dalam pembuatan MsgBox parameter buttons tidak dimasukkan nilainya maka secara default akan bernilai 0 (OK Only). Parameter title merupakan teks yang akan ditampilkan pada kolom judul pada kotak pesan. Jika parameter title tidak diberikan nilainya maka secara default teks yang akan muncul adalah Microsoft Excel. Parameter yang tersisa hanya akan digunakan jika aplikasi yang dibuat akan dikembangkan untuk dimasukkan kustom help.
Untuk lebih memahaminya, terdapat contoh penulisan kode untuk MsgBox. Pada contoh ini parameter yang digunakan adalah VbYesNo yang berfungsi menampilkan pilihan Yes/No. Pilihan tersebut berfungsi sebagai input pada aplikasi untuk melanjutkan program berikutnya. Sementara itu judul yang digunakan pada MsgBox pada conto adalah “Coba MsgBox”. Secara sederhana kode tersebut dapat dituliskan sebagai berikut:

Sub Coba_MsgBox()
Dim Jawaban As String
Jawaban = MsgBox(“Apakah Kamu mencitaiku?”, vbYesNo, “Coba MsgBox”)

If Jawaban = vbYes Then
MsgBox “Aku juga sangat mencitaimu”, vbOKOnly, “Cinta itu indah”
Else
MsgBox “Aku merasa sedih dengan itu”, , “Patah hati”
End If

End Sub
Jika kode yang telah dibuat dijalankan maka akan dihasilkan tampilan seperti Gambar 2.10.

Gambar 2.10. Hasil run MsgBox (*Hasil run awal, **Jika jawaban Yes, ***Jika jawaban No)

Ada beberapa parameter yang dapat digunakan dalam MsgBox antara lain seperti pada Tabel 2.1.

Tabel 2.1. Parameter MsgBox

2.3.3. Functions

Functions mempunyai kegunaan yang hampir sama dengan Subroutines, tetapi Functions mampu mengembalikan nilai yang telah dikalkulasi dengan Procedure kepada program utama. Pada Excel Functions secara default juga telah digunakan pada rumus-rumus, misalnya untuk mencari jumlah digunakan =SUM(), mencari rata-rata digunakan =AVERAGE(), mencari nilai terbesar digunakan =MAX, dan lain sebagainya.
Pada saat mendeklarasikan Functions, hal yang tidak boleh terlewatkan adalah mendefinisikan tipe data dari nilai yang nantinya akan dikembalikan pada program utama. Jika tidak didefinisikan tipe data dari nilai output Functions akan secara default menjadi Variant. Secara umum penulisan untuk Funtions adalah sebagai berikut:

[Private|Public|Friend][Static] Function FunctionName ( (parameters) ) [As Type]
[statements]
FunctionName = FunctionResult
End Function

Perbedaan mendasar antara Subrutin dan Function adalah yang pertama terletak pada awal penulisan jika Subrutin menggunakan Sub, maka Function menggunakan Function. Begitu juga pada akhir penulisan dengan End Sub dan End Function. Selanjutnya, yang kedua [As Type] digunakan untuk menentukan tipe data yang digunakan. Meskipun pada [As Type] terdapat tanda kurung yang berarti bersifat opsional (dapat ditentukan ataupun tidak) tetapi sangat disarankan untuk menentukannya. Perbedaan terakhir adalah pada Function harus ditentukan letak dimana Function tersebut akan dieksekusi. Untuk lebih mudah memahami tentang Function, sebagai contoh jika terdapat sebuah persamaan
Pada Persamaan 1 dapat diketahui bahwa ingin dicari nilai y dengan semua kemungkinan nilai x atau secara mudahnya nilai y sangat bergantung pada nilai x. Secara sederhana penulisannya adalah sebagai berikut :

Function coba(x) As Variant
coba = 10 * x ^ 2 + 12 * x + 2
End Function

Pada baris pertama terdapat tulisan Function coba(x) As Variant, ini berarti Function tersebut mempunyai nama “coba” untuk menggantikan variabel y. Nilai variabel y sangat bergantung pada nilai x bisa ditulis y(x) atau pada kasus ini coba(x). Baris kedua merupakan cara kerja atau isi dari Function, karena pada kasus ini nama function adalah coba sehingga selalu mengeksekusi coba=(Persamaan 1). Akhirnya ditutup dengan End Function.
Terdapat beberapa cara untuk menjalankan Function yang telah dibuat pada lembar kerja Excel. Pertama dengan select salah astu cell pada lembar kerja misalnya saja A1, kemudian pilih menu Formulas kemudian pilih dan klik Insert Function, sehingga akan muncul tampilan seperti pada Gambar 2.11.

Gambar 2.11. Tampilan Insert Function

Pada kolom Or select a catagory pilih User Defined, dan terakhir pilih Function yang telah dibuat (pada contoh ini adalah coba). Klik Ok sehingga muncul tampilan seperti Gambar 2.12. Pada Gambar 2.12. terdapat sebuah kolom kosong yang merupakan nilai dari x. Kolom tersebut dapat di isikan sebuah angka ataupun cells. Sebagai contoh jika dimasukkan nilai 2 maka hasilnya adalah 66. Sebagai langkah akhir lik ok, maka pada cell A1 akan muncul nilai 66.

Gambar 2.12. Tampilan Function Arguments

Cara lain untuk menjalankan sebuah Function adalah dengan mengetik langsung sintaks di cell pada lembar kerja Excel. Sebagai perbandingan dengan cara sebelumnya pada cell B1 ketik =coba(2) kemudian tekan Enter, akan muncul hasil 66, hasil yang ditampilkan sama dengan cara sebelumnya.

2.4. Tipe Data

Ketika membuat sebuah variabel hal yang harus diketahui adalah apa jenis variabel yang akan dibuat dan tipe data apa yang sesuai dengan variabel yang telah dibuat. Variabel dalam hal ini merupakan sesuatu yang dapat menyimpan sebuah nilai. Variabel dapat dinyatakan secara khusus untuk menampung beberapa jenis nilai atau jenis data. Jika mendeklarasikan sebuah variabel yang mampu menyimpan nilai integer, variabel tersebut disebut sebagai variabel integer. Jika tidak yakin dengan jenis data variabel yang akan dibuat, variabel dapat dideklarasikan sebagai variant. Sebuah variant adalah jenis khusus dari variabel yang dapat mewakili apa pun. Macam-macam tipe data dan fungsinya terdapat pada Tabel 2.2. Ketika telah yakin telah memahami macam-macam dan fungsi dari tipe data ada baiknya mencoba untuk menerapkannya dalam berbagai variasi kode dalam program yang akan dibuat.

Tabel 2.2. Tipe Data

2.5. Deklarasi Variabel

Variabel dapat diasumsikan sebagai tempat dalam memori yang berfungsi menampung data. Dalam kode program dapat digunakan satu atau lebih dari satu variabel, dan variabel dapat mengandung kata-kata, angka, tanggal atau property. Variabel sangat berguna karena dengan variable kita dapat menyingkat dan mengingat sebuah nama yang kita jadikan variabel. Variabel dapat menyimpan informasi yang dimasukkan pemakai saat program dijalankan, hasil dari perhitungan tertentu atau data yang ingin ditampilkan pada form. Jadi variabel adalah sarana yang sederhana dan mampu menyimpan hamper semua jenis informasi.
Sebagai contoh jika kita membuat sebuah program untuk toko alat tulis yang menjual buku. Kita mungkin tidak dapat mempredikskan harga dan jumlah buku yang terjual sampai penjualan benar-benar terjadi. Kita dapat menggunakan dua variable untuk permasalahan tersebut yaitu HARGA dan JUMLAH.
Variabel harus dideklarasikan sebelum digunakan. Ketika mendeklarasikan variable, tentukan nama dan tipe data yang akan ditampung variable tersebut. Dalam visual basic perintah yang sering digunakan untuk mendeklarasikan veriabel adalah Dim. Dim kependekan dari dimensi. Format penulisan deklarasi variabel adalah :

Dim VariableName [As DataType]
VariableName adalah nama variable yang dideklarasikan, sedangkan DataType adalah tipe data yang disimpan dalam variable. Secara sederhana untuk mudah memahami perhatikan contoh berikut :

Dim RowCount As Integer
Dim WorksheetName As String
Dim CellValue As Variant
Dim Salary As Currency

Sebagai catatan jika variabel yang akan dibuat tidak diketahui spesifikasi tipe datanya, alangkah baiknya jika tipe data ditulis dalam bentuk variant. Misalnya saja pada variabel CellValue dideklarasikan mempunyai tipe data variant atau atau lebih mudahnya variabel dideklarasi tanpa diikuti tipe data yang akan digunakan, sehingga secara default tipe data yang digunakan adalah variant.

Dim CellValue

Ketentuan penulisan nama variable :
1. Harus diawali dengan huruf
2. Dapat berisi angka, huruf, karakter kusus, misalnya “_”
3. Maksimum 255 huruf dan minimum 1 huruf
4. Tidak boleh ada spasi
5. Tidak boleh menggunakan nama variable yang sama dalam satu bagian

2.6. Operator

Operator adalah unsur bahasa pemrograman yang dapat digunakan untuk baik membuat perbandingan atau mengubah nilai unsur program dalam beberapa cara. Salah satu kegunaan utama dari elemen adalah untuk melakukan operasi matematika. Untuk operasi matematika, cara penggunaan operator ini sama halnya ketika menyelesaikan persamaan dasar secara manual. Beberapa operator yang dapat digunakan dalam VBA dapat dilihat pada Tabel 2.3.

Tabel 2.3. VBA Operators

2.7. Statements

Di dalam VBA statements dapat diartikan sebagai sebuah instruksi yang lengkap. Penggunaan statements memungkinkan untuk menerapkan perulangan dan membuat keputusan logis. Berdasarkan jenisnya statements dibagi menjadi 3
a. Declaration Statements
Declaration (Deklarasi), statement ini digunakan untuk mendeklarasikan procedure, variable, array dan constant.
b. Assignment Statement
Statement ini, digunakan untuk menugaskan sebuah nilai ataupun expresions pada Variable dan Constant.
c. Executeable Statement
Executeable Statement adalah statement yang digunakan agar VBA melakukan suatu aksi. Statement golongan ini, dapat mengeksekusi sebuah method atau function dan juga melakukan loop (pengulangan) dan branch (percabangan) misal menggunakan If.

2.7.1. If Statement

If statement atau kondisi merupakan hal dasar dalam setiap bahasa pemrograman. If statement digunakan untuk mengetahui nilai kebenaran dari suatu pernyataan, apabila bernilai benar maka akan dilakukan perintah ini dan apabila bernilai salah maka akan dilakukan perintah itu. Kira-kira begitulah fungsi dari If statement. Cara penulisan if statement adalah:

If kondisi Then pernyataan

atau

If kondisi Then
pernyataan-pernyataan
End If

Kondisi biasanya berupa suatu perbandingan, maupun ekspresi yang menghasilkan nilai numerik. Visual Basic menginterpretasikan False sebagai nol (0), dan True sebagai bukan nol.

Pada suatu kondisi tertentu perlu menggunakan If…Then…Else untuk mendefinisikan beberapa blok pernyataan yang akan dijalankan salah satu berdasarkan kondisi yang memenuhi syarat.

If kondisi1 Then
[blok pernyataan-1]
[ElseIf kondisi2 Then
[blok pernyataan-2]] …
[Else
[blok pernyataan-n]]
End If

Visual Basic awalnya akan mencoba kondisi1. Jika False, maka Visual Basic akan memeriksa kondisi2, dan seterusnya sampai menemukan suatu kondisi True untuk dijalankan blok pernyataannya.
Contoh:
Suatu aplikasi dibuat untuk mengkonversi nilai suhu berdasarkan satuan yaitu dari oC menjadi K, oF menjadi oC , dan sebagainya. Sebagai gambaran berapa suhu ruangan dalam oFahrenheit , jika diketahui suhu ruangan dalam oCelcius bernilai 25.

Sub convert_suhu()
‘Membuat bagan
Worksheets(“Sheet1”).Select
[A1].Value = “Suhu”
[B1].Value = “Satuan”
[C1].Value = “Suhu Konversi”
[D1].Value = “Satuan Konversi”

‘Deklarasi Variabel
Dim suhu As String
Dim satuan As String
Dim suhu_kon As Integer
Dim satuan_kon As String

suhu = InputBox(“berapakah suhu ruangan dalam derajat Celcius?”, “Suhu Ruangan”)
satuan_kon = InputBox(“nilai dikonversi ke satuan?” & vbCrLf & “a.Fahrenheit b.Kelvin”, “Satuan”)
satuan = “Celcius”
‘If Statement 1
If satuan_kon = “a” Then
suhu_kon = suhu / 5 * 9 + 32
[D2].Value = “Fahrenheit”
ElseIf satuan_kon = “b” Then
suhu_kon = suhu + 273
[D2].Value = “Kelvin”
Else
MsgBox “Pilihan tidak tersedia”, , “Error”
Exit Sub
End If
[A2].Value = suhu
[B2].Value = satuan
[C2].Value = suhu_kon
End Sub

Jika di run maka akan muncul dialog seperti Gambar 2.13.

Gambar 2.13. Input Box Suhu

Maka berinilai 25, pada input box yang tersedia, klik OK dan akan muncul dialog selanjutnya

Gambar 2.14. Input Box Satuan

Beri nilai a atau b, pada kasus ini nilai yang diberikan adalah a, sehingga hasil yang didapatkan adalah seperti pada Gambar 2.15.

Gambar 2.15. Hasil Run If Statement

Program yang telah dibuat menggunakan if statement masih memiliki kelemahan yaitu jika pada input box suhu bernilai kosong atau tidak diisi maka program yang dibuat akan mengalami error. Untuk mengatasi masalah tersebut perlu dilakukan modifikasi seperti pada Gambar 2.16.

Gambar 2.16. Modifikasi Mengatasi Error
2.7.2. Select Case

Visual Basic menyediakan struktur Select Case sebagai suatu alternatif terhadap If…Then…Else. Suatu Select Case statement memiliki kemampuan yang sama dengan If…Then…Else…, tetapi membuat code lebih mudah dibaca.
Struktur Select Case bekerja dengan suatu percobaan tunggal yang hanya dievaluasi satu kali pada bagian atas struktur. Visual Basic then membandingkan hasil ekspresi dengan nilai pada setiap Case didalam struktur tersebut, jika ada yang sesuai, akan dijalankan blok statement yang sesuai

Select Case ekspresiyangdicoba
[Case ekspresi1
[blokpernyataan-1]]
[Case ekspresi2
[blokpernyataan-2]]

[Case Else
[blokpernyataan-n]]
End Select
Contoh
Akan di konversi nilai suhu ruangan dari oCelcius ke oFehrenheit atau sebaliknya.

Sub convert_suhu()
‘Membuat bagan
Worksheets(“Sheet1”).Select
[A1].Value = “Suhu”
[B1].Value = “Satuan”
[C1].Value = “Suhu Konversi”
[D1].Value = “Satuan Konversi”

‘Deklarasi Variabel
Dim suhu As String
Dim satuan As String
Dim suhu_kon As Integer
Dim satuan_kon As String

suhu = InputBox(“berapakah suhu ruangan?”, “Suhu Ruangan”)
‘ Modifikasi
‘ **********
If suhu = “” Then
MsgBox “Tidak ada nilai suhu yang dimasukkan”, , “error”
Exit Sub
End If
‘***********
satuan_kon = InputBox(“nilai dikonversi ke satuan?” & vbCrLf & “a.Celcius ke Fahrenheit” & vbCrLf & “b.Fahrenheit ke Celcius”, “Satuan”)
‘Case Statement
Select Case satuan_kon
Case Is = “a”
suhu_kon = suhu / 5 * 9 + 32
[B2].Value = “Celcius”
[D2].Value = “Fahrenheit”
Case Is = “b”
suhu_kon = (suhu – 32) / 9 * 5
[B2].Value = “Fahrenheit”
[D2].Value = “Celcius”
Case Else
MsgBox “Pilihan tidak tersedia”, , “Error”
Exit Sub
End Select
[A2].Value = suhu
[C2].Value = suhu_kon
End Sub

Setelah di run dan dimasukkan nilai 30 pada input box suhu dan a pada input box satuan maka didapatkan hasil run seperti Gambar 2.17.

Gambar 2.17. Hasil Run Select Case
2.7.3. Fungsi AND dan OR

Pada penggunaan fungsi logika, terkadang sering menemukan masalah-masalah yang rumit. Pada kasus tersebut penggunaan AND dan OR mungkin dapat membantu. Fungsi AND, dan OR digunakan untuk menyatakan suatu kondisi sesuai dengan kondisi yang diberikan. Pernyataan yang dimasukkan akan memberikan dua kemungkinan, yaitu TRUE atau FALSE.
Struktur dalam penggunaan imbuhan AND pada operasi logika if adalah sebagai berikut:

If [kondisi1) And (kondisi2) then
Pernyataan1
Else
Pernyataan2
End If

Pada operasi logika If dengan tambahan And untuk kondisi1 dan kondisi2, jika kedua kondisi mengevaluasi True, hasilnya adalah True. Jika kondisi baik mengevaluasi ke False, hasilnya adalah False. Tabel 2.4 akan menggambarkan bagaimana hasil logika tersebut ditentukan.

Tabel 2.4 Prinsip Logika AND

Struktur penggunaan imbuhan OR pada operasi logika If adalah sebagai berikut:

If [kondisi1) And (kondisi2) then
Pernyataan1
Else
Pernyataan2
End If

Pada operasi logika If dengan tambahan Or untuk kondisi1 dan kondisi2, jika salah satu atau kedua kondisi mengevaluasi True, hasilnya adalah True. Tabel 2.5 akan menggambarkan bagaimana hasilnya ditentukan.
Tabel 2.5 Prinsip Logika OR

2.8. Fungsi Perulangan

Perulangan atau yang biasa disebut dengan istilah looping adalah suatu proses pemberian instruksi-instruksi sampe suatu kondisi dapat terpenuhi. Looping adalah salah satu teknik pemrograman yang paling kuat. Menciptakan loop di dalam Excel VBA memungkinkan untuk melakukan loop melalui beragam cell dengan hanya beberapa baris kode. Dalam Excel VBA dikenal macam-macam jenis perulangan yaitu Do Loop, For Next, For Each Next.

2.8.1. Do Loop

Do loop digunakan untuk mengeksekusi suatu blok statement dengan jumlah perulangan yang tak terhingga, ada beberapa Do…Loop statement, tetapi masing-masing mengevaluasi suatu kondisi untuk menentukan apakah melanjutkan eksekusi. Berikut ini adalah statement Do…Loop, yang dijalankan selama kondisi benar :

Do While condition
Statements
Loop

Ketika Visual menjalankan Do loop ini, pertama kali akan di coba kondisinya, jika kondisi False (zero), akan diloncati semua statements yang mengikuti kondisi tersebut. Visual Basic akan menjalankan statements jika kondisi benar dan kembali ke Do…Loop berikutnya.

Contoh :
Menentukan nomor acak sampai jumlah angka acak kurang dari 0,5 berjumlah 20 nomor

Sub Do_WhileLoop()
Dim a(200)
n = 20
c = 0
Do While c < n
b = Rnd()
If b <= 0.5 Then
c = c + 1
a(c) = b
Worksheets(“sheet2”).Cells(c + 1, 1) = c
Worksheets(“sheet2”).Cells(c + 1, 2) = a(c)
End If
Loop
End Sub

2.8.2. For Next

Pada prinsip dasarnya perulangan mempunyai dua kondisi dasar yaitu kondisi awal atau sering dikenal dengan istilah initial condition dan kondisi batas atau boundary condition. Intial Condition digunakan pada perulangan yang hanya diketahui nilai awalnya saja, sedangkan nilai akhirnya tidak terbatas jumlahnya dan akan akhiri dengan suatu syarat tertentu. Do loop akan bekerja sangat baik pada perulangan dengan tipe initial condition.
Perulangan dengan tipe boundary condition telah dilengkapi nilai batas awal dan batas akhir. Nilai awal dan akhir tersebut akan dibagi menjadi beberapa part yang disebut increment. Berikut adalah statement dari For Next yang dijalankan sesuai kondisi batas yang diberikan

For counter = start To end [Step increment]
statements
Next [counter]

Contoh : Menentukan nilai phi (π) lingkaran dengan metode Monte Carlo

Sub monte()
cc = 0
n = 1000
For i = 1 To 20
c = 0
For j = 1 To n
a = Rnd() – 0.5
b = Rnd() – 0.5
If Sqr(a * a + b * b) < 0.5 Then
c = c + 1
Else
c = c
End If
Next j
Pi = 4 * c / n
Worksheets(“Sheet2”).Cells(i + 2, 1) = i
Worksheets(“Sheet2”).Cells(i + 2, 2) = Pi
cc = cc + Pi
Worksheets(“Sheet2”).Cells(i + 2, 3) = cc / i
Next i
End Sub

What do you think?

Comments

Leave a Reply

Loading…

0

Melawan kanker dengan kunyit putih

Pemodelan Matematika dan Penyelesaian Masalah Dalam Teknik