Buku Mahir VB Bag 2
Buku Mahir VB Bag 2
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.
Mahir dan
Professional
Visual Basic
vize@telkom.net
IlmuKomputer.Com
Cepat Mahir
Visual Basic 6.0
1.1 Mengenal Visual Basic (VB)
Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah 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 (Beginners 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).
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.
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.
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.
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 :
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.
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
Simpan kembali Form1, kemudian coba jalankan Project1 dan lihat hasilnya :
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
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
Anda menggunakan function Add dan Multiply sebagai pengganti perhitungan sebelumnya.
Argumen yang digunakan adalah dGajiPokok, dTunjangan dan dGajiTotal.
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.
10
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
11
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
12
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.
13
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)
14
Apabila kode tersebut dieksekusi maka tampil hasil perhitugan 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.
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)
15
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.
16
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.
17
Penggunaan
Struktur Kontrol IF
1.1
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.
19
Properties
Caption
StartUpPosition
Caption
Caption
Caption
Value
Method Test
2 CenterScreen
Add
Delete
Clear
20
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.
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.
21
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
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.
22
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 :
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 petikganda : 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 :
24
Properties
Caption
StartUpPosition
Caption
BackColor
Caption
Value
Variabel Test
2 CenterScreen
Test 1
Test 2
Test 3
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
25
Test2
Test3
<kosong>
<kosong>
Deskripsi
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).
26
test1 = "nusantara"
Label1.Caption = test1
Label2.Caption = test2
Label3.Caption = test3
End Sub
Label1.Caption = test1
Label2.Caption = test2
Label3.Caption = test3
End Sub
Label1.Caption = test1
Label2.Caption = test2
Label3.Caption = test3
End Sub
27
<program>
Private Sub Command1_Click()
test1
End Sub
test2
test3
End Sub
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 petiktunggal oleh Visual Basic 6 diartikan sebagai komentar dan tidak akan
di-eksekusi ketika program berjalan.
28
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.
29
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 :
Simbol
^
*
/
\
Mod
+
&
2.
Operasi Matematis
pemangkatan
perkalian
pembagian (hasil pecahan)
pembagian (hasil bulat)
sisa pembagian
penjumlahan
pengurangan
penggabungan string
5 ^ 2 hasilnya 25
5 * 2 hasilnya 10
5 / 2 hasilnya 2,5
5 \ 2 hasilnya 2
5 Mod 2 hasilnya 1
5 + 2 hasilnya 7
5 2 hasilnya 3
5 & 2 hasilnya 52
Operator Perbandingan digunakan untuk operasi yang membandingkan nilai data. Simbol-simbol
yang digunakan :
Simbol
<
>
<=
>=
=
<>
3.
Contoh
Operasi Perbandingan
lebih kecil
lebih besar
lebih kecil atau sama dengan
lebih besar atau sama dengan
sama dengan
tidak sama dengan
Contoh
5 < 2 hasilnya FALSE
5 > 2 hasilnya TRUE
5 <= 2 hasilnya FALSE
5 >= 2 hasilnya TRUE
5 = 2 hasilnya FALSE
5 <> 2 hasilnya TRUE
Operator Logika digunakan untuk operasi yang membandingkan suatu perbandingan. Simbolsimbol yang digunakan :
Simbol
Or
And
Not
Operasi Logika
atau
dan
Tidak
Contoh
(5 < 2) Or (5 > 2) hasilnya TRUE
(5 < 2) And (5 > 2) hasilnya FALSE
Not (5 < 2) hasilnya TRUE
31
Properties
Caption
StartUpPosition
Caption
Text1-2
Frame1-3
Text
Caption
Option1-14
Caption
Label3
Alignment
BackColor
ForeColor
Caption
Form4
Value
Operator Test
2 CenterScreen
Var 1 :
Var 2 :
<kosong>
Op. Aritmatika
Op. Perbandingan
Op. Logika
+, -, *, /, &&
>, <, =, <>, >=, <=
Not, Or, And
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
32
33
2.
3.
Tentukan lokasi file pada bagian Look in, lalu pilih filenya.
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 !
34
Deskripsi
Deklarasi variabel global : var1, var2 dan hasil
untuk menyimpan data bertype single.
Catatan :
Var2
True
False
True
False
Or
And
36
Penggunaan
Struktur Kontrol IF
1.1
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.
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.
38
Properties
Form5
Caption
StartUpPosition
Stretch
Picture
Visible
Caption
PasswordChar
Text
Caption
Default
Image1
Label1
Text1
Command1
Value
Struktur IFTHEN
2 CenterScreen
True
Komputer.wmf
False
Password :
*
<kosong>
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
Ketikkan sembarang teks pada TextBox lalu klik tombol OK atau tekan Enter tidak terjadi apaapa.
Ketikkan nusantara pada TextBox lalu klik tombol OK atau tekan Enter gambar komputer
akan muncul.
39
Text1.Text = ""
Text1.SetFocus
End If
End Sub
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).
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.
***
40
42
Properties
Caption
StartUpPosition
Caption
Caption
Text
Caption
Name
BackColor
Caption
Value
Struktur SELECTCASE
2 CenterScreen
Pilih Barang :
Jumlah :
<kosong>
OK
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
43
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
44
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.
tampilkan hasilnya
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
45
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
***
46
Struktur FORNEXT.
Struktur DOLOOP.
<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.
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.
48
Properties
Caption
StartUpPosition
Caption
Value
Struktur Looping
2 CenterScreen
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
49
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 :
nilai i awal 65
pengulangan sampai nilai i > 91
kode program yang diulang
50
nilai i ditambah 1
nilai i awal 91
pengulangan selama nilai i >= 65
kode program yang diulang
nilai i dikurangi 1
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
***
51
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.
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.
AdaError:
53
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.
54
Properties
Value
Error Handle
2 Center Screen
1 Fixed Single
True
<kosong>
1 Graphical
OpenFile.ico
Open Picture File
Caption
StartUpPosition
BorderStyle
Stretch
Caption
Style
Picture
ToolTipText
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
55
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
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
Case Else
ErrMsg = Err.Description
End Select
MsgBox ErrMsg, vbCritical + vbOKOnly, Me.Caption
End Sub
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
Klik tombol Retry untuk mencoba lagi (lalu ganti nama filenya),
atau
klik tombol Cancel untuk membatalkan.
***
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.
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
<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
Procedure boleh ditulis dimana saja dalam kode program, tetapi biasanya ditulis dibagian atas atau
bawah agar mudah ditangani.
Command1
Command2
Properties
Caption
StartUpPosition
Alignment
BackColor
Font
ToolTipText
Caption
ToolTipText
Caption
Value
Procedure Test
2 Center Screen
2 Center
Palette : <putih>
Size : 24
Dobel-Klik di Sini
Sub Test
Klik di Sini
Function Test
61
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
62
kembali
setelah tugas
selesai
kembali
setelah
tugas
selesai dan
mengembalikan
nilai
procedure sub
dipanggil dengan
memberikan
argumen
procedure function
dipanggil tanpa
argumen
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.
63
Bila nilai argumen warna tidak ada, maka warna teks pada Label1 adalah magenta, contoh :
Call TulisTeks("Hallo")
64
3.
X
Y
Z
***
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.
Property, method dan event yang berhubungan dengan drag-drop adalah sebagai berikut:
Property
DragMode
Object
Source
DragIcon
Source
Method
Drag [action]
Object
Source
Event
DragOver
DragDrop
Object
Target
Target
Keterangan
Menentukan bagaimana drag-drop dimulai:
- Manual (vbManual = 0, default) atau
- Otomatis (vbAutomatic = 1)
Menentukan bentuk pointer saat operasi drag-drop
berlangsung.
Keterangan
Digunakan untuk memulai drag-drop secara manual
(property DragMode diset vbManual).
Keterangan
Saat object source di-drag melewati object target.
Saat object source di-drop pada object target.
vbEndDrag = 2
Keterangan
Memulai operasi drag-drop
Membatalkan operasi drag-drop
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.
Properties
BorderStyle
Caption
StartUpPosition
DragMode
Text
Form14
Text1
5.
6.
7.
8.
Value
1 Fixed Single
Drag and Drop Test
2 Center Screen
1 Automatic
<kosong>
Buka Jendela Code, lalu ketikkan kode programnya seperti pada Listing-14A.
Simpanlah Form14 dengan nama file Lat14.frm.
Catatan:
Anda bisa men-download file vb6-latihan.zip.
Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi
Form14.
Coba jalankan project-nya:
Keterangan:
1. Ketikkan sesuatu pada Text1.
2. Lakukan drag-drop ke List1.
3. Perhatikan nilai argumen pada event
DragOver.
9.
Properties
Text1
DragIcon
DragMode
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
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
Property, method dan event yang berhubungan dengan OLE drag-drop adalah sebagai berikut:
Property
OLEDragMode
Object
Source
OLEDropMode
Target
Method
OLEDrag
Object
Source
Event
OLEStartDrag
OLECompleteDrag
OLEDragOver
Object
Source
Source
Target
OLEDragDrop
Target
Keterangan
Menentukan bagaimana OLE drag dimulai:
- Manual (vbOLEDragManual = 0, default) atau
- Otomatis (vbOLEDragAutomatic = 1)
Menentukan bagaimana OLE drop dilakukan:
- Diabaikan (vbOLEDropNone = 0, default)
- Manual (vbOLEDropManual = 1) atau
- Otomatis (vbOLEDropAutomatic = 2)
Keterangan
Digunakan untuk memulai OLE drag secara manual
(property OLEDragMode diset vbOLEDragManual).
Keterangan
Saat operasi OLE drag-drop dimulai.
Saat proses drop pada object target selesai.
Saat pointer mouse melewati object target selama
operasi OLE drag-drop berlangsung.
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
vbDropEffectNone = 0
vbDropEffectCopy = 1
vbDropEffectMove =
2
Keterangan
Data tidak bisa diterima oleh object target.
Data disalin ke object target.
Data dipindahkan ke object target.
Sedangkan argumen data merupakan object DataObject yang digunakan selama operasi OLE drag-drop
berlangsung.
Keterangan
Koleksi nama-nama file (format datanya vbCFFiles)
Keterangan
Menghapus semua data dan format datanya.
Mengambil data yang tersimpan. Argumen format digunakan
untuk menentukan format data yang diambil.
Mengetahui format data yang tersimpan. Akan menghasilkan
nilai True (bila formatnya sesuai) atau False (bila formatnya
tidak sesuai).
Menyimpan data dengan format tertentu. Argumen value
adalah data yang akan disimpan.
Keterangan
Format data akan ditentukan otomatis berdasarkan datanya.
Data teks
Data bitmap (gambar)
Data metafile (gambar)
Data device-independent bitmap (gambar)
Data file
5.
Properties
BorderStyle
Caption
OLEDragMode
OLEDropMode
Text
OLEDragMode
OLEDropMode
Stretch
Value
1 Fixed Single
OLE Drag-Drop Test
1 Automatic
2 Automatic
<kosong>
1 Automatic
2 Automatic
True
6.
7.
Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi
Form15.
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.
Properties
OLEDragMode
OLEDropMode
OLEDragMode
OLEDropMode
Stretch
Value
0 Manual
1 Manual
0 Manual
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.
***
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
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
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 : =
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
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
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
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
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
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
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
article@sony-ak.com. 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
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.
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
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.
.
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 sonyarianto@yahoo.com.
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.
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.
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 " & _
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 ;)
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:
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.
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: