Mahir Visual Basic

103
Pernyataan: Background Cover ini menunjukkan Keaslian Ebook ini yang sesuai / sama dengan Cover CD depan aslinya. Dan bila background / Cover setiap Ebook yang ada dalam CD tidak sama dengan cover CD depan, maka Ebook tersebut tidak asli.

Transcript of Mahir Visual Basic

Page 1: Mahir Visual Basic

Pernyataan: Background Cover ini menunjukkan Keaslian Ebook ini yang sesuai / sama dengan Cover CD depan aslinya. Dan bila background / Cover setiap Ebook yang ada dalam CD tidak sama dengan cover CD depan, maka Ebook tersebut tidak asli.

Page 2: Mahir Visual Basic

Mahir dan Professional Visual Basic [email protected] IlmuKomputer.Com

Mahir dan professional Visual Basic Penulis : Muhammad Syahrizal

Page 3: Mahir Visual Basic

Kutipan Pasal 44, Ayat 1 dan 2, Undang-Undang Republik Indonesia tentang HAK CIPTA: Tentang Sanksi Pelanggaran Undang-Undang Nomor 6 Tahun 1982 tentang HAK CIPTA, sebgaimana telah diubah dengan Undang-Undang No.7 Tahun 1987 jo. Undang-Undang No.12 Tahun 1997, bahwa: 1. Barangsiapa dengan sengaja dan tanpa hak mengumumkan atau Memperbanyak suatu ciptaan atau memberi izin untuk itu, dipidana dengan pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak Rp.100.000.000,- (seratus juta rupiah). 2. Barangsiapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu ciptaan atau barang hasil pelanggaran Hak Cipta sebagaimana dimaksud dalam ayat (1), dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp.50.000.000,- (lima puluh juta rupiah).

Page 4: Mahir Visual Basic

Mahir dan Professional Visual Basic Muhammad Syahrizal, SE, SH, S.Komp ©2007, Gratech Media Perkasa, Medan Hak cipta dilindungi undang-undang Diterbitkan pertama kali oleh Penerbit Gratech Media Perkasa Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian atau seluruh isi buku ini tanpa izin tertulis dari penerbit.

Page 5: Mahir Visual Basic

1

Cepat Mahir Visual Basic 6.0 1.1 Mengenal Visual Basic (VB) Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintah-perintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu. Bahasa pemrograman Visual Basic, yang dikembangkan oleh Microsoft sejak tahun 1991, merupakan pengembangan dari pendahulunya yaitu bahasa pemrograman BASIC (Beginner’s All-purpose Symbolic Instruction Code) yang dikembangkan pada era 1950-an. Visual Basic merupakan salah satu Development Tool yaitu alat bantu untuk membuat berbagai macam program komputer, khususnya yang menggunakan sistem operasi Windows. Visual Basic merupakan salah satu bahasa pemrograman komputer yang mendukung object (Object Oriented Programming = OOP). 1.2 Mengenal Integrated Development Environment (IDE) VB 6 Aktifkan VB 6 melalui tombol Start > Programs > Microsoft Visual Studio 6.0 > Microsoft Visual Basic 6.0. Tunggulah beberapa saat hingga muncul tampilan berikut :

Pilih Standard EXE dan klik tombol Open. Anda akan melihat tampilan area kerja atau IDE VB 6.

Page 6: Mahir Visual Basic

2

Kenali bagian-bagian utama di dalam IDE VB 6 berikut ini :

Bila Toolbox tidak muncul klik tombol Toolbox ( ) pada bagian Toolbar atau klik menu View > Toolbox. Jendela Form Bila Jendela Form tidak muncul klik tombol View Object ( ) pada bagian Project Explorer atau klik menu View > Object. Jendela Code Bila Jendela Code tidak muncul klik tombol View Code ( ) di pada bagian Project Explorer atau klik menu View > Code. Project Explorer Bila Project Explorer tidak muncul klik tombol Project Explorer ( ) pada bagian Toolbar atau klik menu View > Project Explorer. Jendela Properties Bila Jendela Properties tidak muncul klik tombol Properties Window ( ) pada bagian Toolbar atau klik menu View > Properties Window.

Page 7: Mahir Visual Basic

3

1.3 Memahami Istilah Object, Property, Method dan Event Dalam pemrograman berbasis obyek (OOP), anda perlu memahami istilah object, property, method dan event sebagai berikut : Object : komponen di dalam sebuah program Property : karakteristik yang dimiliki object Method : aksi yang dapat dilakukan oleh object Event : kejadian yang dapat dialami oleh object Sebagai ilustrasi anda dapat menganggap sebuah mobil sebagai obyek yang memiliki property, method dan event. Perhatikan gambar berikut :

Implementasinya dalam sebuah aplikasi misalnya anda membuat form, maka form tersebut memiliki property, method, dan event. Sebagaimana pemrograman visual lain seperti Delphi daan Java, VB juga bersifat event driven progamming. Artinya anda dapat menyisipkan kode program pada event yang dimiliki suatu obyek.

Page 8: Mahir Visual Basic

4

Menggunakan Event dan Property 1.1 Membuat User Interface (UI) Aktifkan VB 6 melalui tombol Start. Kenali jenis-jenis komponen (control) yang ada di dalam bagian ToolBox :

Pada Jendela Form buatlah UI seperti ini :

Cara membuatnya : Klik komponen Label di dalam ToolBox kemudian “gambar” object Label1 di dalam Form dengan cara drag-drop. Lakukan langkah yang sama untuk object Label2. Object Text1 di-“gambar” menggunakan komponen TextBox, sedangkan object Command1 dan Command2 menggunakan komponen Command Button.

Page 9: Mahir Visual Basic

5

1.2 Mengatur Property Object Kenali bagian-bagian di dalam Jendela Properties :

Melalui Jendela Properties atur property setiap object sebagai berikut :

Sehingga UI-nya menjadi seperti ini :

Page 10: Mahir Visual Basic

6

1.3 Menulis Kode Program : Property Test Buka Jendela Code dan kenali bagian-bagian di dalamnya :

Program yang berbasis Windows bersifat event-driven, artinya program bekerja berdasarkan event yang terjadi pada object di dalam program tersebut. Misalnya, jika seorang user meng-klik sebuah tombol maka program akan memberikan “reaksi” terhadap event klik tersebut. Program akan memberikan “reaksi” sesuai dengan kode-kode program yang dibuat untuk suatu event pada object tertentu. Pilih object Command1 pada bagian Object Selector. Secara otomatis pada bagian Code Editor akan muncul blok kode program berikut : Private Sub Command1_Click() End Sub Event Selector Code Editor Object Selector Event Click merupakan event default (standar) dari object Command1, Anda bisa melihat event lainnya pada bagian Event Selector. Pada bagian Code Editor ketikkan kode programnya sebagai berikut : Private Sub Command1_Click() Label2.Caption = Text1.Text End Sub Private Sub Command2_Click() End End Sub Simpan Project1 (nama file : Latihan.vbp) dan Form1 (nama file : Lat1.frm). VB 6 akan menyimpan program yang Anda buat ke dalam beberapa file yang saling terkait, antara lain : file project (*.vbp), file form (*.frm) dan file module (*.bas). Coba jalankan Project1 dengan meng-klik tombol Start ( ) pada bagian Toolbar atau tekan tombol F5 pada keyboard. Ketikkan “Salman” di dalam TextBox kemudian klik tombol OK. Maka akan tampil hasil sebagai berikut :

Page 11: Mahir Visual Basic

7

Bila ingin keluar klik tombol Selesai. Penjelasan kode program : Berikut diberikan penjelasan bagaimana cara kerja program sederhana di atas Private Sub Command1_Click() Label2.Caption = Text1.Text End Sub Ketika seorang user meng-klik tombol OK (object Command1) maka isi tulisan pada object Label2 akan sama dengan isi tulisan pada object Text1. Property Caption pada obyek Label2 digunakan untuk menampilkan text tertentu di obyek tersebut. Selanjutnya untuk keluar dari program dituliskan kode berikut : Private Sub Command2_Click() End End Sub Ketika seorang user meng-klik tombol Selesai (object Command2) maka program akan berhenti. Perintah End digunakan untuk menutup program. Menampilkan tulisan merupakan salah satu property yang dimiliki oleh komponen Label. Property isi tulisan pada komponen Label adalah Caption, sedangkan pada komponen Textbox adalah Text. Cara penulisan (syntax) kode program untuk mengatur property sebuah object adalah sebagai berikut : nama_object.property = value Perhatikan, setelah Anda mengetikkan tanda titik (dot) dibelakang nama_object maka VB 6 akan menampilkan daftar property dan method yang dimiliki oleh nama_object :

Fasilitas ini disebut Intellisense, dan sangat membantu Anda agar tidak salah mengetikkan nama_object maupun property-nya.

Page 12: Mahir Visual Basic

8

1.4 Modifikasi Kode Program Ubah tampilan UI-nya menjadi seperti ini : (Tambahkan komponen Frame, OptionButton dan CheckBox)

Atur property object-object tambahannya sebagai berikut :

Obyek Frame1 harus dibuat terlebih dahulu si form, dan selanjutnya obyek Option dan Check dibuat di dalam Frame1 tersebut. Tujuan pembuatan berbagai pilihan tersebut adalah memperkenalkan pada Anda fasilitas Option dan CheckBox yang digunakan untuk membuat pilihan dalam aplikasi. Tambahkan kode programnya sebagai berikut : Private Sub Option1_Click() Label2.ForeColor = vbBlue End Sub Private Sub Option2_Click() Label2.ForeColor = vbRed End Sub Private Sub Check1_Click() Label2.FontBold = Check1.Value End Sub Private Sub Check2_Click() Label2.FontItalic = Check2.Value End Sub

Page 13: Mahir Visual Basic

9

Simpan kembali Form1, kemudian coba jalankan Project1 dan lihat hasilnya :

Bekerja dengan Variabel dan Data Seorang software developer tidak dapat mengelak untuk tidak menggunakan variabel dan data. Mau tidak mau anda harus menggunakannya. Pemahaman yang benar tentang variabel baik dalam hal scope, lifetime, dan type nya akan sangat berguna untuk melahirkan sebuah aplikasi handal, efisien, dan cepat. Mengapa sebuah variabel harus didefinisikan dan dibuat ? Karena komputer menggunakan memory untuk menampung sementara data yang akan diproses. Ketika anda akan melakukan sebuah perhitungan, maka lebih efisien apabila anda membuat variabel-variabel untuk menampung formula perhitungan tersebut. Anda dapat saja tidak menyimpannya dalam variabel dan langsung memasukkan nilainya dalam sebuah perhitungan, dan akibatnya komputer harus meminta input dari pengguna untuk setiap nilai yang akan dihitung. 3.1 Penggunaan Variabel Untuk dapat memakai sebuah variabel maka anda harus mendeklarasikannya terlebih dahulu. Dalam bahasa VB6 anda dapat saja menggunakan sebuah variabel tanpa membuat deklarasi meskipun hal tersebut tidak direkomendasikan dan sangat tidak efisien bagi sebuah aplikasi. Deklarasi Variabel Tujuan pendeklarasian variabel adalah agar komputer mengetahui dengan pasti type data yang akan digunakan dalam variabel tersebut serta scopenya. Dengan demikian komputer dapat langsung mengeksekusi sebuah variabel tanpa memeriksa lagi type datanya. Sebuah variabel harus memiliki nama, type data, scope, dan value. Berikut adalah contoh deklarasi variabel : Dim sNama As String Dim dGajiPokok As Decimal Dim dTunjangan As Decimal Dim dGajiTotal As Decimal Dim dPajak As Decimal sNama = "Anto" dGajiPokok = 600000 dTunjangan = 150000 Dideklarasikan 5 variabel masing-masing dengan type string (1 variabel) dan decimal (4 variabel). Selanjutnya pada tiap variabel tersebut masing-masing diisikan nilainya. Pengisian nilai variabel tersebut harus sesuai dengan type data yang telah ditetapkan. Misalnya saja anda tidak dapat mengisi

Page 14: Mahir Visual Basic

10

variabel dGajiPokok dengan “Anto”, karena variabel tersebut telah didefinisikan sebagai decimal yang harus berisi angka dan bukan string. Anda juga dapat mendeklarasikan variabel dan langsung memberikan nilainya pada saat yang sama dalam satu baris kode. Teknik ini merupakan feature baru VB .NET. Dim dGajiPokok As Decimal = 600000 Selain itu anda juga dapat mendeklarasikan beberapa variabel sekaligus dalam satu baris dan mendefinisikan type datanya secara bersamaan. Dim sUmur, sTinggi, sGaji As Single Ketiga variabe tersebut memiliki type data sama yaitu Single. Cara ini memudahkan pendeklarasian variabel daripada harus mengulang deklarasi dalam tiga baris. Melakukan Perhitungan Selanjutnya anda dapat melakukan perhitungan tertentu dengan menggunakan variabel tersebut sebagai komponen formula sebagai berikut : dGajiTotal = dGajiPokok + dTunjangan dPajak = 0.1 * dGajiTotal Segala Sesuatu adalah OBYEK ! Salah satu mantra baru dalam .NET programming adalah cara kita memandang terhadap obyek. Segala sesuatu adalah obyek, begitulah pedoman yang harus anda pegang. Dalam teknik VB6 anda mengenal konsep Object Oriented Programming (OOP) melalui Class dan konsep COM. Namun dalam .NET segala sesuatu merupakan obyek, termasuk variabel juga merupakan obyek. Karenanya suatu varabel juga memiliki berbagai sifat yang diwujudkan dalam property, event, dan function. Sifat-sifat tersebut dapat diwariskan ke obyek lain, atau suatu variabel dapat mewarisi sifat dari obyek di atasnya. Sebagai contoh anda dapat melakukan perhitungan besarnya dGajiTotal dan dPajak di atas dengan memanfaatkan fasilitas OOP yang terdapat dalam variabel tersebut. Gunakan keyword untuk melakukan perhitungan sebagai berikut: dGajiTotal = dGajiTotal.Add(dGajiPokok, dTunjangan) dPajak = dGajiTotal.Multiply(0.1, dGajiTotal) Anda menggunakan function Add dan Multiply sebagai pengganti perhitungan sebelumnya. Argumen yang digunakan adalah dGajiPokok, dTunjangan dan dGajiTotal. Menampilkan Hasil Perhitungan Hasil perhitungan tersebut ditampilkan ke dalam dua buah label sebagai berikut : Label1.Text = "Gaji Total = " & dGajiTotal.ToString Label2.Text = "Pajak Anda = " & dPajak.ToString Keyword ToString yang mengikuti setiap variabel bertujuan untuk mengkonversikan hasil perhitungan yang semula bertype decimal menjadi string. Anda akan melihat bahwa perhitungan yang anda lakukan dengan cara pertama akan sama hasilnya dengan menggunakan cara kedua yang memanfaatkan built in function dalam sebuah variabel.

Page 15: Mahir Visual Basic

11

3.2 Ruang Lingkup dan Type Variabel Sebuah variabel memiliki ruang lingkup (scope) tertentu, tergantung dengan cara bagaimana variabel tersebut dideklarasikan. Terdapat 3 macam scope suatu varibel : 1. Procedure level / local scope 2. Module level 3. Variabel Public Masing-masing scope tersebut dapat dijelaskan sebagai berikut : Procedure level / local scope Apabila suatu variabel dideklarasikan dalam suatu prosedur tertentu, maka variabel tersebut hanya dapat diakses dan berlaku untuk prosedur tersebut saja. Perhatikan contoh kode berikut : Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim sPesan As String sPesan = "tes Variabel local" MessageBox.Show(sPesan, "Variabel local", MessageBoxButtons.OK, _ messageBoxIcon.Information) End Sub Variabel sPesan dideklarasikan di dalam prosedur Button3_Click sehingga hanya berlaku di dalam prosedur tersebut saja. sPesan tidak dapat diakses dari luar Button3_Click. Apabila anda menggunakan variabel yang hanya dipakai dalam suatu prosedur tertentu maka sebaiknya anda menggunakan jenis variabel ini. Pengertian prosedur di sini menyangkut function, event, dan properti, sehingga tidak terbatas pada event saja sebagaimana dicontohkan di atas. Karena variabel ini scope nya lokal untuk prosedur tertentu saja maka nama variabel tersebut hanya berlaku di dalam prosedur dimana variabel tersebut dideklarasikan. Misalkan anda memiliki function

Page 16: Mahir Visual Basic

12

bernama A dan memiliki variabel bernama sNama. Kemudian anda memiliki sebuah event B dan memiliki variabel bernama sama yaitu sNama. Kedua variabel tersebut tidak akan saling berhubungan dan tetap terpisah nilainya karena dideklarasikan secara lokal di dalam prosedur masing-masing. Module Level Anda dapat membuat suatu variabel yang dapat diakes dari prosedur manapun dalam suatu file. Misalkan anda ingin mendeklarasikan suatu string koneksi yang akan dipakai terus menerus di dalam suatu module. Maka anda harus mendeklarasikan variabel tersebut di bagian deklarasi module sebagaimana contoh berikut :

Terlihat ada 6 variabel yang dideklarasikan di bagian Declaration sebuah form bernama Form1. Selanjutnya variabel yang dideklarasikan di bagian ini akan dipakai untuk melakukan berbagai perhitungan di tiap prosedur. Anda dapat membuka source code yang disertakan untuk meneliti lebih jauh bagaimana variabel tersebut dipakai. Anda harus berhati-hati menggunakan variabel jenis ini, karena nilai suatu variabel akan terus berubah mengikuti perlakuan di setiap prosedur yang mengaksesnya. Sebaiknya anda hanya menggunakannya apabila memang benar-benar diperlukan. Untuk mempermudah menelusuri error dan maintenance aplikasi anda dapat menggunakan variabel dengan scope local. Variabel jenis ini hanya berlaku untuk module dimana variabel tersebut dideklarasikan. Variabel ini tidak dapat diakses dari module lain meskipun berada dalam sebuah Project aplikasi yang sama. Apabila anda membutuhkan variabel yang dapat diakses dari module lain maka dapat digunakan Variabel Public/Global

Page 17: Mahir Visual Basic

13

Variabel Public/Global Cara pendeklarasian variabel jenis ini hampir sama dengan jenis module level dengan menambahkan kata Public sebagai pengganti keyword Dim. Variabel ini dapat diakses dari module lain, dan bahkan dapat diakses oleh Project lain selama Project tersebut membuat reference ke Project dimana variabel tersebut dideklarasikan. Misalkan anda memiliki Class yang digunakan untuk membuka dan menutup koneksi database. Maka anda dapat mendefinisikan variabel untuk koneksi sebagai Public sehingga form, Class, maupun Project lain dapat mengakses variabel tersebut dan melakukan koneksi ke database dengan memanfaatkan Class tersebut. Pada contoh deklarasi di atas variabel cn dirubah deklarasinya menjadi code berikut : Public cn As SqlClient.SqlConnection Anda akan banyak menggunakan variabel jenis ini pada saat mempelajari teknik reference dalam mengakses berbagai komponen yang terdapat di VB.NET maupun yang anda buat sendiri. Type Data Pada Variabel Setiap variabel harus dideklarasikan type datanya sehingga VB mengalokasikan sumber daya yang lebih efisien untuk variabel tersebut. Anda harus memahami dengan baik tiap jenis type data dan kapan type data tertentu digunakan. Misalnya anda menggunakan type data String untuk menyimpan nama seseorang, dan menggunakan Byte untuk menyimpan umurnya. Anda harus memilih type data dengan ukuran dan akurasi paling efisien dan cocok sesuai tujuan anda. Contoh lain bila anda ingin melakukan kalkulasi dengan presisi tinggi, maka dapat digunakan type data Double, sedangkan untuk menyimpan umur seseorang yang tidak mungkin lebih dari 100 tahun maka digunakan type Byte. Tabel berikut merupakan daftar type data yang dapat anda gunakan lengkap dengan ukuran dan scopenya:

Page 18: Mahir Visual Basic

14

Berdasarkan tabel diatas anda dapat memilih penggunaan type data yang paling sesuai dengan kebutuhan dalam sebuah variabel. Prinsip utama yang perlu diperhatikan dalam pemilihan adalah jangan menggunakan tipe data yang yang ukurannya berlebihan dibanding kebutuhan anda. Sesuaikan pula dengan presisi yang dikehendaki dalam aplikasi. Misalnya untuk membuat variabel yang berisi jumlah anak dalam keluarga, anda menggunakan type Integer. Tentunya ini tidak sesuai karena type Integer berukuran 4 byte dalam memori, sedangkan anda tidak memerlukan nilai sampai dengan maksimum 2,147,483,647. Anda dapat menggunakan type data Byte dengan nilai maksimum 255 dan hanya membutuhkan 1 byte memori. Tentunya sesuatu yang wajar apabila jumlah anak dalam keluarga tidak melebihi angka 255. Dua contoh perhitungan berikut menampilkan hasil yang berbeda dari suatu perhitungan yang diakibatkan penggunaan type data berbeda. Dim sLuas As Single Dim sPanjang As Single = 7.5689782 Dim sLebar As Single = 9.568972 'Hitung luas dengan tipe data single sLuas = sPanjang * sLebar 'tampilkan di message box MessageBox.Show(sLuas.ToString, "Hasil dg Type Single", _ MessageBoxButtons.OK, MessageBoxIcon.Information)

Page 19: Mahir Visual Basic

15

Apabila kode tersebut dieksekusi maka tampil hasil perhitugan sebagai berikut :

Tetapi apabila variabel sLuas diganti menjadi bertype Double : Dim sLuas As Double Maka hasil perhitungannya menjadi sebagai berikut :

Perbedaan tersebut terjadi karena type data Single dan Double memiliki tingkat presisi yang berbeda. Contoh tersebut memberikan gambaran kepada anda bagaimana pemilihan suatu variabel menjadi sesuatu yang sangat mendasar dalam sebuah aplikasi. Type Data Untuk Semua Telah dijelaskan dalam bagian pendahuluan kuliah berseri ini bahwa dalam Visual Studio .NET terdapat beberapa bahasa yang mendukung pemrograman .NET. Bahasa tersebut adalah VB, C#, C++, dan J#. Selain itu terdapat pula beberapa third party language yang juga mendukung pemrograman di lingkungan .NET. Karena semua bahasa tersebut mengakses .NET Framework yang sama maka tidak terdapat perbedaan type data dalam tiap-tiap bahasa. Ini berbeda dengan kondisi sebelumnya dimana type data dalam VB berbeda dengan VC++ dan masing-masing harus dipertimbangkan kompatibilitasnya. Kompatibilitas data dan aplikasi dalam .NET lebih terjamin karena menggunakan library yang sama dengan type data sama pula. Ini merupakan kabar gembira bagi sebuah tim pengembang aplikasi yang terdiri dari berbagai programmer dengan keahlian bahasa yang berbeda. Konversi Variabel Pada saat tertentu mungkin anda memerlukan konversi dari satu type data ke type lain. VB .NET menyediakan fungsi CType untuk mengkonversikan variabel. Contoh berikut mengkonversikan variabel umur yang semula bertipe String menjadi Single. Dim sUmur As String = 5.5 Dim bUmur As Single = CType(sUmur, Single) MessageBox.Show(bUmur, "Hasil Konversi", MessageBoxButtons.OK, _ MessageBoxIcon.Information)

Page 20: Mahir Visual Basic

16

Inti konversi adalah memasukkan obyek yang akan dikonversi sebagai argumen dari CType dan menentukan variabel tujuan konversinya. System Namespace Dalam .NET sekumpulan kelas library yang memiliki fungsi tertentu disebut dengan namespace. Karena .NET mendukung implementasi konsep OOP maka semua obyek dalam setiap bahasa merupakan turunan dari Namespace tersebut. Type data yang telah dijelaskan sebelumnya sebenarnya diturunkan dari System Namespace, yang merupakan root namespace dalam sistem .NET. Misalnya type data Decimal, ternyata diturunkan dari System Namespace yaitu System.Decimal runtime structure. Demikian pula dengan type data yang lain, selalu diturunkan dari namespace System tersebut. Dengan demikian anda memiliki cara lain dalam mendeklarasikan variabel dan melakukan perhitungan sebagai berikut : Dim dGaji As System.Decimal = 1000000 Dim sPajak As System.Decimal = 0.1 Dim dGajiTerima As System.Double = dGaji * (1 + sPajak) MessageBox.Show(dGajiTerima.ToString, "Hasil Hitung", _ MessageBoxButtons.OK) Mungkin anda bertanya, mengapa pendeklarasian Decimal tetap dapat dibenarkan daripada secara lengkap menyebutkan System.Decimal ? Jawabannya adalah karena VB secara default telah menyertakan namespace System sebagai reference library dalam setiap Project. Karena reference tersebut telah dibuat maka tidak menjadi halangan apabila anda langsung menyebutkan nama type datanya saja. Konsep ini berlaku untuk semua namespace dalam .NET. Apabila anda perhatikan menu Solution Explorer maka terlihat beberapa namespace telah direferensikan secara default, yaitu System, System.Data, System.Drawing, dan seterusnya.

Anda dapat menambahkan refrensi tersebut sesuai dengan kebuthan dan jenis library yang akan diakses. Pada bab-bab selanjutnya anda akan mempelajari fungsi apa saja yang tersedia dalam setiap namespace dan bagaimana cara penggunaannya.

Page 21: Mahir Visual Basic

17

3.3 Constant Apabila sebuah variabel selalu memiliki nilai tetap dan tidak berubah-ubah di sepanjang aplikasi maka lebih baik bila anda mendefinisikannya sebagai constant. Misalnya dalam sebuah aplikasi matematika yang memiliki variabel phi, dimana phi bernilai 3.14 yang digunakan dalam perhitungan luas lingkaran dan volume tabung. Menetapkan sebuah variabel tetap sebagai constant memiliki keuntungan karena constant dieksekusi lebih cepat daripada variabel. Ini berarti peningkatan performa aplikasi yang dibangun. Deklarasi constant sama dengan deklarasi variabel, dengan menambahkan keyword Constant di depan nama variabel. Const phi As single = 3.14 Dim sRadius As single = 20 Dim sKeliling As single 'melakukan perhitungan dengan constant sKeliling = 2 * phi * sRadius Semua jenis type data, scope, dan tata cara deklarasi yang berlaku pada variabel berlaku pula untuk constant. Perbedaanya adalah apabila variabel dapat berubah-ubah nilainya, sedangkan constant selalu bernilai tetap.

Page 22: Mahir Visual Basic

Penggunaan Struktur Kontrol IF 1.1 Mengenal Struktur Kontrol Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program. Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu : 1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan dikerjakan berdasarkan suatu kondisi. Akan dibahas pada bab ini. 2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan dibahas pada bab selanjutnya.

Page 23: Mahir Visual Basic

19

Klik tab Existing. Pilih folder masing-masing pada bagian Look in. Pilih file Latihan.vbp. Klik tombol Open.

Tambahkan Form baru ke dalam Project :

Klik menu Project > Add Form. Klik tab New dan pilih Form. Klik tombol Open.

Pada Jendela Form buatlah UI seperti ini : (Gunakan komponen ListBox, ComboBox dan CommandButton)

Page 24: Mahir Visual Basic

20

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form2 Caption

StartUpPosition Method Test 2 – CenterScreen

List1 - - Combo1 - - Command1 Caption Add Command2 Caption Delete Command3 Caption Clear

1.2 Menulis Kode Program : Method Test Pada bagian Code Editor ketikkan kode programnya sebagai berikut : Private Sub Form_Load() Combo1.AddItem "Umar" Combo1.AddItem "Salman" Combo1.AddItem "Halimah" Combo1.AddItem "Shafira" End Sub Private Sub Command1_Click() List1.AddItem Combo1.Text End Sub Private Sub Command2_Click() List1.RemoveItem List1.ListIndex End Sub Private Sub Command3_Click() List1.Clear End Sub Simpan Form2 (nama file : Lat2.frm). Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form2 :

Keterangan : Startup Object menentukan object mana yang muncul setiap kali sebuah project dijalankan.

Page 25: Mahir Visual Basic

21

Coba jalankan Project1 :

Untuk menambah isi ListBox : pilih “Umar” di dalam ComboBox kemudian klik tombol Add. Ulangi untuk nama-nama yang lain secara acak.

Untuk menghapus salah satu isi ListBox : pilih “Shafira” di dalam ListBox kemudian klik tombol Delete.

Untuk menghapus semua isi ListBox : klik tombol Clear.

Penjelasan kode program : Private Sub Form_Load() Combo1.AddItem "Umar" Combo1.AddItem "Salman" Combo1.AddItem "Halimah" Combo1.AddItem "Shafira" End Sub Pada saat Form2 di-load ke dalam memori komputer, object Combo1 diisi dengan beberapa nama. Private Sub Command1_Click() List1.AddItem Combo1.Text End Sub Ketika seorang user meng-klik tombol Add (object Command1) maka isi object List1 ditambah sesuai dengan isi object Combo1 yang sudah dipilih. Private Sub Command2_Click() List1.RemoveItem List1.ListIndex End Sub Ketika seorang user meng-klik tombol Delete (object Command2) maka isi object List1 yang dipilih akan dihapus. Catatan : bila belum ada isi yang dipilih akan terjadi error. Private Sub Command3_Click() List1.Clear End Sub Ketika seorang user meng-klik tombol Clear (object Command3) maka semua isi object List1 akan dihapus.

Page 26: Mahir Visual Basic

22

Cara penulisan (syntax) kode program untuk menggunakan method dari sebuah object adalah sebagai berikut : nama_object.method [argument] Perhatikan, setelah Anda mengetikkan tanda titik (dot) dibelakang nama_object maka VB 6 akan menampilkan daftar property dan method yang dimiliki oleh nama_object :

Fasilitas ini akan membantu Anda agar tidak salah mengetikkan nama_object maupun method-nya. Komponen ComboBox dan ListBox memiliki beberapa method untuk mengatur isi (item) di dalamnya, yaitu : AddItem – method ini akan menambah isi sesuai dengan argument yang diberikan berupa tulisan.

Setiap kali ada isi yang ditambahkan akan diberikan nomer index secara otomatis dimulai dari 0 (nol). Contoh : Combo1.AddItem “Umar” “Umar” adalah argument sebagai isi yang akan ditambahkan

ke dalam object Combo1. List1.AddItem Combo1.Text property Text dari object Combo1 adalah argument

sebagai isi yang akan ditambahkan ke dalam object List1. RemoveItem – method ini akan menghapus isi sesuai dengan argument yang diberikan berupa

nomer index dari isi yang dipilih. Setiap kali ada isi yang dihapus maka nomer index akan disusun ulang secara otomatis. Bila isinya tidak ada (kosong) nomer index-nya adalah –1. Contoh : List1.RemoveItem List1.ListIndex property ListIndex dari object List1 adalah argument

sebagai nomer index isi yang akan dihapus. Clear – method ini akan menghapus semua isi (tidak membutuhkan argument).

Contoh : List1.Clear semua isi object List1 akan dihapus.

Page 27: Mahir Visual Basic

Penggunaan Data dan Variabel 1.1 Mengenal Data dan Variabel Ketika seorang user (pengguna) menggunakan sebuah program komputer, seringkali komputer memintanya untuk memberikan informasi. Informasi ini kemudian disimpan atau diolah oleh komputer. Informasi inilah yang disebut dengan DATA.

Page 28: Mahir Visual Basic

24

Visual Basic 6 mengenal beberapa type data, antara lain : String adalah type data untuk teks (huruf, angka dan tanda baca). Integer adalah type data untuk angka bulat. Single adalah type data untuk angka pecahan. Currency adalah type data untuk angka mata uang. Date adalah type data untuk tanggal dan jam. Boolean adalah type data yang bernilai TRUE atau FALSE.

Data yang disimpan di dalam memory komputer membutuhkan sebuah wadah. Wadah inilah yang disebut dengan VARIABEL. Setiap variabel untuk menyimpan data dengan type tertentu membutuhkan alokasi jumlah memory (byte) yang berbeda. Variabel dibuat melalui penulisan deklarasi variabel di dalam kode program : Dim <nama_variabel> As <type_data> Contoh : Dim nama_user As String Aturan di dalam penamaan variabel : Harus diawali dengan huruf. Tidak boleh menggunakan spasi. Spasi bisa diganti dengan karakter underscore (_). Tidak boleh menggunakan karakter-karakter khusus (seperti : +, -, *, /, <, >, dll). Tidak boleh menggunakan kata-kata kunci yang sudah dikenal oleh Visual Basic 6 (seperti : dim, as,

string, integer, dll). Sebuah variabel hanya dapat menyimpan satu nilai data sesuai dengan type datanya. Cara mengisi nilai data ke dalam sebuah variabel : <nama_variabel> = <nilai_data> Contoh : nama_user = “krisna” Untuk type data tertentu nilai_data harus diapit tanda pembatas. Type data string dibatasi tanda petik-ganda : “nilai_data”. Type data date dibatasi tanda pagar : #nilai_data#. Type data lainnya tidak perlu tanda pembatas. Sebuah variabel mempunyai ruang-lingkup (scope) dan waktu-hidup (lifetime) : Variabel global adalah variabel yang dapat dikenali oleh seluruh bagian program. Nilai data yang

tersimpan didalamnya akan hidup terus selama program berjalan. Variabel lokal adalah variabel yang hanya dikenali oleh satu bagian program saja. Nilai data yang

tersimpan didalamnya hanya hidup selama bagian program tersebut dijalankan. Variabel yang nilai datanya bersifat tetap dan tidak bisa diubah disebut KONSTANTA. Penulisan deklarasi konstanta di dalam kode program :

Page 29: Mahir Visual Basic

25

Const <nama_kontanta> As <type_data> = <nilai_data> Contoh : Const tgl_gajian As Date = #25/09/2003# 1.2 Contoh Program : Variabel Test Aktifkan VB 6 melalui tombol Start. Buka kembali project Latihan.vbp. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini : (Gunakan komponen CommandButton dan Label)

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form3 Caption

StartUpPosition Variabel Test 2 – CenterScreen

Command1-3 Caption Test 1 Test 2 Test 3

Label1-3 BackColor Caption

Palette : <putih> <kosong>

Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai berikut : Dim test2 As Integer Private Sub Command1_Click() Dim test1 As String test1 = "nusantara" Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub

Page 30: Mahir Visual Basic

26

Private Sub Command2_Click() test2 = 10 Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub Private Sub Command3_Click() Const test3 As Single = 90.55 Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub Simpan Form3 (nama file : Lat3.frm). Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form3. Coba jalankan Project1. Perhatikan sifat variabel global, variabel lokal dan konstanta !

Klik Tombol Nilai Var. Test1 Nilai var. Test2 Nilai Var. Test3 Test1 nusantara Kali Pertama : 0

Berikutnya : 10 <kosong>

Test2 <kosong> 10 <kosong> Test3 <kosong> 10 90,55 1.3 Penjelasan Kode Program

Kode Program Deskripsi Dim test2 As Integer Private Sub Command1_Click() Dim test1 As String

Variabel test2 dideklarasikan untuk data bertype integer sebagai variabel global sehingga bisa digunakan oleh semua blok kode program. Catatan : setiap variabel global harus selalu dideklarasikan pada bagian atas kode program - pastikan Object Selector berisi (General) dan Event Selector berisi (Declarations).

Bila user meng-klik tombol Test1 : Variabel test1 dideklarasikan untuk data bertype string sebagai variabel lokal khusus untuk blok kode Command1_Click. Catatan : setiap variabel lokal dideklarasikan pada bagian dalam blok kode program tertentu. Blok kode program disebut procedure (akan dibahas dalam bab khusus).

Page 31: Mahir Visual Basic

27

test1 = "nusantara" Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub Private Sub Command2_Click() test2 = 10 Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub Private Sub Command3_Click() Const test3 As Single = 90.55 Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub

Variabel test1 diisi dengan data nusantara (string). Ingat tanda “…” sebagai pembatas. Tampilkan isi variabel test1, test2 dan test3 pada Label1, Label2 dan Label3. Label1 akan menampilkan teks nusantara,

karena variabel test1 berisi nusantara. Label2 akan menampilkan angka 0, karena

variabel test2 belum ada isinya. Variabel test2 boleh digunakan karena bersifat global.

Label3 tidak menampilkan apa-apa (kosong), karena variabel test3 hanya bersifat lokal untuk blok kode Command3_Click.

Bila user meng-klik tombol Test2 : Variabel test2 diisi dengan data 10 (integer). Variabel test2 boleh diisi/diganti isinya karena bersifat global. Tampilkan isi variabel test1, test2 dan test3 pada Label1, Label2 dan Label3. Label1 tidak menampilkan apa-apa (kosong),

karena variabel test1 hanya bersifat lokal untuk blok kode Command1_Click.

Label2 akan menampilkan angka 10, karena variabel test2 isinya angka 10.

Label3 tidak menampilkan apa-apa (kosong), karena variabel test3 hanya bersifat lokal untuk blok kode Command3_Click.

Bila user meng-klik tombol Test3 : Variabel test3 dideklarasikan sekaligus diisi dengan data 90,55 (single) – sebagai konstanta. Tampilkan isi variabel test1, test2 dan test3 pada Label1, Label2 dan Label3. Label1 tidak menampilkan apa-apa (kosong),

karena variabel test1 hanya bersifat lokal untuk blok kode Command1_Click.

Label2 akan menampilkan angka 10, karena variabel test2 isinya masih angka 10. Variabel test2 boleh digunakan karena bersifat global.

Label3 akan menampilkan angka 90,55, karena variabel test3 isinya angka 90,55.

Page 32: Mahir Visual Basic

28

Scope dan LifeTime masing-masing variabel : Untuk membuktikan bahwa nilai data sebuah konstanta bersifat tetap, modifikasi kode program sbb : Private Sub Command3_Click() Const test3 As Single = 90.55 test3 = 50.22 Label1.Caption = test1 Label2.Caption = test2 Label3.Caption = test3 End Sub Perhatikan : penulisan angka pecahan (single) pada kode program tetap menggunakan tanda titik (.) meskipun regional setting komputernya sudah Indonesia. Bila tidak akan muncul pesan error. Coba jalankan Project1, kemudian klik tombol Test 3. Akan muncul pesan error :

Klik OK, kemudian stop programnya dengan meng-klik tombol End pada Toolbar. Agar program tetap berjalan tanpa harus menghapus kode program yang salah, maka tambahkan tanda petik-tunggal (‘) di depan kode program yang salah tersebut (contoh : ‘test3 = 50.22). Teks setelah tanda petik-tunggal oleh Visual Basic 6 diartikan sebagai komentar dan tidak akan di-eksekusi ketika program berjalan.

<program> Private Sub Command1_Click() End Sub Private Sub Command2_Click() End Sub Private Sub Command3_Click() End Sub

test1

test2

test3

Page 33: Mahir Visual Basic

29

Visual Basic 6 membolehkan sebuah variabel tidak dideklarasikan terlebih dahulu (dengan perintah Dim atau Const), tetapi hal ini akan membuat error pada kode program agak sulit dilacak. Jadi, sebaiknya setiap variabel selalu dideklarasikan (baik yang lokal maupun global). Agar dapat diketahui variabel mana yang belum dideklarasikan, pada bagian atas kode program tambahkan perintah berikut : Option Explicit Coba jalankan Project1, kemudian klik tombol Test 1. Akan muncul pesan error :

Klik OK, kemudian stop programnya dengan meng-klik tombol End pada Toolbar.

Page 34: Mahir Visual Basic

Penggunaan Operator 1.1 Apa itu Operator ? OPERATOR di dalam bahasa pemrograman bisa diartikan sebagai simbol yang digunakan untuk melakukan suatu operasi terhadap nilai data. Simbol operator bisa berupa karakter ataupun kata khusus. Visual Basic 6 mengenal tiga jenis operator, yaitu : 1. Operator Aritmatika digunakan untuk operasi matematis terhadap nilai data. Simbol-simbol yang digunakan :

Page 35: Mahir Visual Basic

31

Simbol Operasi Matematis Contoh

^ pemangkatan 5 ^ 2 hasilnya 25 * perkalian 5 * 2 hasilnya 10 / pembagian (hasil pecahan) 5 / 2 hasilnya 2,5 \ pembagian (hasil bulat) 5 \ 2 hasilnya 2

Mod sisa pembagian 5 Mod 2 hasilnya 1 + penjumlahan 5 + 2 hasilnya 7 - pengurangan 5 – 2 hasilnya 3 & penggabungan string 5 & 2 hasilnya 52

2. Operator Perbandingan digunakan untuk operasi yang membandingkan nilai data. Simbol-simbol

yang digunakan :

Simbol Operasi Perbandingan Contoh

< lebih kecil 5 < 2 hasilnya FALSE > lebih besar 5 > 2 hasilnya TRUE

<= lebih kecil atau sama dengan 5 <= 2 hasilnya FALSE >= lebih besar atau sama dengan 5 >= 2 hasilnya TRUE = sama dengan 5 = 2 hasilnya FALSE

<> tidak sama dengan 5 <> 2 hasilnya TRUE 3. Operator Logika digunakan untuk operasi yang membandingkan suatu perbandingan. Simbol-

simbol yang digunakan :

Simbol Operasi Logika Contoh

Or atau (5 < 2) Or (5 > 2) hasilnya TRUE And dan (5 < 2) And (5 > 2) hasilnya FALSE Not Tidak Not (5 < 2) hasilnya TRUE

1.2 Contoh Program : Operator Test Aktifkan VB 6 melalui tombol Start. Buka kembali project Latihan.vbp. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini :

Page 36: Mahir Visual Basic

32

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form4 Caption

StartUpPosition Operator Test 2 – CenterScreen

Label1-2 Caption Var 1 : Var 2 :

Text1-2 Text <kosong> Frame1-3 Caption Op. Aritmatika

Op. Perbandingan Op. Logika

Option1-14 Caption +, -, *, /, && >, <, =, <>, >=, <= Not, Or, And

Label3 Alignment BackColor ForeColor Caption

2 – Center Palette : <putih> Palette : <merah> <kosong>

Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai berikut : Dim var1 As Single, var2 As Single Dim hasil As Single Private Sub Option1_Click() var1 = Text1.Text var2 = Text2.Text hasil = var1 + var2 Label3.Caption = hasil End Sub Private Sub Option2_Click() var1 = Text1.Text var2 = Text2.Text

Page 37: Mahir Visual Basic

33

hasil = var1 - var2 Label3.Caption = hasil End Sub Private Sub Option3_Click() var1 = Text1.Text var2 = Text2.Text hasil = var1 * var2 Label3.Caption = hasil End Sub Private Sub Option4_Click() var1 = Text1.Text var2 = Text2.Text hasil = var1 / var2 Label3.Caption = hasil End Sub Private Sub Option5_Click() var1 = Text1.Text var2 = Text2.Text hasil = var1 & var2 Label3.Caption = hasil End Sub Private Sub Option6_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 > var2) ‘Label3.Caption = hasil Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option7_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 < var2) Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option8_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 = var2) Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option9_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 <> var2) Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option10_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 >= var2) Label3.Caption = Format(hasil, "True/False") End Sub

Page 38: Mahir Visual Basic

34

Private Sub Option11_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 <= var2) Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option12_Click() var1 = IIf(Text1.Text = "True", -1, 0) hasil = Not (var1) Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option13_Click() var1 = IIf(Text1.Text = "True", -1, 0) var2 = IIf(Text2.Text = "True", -1, 0) hasil = (var1 Or var2) Label3.Caption = Format(hasil, "True/False") End Sub Private Sub Option14_Click() var1 = IIf(Text1.Text = "True", -1, 0) var2 = IIf(Text2.Text = "True", -1, 0) hasil = (var1 And var2) Label3.Caption = Format(hasil, "True/False") End Sub Simpan Form4 (nama file : Lat4.frm). Catatan : Anda bisa men-download file Lat4.frm serta file-file latihan sebelumnya. Untuk menambahkan file Form ke dalam sebuah Project, lakukan langkah-langkah berikut ini : 1. Klik menu Project > Add Form. Kemudian klik tab Existing.

2. Tentukan lokasi file pada bagian Look in, lalu pilih filenya. 3. Klik tombol Open. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form4. Coba jalankan Project1. Perhatikan hasil setiap operasi !

Page 39: Mahir Visual Basic

35

1.3 Penjelasan Kode Program

Kode Program Deskripsi Dim var1 As Single, var2 As Single Dim hasil As Single Private Sub Option1_Click() var1 = Text1.Text var2 = Text2.Text hasil = var1 + var2 Label3.Caption = hasil End Sub … Private Sub Option6_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 > var2) ‘Label3.Caption = hasil Label3.Caption = Format(hasil, "True/False") End Sub … Private Sub Option12_Click() var1 = IIf(Text1.Text = "True", -1, 0) hasil = Not (var1) Label3.Caption = Format(hasil, "True/False") End Sub

Deklarasi variabel global : var1, var2 dan hasil untuk menyimpan data bertype single. Ketika Option1 di-klik oleh user : Simpan angka yang diketik pada Text1 var1. Simpan angka yang diketik pada Text2 var2. Jumlahkan var1 dengan var2 hasil. Tampilkan hasil pada Label3. Catatan : Prosesnya sama untuk Option2 s/d Option 5. Operator & sering digunakan untuk

menggabungkan data string : a & b ab. Akan terjadi error bila Text1 atau Text2

kosong atau bukan diketik angka. Penanganan error akan dibahas pada bab lain.

Ketika Option6 di-klik oleh user : Simpan angka yang diketik pada Text1 var1. Simpan angka yang diketik pada Text2 var2. Bandingkan apakah var1 lebih besar dari var2. Tampilkan hasil perbandingan pada Label3. Catatan : Prosesnya sama untuk Option7 s/d Option11. Hasil dari suatu perbandingan adalah True

(benar) atau False (salah). Komputer menam-pilkan True dengan angka –1 dan False dengan angka 0.

Untuk mengubah angka –1 menjadi kata “True” dan angka 0 menjadi kata “False” digunakan perintah Format.

Ketika Option12 di-klik oleh user : Bila Text1 diketik kata True ubah menjadi angka –1 selain itu ubah menjadi angka 0 var1 Bandingkan var1 menggunakan operator Not. Tampilkan hasilnya pada Label3. Catatan : Prosesnya sama untuk Option13 dan

Option14. Untuk mengubah kata “True” menjadi angka

–1 dan selain itu menjadi angka 0 digunakan perintah IIF. Perintah IIF akan dibahas pada bab lain.

Komputer hanya bisa memproses perban-dingan dengan menggunakan angka –1 dan 0.

Page 40: Mahir Visual Basic

36

Data string bersifat case sensitive. Jadi, kata “True” harus ditulis benar (huruf T kapital), karena “True” berbeda dengan “true” atau “tRUE” dll.

Coba lengkapi hasil operasi logika berikut ini :

Var1 Var2 Or And True True True False False True False False

Bisa Anda bedakan sifat operator Or dengan And ?

***

Page 41: Mahir Visual Basic

Penggunaan Struktur Kontrol IF 1.1 Mengenal Struktur Kontrol Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program. Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu : 1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan dikerjakan berdasarkan suatu kondisi. Akan dibahas pada bab ini. 2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan dibahas pada bab selanjutnya.

Page 42: Mahir Visual Basic

38

Ada dua bentuk struktur kontrol keputusan, yaitu : 1. Struktur IF…THEN. Akan dibahas pada bab ini. 2. Struktur SELECT…CASE. Akan dibahas pada bab selanjutnya. Bentuk penulisan (syntax) struktur IF…THEN : 1. IF <kondisi> THEN <kode program>

Bila <kondisi> bernilai True maka <kode program> akan dikerjakan. 2. IF <kondisi> THEN

<blok kode program 1> ELSE

<blok kode program 2> END IF Bila <kondisi> bernilai True maka <blok kode program 1> akan dikerjakan, tetapi bila <kondisi> bernilai False maka <blok kode program 2> yang akan dikerjakan.

1.1 Contoh Program : Struktur IF…THEN Aktifkan VB 6 melalui tombol Start. Buka kembali project Latihan.vbp. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini : (Gunakan komponen Image, Label, TextBox dan CommandButton)

Page 43: Mahir Visual Basic

39

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form5 Caption

StartUpPosition Struktur IF…THEN 2 – CenterScreen

Image1 Stretch Picture Visible

True Komputer.wmf False

Label1 Caption Password : Text1 PasswordChar

Text * <kosong>

Command1 Caption Default

OK True

Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai berikut : Private Sub Command1_Click() If Text1.Text = "nusantara" Then Image1.Visible = True End Sub Simpan Form5 (nama file : Lat5.frm). Catatan : Anda bisa men-download file Lat5.frm dan Komputer.wmf. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form5. Coba jalankan Project1 : Ketikkan sembarang teks pada TextBox lalu klik tombol OK atau tekan Enter tidak terjadi apa-

apa. Ketikkan “nusantara” pada TextBox lalu klik tombol OK atau tekan Enter gambar komputer

akan muncul. Penjelasan kode program : If Text1.Text = "nusantara" Then Image1.Visible = True Modifikasi kode programnya menjadi sebagai berikut : Private Sub Command1_Click() If Text1.Text = "nusantara" Then Image1.Visible = True Text1.Enabled = False Command1.Enabled = False Else MsgBox "Passwordnya Salah !"

kondisi kode program yang dikerjakanbila kondisi TRUE

Page 44: Mahir Visual Basic

40

Text1.Text = "" Text1.SetFocus End If End Sub Coba jalankan Project1 : Ketikkan sembarang teks pada TextBox lalu klik tombol OK atau tekan Enter muncul kotak

pesan “Passwordnya Salah !”. Klik tombol OK pada kotak pesan tersebut. Ketikkan “nusantara” pada TextBox lalu klik tombol OK atau tekan Enter gambar komputer

akan muncul. TextBox dan tombol OK menjadi disable (tidak bisan digunakan). Penjelasan kode program : If Text1.Text = "nusantara" Then Image1.Visible = True Text1.Enabled = False Command1.Enabled = False Else MsgBox "Passwordnya Salah !" Text1.Text = "" Text1.SetFocus End If Catatan tambahan : Teks “nusantara” harus diketik huruf kecil semua. Ingat : data string bersifat case sensitive ! Agar password-nya tidak bersifat case sensitive, modifikasi pernyataan kondisinya menjadi :

If LCase(Text1.Text) = "nusantara" Then Fungsi LCase adalah untuk mengkonversi semua string yang diinput ke Text1.Text menjadi huruf kecil, walaupun user menginputnya dengan huruf kapital.

TANTANGAN : Coba Anda modifikasi struktur kontrol dan kode programnya sehingga seorang user hanya mempunyai 3 kali kesempatan untuk mengetikkan password-nya. Setelah 3 kali kesempatan dan password-nya masih salah maka program akan otomatis berhenti.

***

kondisi

blok kode program yang dikerjakan bila kondisi TRUE

blok kode program yang dikerjakan bila kondisi FALSE

Page 45: Mahir Visual Basic

Penggunaan Struktur Kontrol SELECT 1.1 Mengenal Struktur Kontrol Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program. Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu : 1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan dikerjakan berdasarkan suatu kondisi. Akan dibahas pada bab ini. 2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan dibahas pada bab selanjutnya.

Page 46: Mahir Visual Basic

42

Ada dua bentuk struktur kontrol keputusan, yaitu : 1. Struktur IF…THEN. Sudah dibahas pada bab yang lalu. 2. Struktur SELECT…CASE. Akan dibahas pada bab ini. 1.2 Struktur Kontrol Select…Case Bentuk penulisan (syntax) struktur SELECT…CASE : SELECT CASE <pilihan> CASE <pilihan 1>

<blok kode program 1> CASE <pilihan 2>

<blok kode program 2> CASE <pilihan n>

<blok kode program n> [CASE ELSE

<blok kode program x>] END SELECT Bila <pilihan> sesuai dengan <pilihan 1> maka <blok kode program 1> akan dikerjakan, dst. Tetapi bila <pilihan> tidak ada yang sesuai dengan <pilihan 1> s/d <pilihan n> maka <blok kode program x> yang akan dikerjakan. 1.3 Contoh Program : Struktur SELECT…CASE Aktifkan VB 6 melalui tombol Start. Buka kembali project Latihan.vbp. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini : (Gunakan komponen Label, ListBox, TextBox dan CommandButton)

Page 47: Mahir Visual Basic

43

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form6 Caption

StartUpPosition Struktur SELECT…CASE 2 – CenterScreen

Label1 Caption Pilih Barang : List1 - - Label2 Caption Jumlah : Text1 Text <kosong> Command1 Caption OK Label3-7 Name

BackColor Caption

lblBarang, lblHarga, lblJumlah, lblDiskon, lblTotal Palette : <putih> <kosong>

Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai berikut : Private Sub Form_Load() List1.AddItem "Disket" List1.AddItem "Buku" List1.AddItem "Kertas" List1.AddItem "Pulpen" End Sub Private Sub Command1_Click() Dim harga As Currency, total As Currency Dim jumlah As Integer Dim diskon As Single Dim satuan As String If List1.Text = "" Then MsgBox "Anda belum memilih barang !!" List1.ListIndex = 0

Page 48: Mahir Visual Basic

44

Exit Sub End If If Text1.Text = "" Then MsgBox "Anda belum mengisi jumlah barang !!" Text1.SetFocus Exit Sub End If Select Case List1.Text Case "Disket" harga = 35000 satuan = "Box" Case "Buku" harga = 20000 satuan = "Lusin" Case "Kertas" harga = 25000 satuan = "Rim" Case "Pulpen" harga = 10000 satuan = "Pak" End Select lblBarang.Caption = "Barang : " & List1.Text lblHarga.Caption = "Harga : " & Format(harga, "Currency") & "/" & satuan lblJumlah.Caption = "Jumlah : " & Text1.Text & " " & satuan jumlah = Text1.Text Select Case jumlah Case Is < 10 diskon = 0 Case 10 To 20 diskon = 0.15 Case Else diskon = 0.2 End Select total = jumlah * (harga * (1 - diskon)) lblDiskon.Caption = "Diskon : " & Format(diskon, "0 %") lblTotal.Caption = "Total Bayar : " & Format(total, "Currency") End Sub Simpan Form6 (nama file : Lat6.frm). Catatan : Anda bisa men-download file Lat6.frm dan file latihan-latihan sebelumnya. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form6. Coba jalankan Project1 : List1 akan terisi nama-nama barang. Klik tombol OK akan muncul kotak pesan "Anda belum memilih barang !!".

Page 49: Mahir Visual Basic

45

Klik OK, nama barang pertama akan terpilih secara otomatis. Anda boleh memilih nama barang yang lainnya.

Klik tombol OK akan muncul kotak pesan "Anda belum mengisi jumlah barang !!". Klik OK, text1 akan menjadi focus. Isi jumlah barangnya, misalnya : 10. Klik tombol OK akan tampil : nama barang, harga barang (per-satuannya), jumlah barang

(dengan satuannya), diskon dan total bayar. Coba ganti pilihan nama barang (pada List1) dan jumlah barang (pada Text1) lalu klik lagi tombol

OK. Penjelasan kode program : Select Case List1.Text Case "Disket"

harga = 35000 satuan = "Box"

Case "Buku" harga = 20000 satuan = "Lusin"

Case "Kertas" harga = 25000 satuan = "Rim"

Case "Pulpen" harga = 10000 satuan = "Pak"

End Select lblBarang.Caption = "Barang : " & List1.Text lblHarga.Caption = "Harga : " & Format(harga, "Currency") & "/" & satuan lblJumlah.Caption = "Jumlah : " & Text1.Text & " " & satuan jumlah = Text1.Text Select Case jumlah Case Is < 10

diskon = 0 Case 10 To 20

diskon = 0.15 Case Else

diskon = 0.2 End Select total = jumlah * (harga * (1 - diskon)) lblDiskon.Caption = "Diskon : " & Format(diskon, "0 %") lblTotal.Caption = "Total Bayar : " & Format(total, "Currency")

cek barang yang dipilih :

bila barang = Disket

bila barang = Buku

bila barang = Kertas

bila barang = Pulpen

tampilkan hasilnya

cek jumlah barang :

bila jumlah < 10 diskon = 0%

bila jumlah 10-20 diskon = 15%

bila jumlah > 20 diskon = 20%

Hitung total bayar dan tampilkan hasilnya

Page 50: Mahir Visual Basic

46

Catatan : Bila jumlah barang diisi dengan selain angka akan muncul pesan error. Untuk mengecek isi Text1 angka atau bukan, tambahkan kode program berikut :

If Not IsNumeric(Text1.Text) Then MsgBox "Isi jumlah barang harus angka !!" Text1.SetFocus Exit Sub

End If

***

Page 51: Mahir Visual Basic

Penggunaan Struktur Kontrol Pengulangan 1.1 Mengenal Struktur Kontrol Struktur kontrol di dalam bahasa pemrograman adalah perintah dengan bentuk (struktur) tertentu yang digunakan untuk mengatur (mengontrol) jalannya program. Visual Basic 6 mengenal dua jenis struktur kontrol, yaitu : 1. Struktur kontrol keputusan - digunakan untuk memutuskan kode program mana yang akan dikerjakan berdasarkan suatu kondisi. Sudah dibahas pada bab lalu. 2. Struktur kontrol pengulangan - digunakan untuk melakukan pengulangan kode program. Akan dibahas pada bab ini.

Page 52: Mahir Visual Basic

48

Ada dua bentuk struktur kontrol pengulangan (looping), yaitu : 1. Struktur FOR…NEXT. 2. Struktur DO…LOOP. 1.2 Struktur Kontrol For…Next Bentuk penulisan (syntax) struktur For…Next : FOR <pencacah> = <awal> TO <akhir> [STEP <langkah>]

<blok kode program> NEXT <pencacah> <pencacah> adalah variabel (tipe: integer) yang digunakan untuk menyimpan angka pengulangan. <awal> adalah nilai awal dari <pencacah>. <akhir> adalah nilai akhir dari <pencacah>. <langkah> adalah perubahan nilai <pencacah> setiap pengulangan. Sifatnya optional (boleh ditulis

ataupun tidak). Bila tidak ditulis maka nilai <langkah> adalah 1. 1.3 Struktur Kontrol Do…Loop Bentuk penulisan (syntax) struktur Do…Loop : 1. DO WHILE <kondisi>

<blok kode program> LOOP <blok kode program> akan diulang selama <kondisi> bernilai TRUE. Pengulangan berhenti bila <kondisi> sudah bernilai FALSE.

2. DO UNTIL <kondisi> <blok kode program>

LOOP <blok kode program> akan diulang sampai <kondisi> bernilai TRUE. Pengulangan berhenti bila <kondisi> sudah bernilai TRUE.

1.4 Contoh Program : Struktur Looping Aktifkan VB 6 melalui tombol Start. Buka kembali project Latihan.vbp. Tambahkan Form baru ke dalam Project.

Page 53: Mahir Visual Basic

49

Pada Jendela Form buatlah UI seperti ini : (Gunakan komponen ListBox dan CommandButton)

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form7 Caption

StartUpPosition Struktur Looping 2 – CenterScreen

List1 - - Command1-4 Caption For Next 1

For Next 2 Do Until Do While

Buka Jendela Code dan pada bagian Code Editor ketikkan kode programnya sebagai berikut : Dim i As Integer Private Sub Command1_Click() List1.Clear For i = 1 To 100 List1.AddItem "Angka " & i Next i End Sub Private Sub Command2_Click() List1.Clear

Page 54: Mahir Visual Basic

50

For i = 100 To 1 Step -2 List1.AddItem "Angka " & i Next i End Sub Private Sub Command3_Click() List1.Clear i = Asc("A") Do Until i > Asc("Z") List1.AddItem "Huruf " & Chr(i) i = i + 1 Loop End Sub Private Sub Command4_Click() List1.Clear i = Asc("Z") Do While i >= Asc("A") List1.AddItem "Huruf " & Chr(i) i = i - 1 Loop End Sub Simpan Form7 (nama file : Lat7.frm). Catatan : Anda bisa men-download file Lat7.frm dan file latihan-latihan sebelumnya. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form7. Coba jalankan Project1 : Klik Command1 List1 akan berisi : Angka 1 s/d Angka 100. Klik Command2 List1 akan berisi : Angka genap antara 1 s/d 100 dengan urutan descending. Klik Command3 List1 akan berisi : Huruf A s/d Huruf Z. Klik Command4 List1 akan berisi : Huruf A s/d Huruf Z dengan urutan descending.

Penjelasan kode program : For i = 1 To 100 List1.AddItem "Angka " & i Next i For i = 100 To 1 Step -2 List1.AddItem "Angka " & i Next i i = Asc("A") Do Until i > Asc("Z")

kode program yang diulangpencacah (i) 1 s/d 100

kode program yang diulangpencacah (i) 1 s/d 100 dengan langkah –2 setiap pengulangan

pengulangan sampai nilai i > 91 nilai i awal 65

kode program yang diulang

Page 55: Mahir Visual Basic

51

List1.AddItem "Huruf " & Chr(i) i = i + 1 Loop i = Asc("Z") Do While i >= Asc("A") List1.AddItem "Huruf " & Chr(i) i = i - 1 Loop Catatan : Bila ingin keluar dari struktur pengulangan sebelum pengulangannya selesai gunakan perintah

EXIT FOR atau EXIT DO. Contoh :

For i = 1 To 100 List1.AddItem "Angka " & i If i = 50 Then Exit For Next i Do Until i > Asc("Z") List1.AddItem "Huruf " & Chr(i) If Chr(i) = "M" Then Exit Do i = i + 1 Loop

***

nilai i ditambah 1

pengulangan selama nilai i >= 65 nilai i awal 91

kode program yang diulangnilai i dikurangi 1

Page 56: Mahir Visual Basic

Menangani Error 1.1 Jenis-Jenis Error Dalam proses pembuatan program, bisa saja terjadi error yang menyebabkan program tidak berjalan sebagaimana mestinya. Dilihat dari penyebabnya ada 3 jenis error yang bisa terjadi, yaitu : 1. Syntax error – adalah error yang disebabkan oleh kesalahan menulis kode program. Misalnya : salah menuliskan nama object, property atau methodnya. Error jenis ini relatif mudah ditangani, IDE VB 6 akan memberi tanda kode program mana yang menimbulkan syntax error.

Page 57: Mahir Visual Basic

2. Runtime error – adalah error yang disebabkan oleh sistem komputer ketika melakukan sesuatu. Misalnya : menyimpan file ke disket tetapi disketnya tidak ada. Sistem akan “memberitahu” kepada program informasi error yang terjadi. Informasi error yang penting diantaranya adalah nomer error dan deskripsi error. VB 6 “menyimpan” informasi error tersebut pada object Err. Melalui object Err inilah kita bisa menangani runtime error.

3. Logical error – adalah error yang disebabkan oleh kesalahan logika pemrograman (dari si

programer). Misalnya : salah meletakkan urutan kode program. Error jenis ini relatif sulit diketahui dan bisa saja baru diketahui setelah program di-compile menjadi executable file (*.exe). Kejadian seperti ini sering disebut sebagai bug.

Pada bab ini akan dibahas khusus bagaimana cara menangani runtime error. 1.2 Menangani Runtime Error Untuk menangani runtime error, di dalam kode program dibuatkan bagian khusus untuk menangani error yang terjadi. Bagian khusus ini diberi tanda berupa <label>. Agar setiap error yang terjadi dapat ditangani oleh bagian khusus ini, pada awal kode program ditulis perintah berikut ini :

kode-kode program yang mungkin menimbulkan runtime error

On Error GoTo <label> Contoh : On Error GoTo AdaError … … … AdaError:

kode-kode program untuk menangani runtime error

… … …

53

Page 58: Mahir Visual Basic

Selanjutnya untuk mengetahui informasi error apa yang terjadi, gunakan object Err. Object Err merupakan object built-in yang disediakan VB 6 untuk menangani error. Seperti halnya object yang dibuat dengan kontrol/komponen (misalnya TextBox), maka object Err juga mempunyai property dan method. Property object Err yang penting diantaranya adalah property Number dan Description. Untuk mengetahui nomer error yang terjadi, gunakan property Number. Sedangkan untuk mengetahui deskripsi error yang terjadi, gunakan property Description. Dengan menggunakan property Number, kita bisa menangani setiap error dengan cara yang berbeda. Misalnya : untuk setiap error yang terjadi akan dimunculkan kotak pesan dengan bahasa Indonesia. Cara ini dapat Anda lihat pada contoh program. Setelah error ditangani, kode program dapat dikembalikan ke bagian tertentu dengan perintah Resume. Ada 3 bentuk perintah Resume, yaitu : Resume – kembali ke kode program yang menimbulkan error. Biasanya digunakan untuk retry

(mencoba lagi). Resume <label> – kembali ke bagian tertentu pada kode program yang diberi tanda <label>. Resume Next – kembali ke kode program berikutnya (kode program setelah kode program yang

menimbulkan error). Biasanya digunakan untuk abort atau cancel (mengabaikan atau membatalkan).

Contoh penggunaan perintah Resume dapat Anda lihat pada contoh program. 1.3 Contoh Program : Error Handle Aktifkan VB 6 melalui tombol Start. Buka kembali project Latihan.vbp. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini : (Gunakan komponen Image dan CommandButton)

54

Page 59: Mahir Visual Basic

Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form10 Caption

StartUpPosition Error Handle 2 – Center Screen

Image1 BorderStyle Stretch

1 – Fixed Single True

Command1 Caption Style Picture ToolTipText

<kosong> 1 – Graphical OpenFile.ico Open Picture File

Buka Jendela Code dan pada bagian Code Editor, lalu ketikkan kode programnya sebagai berikut : Private Sub Command1_Click() Dim FileName As String Image1.Picture = Nothing FileName = InputBox("Ketikkan path dan nama file gambar :", "Open Picture File", FileName) If FileName <> "" Then Image1.Picture = LoadPicture(FileName) End If End Sub Simpan Form10 (nama file : Lat10.frm). Catatan : Anda bisa men-download file Lat10.frm dan OpenFile.ico. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form10. Untuk mencoba program ini sebelumnya siapkan sebuah disket dan copy-kan 1 file gambar (misalnya file komputer.wmf pada bab 6). Coba jalankan Project-nya : Klik tombol Open Picture File, akan muncul kotak input. Ketikkan lokasi (path) dan nama file gambar, misalnya : a:\komputer.wmf. Masukkan disketnya, lalu klik tombol OK. Gambar akan muncul tidak terjadi error. Keluarkan disketnya, lalu coba ulangi langkah sebelumnya. Akan muncul kotak pesan error :

Klik tombol Debug untuk melihat kode program mana yang menimbulkan runtime error.

55

Page 60: Mahir Visual Basic

Klik tombol End pada bagian Toolbar untuk menghentikan program. Agar program bisa menangani error, modifikasi kode programnya menjadi sebagai berikut : Private Sub Command1_Click() Dim FileName As String On Error GoTo AdaError Image1.Picture = Nothing FileName = InputBox("Ketikkan path dan nama file gambar :", "Open Picture File", FileName) If FileName <> "" Then Image1.Picture = LoadPicture(FileName) End If Exit Sub AdaError: MsgBox "Error No : " & Err.Number & vbCrLf & _ Err.Description, vbCritical + vbOKOnly, Me.Caption End Sub Coba jalankan Project-nya Bila terjadi error seperti sebelumnya akan muncul kotak pesan error :

Klik tombol OK. Program akan tetap berjalan. User bisa mengulangi perintah untuk membuka file gambar (disket dimasukkan lebih dulu agar tidak terjadi error lagi).

Agar pesan error-nya menggunakan bahasa Indonesia, modifikasi kode programnya menjadi sebagai berikut : Private Sub Command1_Click() Dim FileName As String Dim ErrMsg As String On Error GoTo AdaError Image1.Picture = Nothing FileName = InputBox("Ketikkan path dan nama file gambar :", "Open Picture File", FileName) If FileName <> "" Then Image1.Picture = LoadPicture(FileName) End If Exit Sub AdaError: Select Case Err.Number Case 53 ErrMsg = "File [" & FileName & "] tidak ada !" Case 71 ErrMsg = "Disket belum dimasukkan !"

56

Page 61: Mahir Visual Basic

Case Else ErrMsg = Err.Description End Select MsgBox ErrMsg, vbCritical + vbOKOnly, Me.Caption End Sub Coba jalankan Project-nya Bila terjadi error akan muncul kotak pesan error :

Klik tombol OK. Program akan tetap berjalan. Lakukan try-and-error untuk melihat setiap nomer dan deskripsi error yang mungkin terjadi.

Agar setelah error ditangani kode program dapat dikembalikan ke bagian tertentu, modifikasi lagi kode programnya menjadi sebagai berikut : Private Sub Command1_Click() Dim FileName As String Dim ErrMsg As String Dim Ask As VbMsgBoxResult On Error GoTo AdaError Awal: Image1.Picture = Nothing FileName = InputBox("Ketikkan path dan nama file gambar :", "Open Picture File", FileName) If FileName <> "" Then Image1.Picture = LoadPicture(FileName) End If Exit Sub AdaError: Select Case Err.Number Case 53 ErrMsg = "File [" & FileName & "] tidak ada !" Case 71 ErrMsg = "Disket belum dimasukkan !" Case Else ErrMsg = Err.Description End Select Ask = MsgBox(ErrMsg, vbCritical + vbRetryCancel, Me.Caption) Select Case Ask Case vbRetry If Err.Number = 53 Then Resume Awal Else Resume Case vbCancel Resume Next End Select End Sub

57

Page 62: Mahir Visual Basic

Coba jalankan Project-nya Bila terjadi error akan muncul kotak pesan error :

Klik tombol Retry untuk mencoba lagi (disketnya dimasukkan lebih dulu), atau klik tombol Cancel untuk membatalkan.

Klik tombol Retry untuk mencoba lagi (lalu ganti nama filenya), atau klik tombol Cancel untuk membatalkan.

***

7

Page 63: Mahir Visual Basic

Penggunaan Procedure 1.1 Apa itu Procedure ? Procedure adalah blok kode program yang berisi perintah-perintah untuk mengerjakan tugas tertentu. Bila di dalam kode program yang kita buat ada perintah-perintah untuk melakukan tugas yang sama di beberapa tempat, maka akan lebih baik perintah-perintah tersebut dibuat dalam sebuah procedure. Kemudian, procedure itu bisa di-‘panggil’ bila diperlukan. Penggunaan procedure sangat menghemat penulisan kode program, karena kode-kode program yang sama dibeberapa tempat cukup dibuat pada satu bagian saja. Selain itu, procedure akan memudahkan perbaikan kode program bila terjadi perubahan atau kesalahan, karena perbaikan cukup dilakukan pada satu bagian saja.

Page 64: Mahir Visual Basic

1.2 Jenis-jenis Procedure Pada VB6 ada 4 jenis procedure, yaitu : Procedure Sub – procedure yang tidak mengembalikan nilai setelah ‘tugas’-nya selesai. Procedure Function – procedure yang mengembalikan nilai setelah ‘tugas’-nya selesai. Procedure Event – procedure untuk suatu event pada sebuah object. Digunakan di dalam class

module. Procedure Property – procedure untuk mengubah (let) atau mengambil (get) nilai property pada

sebuah object. Digunakan di dalam class module. Pada bab ini akan dibahas penggunaan procedure sub dan function. Procedure event dan property akan dibahas pada bab selanjutnya. Bentuk penulisan (syntax) procedure sub : [Public | Private] Sub <nama_sub> ([<argumen>]) … <isi procedure> … End Sub Sedangkan bentuk penulisan (syntax) procedure function : [Public | Private] Function <nama_function> ([<argumen>]) As <tipe_data> … <isi procedure> … End Function Pernyataan [Public | Private] menentukan ruang lingkup (scope) procedure. Sebuah procedure dengan scope public bisa digunakan dalam lingkup project. Sedangkan procedure dengan scope private hanya bisa digunakan dalam lingkup form saja. <nama_sub> atau <nama_function> dibuat sebagai pengenal procedure saat di-‘panggil’. Aturan penamaan sebuah procedure sama dengan aturan penamaan sebuah variabel. Nama sebuah procedure dibuat unik, tidak boleh ada yang sama. <argumen> merupakan serangkaian nilai dan tipe data yang dipakai oleh procedure untuk mengerjakan ‘tugas’-nya. Sebuah procedure bisa saja tidak memakai argumen sama sekali. Pernyataan As <tipe_data> pada procedure function menentukan tipe data nilai yang akan dikembalikan (return value) setelah ‘tugas’-nya selesai. Untuk menggunakan sebuah procedure, maka procedure tersebut harus di-‘panggil’ pada bagian tertentu dari kode program. Procedure sub di-‘panggil’ dengan pernyataan : Call <nama_sub>([<argumen>]) Sedangkan procedure function bisa di-‘panggil’ langsung dengan menyisipkannya di dalam kode program yang memanggilnya.

60

Page 65: Mahir Visual Basic

Procedure boleh ditulis dimana saja dalam kode program, tetapi biasanya ditulis dibagian atas atau bawah agar mudah ditangani. 1.3 Contoh Program : Procedure Test

1. Aktifkan VB 6 melalui tombol Start.

2. Buka kembali project Latihan.vbp.

3. Tambahkan Form baru ke dalam Project.

4. Pada Jendela Form buatlah UI seperti ini : 5. (Gunakan komponen Label dan CommandButton)

6. Pengaturan property setiap object-nya adalah sebagai berikut :

Object Properties Value Form11 Caption

StartUpPosition Procedure Test 2 – Center Screen

Label1 Alignment BackColor Font ToolTipText

2 – Center Palette : <putih> Size : 24 Dobel-Klik di Sini

Command1 Caption ToolTipText

Sub Test Klik di Sini

Command2 Caption Function Test

61

Page 66: Mahir Visual Basic

7. Buka Jendela Code, lalu pada bagian Code Editor ketikkan kode programnya sebagai berikut :

Private Sub TulisTeks(teks As String, warna As ColorConstants) With Label1 .Caption = teks .ForeColor = warna End With End Sub Private Function JumlahAngka() As String Dim angka1 As String, angka2 As String Dim hasil As Single angka1 = InputBox("Tulis angka 1 :", "Jumlah Angka") angka2 = InputBox("Tulis angka 2 :", "Jumlah Angka") If angka1 <> "" And angka2 <> "" Then hasil = CSng(angka1) + CSng(angka2) JumlahAngka = Cstr(hasil) End If End Function Private Sub Label1_DblClick() Call TulisTeks("Hai", vbBlue) End Sub Private Sub Command1_Click() Call TulisTeks("Hallo", vbRed) End Sub Private Sub Command2_Click() Label1.Caption = "Jumlah = " & JumlahAngka() End Sub

8. Simpan Form11 (nama file : Lat11.frm).

Catatan : Anda bisa men-download file Lat1-11.zip. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form11. Coba jalankan Project-nya : Dobel-klik Label1, akan muncul tulisan “Hai” dengan warna biru. Klik Command1, akan muncul tulisan “Hallo” dengan warna merah. Klik Command2, akan muncul kotak input. Ketikkan angka 5, lalu klik tombol OK. Ketikkan angka 10, lalu klik tombol OK. Akan muncul tulisan “Jumlah = 15”.

62

Page 67: Mahir Visual Basic

Proses ketika procedure di-‘panggil’ :

Private Sub Command1_Click() Call TulisTeks("Hallo", vbRed) End Sub

Private Sub TulisTeks(teks As String, _ warna As ColorConstants) With Label1 .Caption = teks .ForeColor = warna End With End Sub

kerjakan tugas sesuai dengan argumen yang diberikan

procedure sub dipanggil dengan

memberikan argumen

kembali setelah tugas

selesai

Private Sub Command2_Click() Label1.Caption = "Jumlah = " & JumlahAngka() End Sub

Private Function JumlahAngka() As String Dim angka1 As String, angka2 As String Dim hasil As Single angka1 = InputBox("Tulis angka 1 :", "Hitung Angka") angka2 = InputBox("Tulis angka 2 :", "Hitung Angka") If angka1 <> "" And angka2 <> "" Then hasil = CSng(angka1) + CSng(angka2) JumlahAngka = CStr(hasil) End If End Function

procedure functiondipanggil tanpa

argumen

kembali setelah tugas

selesai dan mengem-balikan

nilai kerjakan tugas

Dapat anda lihat bahwa prosedur Tulisteks dipanggil, dan dimasukkan 2 variabel ke dalamnya yaitu teks dan warna. Selanjutnya kedua argumen tersebut diolah oleh prosedure Tulisteks. Akhirnya ditampilkan tulisan dan warnyanya yang merupakan hasil dari properti Caption dan Forecolor dari obyek label. 1.4 Pernyataan Optional Nilai argumen di dalam sebuah procedure dapat dibuat menjadi optional (boleh ada atau tidak ada). Bila nilai argumen yang optional tidak ada, maka yang digunakan adalah nilai default-nya. Untuk membuat nilai argumen menjadi optional, tambahkan pernyataan Optional di depan argumen-nya dan berikan nilai default-nya, contoh :

63

Page 68: Mahir Visual Basic

Private Sub TulisTeks(teks As String, Optional warna As ColorConstants = vbMagenta) With Label1 .Caption = teks .ForeColor = warna End With End Sub

Bila nilai argumen warna tidak ada, maka warna teks pada Label1 adalah magenta, contoh :

Call TulisTeks("Hallo") 1.5 Pernyataan ByRef dan ByVal Nilai argumen yang dikirimkan ke dalam procedure bisa saja berasal dari sebuah variabel. Namun demikian, perlu diperhatikan bahwa nilai argumen yang dikirimkan ke dalam procedure bisa berdasarkan referensi (ByRef) atau berdasarkan nilai (ByVal). Default-nya nilai argumen dikirimkan berdasarkan referensi. Apabila variabel dikirimkan berdasarkan referensi, maka semua perubahan yang dilakukan terhadap argumen akan mempengaruhi variabel tersebut. Hal ini terkadang menimbulkan logical error. Sebagai ilustrasi perhatikan contoh berikut ini : Dim Harga As Currency, Total As Currency

Private Sub HitungDiskon(HargaAwal As Currency, Diskon As Single) HargaAwal = HargaAwal * (1 - Diskon) Total = CCur(HargaAwal) End Sub Private Sub Command3_Click() Harga = 10000 Total = 0 Call HitungDiskon(Harga, 0.1) MsgBox "Harga " & Harga & " setelah diskon 10% menjadi " & Total End Sub

Hasilnya Harga 9000 setelah diskon 10% menjadi 9000 Variabel Harga dikirimkan berdasarkan referensi (ByRef), sehingga perubahan pada argumen HargaAwal akan mempengaruhi variabel Harga. Modifikasi procedure sub HitungDiskon menjadi sebagai berikut :

Private Sub HitungDiskon(ByVal HargaAwal As Currency, Diskon As Single) HargaAwal = HargaAwal * (1 - Diskon) Total = CCur(HargaAwal) End Sub

Hasilnya Harga 10000 setelah diskon 10% menjadi 9000 Sekarang variabel Harga dikirimkan berdasarkan nilai (ByVal), sehingga perubahan pada argumen HargaAwal tidak akan mempengaruhi variabel Harga.

64

Page 69: Mahir Visual Basic

1.6 Procedure Built-in VB6 menyediakan cukup banyak procedure yang siap-pakai (built-in) untuk berbagai ‘tugas’. Coba klik menu View – Object Browser atau tekan tombol F2 pada keyboard :

1. Cari module Strings pada bagian Classes. 2. Lihat daftar pada bagian Member of ‘Strings’

yang merupakan kumpulan procedure dengan ‘tugas’ pengolahan data string.

3. Klik nama procedure untuk mengetahui apa ‘tugas’-nya.

***

7

Page 70: Mahir Visual Basic

Menggunakan Drag-Drop 14.1. Apa Itu Drag-Drop? Drag-Drop merupakan istilah umum di dalam penggunaan mouse untuk menggeser, menyalin atau memindahkan gambar, teks, file, dll. Menggunakan drag-drop akan mempermudah user saat menggunakan sebuah program. 14.2. Drag-Drop dengan VB 6.0 VB 6.0 menyediakan beberapa property, method dan event yang berhubungan dengan drag-drop. Operasi drag-drop melibatkan object source dan object target. Setiap object di dalam form bisa menjadi source ataupun target (termasuk form itu sendiri).

Page 71: Mahir Visual Basic

Property, method dan event yang berhubungan dengan drag-drop adalah sebagai berikut:

Property Object Keterangan DragMode Source Menentukan bagaimana drag-drop dimulai:

- Manual (vbManual = 0, default) atau - Otomatis (vbAutomatic = 1)

DragIcon Source Menentukan bentuk pointer saat operasi drag-drop berlangsung.

Method Object Keterangan Drag [action] Source Digunakan untuk memulai drag-drop secara manual

(property DragMode diset vbManual). Event Object Keterangan DragOver Target Saat object source di-drag melewati object target. DragDrop Target Saat object source di-drop pada object target.

Nilai untuk argumen action adalah sebagai berikut:

Nilai Keterangan vbBeginDrag = 1 Memulai operasi drag-drop vbCancel = 0 Membatalkan operasi drag-drop vbEndDrag = 2 Mengakhiri operasi drag-drop

Ada tiga argumen pada event-event drag-drop, yaitu: Source, X, Y dan State. Argumen Source menunjukkan object yang menjadi source. Argumen X dan Y menunjukkan posisi koordinat pointer mouse. Sedangkan argumen State menunjukkan status pointer pada saat event DragOver, nilainya terdiri dari: 0 pointer masuk ke dalam object target, 1 pointer meninggalkan object target dan 2 pointer bergerak di dalam object target. 14.3. Contoh Program: Drag-Drop Test 1. Aktifkan program Microsoft Visual Basic 6.0. 2. Bukalah kembali file project Latihan.vbp. 3. Tambahkan form baru ke dalam project. 4. Pada Jendela Object buatlah User Interface seperti ini:

Page 72: Mahir Visual Basic

Setting property object-nya adalah sebagai berikut:

Object Properties Value Form14 BorderStyle

Caption StartUpPosition

1 – Fixed Single Drag and Drop Test 2 – Center Screen

Text1 DragMode Text

1 – Automatic <kosong>

5. Buka Jendela Code, lalu ketikkan kode programnya seperti pada Listing-14A. 6. Simpanlah Form14 dengan nama file Lat14.frm.

Catatan: Anda bisa men-download file vb6-latihan.zip.

7. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form14.

8. Coba jalankan project-nya:

Keterangan: 1. Ketikkan sesuatu pada Text1. 2. Lakukan drag-drop ke List1. 3. Perhatikan nilai argumen pada event

DragOver.

9. Ubahlah property object Text1 sebagai berikut:

Object Properties

Text1 DragIcon DragMode

10. Modifikasi kode programnya seperti pada Listing-14B. 11. Coba jalankan kembali project-nya.

***

Page 73: Mahir Visual Basic

Listing-14A Private Sub List1_DragOver(Source As Control, X As Single, Y As Single, _ State As Integer) Me.Cls Me.Print "Source: " & Source.Name Me.Print "X,Y: " & X & "," & Y Me.Print "State: " & State End Sub Private Sub List1_DragDrop(Source As Control, X As Single, Y As Single) If Source.Name = "Text1" Then List1.AddItem Text1.Text End If Me.Cls End Sub Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, _ State As Integer) Me.Cls End Sub Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Me.Cls End Sub

Page 74: Mahir Visual Basic

Listing-14B Private Sub List1_DragOver(Source As Control, X As Single, Y As Single, _ State As Integer) Me.Cls Me.Print "Source: " & Source.Name Me.Print "X,Y: " & X & "," & Y Me.Print "State: " & State If Source.Name = "Text1" And State = 0 Then Text1.DragIcon = LoadPicture(App.Path & "DropYes.cur") End If End Sub Private Sub List1_DragDrop(Source As Control, X As Single, Y As Single) If Source.Name = "Text1" Then List1.AddItem Text1.Text Text1.Drag vbEndDrag End If Me.Cls End Sub Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, _ State As Integer) Me.Cls If Source.Name = "Text1" And State = 0 Then Text1.DragIcon = LoadPicture(App.Path & "DropNo.cur") End If End Sub Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) If Source.Name = "Text1" Then Text1.Drag vbCancel End If Me.Cls End Sub Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Text1.Text <> "" And Button = vbLeftButton Then Text1.Drag vbBeginDrag End If End Sub

Page 75: Mahir Visual Basic

Menggunakan OLE Drag-Drop 15.1. Apa Itu OLE Drag-Drop? OLE (Object Linking and Embedding) Drag-Drop adalah jenis drag-drop yang memungkinkan user untuk menyalin atau memindahkan data dari satu bagian ke bagian yang lain di dalam satu program atau dengan program yang lain. Sebagian besar program-program buatan Microsoft (seperti Microsoft Office) ataupun perusahaan lain (seperti Adobe PhotoShop) mendukung penggunaan OLE drag-drop. 15.2. OLE Drag-Drop dengan VB 6.0 VB 6.0 menyediakan beberapa property, method dan event yang berhubungan dengan OLE drag-drop. Operasi OLE drag-drop melibatkan object source dan object target. Hanya beberapa komponen pada VB 6.0 yang bisa digunakan sebagai object source maupun target, yaitu: TextBox, ComboBox, ListBox, Image, PictureBox, DirListBox dan FileListBox. Sedangkan komponen lainya hanya bisa digunakan sebagai object target, seperti: CommandButton, CheckBox, OptionButton, Label dan Form.

Page 76: Mahir Visual Basic

Property, method dan event yang berhubungan dengan OLE drag-drop adalah sebagai berikut:

Property Object Keterangan OLEDragMode Source Menentukan bagaimana OLE drag dimulai:

- Manual (vbOLEDragManual = 0, default) atau - Otomatis (vbOLEDragAutomatic = 1)

OLEDropMode Target Menentukan bagaimana OLE drop dilakukan: - Diabaikan (vbOLEDropNone = 0, default) - Manual (vbOLEDropManual = 1) atau - Otomatis (vbOLEDropAutomatic = 2)

Method Object Keterangan OLEDrag Source Digunakan untuk memulai OLE drag secara manual

(property OLEDragMode diset vbOLEDragManual). Event Object Keterangan OLEStartDrag Source Saat operasi OLE drag-drop dimulai. OLECompleteDrag Source Saat proses drop pada object target selesai. OLEDragOver Target Saat pointer mouse melewati object target selama

operasi OLE drag-drop berlangsung. OLEDragDrop Target Saat data di-drop pada object target.

Ada tiga argumen penting pada event-event OLE drag-drop, yaitu: AllowedEffects, Effect dan Data. Argumen AllowedEffects dan Effect digunakan untuk menentukan efek OLE drag-drop yang diperbolehkan atau yang digunakan. Nilai untuk kedua argumen tersebut adalah sebagai berikut:

Nilai Keterangan vbDropEffectNone = 0 Data tidak bisa diterima oleh object target. vbDropEffectCopy = 1 Data disalin ke object target. vbDropEffectMove = 2

Data dipindahkan ke object target.

Sedangkan argumen data merupakan object DataObject yang digunakan selama operasi OLE drag-drop berlangsung. 15.3. Object DataObject Untuk menangani OLE drag-drop secara manual digunakan object DataObject untuk menyimpan data dan format datanya. Property dan method yang dimiliki object DataObject adalah:

Property Keterangan Files Koleksi nama-nama file (format datanya vbCFFiles) Method Keterangan Clear Menghapus semua data dan format datanya. GetData(format) Mengambil data yang tersimpan. Argumen format digunakan

untuk menentukan format data yang diambil. GetFormat(format) Mengetahui format data yang tersimpan. Akan menghasilkan

nilai True (bila formatnya sesuai) atau False (bila formatnya tidak sesuai).

SetData value, [format] Menyimpan data dengan format tertentu. Argumen value adalah data yang akan disimpan.

Page 77: Mahir Visual Basic

Nilai untuk argumen format adalah sebagai berikut:

Nilai Keterangan Dikosongkan = 0 Format data akan ditentukan otomatis berdasarkan datanya. vbCFText = 1 Data teks vbCFBitmap = 2 Data bitmap (gambar) vbCFMetafile = 3 Data metafile (gambar) vbCFDIB = 8 Data device-independent bitmap (gambar) vbCFFiles = 15 Data file

15.4. Contoh Program: OLE Drag-Drop Test 1. Aktifkan program Microsoft Visual Basic 6.0. 2. Bukalah kembali file project Latihan.vbp. 3. Tambahkan form baru ke dalam project. 4. Pada Jendela Object buatlah User Interface seperti ini:

Setting property object-nya adalah sebagai berikut:

Object Properties Value Form15 BorderStyle

Caption 1 – Fixed Single OLE Drag-Drop Test

Text1 OLEDragMode OLEDropMode Text

1 – Automatic 2 – Automatic <kosong>

Image1 OLEDragMode OLEDropMode Stretch

1 – Automatic 2 – Automatic True

5. Simpanlah Form15 dengan nama file Lat15.frm.

Catatan: Anda bisa men-download file vb6-latihan.zip.

Page 78: Mahir Visual Basic

6. Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form15.

7. Coba jalankan project-nya dan aktifkan program WordPad:

Keterangan: 1. Buatlah teks dan

gambar pada program WordPad.

2. Lakukan drag-drop teks dari WordPad ke Text1.

3. Lakukan drag-drop gambar dari WordPad ke Image1.

Catatan: - Drag-drop tanpa

tombol Ctrl teks/gambar akan dipindahkan.

- Drag-drop dengan tombol Ctrl teks/gambar akan disalin.

8. Ubahlah property object-object berikut ini:

Object Properties Value

Text1 OLEDragMode 0 – Manual List1 OLEDropMode 1 – Manual Image1 OLEDragMode 0 – Manual Image2 OLEDropMode

Stretch 1 – Manual True

9. Buka Jendela Code, lalu ketikkan kode programnya seperti pada Listing-15. 10. Coba jalankan kembali project-nya:

Keterangan: 1. Lakukan drag-drop teks dari Text1 ke List1. 2. Lakukan drag-drop gambar dari Image1 ke

Image2. Catatan: - Drag-drop tanpa tombol Ctrl teks/gambar

akan dipindahkan. - Drag-drop dengan tombol Ctrl

teks/gambar akan disalin.

Page 79: Mahir Visual Basic

11. Aktifkan program Windows Explorer:

Keterangan: 1. Lakukan drag-drop file dari

program Windows Explorer ke List1.

2. Lakukan drag-drop file dari program Windows Explorer ke Image2.

Catatan: Drag-drop ke List1 bisa lebih dari 1 file (pada program Windows Explorer gunakan Shift+klik atau Ctrl+klik untuk memilih lebih dari 1 file).

***

Page 80: Mahir Visual Basic

Listing-15 Dim FormatOK As Boolean '====================== 'OLE Drag-Drop ke List1 '====================== Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) 'Jika Text1 tdk kosong dan tombol kiri mouse ditekan If Text1.Text <> "" And Button = vbLeftButton Then Text1.OLEDrag 'Mulai operasi OLE drag-drop End If End Sub Private Sub Text1_OLEStartDrag(Data As DataObject, AllowedEffects As Long) 'Simpan data dgn format text Data.SetData Text1.Text, vbCFText 'Atur efek OLE drag-drop yg diperbolehkan AllowedEffects = vbDropEffectCopy Or vbDropEffectMove End Sub Private Sub List1_OLEDragOver(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, _ X As Single, Y As Single, State As Integer) 'Cek format datanya FormatOK = Data.GetFormat(vbCFText) Or _ Data.GetFormat(vbCFFiles) If FormatOK Then 'Cek apakah tombol Ctrl ditekan If Shift = vbCtrlMask Then Effect = vbDropEffectCopy 'Data disalin Else Effect = vbDropEffectMove 'Data dipindahkan End If Else Effect = vbDropEffectNone 'Data diabaikan End If End Sub Private Sub List1_OLEDragDrop(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) Dim i As Integer 'Cek format datanya FormatOK = Data.GetFormat(vbCFText) Or _ Data.GetFormat(vbCFFiles) If FormatOK Then 'Cek apakah tombol Ctrl ditekan If Shift = vbCtrlMask Then Effect = vbDropEffectCopy 'Data disalin Else Effect = vbDropEffectMove 'Data dipindahkan End If

Page 81: Mahir Visual Basic

'Tambahkan data yg tersimpan ke dalam List1 If Data.GetFormat(vbCFText) Then List1.AddItem Data.GetData(vbCFText) 'Data text End If If Data.GetFormat(vbCFFiles) Then List1.Clear For i = 1 To Data.Files.Count List1.AddItem Data.Files(i) 'Data file(s) Next i End If Else Effect = vbDropEffectNone 'Data diabaikan End If End Sub Private Sub Text1_OLECompleteDrag(Effect As Long) If Effect = vbDropEffectMove Then Text1.Text = "" 'Kosongkan Text1 jika data dipindahkan End If End Sub '======================= 'OLE Drag-Drop ke Image2 '======================= Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) If Image1.Picture <> 0 And Button = vbLeftButton Then Image1.OLEDrag End If End Sub Private Sub Image1_OLEStartDrag(Data As DataObject, AllowedEffects As Long) Data.SetData Image1.Picture AllowedEffects = vbDropEffectCopy Or vbDropEffectMove End Sub Private Sub Image2_OLEDragOver(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, _ X As Single, Y As Single, State As Integer) FormatOK = Data.GetFormat(vbCFBitmap) Or _ Data.GetFormat(vbCFMetafile) Or _ Data.GetFormat(vbCFDIB) Or _ Data.GetFormat(vbCFFiles) If FormatOK Then If Shift = vbCtrlMask Then Effect = vbDropEffectCopy Else Effect = vbDropEffectMove End If Else Effect = vbDropEffectNone End If End Sub

