Visual Basic 6
Visual Basic 6
Pendahuluan
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). 1.2Mengenal 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. Kenali bagian-bagian utama di dalam IDE VB 6 berikut ini :
Created by yoy
Keterangan : 1 Menubar 2 Toolbar 3 Toolbox Bila Toolbox tidak muncul klik tombol Toolbox ( ) pada bagian Toolbar atau klik menu View > Toolbox. 4 Jendela Form Bila Jendela Form tidak muncul klik tombol View Object ( ) pada bagian Project Explorer atau klik menu View > Object. 5 Jendela Code Bila Jendela Code tidak muncul klik tombol View Code ( ) di pada bagian Project Explorer atau klik menu View > Code. 6 Project Explorer Bila Project Explorer tidak muncul klik tombol Project Explorer ( ) pada bagian Toolbar atau klik menu View > Project Explorer. 7 Jendela Properties Bila Jendela Properties tidak muncul klik tombol Properties Window ( ) pada bagian Toolbar atau klik menu View > Properties Window. 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 Created by yoy
Created by yoy
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.
1.2
Created by yoy
1.3
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 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 Created by yoy
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 : Created by yoy
Fasilitas ini disebut Intellisense, dan sangat membantu Anda agar tidak salah mengetikkan nama_object maupun property-nya. 1.4 Modifikasi Kode Program
(Tambahkan komponen Frame, OptionButton dan CheckBox) Atur property object-object tambahannya sebagai berikut : Object Frame1 Option1 Option2 Check1 Check2 Properties Caption Caption Caption Caption Caption Value Pilihan : Biru Merah Tebal Miring
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
Created by yoy
Klik tab Existing. Pilih folder masing-masing pada bagian Look in. Pilih file Latihan.vbp. Klik tombol Open.
Klik menu Project > Add Form. Klik tab New dan pilih Form. Klik tombol Open.
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.
Created by yoy
Data yang disimpan di dalam memory komputer membutuhkan sebuah wadah. Wadah inilah yang disebut dengan VARIABEL. Sebelum menggunakan variable, sebaiknya variable tersebut dikenalkan (dideklarasikan) terlebih dahulu. Pendeklarasian varibel biasanya diletakkan pada bagian awal kode program. Ada dua cara pendeklarasian variable yaitu : 1. Deklarasi Eksplisit Deklarasi yang dilakukan dengan menggunakan kata kunci Dim (Dimension). Dim <nama variabel> As <Tipe Data> ; Dim lpka As String 2. Deklarasi Implisit Pendeklarasian dimana variabekl tersebut langsung digunakan disertai sebuah karakter khusus dibelakangnya. Jumlah% = 100. Berikut karakter khusus yang mewakili tipe data ; Integer (%) Long (&) Single (!) Double (#) Currency (@) String ($) 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 : Created by yoy
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 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 Variabel Test StartUpPosition 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 : Created by yoy
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 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 Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi Form3. Coba jalankan Program. Perhatikan sifat variabel global, variabel lokal dan konstanta ! Klik Tombol Test1 Test2 Test3 Nilai Var. Test1 nusantara <kosong> <kosong> Nilai var. Test2 Kali Pertama : 0 Berikutnya : 10 10 10 Nilai Var. Test3 <kosong> <kosong> 90,55
1.4
Penjelasan Kode Program 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).
test1 = "nusantara"
Bila user meng-klik tombol Test1 : Variabel test1 dideklarasikan untuk data bertype string sebagai variabel local khusus untuk blok kode Command1_Click. Catatan : setiap variabel lokal dideklarasikan pada bagian dalam blok kode program tertentu. Blok kode program disebut procedure. Variabel test1 diisi dengan data nusantara (string). Created by yoy
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
Scope dan LifeTime masing-masing variabel : <program> Private Sub Command1_Click() End Sub Private Sub Command2_Click () End Sub Private Sub Command3_Click() End Sub test3 Created by yoy test1 test2
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. 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 variable 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.
Created by yoy
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 + & Operasi Matematis pemangkatan perkalian pembagian (hasil pecahan) pembagian (hasil bulat) sisa pembagian penjumlahan pengurangan penggabungan string Contoh 5 ^ 2 hasilnya 25 5 * 2 hasilnya 10 5 / 2 hasilnya 2,5 5 5 5 5 5 \ 2 hasilnya 2 Mod 2 hasilnya 1 + 2 hasilnya 7 2 hasilnya 3 & 2 hasilnya 52
2. Operator Perbandingan digunakan untuk operasi yang membandingkan nilai data. Simbol-simbol yang digunakan : Simbol < > <= >= = <> 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
3. 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
1.2 Contoh Program : Operator Test Aktifkan VB 6 melalui tombol Start. Created by yoy
Pengaturan property setiap object-nya adalah sebagai berikut : Object Form4 Label1-2 Text1-2 Frame1-3 Option1-14 Label3 Properties Caption StartUpPosition Caption Text Caption Caption Alignment BackColor ForeColor Caption 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 hasil = var1 - var2 Label3.Caption = hasil End Sub Created by yoy
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 Private Sub Option11_Click() var1 = Text1.Text var2 = Text2.Text Created by yoy
Private Sub Option6_Click() var1 = Text1.Text var2 = Text2.Text hasil = (var1 > var2) Label3.Caption = hasil Label3.Caption = Format(hasil, "True/False")
Private Sub Option12_Click() var1 = IIf(Text1.Text = "True", -1, 0) hasil = Not (var1) Label3.Caption = Format(hasil, "True/False") End Sub
Coba lengkapi hasil operasi logika berikut ini : Var1 True True False False Var2 True False True False Or And
Created by yoy
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. Ada dua bentuk struktur kontrol keputusan, yaitu : 1. Struktur IFTHEN. Akan dibahas pada bab ini. 2. Struktur SELECTCASE. Akan dibahas pada bab selanjutnya. Bentuk penulisan (syntax) struktur IFTHEN : 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 IFTHEN
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)
Created by yoy
Pengaturan property setiap object-nya adalah sebagai berikut : Object Form5 Image1 Label1 Text1 Command1 Properties Caption StartUpPosition Stretch Picture Visible Caption PasswordChar Text Caption Default 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 Coba jalankan Project1 : 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.
Penjelasan kode program : If Text1.Text = "nusantara" Then Image1.Visible = True Kondisi kode program yang dikerjakan bila kondisi 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 !" 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 bisa digunakan). Created by yoy
Penjelasan kode program : kondisi If Text1.Text = "nusantara" Then Image1.Visible = True Text1.Enabled = False dikerjakan bila kondisi TRUE Command1.Enabled = False Else MsgBox "Passwordnya Salah !" Text1.Text = "" dikerjakan bila kondisi FALSE 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. ***
Created by yoy
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. Ada dua bentuk struktur kontrol keputusan, yaitu : 1. Struktur IFTHEN. Sudah dibahas pada bab yang lalu. 2. Struktur SELECTCASE. Akan dibahas pada bab ini. 1.2 Struktur Kontrol SelectCase
Bentuk penulisan (syntax) struktur SELECTCASE : 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 SELECTCASE Aktifkan VB 6 melalui tombol Start. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini :
Created by yoy
(Gunakan komponen Label, ListBox, TextBox dan CommandButton) Pengaturan property setiap object-nya adalah sebagai berikut : Object Form6 Label1 List1 Label2 Text1 Command1 Label3-7 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 Exit Sub End If If Text1.Text = "" Then MsgBox "Anda belum mengisi jumlah barang !!" Text1.SetFocus Exit Sub End If Created by yoy
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 Coba jalankan Project1 : List1 akan terisi nama-nama barang. Klik tombol OK akan muncul kotak pesan "Anda belum memilih barang !!". 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 (persatuannya), 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.
lblBarang.Caption = "Barang : " & List1.Text lblHarga.Caption = "Harga : " & Format(harga, "Currency") & "/" & satuan tampilkan hasilnya lblJumlah.Caption = "Jumlah : " & Text1.Text & " " & satuan jumlah = Text1.Text Select Case jumlah cek jumlah barang : Case Is < 10 diskon = 0 Case 10 To 20 diskon = 0.15 Case Else diskon = 0.2 End Select bila jumlah < 10 maka diskon = 0% bila jumlah 10-20 maka diskon = 15% bila jumlah > 20 maka diskon = 20%
total = jumlah * (harga * (1 - diskon)) Hit ung total bayar dan tampilkan hasilnya lblDiskon.Caption = "Diskon : " & Format(diskon, "0 %") lblTotal.Caption = "Total Bayar : " & Format(total, "Currency")
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 ***
Created by yoy
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. Ada dua bentuk struktur kontrol pengulangan (looping), yaitu : 1. Struktur FORNEXT. 2. Struktur DOLOOP. 1.2 Struktur Kontrol ForNext
Bentuk penulisan (syntax) struktur ForNext : 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. Struktur Kontrol DoLoop
1.3
Bentuk penulisan (syntax) struktur DoLoop : 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
Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini :
(Gunakan komponen ListBox dan CommandButton) Pengaturan property setiap object-nya adalah sebagai berikut : Object Form7 List1 Command1-4 Properties Caption Start UpPosition 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 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") Created by yoy
Penjelasan kode program : For i = 1 To 100 List1.AddItem "Angka " & I Next i pencacah (i) 1 s/d 100 kode program yang diulang
For i = 100 To 1 Step -2 pencacah (i) 1 s/d 100 dengan langkah 2 setiap pengulangan List1.AddItem "Angka " & i Next i i = Asc("A") nilai i awal 65 Do Until i > Asc("Z") pengulangan sampai nilai i > 91 kode program yang diulang List1.AddItem "Huruf " & Chr(i) i=i+1 nilai i ditambah 1 Loop i = Asc("Z") nilai i awal 91 Do While i >= Asc("A") pengulangan selama nilai i >= 65 List1.AddItem "Huruf " & Chr(i) kode program yang diulang i=i1 nilai i dikurangi 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 ***
Created by yoy
Kontrol array merupakan sekumpulan kontrol yang dikelompokkan dengan nama yang sama di dalam sebuah Form. Kontrol array digunakan bila ada beberapa kontrol yang sama dan akan mendapat perlakuan yang sama pula. Misalnya, ada 5 buah TextBox di dalam sebuah Form dan akan diprogram dengan cara yang sama, maka akan lebih mudah jika membuat sebuah TextBox sebagai kontrol array dibandingkan bila membuat 5 buah TextBox yang berbeda. Setiap object di dalam kontrol array masingmasing dibedakan dengan nomer indeksnya. 1.2 Membuat Kontrol Array Untuk membuat kontrol array (misalnya TextBox) sebanyak 5 buah di dalam sebuah form, lakukan langkah berikut ini : 1. Buatlah sebuah TextBox di dalam sebuah Form. 2. Aturlah property TextBox tersebut sebagai berikut : Name : txtData Index : 0 (nol) Perhatikan : kontrol TextBox-nya akan menjadi object txtData(0) (lihat bagian Object Selector pada Jendela Properties). 3. Klik object txtData(0) pada Form, kemudian klik tombol Copy pada bagian Toolbar. 4. Untuk membuat TextBox kedua, klik tombol Paste pada bagian Toolbar. TextBox kedua akan muncul di pojok kiri Form sebagai object txtData(1), aturlah posisinya di dalam Form. 5. Lakukan langkah ke-4 di atas sebanyak 4 kali (sesuai dengan jumlah TextBox yang dibutukan). 6. Di dalam Form akan ada 5 buah TextBox dengan nama yang sama (yaitu txtData) dan masingmasing menjadi object txtData yang dibedakan nomer indexnya (mulai dari 0 s/d 4). Selanjutnya object-object yang dibuat dengan kontrol array bisa diprogram dengan lebih mudah. Misalnya untuk mengosongkan object txtData, bisa menggunakan struktur kontrol ForNext : For i = 0 To 4 txtData(i).Text = Next i Cara ini lebih mudah bila dibandingkan cara konvensional berikut : Text1.Text = Text2.Text = Text4.Text = 1.2 Contoh Program : Kalkulator
Aktifkan VB 6 melalui tombol Start. Tambahkan Form baru ke dalam Project. Pada Jendela Form buatlah UI seperti ini :
Created by yoy
(Gunakan komponen TextBox dan CommandButton) Pengaturan property setiap object-nya adalah sebagai berikut : Object Properties Value Form9 BorderStyle 1 Fixed Single Caption Kalkulator StartUpPosition 2 Center Screen Text1 Alignment 1 Right Justify Text <kosong> Command1 Name cmdAngka Caption 1 Index 0 Command2 Name cmdHapus Caption C Command3 Name cmdOperator Caption + Index 0 Command4 Name cmdHitung Caption = Buat kontrol array dari cmdAngka (sebanyak 10 buah) dan dari cmdOperator (sebanyak 3 buah). Kemudian atur property caption masing-masing sebagai berikut : Object cmdAngka(1) cmdAngka(2) cmdAngka(3) cmdAngka(4) cmdAngka(5) cmdAngka(6) cmdAngka(7) cmdAngka(8) cmdAngka(9) cmdAngka(10) cmdOperator(1) cmdOperator(2) cmdOperator(3) Caption 2 3 4 5 6 7 8 9 0 , * /
Buka Jendela Code dan pada bagian Code Editor, lalu ketikkan kode programnya sebagai berikut : Dim angka(1 To 2) As Single Dim operator As String Private Sub cmdAngka_Click(Index As Integer) Text1.Text = Text1.Text & cmdAngka(Index).Caption Created by yoy
Penjelasan kode program : Dim angka(1 To 2) As Single Dim operator As String Deklarasi variabel-variabel global
Private Sub cmdAngka_Click(Index As Integer) Bila user meng-klik salah satu cmdAngka : Tampilkan angka pada Text1 sesuai dengan caption cmdAngka yang di-klik Text1.Text = Text1.Text & _cmdAngka(Index).Caption End Sub Perhatikan : setiap event object yang dibuat dengan kontrol array mempunyai keterangan Index yang menunjukkan nomer index object yang menerima event tersebut. Private Sub cmdOperator_Click(Index As _Integer) If Text1.Text = "" Then Exit Bila user meng-klik salah satu cmdOperator : Created by yoy
Case "+" hasil = angka(1) + angka(2) Case "-" hasil = angka(1) - angka(2) Case "*" hasil = angka(1) * angka(2) Case "/" hasil = angka(1) / angka(2) End Select Text1.Text = hasil End Sub
Tampilkan hasil penghitungan pada Text1 Private Sub cmdHapus_Click() Text1.Text = "" End Sub Bila user meng-klik cmdHapus : Kosongkan Text1
Catatan : Program kalkulator ini masih sangat sederhana, sehingga kemungkinan ada error ataupun kejanggalan lainnya. ***
Created by yoy
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. 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. Bentuk penulisan (syntax) procedure sub : [Public | Private] Sub <nama_sub> ([<argumen>]) <isi procedure> End Sub Sedangkan bentuk penulisan (syntax) procedure function : [Public | Private] <tipe_data> <isi procedure> End Function Function <nama_function> ([<argumen>]) As
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.
Created by yoy
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. Tambahkan Form baru ke dalam Project. 3. Pada Jendela Form buatlah UI seperti ini :
4. (Gunakan komponen Label dan CommandButton) 5. Pengaturan property setiap object-nya adalah sebagai berikut : Object Form11 Propertie s Caption StartUpPos ition Alignment BackColor Font ToolTipTex t Caption ToolTipTex t Caption Value Procedure Test 2 Center Screen Center Palette : <putih> Size : 24 Dobel-Klik di Sini Sub Test Klik di Sini Function Test
Label1
Command1 Command2
6. Buka Jendela Code, lalu pada bagian Code Editor ketikkan kode programnya sebagai berikut : Created by yoy
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 Kerjakan tugas sesuai .ForeColor = warna dengan argumen yang End With diberikan End Sub
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) Kerjakan End If tugas End Function
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 : 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 Created by yoy
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. 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.
Created by yoy
Penanganan Keyboard
13.1. Mengenal Event Keyboard Event keyboard merupakan salah satu elemen utama dari interaksi antara user dengan program yang kita buat. Event keyboard terjadi saat user menekan (pressed) ataupun melepas (released) tombol pada keyboard. Menangani event keyboard dapat dilakukan pada 2 (dua) level, yaitu : 1. Pada level kontrol (low-level) menangani event keyboard yang terjadi pada sebuah kontrol, misalnya ketika user mengetik pada sebuah TextBox. Tidak semua kontrol mempunyai event keyboard. Hanya kontrol yang bisa mendapatkan focus (dicirikan dengan property TabIndex dan TabStop) saja yang mempunyai event keyboard. 2. Pada level form (hight-level) menangani event keyboard yang terjadi pada lingkup sebuah form. Artinya form akan lebih dulu merespon event keyboard daripada kontrol-kontrol yang ada di dalamnya. Agar form selalu lebih dulu merespon event keyboard maka property KeyPreview pada form tersebut harus diset menjadi True. 13.2. Jenis-jenis Event Keyboard VB6 menyediakan 3 (tiga) jenis event pada form dan pada beberapa kontrol yang bisa menerima input dari user melalui keyboard, yaitu : 1. Event KeyPress terjadi ketika tombol-tombol yang mempunyai kode ASCII pada keyboard ditekan. ASCII (American Standard Code for Information Interchange) adalah kode dari sekumpulan karakter pada tombol keyboard yang terdiri dari : abjad, angka dan beberapa karakter khusus (Enter, Escape, Tab, Backspace). 2. Event KeyDown terjadi ketika setiap tombol pada keyboard ditekan. 3. Event KeyUp terjadi ketika setiap tombol pada keyboard dilepas. Perbedaan antara event KeyPress dengan KeyDown adalah : Event KeyPress hanya berlaku untuk tombol-tombol yang mempunyai kode ASCII saja. Tomboltombol tertentu - seperti : tombol fungsi (F1 s/d F12), tombol panah, tombol keypad tidak mempunyai kode ASCII. Event KeyPress tidak bisa merespon penekanan tombol yang di kombinasi dengan Shift, Ctrl dan Alt.
Bila event KeyPress terjadi maka event tersebut akan mengembalikan nilai dari argumen KeyAscii yaitu kode ASCII dari tombol keyboard yang ditekan. Created by yoy
(Gunakan kontrol PictureBox) Pengaturan property setiap object-nya adalah sebagai berikut : Object Form12 Properties BackColor Caption KeyPreview ScaleMode StartUpPosition Name AutoSize BackColor BorderStyle Picture ScaleMode Value Palette: <putih> Demo Event Keyboard True 3 Pixel 2 Center Screen picRoket True Palette: <putih> 0 None Roket.ico 3 Pixel
Picture1
Buka Jendela Code, lalu pada bagian Code Editor ketikkan kode programnya sebagai berikut : Created by yoy
Melihat nilai konstanta (dari argumen KeyAscii atau KeyCode) untuk tomboltombol pada keyboard :
1. Klik menu View Object Browser atau tekan tombol F2 pada keyboard. 2. Cari KeyCodeConstants pada bagian Classes. 3. Lihat daftar pada bagian Member of KeyCodeConstants, inilah kumpulan konstanta untuk setiap tombol pada keyboard. 4. Klik nama konstanta dan lihat pada bagian Description untuk mengetahui tombol apa yang diwakilinya. 5. Klik tombol Copy untuk menyalin konstanta ke dalam kode program.
Created by yoy
Created by yoy
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). Property, method dan event yang berhubungan dengan drag-drop adalah sebagai berikut: Property DragMode Object Source 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 didrag melewati object target. Saat object source didrop pada object target.
DragIcon
Source
Object Source
Nilai untuk argumen action adalah sebagai berikut: Nilai vbBeginDrag = 1 vbCancel = 0 vbEndDrag = 2 Keterangan Memulai operasi drag-drop Membatalkan operasi drag-drop Mengakhiri operasi drag-drop
Created by yoy
Setting property object-nya adalah sebagai berikut: Object Form14 Text1 Properties BorderStyle Caption StartUpPosition DragMode Text 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:
Created by yoy
Keterangan: 1. Ketikkan sesuatu pada Text1. 2. Lakukan drag-drop ke List1. 3. Perhatikan nilai argumen pada event DragOver. Ubahlah property object Text1 sebagai berikut: Object Text1 Properties DragIcon DragMode
Modifikasi kode programnya seperti pada Listing-14B. Coba jalankan kembali program-nya. 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 Created by yoy
Created by yoy
OLEDropMode
Target
Method OLEDrag
Object Source
OLEDragDrop
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. 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 Files Method Clear GetData(format) 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.
GetFormat(format)
Nilai untuk argumen format adalah sebagai berikut: Nilai Dikosongkan = 0 vbCFText = 1 vbCFBitmap = 2 vbCFMetafile = 3 vbCFDIB = 8 vbCFFiles = 15 Keterangan Format data akan ditentukan otomatis berdasarkan datanya. Data teks Data bitmap (gambar) Data metafile (gambar) Data device-independent bitmap (gambar) Data file Created by yoy
15.4. Contoh Program: OLE Drag-Drop Test 1. 2. 3. 4. Aktifkan program Microsoft Visual Basic 6.0. Bukalah kembali file project Latihan.vbp. Tambahkan form baru ke dalam project. Pada Jendela Object buatlah User Interface seperti ini:
Setting property object-nya adalah sebagai berikut: Object Form15 Text1 Image1 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
Created by yoy
Buka Jendela Code, lalu ketikkan kode programnya seperti pada Listing-15. 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. Aktifkan program Windows Explorer:
Created by yoy
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 atauCtrl+klik untuk memilih lebih dari 1 file).
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 Created by yoy
Created by yoy