Page 82: Mahir Visual Basic

Private Sub Image2_OLEDragDrop(Data As DataObject, Effect As Long, _ Button As Integer, Shift As Integer, _ X As Single, Y As Single) FormatOK = Data.GetFormat(vbCFBitmap) Or _ Data.GetFormat(vbCFMetafile) Or _ Data.GetFormat(vbCFDIB) Or _ Data.GetFormat(vbCFFiles) If FormatOK Then If Shift = vbCtrlMask Then Effect = vbDropEffectCopy Else Effect = vbDropEffectMove End If If Data.GetFormat(vbCFBitmap) Then Image2.Picture = Data.GetData(vbCFBitmap) End If If Data.GetFormat(vbCFMetafile) Then Image2.Picture = Data.GetData(vbCFMetafile) End If If Data.GetFormat(vbCFDIB) Then Image2.Picture = Data.GetData(vbCFDIB) End If If Data.GetFormat(vbCFFiles) Then Image2.Picture = LoadPicture(Data.Files(1)) End If Else Effect = vbDropEffectNone End If End Sub Private Sub Image1_OLECompleteDrag(Effect As Long) If Effect = vbDropEffectMove Then Image1.Picture = Nothing End If End Sub

Page 83: Mahir Visual Basic

Membuat Kalkulator Sederhana dengan Visual Basic 6.0 Program kalkulator adalah program standar yang sudah tersedia di Microsoft Windows. Tetapi, tak ada salahnya jika kita mencoba membuat kalkulator sendiri dengan Microsoft Visual Basic 6.0. Pertama-tama, buatlah sebuah form sesuai selera Anda, yang bentuknya kurang lebih seperti kalkulator standar Windows, seperti ini:

Untuk properties dari masing-masing objek, saya contohkan seperti dibawah ini, dengan letak masing-masing objek disesuaikan dengan gambar diatas. Textbox 1: (Name) : txtDisplay Alignment: 1-Right Justify Text : (kosongkan) Maxlength : 12 Command Button 1: (Name) : cmdAngka Index : 1 Caption : 1 Command Button 2: (Name) : cmdAngka Index : 2 Caption : 2 Command Button 3: (Name) : cmdAngka Index : 3 Caption : 3 Command Button 4: (Name) : cmdAngka Index : 4 Caption : 4 Command Button 5: (Name) : cmdAngka

Page 84: Mahir Visual Basic

Index : 5 Caption : 5 Command Button 6: (Name) : cmdAngka Index : 6 Caption : 6 Command Button 7: (Name) : cmdAngka Index : 7 Caption : 7 Command Button 8: (Name) : cmdAngka Index : 8 Caption : 8 Command Button 9: (Name) : cmdAngka Index : 9 Caption : 9 Command Button 10: (Name) : cmdAngka Index : 0 Caption : 0 Command Button 11: (Name) : cmdPlusMinus Caption : +/- Command Button 12: (Name) : cmdKoma Caption : . Command Button 13: (Name) : cmdOperator Index : 1 Caption : + Command Button 14: (Name) : cmdOperator Index : 2 Caption : - Command Button 15: (Name) : cmdOperator Index : 3 Caption : x Command Button 16: (Name) : cmdOperator Index : 4 Caption : / Command Button 17: (Name) : cmdClearEntry Caption : CE Command Button 18: (Name) : cmdClear Caption : C Command Button 19: (Name) : cmdSamaDengan Caption : =

Page 85: Mahir Visual Basic

Berikutnya, Anda tinggal membuat coding dari kalkulator tersebut. Jika Anda mengikuti semua setting properties seperti diatas, maka codingnya saya contohkan seperti ini: Option Explicit Private Hasil As Double Private Const opNol = 0 Private Const opTambah = 1 Private Const opKurang = 2 Private Const opKali = 3 Private Const opBagi = 4 Private Operator As Integer Private NilaiBaru As Boolean ' untuk menghapus karakter terakhir Private Sub Hapus() Dim txt As String Dim min_len As Integer txt = txtDisplay.Text If Left$(txt, 1) = "-" Then min_len = 2 Else min_len = 1 End If If Len(txt) > min_len Then txtDisplay.Text = Left$(txt, Len(txt) - 1) Else txtDisplay.Text = "0" End If End Sub ' hapus angka, hasil terakhir dan operator Private Sub cmdClear_Click() cmdClearEntry_Click Hasil = 0 Operator = opNol End Sub ' hapus angka Private Sub cmdClearEntry_Click() txtDisplay.Text = "" End Sub ' menambahkan koma (desimal) Private Sub cmdKoma_Click() If InStr(txtDisplay.Text, ".") Then Beep Else If NilaiBaru Then txtDisplay.Text = "." NilaiBaru = False Else txtDisplay.Text = txtDisplay.Text & "." End If End If End Sub ' Menghitung Private Sub cmdSamaDengan_Click() Dim HasilBaru As Double If txtDisplay.Text = "" Then HasilBaru = 0 Else

Page 86: Mahir Visual Basic

HasilBaru = CDbl(txtDisplay.Text) End If Select Case Operator Case opNol Hasil = HasilBaru Case opTambah Hasil = Hasil + HasilBaru Case opKurang Hasil = Hasil - HasilBaru Case opKali Hasil = Hasil * HasilBaru Case opBagi 'Tidak bisa dibagi nol If HasilBaru = 0 Then MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR" Call cmdClear_Click Else Hasil = Hasil / HasilBaru End If End Select Operator = opNol NilaiBaru = True txtDisplay.Text = Format$(Hasil) End Sub ' menuliskan angka Private Sub cmdAngka_Click(Index As Integer) If NilaiBaru Then txtDisplay.Text = Format$(Index) NilaiBaru = False Else txtDisplay.Text = _ txtDisplay.Text & Format$(Index) End If End Sub ' tombol tambah/kurang/bagi/kali Private Sub cmdOperator_Click(Index As Integer) cmdSamaDengan_Click Operator = Index NilaiBaru = True End Sub ' merubah tanda +/- Private Sub cmdPlusMinus_Click() If NilaiBaru Then txtDisplay.Text = "-" ElseIf Left$(txtDisplay.Text, 1) = "-" Then txtDisplay.Text = Right$(txtDisplay.Text, 2) Else txtDisplay.Text = "-" & txtDisplay.Text End If End Sub ' filter untuk angka saja yg dapat diketikkan Private Sub Form_KeyPress(KeyAscii As Integer) txtDisplay_KeyPress KeyAscii End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) txtDisplay_KeyUp KeyCode, Shift

Page 87: Mahir Visual Basic

End Sub ' supaya kursor tetap di kanan Private Sub txtDisplay_Change() txtDisplay.SelStart = Len(txtDisplay.Text) End Sub Private Sub txtDisplay_GotFocus() txtDisplay_Change End Sub ' untuk mengetikkan angka di keyboard Private Sub txtDisplay_KeyPress(KeyAscii As Integer) Dim ch As String ch = Chr$(KeyAscii) Select Case ch Case "0" cmdAngka_Click 0 Case "1" cmdAngka_Click 1 Case "2" cmdAngka_Click 2 Case "3" cmdAngka_Click 3 Case "4" cmdAngka_Click 4 Case "5" cmdAngka_Click 5 Case "6" cmdAngka_Click 6 Case "7" cmdAngka_Click 7 Case "8" cmdAngka_Click 8 Case "9" cmdAngka_Click 9 Case "*", "x", "X" cmdOperator_Click opKali Case "+" cmdOperator_Click opTambah Case vbCrLf, vbCr, "=" cmdSamaDengan_Click Case "-" cmdOperator_Click opKurang Case "." cmdKoma_Click Case "/" cmdOperator_Click opBagi Case "C", "c" cmdClearEntry_Click End Select KeyAscii = 0 End Sub ' untuk ketikan angka di numpad Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyNumpad0 cmdAngka_Click 0 Case vbKeyNumpad1

Page 88: Mahir Visual Basic

cmdAngka_Click 1 Case vbKeyNumpad2 cmdAngka_Click 2 Case vbKeyNumpad3 cmdAngka_Click 3 Case vbKeyNumpad4 cmdAngka_Click 4 Case vbKeyNumpad5 cmdAngka_Click 5 Case vbKeyNumpad6 cmdAngka_Click 6 Case vbKeyNumpad7 cmdAngka_Click 7 Case vbKeyNumpad8 cmdAngka_Click 8 Case vbKeyNumpad9 cmdAngka_Click 9 Case vbKeyMultiply cmdOperator_Click opKali Case vbKeyAdd cmdOperator_Click opTambah Case vbKeySeparator cmdSamaDengan_Click Case vbKeySubtract cmdOperator_Click opKurang Case vbKeyDivide cmdOperator_Click opBagi Case vbKeyDecimal cmdKoma_Click Case vbKeyBack, vbKeyDelete Hapus End Select KeyCode = 0 End Sub

Membuat Pop Up Menu dengan Visual Basic 6.0 Apakah yang dimaksud dengan Pop Up menu ? Pop Up menu merupakan menu khusus yang ditampilkan untuk mempercepat akses ke menu, biasanya Pop Up dapat tampil saat mouse melintasi suatu obyek (event mouse over),atau saat kita mengklik kanan mouse. Tips kali ini membahas bagaimana membuat menu yang tampil ketika mouse mendapat event klik kanan (event right click). Langkah – langkah pembuatan Pop Up menu adalah : Sebelumnya buka aplikasi visual basic 6.0 buat satu project dengan sebuah form standar, Letakkan sebuah label, button dan sebuah line, atur tampilan seperti gambar berikut :

Page 89: Mahir Visual Basic

ubah properti caption label1 sesuai keinginan anda (dalam contoh diatas caption diisi dengan “Test Fungsi Pop Up Menu”), selanjutnya buka menu editor, terdapat dua cara untuk membuka menu editor, pertama klik menu Tools (Alt + T) pilih menu editor

cara kedua adalah klik kanan pada obyek form lalu pilih menu editor

Page 90: Mahir Visual Basic

pada menu editor buatlah struktur menu seperti berikut

Perhatikan letak menu pada menu editor,

masuk jendela kode ketikan listing program berikut : Private Sub Command1_Click() End ‘ mengakhiri program End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu mnufonts 'memanggil menu menjadi pop up menu End If

Page 91: Mahir Visual Basic

End Sub Private Sub mnu8_Click() Label1.FontSize = 8 ' End Sub Private Sub mnu18_Click() Label1.FontSize = 18 End Sub Private Sub mnu26_Click() Label1.FontSize = 28 End Sub Private Sub mnumerah_Click() Label1.ForeColor = &HFF& ' warna merah End Sub Private Sub mnu14_Click() Label1.Font = 14 End Sub Private Sub mnuhijau_Click() Label1.ForeColor = &H8000& ' warna hijau End Sub Private Sub mnubiru_Click() Label1.ForeColor = &HFF0000 'warna biru End Sub Private Sub mnutahoma_Click() Label1.FontName = "tahoma" End Sub Private Sub mnustop_Click() Label1.FontName = "Stop" End Sub jalankan program, klik kanan pada form,Pop Up Menu anda akan tampil seperti berikut

Page 92: Mahir Visual Basic

MMeemmaannffaaaattkkaann AADDOO SSttrreeaamm OObbjjeecctt PPaaddaa VViissuuaall BBaassiicc UUnnttuukk AAkksseess DDaattaa BBeerrttiippee BBLLOOBB PPaaddaa SSQQLL SSeerrvveerr

Tulisan ini berasal dari salah satu dokumen HOWTO milik Microsoft (Q258038) yang judul aslinya "HOWTO: Access and Modify SQL Server BLOB Data by Using the ADO Stream Object". Penulis sengaja menerjemahkannya secara bebas ke bahasa Indonesia buat pembaca khususnya para programmer Visual Basic. Kali ini kita akan bermain-main dengan object ADO Stream untuk operasi penyimpanan dan pemanggilan data image dari atau ke SQL Server. OK, sebelumnya simak dulu pesan-pesan berikut ini. Tulisan ini bersifat terbuka dan Anda bebas untuk menyebarluaskan tulisan ini selama Anda menyebutkan sumber aslinya. Anda bisa memberikan kritik atau saran melalui [email protected]. Penulis tidak bertanggung jawab atas segala yang terjadi akibat tulisan ini dan semata-mata hanya ditujukan untuk kepentingan pendidikan. Stream object mulai diperkenalkan pada ADO (ActiveX Data Objects) versi 2.5 dan ini sangat membantu dalam penyerhanaan code untuk meng-akses maupun menyimpan BLOB (Binary Large Object) pada SQL Server. Sebelumnya pada ADO versi 2.0 - 2.1 Anda harus menggunakan method GetChunks dan AppendChunk yang terdapat pada Field object untuk melakukan operasi dengan tipe data BLOB. Melalui tulisan ini akan disajikan contoh dari:

1. Menyimpan isi dari file .gif ke suatu field dengan tipe data Image pada SQL Server 2. Mengambil data BLOB dari SQL Server (tipe data Image) dan menyimpannya ke file di

hardisk

OK, sebelum kita mulai ke Visual Basic kita persiapkan dulu tabel-nya di SQL Server. Buatlah table yang didalamnya berisi suatu field dengan tipe Image. Penulis akan membuat table

Page 93: Mahir Visual Basic

tbl_test pada database Northwind dengan dua buah field yaitu img_id yang bertipe Integer dan img_data yang bertipe Image. Field img_id digunakan sebagai ID dari image. Script SQL nya adalah sebagai berikut (Anda bisa gunakan SQL Query Analyzer): use Northwind go create table tbl_test (img_id int,img_data image) OK, sekarang Anda sudah memiliki sebuah tabel untuk demo kita ini. Sekarang kita akan membuat dulu form untuk demo kita ini.

1. Buatlah project baru (Standard EXE) pada Visual Basic. 2. Tambahkan dua buah kontrol CommandButton ke Form1. Ganti Caption

CommandButton1 menjadi 'Simpan Gambar Ke SQL Server'. Ganti Caption CommandButton2 menjadi 'Load Gambar Dari SQL Server'.

3. Tambahkan kontrol Image ke Form1. 4. Pada menu Project pilih References... dan set reference ke Microsoft ActiveX Data

Objects 2.5 Object Library.

Nah, sampai disini form yang akan kita pergunakan untuk demo sudah jadi dan kira-kira bentuknya seperti gambar di bawah:

Menyimpan isi dari file .gif ke suatu field dengan tipe data Image pada SQL Server, Sekarang kita akan mulai dulu dengan demo yang pertama yaitu menyimpan suatu file image ke dalam suatu tabel SQL Server yang mempunyai field yang bertipe Image. Sebelumnya kita harus mempunyai sampel file image yang akan kita simpan. Disini penulis menggunakan file sony-ak2.jpg yang penulis letakkan pada root C:¥. Ketik atau paste code di bawah pada bagian deklarasi umum dari Form1: Option Explicit Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim mstream As ADODB.Stream Kode di atas adalah deklarasi beberapa instance object yang akan kita buat yaitu class

Page 94: Mahir Visual Basic

Connection, Recordset dan Stream. Sekarang ketik atau paste code di bawah ini pada bagian deklarasi umum dari Form1: Private Sub Command1_Click() Set cn = New ADODB.Connection cn.Open "Provider=SQLOLEDB;" & _ "Data Source=<sql_server_anda>;" & _ "Initial Catalog=<database_anda>;" & _ "User Id=<username>;Password=<password>" Set rs = New ADODB.Recordset Set mstream = New ADODB.Stream mstream.Type = adTypeBinary mstream.Open mstream.LoadFromFile "c:¥sony-ak2.jpg" cn.BeginTrans rs.Open "select img_id from tbl_test", _ cn, adOpenKeyset, adLockOptimistic rs.AddNew rs.Fields("img_id").Value = 111 rs.Update rs.Close rs.Open "select * from tbl_test where img_id=111", _ cn, adOpenKeyset, adLockOptimistic rs.Fields("img_data").Value = mstream.Read rs.Update cn.CommitTrans rs.Close cn.Close End Sub Kode di atas merupakan kode event Click dari Command1 yang fungsinya untuk menyimpan file image ke dalam database. Pada method cn.Open Anda harus mengganti nilai connection string sesuai dengan database server Anda. Kemudian dibuat instance dari Recordset dan Stream. Tipe stream kemudian diganti menjadi adTypeBinary dan kemudian stream mengambil data file image dengan memanggil method LoadFromFile. Setelah itu kita menyimpan id untuk image yang penulis beri kode 111. Kemudian kita select lagi row yang image id nya 111 dan kemudian dilakukan pemasukan data stream tadi ke field img_data dengan method stream Read dan kemudian data di update. Nah sampai disini data image Anda akan tersimpan dalam database. Silakan Anda check dengan select * from Northwind..tbl_test. Mengambil data BLOB dari SQL Server (tipe data Image) dan menyimpannya ke file di hardisk, Sekarang kita akan berbuat sebaliknya, yaitu mengambil data image dari database dan akan kita simpan ke suatu file di hardisk dan juga akan kita tampilkan ke layar melalui kontrol Image pada Form1. Ketik atau paste code di bawah ini pada bagian deklarasi umum pada Form1: Private Sub Command2_Click() Set cn = New ADODB.Connection cn.Open "Provider=SQLOLEDB;" & _ "Data Source=<sql_server_anda>;" & _ "Initial Catalog=<database_anda>;" & _ "User Id=<username>;Password=<password>" Set rs = New ADODB.Recordset rs.Open "select img_data from tbl_test " & _ "where img_id=111", cn, _ adOpenKeyset, adLockOptimistic

Page 95: Mahir Visual Basic

Set mstream = New ADODB.Stream mstream.Type = adTypeBinary mstream.Open mstream.Write rs.Fields("img_data").Value mstream.SaveToFile "c:¥sony-ak2-from-db.jpg", _ adSaveCreateOverWrite rs.Close cn.Close Set Image1.Picture = _ LoadPicture("c:¥sony-ak2-from-db.jpg") End Sub Kode di atas merupakan kode event Click dari Command2 yang fungsinya untuk mengambil data image dari dalam database dan menyimpannya ke suatu file di hardisk dan kemudian ditampilkan melalui kontrol Image pada Form1. Kode di atas mirip seperti kode sebelumnya dimana pertama-tama kita melakukan koneksi dulu ke database melalui cn.Open. Kemudian kita akan men-select row yang akan kita pilih berdasarkan id image. Penulis menggunakan contoh id image = 111 sesuai id image yang sudah disimpan sebelumnya. Kemudian object stream di ubah tipenya menjadi adTypeBinary dan stream diisi dengan data dari field img_data dengan memanggil method Write. Setelah itu data yang sudah berada dalam stream tadi kita simpan ke file dengan memanggil method SaveToFile. Penulis pada contoh di atas menyimpannya ke C:¥sony-ak2-from-db.jpg. Kemudian tugas selanjutnya adalah menampilkannya di kontrol Image. Sekarang coba Anda jalankan project di atas dengan menekan tombol F5 dan lihatlah hasilnya. Demikianlah untuk tulisan kali ini dan semoga berguna bagi pembaca semua. Jika ada yang komentar atau kritik silakan dikirim melalui [email protected]. Terakhir penulis ingin mengucapkan terimakasih kepada Microsoft Knowledge Base Article dan Esa Ivani, thanks for your support and love.

Page 96: Mahir Visual Basic

TTiippss VViissuuaall BBaassiicc:: MMeennggeettaahhuuii DDrriivvee CCDD--RROOMM PPaaddaa KKoommppuutteerr

Tips Visual Basic kali ini berdasarkan salah satu milis Visual Basic yang penulis ikuti dimana pada waktu itu ada yang bertanya mengenai bagaimana mengetahui suatu drive di komputer itu adalah drive CD-ROM. Setelah cari-cari di internet maka ketemulah caranya. OK, langsung saja, caranya mudah sekali kok. Gunakan saja FileSystemObject untuk mengetahuinya. Untuk lebih jelas ikuti saja demo di bawah ini. Buat project baru di Visual Basic (Standard EXE) dan kemudian tuliskan code berikut: Option Explicit Dim CDPath As String Private Sub Form_Load() Dim fso As Object Dim drv As Object Set fso = CreateObject("Scripting.FileSystemObject") For Each drv In fso.Drives If drv.DriveType = 4 Then CDPath = drv.Path Exit For End If Next drv Set drv = Nothing Set fso = Nothing MsgBox "CD-ROM Path at " & CDPath End Sub Coba jalankan dengan menekan F5, program akan langsung menampilkan drive letter dimana terpasang CD-ROM. Code diatas bisa Anda kembangkan menjadi suatu fungsi sendiri dan siap digunakan.

.

Page 97: Mahir Visual Basic

MMeemmbbuuaatt AAccttiivveeXX DDLLLL ((DDyynnaammiicc LLiinnkk LLiibbrraarryy)) PPaaddaa VViissuuaall BBaassiicc 66..00

Tulisan ini mungkin membosankan bagi para advanced VB mania, tapi penulis cuek ajah nulis artikel ini karena pastilah banyak para beginner VB yang pingin tau caranya membuat DLL di Visual Basic dan sekaligus juga sebagai penambah tulisan mengenai VB dalam bahasa Indonesia. OK, sebelum Anda simak lebih jauh maka makan dulu satu paragraf di bawah ini.

Tulisan ini bersifat terbuka dan Anda bisa mengirim saran atau komentar ke [email protected]. Penulis tidak bertanggung jawab atas segala hal yang terjadi akibat tulisan ini. Anda berhak mengutip sebagian atau seluruh tulisan ini selama Anda menyebutkan sumber asli pada tulisan Anda.

Membuat ActiveX DLL adalah suatu usaha untuk membuat program Anda lebih modular dan code-code yang sering Anda gunakan sebaiknya Anda kumpulkan dan jadikan dalam sebuah DLL sehingga Anda dapat menggunakannya kapan saja jika dibutuhkan. OK, sekarang kita mulai saja demo pembuatan ActiveX DLL melalui Visual Basic ini. Penulis menggunakan Visual Basic 6.0.

Buka Visual Basic Anda kemudian pilih menu File | New Project dan kemudian pilih ActiveX DLL seperti gambar dibawah dan kemudian tekan OK.

Page 98: Mahir Visual Basic

Visual Basic akan memberi workspace project template ActiveX DLL dengan sebuah class module default yang bernama Class1. Ganti nama class module tadi menjadi clsMain.

Tambahkan sebuah form pada project DLL Anda dan beri nama frmHello. Oh ya jangan lupa ganti nama project ActiveX DLL ini menjadi vbdll.

Tulis code berikut pada class module clsMain tadi:

Option Explicit Public stMyProperty As String

Page 99: Mahir Visual Basic

Public Sub Main_() frmHello.Show vbModal End Sub Public Property Get MyProperty() As Variant MyProperty = stMyProperty End Property Public Property Let MyProperty(ByVal vNewValue As Variant) stMyProperty = vNewValue End Property

Nah, pada DLL sederhana kita ini ceritanya kita akan membuat sebuah class clsMain yang di dalamnya terdapat method Main_ yang fungsinya memanggil form frmHello. Selain itu kita juga membuat sebuah property yang bernama MyProperty yang nantinya kita bisa mengisikan suatu nilai ke dalam property ini. Type dari property MyProperty adalah string.

Sampai disini maka ActiveX DLL kita sudah jadi. Sekarang simpan project ActiveX DLL ini dengan nama vbdll.vbp. Kemudian coba sekarang Anda compile menjadi DLL melalui menu File | Make vbdll.dll..

OK, sekarang kita harus me-registerkan DLL kita tadi ke Windows. Gimana caranya? Gampangggg, coba Anda masuk ke MS DOS Prompt, kemudian change directory menuju tempat dimana tadi Anda menyimpan atau mengcompile vbdll.dll. Nah kemudian ketikkan perintah berikut pada command prompt DOS.

regsvr32 vbdll.dll Jika sukses maka di layar akan muncul dialog seperti gambar di bawah:

Sekarang ActiveX DLL vbdll.dll Anda sudah ter-register pada system Windows. Waktunya kita untuk menguji dan menggunakan DLL ini. Buka kembali Visual Basic Anda dan buatlah project baru melalui File | New Project, kemudian pilih Standard EXE. Letakkan sebuah control CommandButton pada form dan kemudian ketik code berikut pada event Click pada CommandButton tadi:

Option Explicit Private Sub Command1_Click() Dim obj 'create sebuah instance dari class vbdll.clsMain Set obj = CreateObject("vbdll.clsMain") MsgBox "Sekarang memanggil method Main_ dari vbdll.dll" 'panggil method Main dari vbdll.dll obj.Main_ MsgBox "Sekarang mengisi property" & _ " MyProperty pada vbdll.dll " & _

Page 100: Mahir Visual Basic

"dengan string 'TEST'" 'isi MyProperty dengan string 'TEST' obj.MyProperty = "TEST" MsgBox "Isi dari property MyProperty " & _ "sekarang adalah " & obj.MyProperty 'free instance obj dari memory Set obj = Nothing End Sub

Jalankan program diatas dengan menekan F5. Kemudian tekan button-nya dan lihat hasilnya. Sampai disini saya harap Anda sudah mulai bisa membuat ActiveX DLL lain yang lebih bagus dan lebih berguna, misalnya saja DLL untuk menangani operasi matematika, DLL untuk operasi string yang belum tersedia di VB dan lain sebagainya.

Nah, selanjutnya silakan saja Anda buka source code lengkap yang diberikan oleh penulis dibawah ini dan cobalah bermain-main dengannya ;)

Page 101: Mahir Visual Basic

TTiippss VViissuuaall BBaassiicc:: MMeemmbbuuaatt KKoonnttrrooll TTeexxttBBooxx AAnnddaa MMeennjjaaddii FFllaatt DDeennggaann WWiinnddoowwss AAPPII

Anda pasti pernah menggunakan kontrol TextBox di Visual Basic. Property Appearance pada kontrol TextBox memiliki dua kemungkinan yaitu 3D dan Flat. Secara default property ini akan di set ke 3D. Melalui tulisan ini kita akan mencoba membuat kontrol TextBox Anda menjadi flat seperti tampilan TextBox pada aplikasi MS Office atau Windows XP. OK, sebelum kita lanjutkan, simak dulu pesan-pesan berikut ini. Tulisan ini bersifat terbuka dan Anda bisa menyebarluaskan atau mengutip dengan bebas seluruh atau secuil dari tulisan ini dengan catatan Anda harus menyebutkan sumber aslinya.

Code untuk pembuatan flat TextBox-nya penulis ambil dari source code aplikasi EliteSpy+ buatan Andrea Batina. Model flat default yang disediakan oleh kontrol TextBox penulis rasa kurang "enak" dilihat karena tampilannya tidak seperti style "flat"-nya pada MS Office atau Windows XP. Anda bisa lihat perbandingannya seperti di bawah:

Page 102: Mahir Visual Basic

Nah, sekarang kita akan membuat flat pada TextBox menjadi seperti gambar TextBox yang kedua seperti pada gambar di atas. Penulis menggunakan Visual Basic 6.0 dalam demo ini. Langkah-langkah -nya adalah sebagai berikut:

1. Buka Visual Basic Anda dan buat project baru (Standard EXE). 2. Letakkan sebuah sebuah kontrol Button dan TextBox pada form. 3. Tambahkan sebuah module pada project. Ini nantinya akan berisi berbagai deklarasi

Windows API. 4. Tuliskan code di bawah ini pada bagian module tadi.

Option Explicit Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Const GWL_STYLE = (-16) Public Const GWL_EXSTYLE = (-20) Public Const WS_EX_CLIENTEDGE = &H200& Public Const WS_EX_STATICEDGE = &H20000 Public Const WS_BORDER = &H800000 Public Const WS_CAPTION = &HC00000 Public Const WS_CHILD = &H40000000 Public Const WS_CLIPCHILDREN = &H2000000 Public Const WS_CLIPSIBLINGS = &H4000000 Public Const WS_DLGFRAME = &H400000 Public Const WS_GROUP = &H20000 Public Const WS_HSCROLL = &H100000 Public Const WS_MAXIMIZEBOX = &H10000 Public Const WS_MINIMIZEBOX = &H20000 Public Const WS_SYSMENU = &H80000 Public Const WS_POPUP = &H80000000 Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU) Public Const WS_TABSTOP = &H10000 Public Const WS_THICKFRAME = &H40000 Public Const WS_SIZEBOX = WS_THICKFRAME Public Const WS_VISIBLE = &H10000000 Public Const WS_VSCROLL = &H200000 Public Const WM_CLOSE = &H10 Public Const SWP_FRAMECHANGED = &H20 Public Const SWP_NOACTIVATE = &H10 Public Const SWP_NOZORDER = &H4 Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2 Public Sub RemoveBorder(lhWnd As Long) Dim lStyle As Long 'Get window style lStyle = GetWindowLong(lhWnd, GWL_STYLE) 'Setup window styles lStyle = lStyle And Not (WS_BORDER Or WS_DLGFRAME Or WS_CAPTION Or WS_BORDER Or WS_SIZEBOX Or WS_THICKFRAME) 'Set window style

Page 103: Mahir Visual Basic

SetWindowLong lhWnd, GWL_STYLE, lStyle 'Update window SetWindowPos lhWnd, 0, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOZORDER Or SWP_FRAMECHANGED Or SWP_NOSIZE Or SWP_NOMOVE End Sub Public Sub MakeFlat(lhWnd As Long) Dim lStyle As Long 'Get window style lStyle = GetWindowLong(lhWnd, GWL_EXSTYLE) 'Setup window styles lStyle = lStyle And Not WS_EX_CLIENTEDGE Or WS_EX_STATICEDGE 'Set window style SetWindowLong lhWnd, GWL_EXSTYLE, lStyle RemoveBorder lhWnd End Sub

5. Tulis code di bawah pada bagian deklarasi umum di Form1

Option Explicit Private Sub Command1_Click() MakeFlat Text1.hwnd End Sub

6. Jalankan project Anda dengan menekan F5. Kemudian tekan tombol Command1 dan secara otomatis kontrol di sebelahnya akan menjadi flat.

OK, proses perubahan menjadi flat di atas dilakukan dengan cara memanggil prosedur MakeFlat yang kalau kita lihat di dalamnya berisi pemanggilan ke beberapa fungsi-fungsi Windows API seperti GetWindowLong, SetWindowLong dan SetWindowPos. Prosedur MakeFlat sendiri mempunyai sebuat paramater yaitu window handle dari kontrol yang akan diubah tampilannya menjadi flat. Nah Anda bisa coba apply prosedur ini ke kontrol lain selain TextBox. Penulis sudah mencoba meng-apply prrosedur MakeFlat ini ke kontrol Button dan ListBox dan hasilnya kontrol-kontrol tersebut mempunyai efek flat yang menarik. Anda bisa melihat contohnya seperti gambar di bawah ini:

.