Modul Tutorial Visual Basic 6
Modul Tutorial Visual Basic 6
Menjalankan IDE
Salah satu cara untuk mengaktifkan IDE Visual Basic adalah menjalankannya dari
Menu Start, pilih menu Command, dan pilih Microsoft Visual Basic 6.0 dan akhirnya
Microsoft Visual Basic 6.0.
Catatan : Seperti aplikasi Windows umumnya, anda dapat juga mengaktifkan IDE Visual Basic dengan
melakukan open terhadap file yang berkaitan dengan Visual Basic, misalnya file *.vbp yang merupakan
file project dari Visual Basic.
1
Modul Visual Basic 6
[email protected]
Memilih jenis Project
Sesaat anda aktif di IDE Visual Basic, maka anda akan dihadapkan kepada suatu
pilihan terhadap jenis Project yang ingin anda buat sebagaimana yang ditunjukan oleh
Gambar 1-2.
Sebagai langkah awal dari proses belajar adalah memilih project Standard EXE.
Gambar 1-2. Dialog box New Project ditampilkan sesaat anda menjalankan IDE Visual
Basic 6.
Jendela IDE
IDE Visual Basic 6 menggunakan model MDI (Multiple Document Interface). Berikut ini
adalah gambar yang menunjukan bagian-bagian dan nama-nama jendela yang dapat
tampil pada IDE Visual Basic. Mungkin pada IDE anda hanya ditampilkan sebagian
jendela dibandingkan dengan Gambar 1-3 anda tidak perlu terkejut, karena penampilan
dari jendela-jendela tersebut dapat diatur dengan perintah pada menu View.
Sebagai langkah awal dari proses belajar, tidak semua jendela akan kita gunakan,
tetapi hanya beberapa yang penting, sedangkan yang lainnya bersifat khusus.
2
Modul Visual Basic 6
[email protected]
Sebagaimana dengan proses belajar ini, kita akan fokus pada beberapa jendela yang
penting terlebih dahulu sehingga konsentrasi tidak menjadi pecah, dan peserta belajar
menjadi bingung. Adapun jendela-jendela yang perlu anda perhatikan adalah sebagai
berikut :
Jika jendela-jendela tersebut tidak ada, anda dapat memunculkannya dengan Menu
View dan pilih :
Toolbox
Jendela Toolbox merupakan jendela yang sangat penting bagi anda. Dari jendela ini
anda dapat mengambil komponen-komponen (object) yang akan ditanamkan pada form
untuk membentuk user interface.
4
Modul Visual Basic 6
[email protected]
Gambar 1-3. Toolbox Visual Basic 6 dengan semua kontrol intrinsic.
Adapun secara garis besar fungsi dari masing-masing intrinsic kontrol tersebut adalah
sebagai berikut :
• Pointer bukan merupakan suatu kontrol; gunakan icon ini ketika anda ingin
memilih kontrol yang sudah berada pada form.
• PictureBox adalah kontrol yang digunakan untuk menampilkan image dengan
format: BMP, DIB (bitmap), ICO (icon), CUR (cursor), WMF (metafile), EMF
(enhanced metafile), GIF, dan JPEG.
• Label adalah kontrol yang digunakan untuk menampilkan teks yang tidak dapat
diperbaiki oleh pemakai.
• TextBox adalah kontrol yang mengandung string yang dapat diperbaiki oleh
pemakai, dapat berupa satu baris tunggal, atau banyak baris.
• Frame adalah kontrol yang digunakan sebagai kontainer bagi kontrol lainnya.
• CommandButton merupakan kontrol hampir ditemukan pada setiap form, dan
digunakan untuk membangkitkan event proses tertentu ketika pemakai
melakukan klik padanya.
• CheckBox digunakan untuk pilihan yang isinya bernilai yes/no, true/false.
• OptionButton sering digunakan lebih dari satu sebagai pilihan terhadap
beberapa option yang hanya dapat dipilih satu.
• ListBox mengandung sejumlah item, dan user dapat memilih lebih dari satu
(bergantung pada property MultiSelect).
• ComboBox merupakan konbinasi dari TextBox dan suatu ListBox dimana
pemasukkan data dapat dilakukan dengan pengetikkan maupun pemilihan.
• HScrollBar dan VScrollBar digunakan untuk membentuk scrollbar berdiri
sendiri.
• Timer digunakan untuk proses background yang diaktifkan berdasarkan interval
waktu tertentu. Merupakan kontrol non-visual.
• DriveListBox, DirListBox, dan FileListBox sering digunakan untuk membentuk
dialog box yang berkaitan dengan file.
• Shape dan Line digunakan untuk menampilkan bentuk seperti garis, persegi,
bulatan, oval.
• Image berfungsi menyerupai image box, tetapi tidak dapat digunakan sebagai
kontainer bagi kontrol lainnya. Sesuatu yang perlu diketahui bahwa kontrol
image menggunakan resource yang lebih kecil dibandingkan dengan PictureBox
• Data digunakan untuk data binding
• OLE dapat digunakan sebagai tempat bagi program eksternal seperti Microsoft
Excel, Word, dll.
5
Modul Visual Basic 6
[email protected]
• Mengatur Editor
6
Modul Visual Basic 6
[email protected]
• Mengatur Environment
7
Modul Visual Basic 6
[email protected]
8
Modul Visual Basic 6
[email protected]
Type Variabel
Dibandingkan dengan type data yang terdapat pada bahasa basic, maka pada VBA,
type data yang disediakan lebih banyak, seperti type Currency, Decimal, Object, dan
Variant.. Variant merupakan type variabel yang istimewa, karena dapat berubah dari
satu type ke type yang lain, sesuai dengan evaluasi ekspresi oleh Visual Basic.
Ketepatan pemilihan type variabel akan sangat menentukan pemakaian resources oleh
aplikasi yang dihasilkan, adalah tugas programmer untuk memilih type yang sesuai
untuk menghasilkan program yang efisien dan berperfomance tinggi.
9
Modul Visual Basic 6
[email protected]
Contoh :
B = (1 + 2) * 3 'Akan menghasilkan 9
Tabel 1-2. Operator pada Visual Basic dan urutan operasi dari atas ke bawah
Operator Like
Salaj satu operator yang menarik untuk dibahas adalah operator like, Operator
digunakan untuk operasi pencocokan pola pada string yang akan sangat membantu
programmer.
Syntax :
Contoh :
Deklarasi Variabel
Visual Basic memungkinkan kita untuk menggunakan variabel tanpa deklarasi. Tetapi
hal ini adalah kurang baik untuk program yang terstruktur dan menghindari kesalahan
pengolahan yang diakibatkan oleh kesalahan dalam pengetikkan nama variabel.
Agar setiap variabel yang digunakan harus dideklarasikan, dapat digunakan perintah :
Option Explicit
Pada setiap awal module, atau pada menu Tools, pilih Option, pilih tab Editor, buat
tanda check pada Require Variable Declaration.
Deklarasi variabel pada Visual Basic dapat dilakukan dengan Keyword berikut :
Syntax :
Latihan 1
Judul : Mengenal IDE Visual Basic
1. Aktifkan IDE Visual Basic anda dengan memilih Start, kemudian Programs,
kemudian Microsoft Visual Basic 6, dan Microsoft Visual Basic 6.
2. Pada dialog box New Project, pilihlah Standard EXE, kemudian klik pada Open
11
Modul Visual Basic 6
[email protected]
3. Pada hadapan anda akan muncul IDE Visual Basic, dan kenali masing-masing
bagian berikut :
• Menu Bar
• Main Toolbar
• Jendela Toolbox
• Jendela Form
• Jendela Project Explorer
• Jendela Properties
12
Modul Visual Basic 6
[email protected]
4. Sekarang Perhatikan Jendela Toolbox, dan kenali kontrol-kontrol berikut :
• Pointer
• PictureBox
• Label
• Textbox
• Frame
• CommandButton
• Checkbox
• OptionButton
• Combobox
• Listbox
• Image
Lakukan klik pada Form1 (Form1), dan klik pada icon View Code, maka akan
ditampilkan Jendela Code
Lakukan klik pada icon View Object, maka akan ditampilkan Form1
13
Modul Visual Basic 6
[email protected]
6. Periksalah setting IDE Visual Basic, dan aktifkan hal-hal berikut pada menu Tools,
Option :
7. Keluar dari IDE Visual Basic, dengan memilih menu File, pilih Exit, atau menekan
Alt+Q
Latihan 2
Judul : Project anda yang pertama
Caranya :
Catatan : Kontrol, kontrol tersebut ditanamkan satu per satu, dan jangan menggunakan
cara Copy dan Paste karena akan menyebabkan kontrol-kontrol tersebut menjadi
kontrol array.
Caranya :
Name cmdSelesai
Command2
Caption &Selesai
Catatan : tanda ampersand & pada Visual Basic digunakan sebagai penanda kunci
akses penekanan Alt oleh pemakai.
4. Lakukan koding untuk menghitung Luas, ketika pemakai melakukan klik atau Alt H,
pada cmdHitung
Caranya :
Lakukan double klik pada kontrol cmdHitung, sehingga akan muncul jendela koding dan
procedure event cmdHitung_Click :
End Sub
procedure event, adalah subrutin yang akan dibangkitkan oleh aplikasi, ketika pemakai
melakukan klik pada kontrol cmdHitung. Perintah-perintah yang anda ketik diantara Sub dan
End Sub akan dijalankan.
Cara lain :
Tekan F7 untuk menampilkan jendela koding, kemudian pilih nama kontrol dari daftar kontrol
seperti gambar berikut :
16
Modul Visual Basic 6
[email protected]
kemudian pilih daftar kejadian (event) seperti yang ditunjukkan pada gambar berikut :
Catatan : sebaiknya anda senantiasa menggunakan salah satu cara diatas untuk melakukan
koding untuk menjamin kebenaran penulisan pada masing-masing event procedure.
5. Tampilkan kembali MyForm dengan klik View Object pada jendela Project Explorer
6. Menyimpan project :
Klik pada icon save atau gunakan menu File, dan pilih
Pilih Save in pada folder Vb2, dan nama form MyForm.frm, dan klik Save
17
Modul Visual Basic 6
[email protected]
10. Atur tab index masing-masing kontrol, dimana Label1 (0), txtPanjang (1), Label2
(2), txtLebar (3), Label3 (4), txtLuas(5), cmdHitung (6), cmdSelesai (7).
Caranya :
Klik pada cmdSelesai, atau properti tabindexnya menjadi 0, kemudian klik pada cmdHitung, atur
properti indexnya menjadi 0, kemudian txtLuas, Label3, txtLebar, Label2, txtPanjang, Label1,
masing-masing menjadi 0, sekarang semua kontrol telah berurut sesuai dengan yang kita
inginkan. (Ini adalah salah satu trik untuk menomori tabindex dengan mudah)
11. Jalankan kembali program anda, sekarang coba tekan Alt+P, Alt+L, sekarang anda
dapat mengaktifkan textbox Panjang dengan Alt+H (akses key dari Label1), dst.
18
Modul Visual Basic 6
[email protected]
12. Atur properti project anda, dengan menu Project, kemudian Project Properties, akan
muncul dialog sebagai berikut
14. Aktifkan kembali Visual Basic anda, dan klik pada tab Recent, dan pilih kembali
MyProject1.
Latihan 3
Judul : Memahami operator pada VBA
Petunjuk, sebaiknya lembar latihan ini anda cetak ke printer.
19
Modul Visual Basic 6
[email protected]
1. Aktifkan jendela Immedietly dengan menggunakan menu View, Immedietly Window
atau menekan Ctrl + G
• ?1+2
• ? "1" + "2"
• ? 1 + "2"
• ? "1" + 2
• ?1&2
• ? "1" & "2"
• ? "1" & 2
Catatan : Pada Visual Basic data date/time ditulis dengan #tanggal#, Operator +
digunakan untuk menambah sejumlah hari, Operator - digunakan untuk mengurangi
sejumlah hari atau selisih hari.
• ? True + 0
• ? True + "0"
• ? False
• ? False + 0
• ? True = -1
• ? False = 0
Catatan : Pada Visual Basic nilai True adalah sama dengan -1, dan nilai False adalah 0
20
Modul Visual Basic 6
[email protected]
• ? "A1" like "A?"
• ? "A1" like "A#"
• ? "Aa" like "A#"
• ? 1 and 3 'Mengapa ?
• ? 1 or 4
• ? 2 xor 2
Catatan : Operator and, or, xor, eqv, imp, dan not dapat digunakan untuk operasi
bitwise
2. Tanamkan sebuah kontrol CommandButton pada Form1, dan atau properti name :
cmdCoba, dan caption : &Coba, seperti berikut ini :
Jalankan program, dan klik pada tombol Coba, dan perhatikan hasilnya, apakah sesuai
dengan perkiraan anda?
• Kontrol-kontrol yang barada pada jendela Toolbox pada Visual Basic merupakan
class-class. Objek tersebut dikenal sebagai kontrol tidak akan ada sampai anda
menanamkannya pada suatu form. Ketika anda menanamkan suatu kontrol,
anda telah membuat suatu duplikasi atau instance dari class kontrol tersebut.
• Form dimana anda bekerja pada saat desain adalah suatu class. Pada saat run
time, Visual Basic menciptakan suatu instance dari class form.
Gambar 2-1, kontrol Text1 yang ditanam diatas form berasal dari class Textbox
Misalnya anda menamkan sebuah textbox diatas form1, coba perhatikan jendela
properti kontrol tersebut akan menampilkan Text1 (nama dari kontrol textbox tersebut)
dan Textbox (nama dari class kontrol tersebut).
22
Modul Visual Basic 6
[email protected]
Gambar 2-2, jendela property menunjukkan nama kontrol dan jenis Class-nya
Semua objek merupakan duplikasi dari class mereka. Sesaat setelah menjadi objek
berdiri sendiri, masing-masing dapat memiliki properti yang berbeda-beda.
Misalnya anda menanam tiga buah command button pada suatu form, masing-masing
command button merupakan instance dari class CommandButton sehingga memiliki
sejumlah karakteristik dan kemampuan (properti-properti, metode-metode, dan event-
event) yang sama, dimana yang terdefinisi pada class-nya. Tetapi, masing-masing
dapat memiliki Name, Caption, BackColor, Style yang berbeda sesuai dengan
pengaturan pada masing-masing properti.
Anda dapat langsung mengatur nilai properti suatu kontrol pada jendela properti,
maupun pada saat runtime dengan menggunakan bentuk penulisan berikut :
Objek.properti = ekspresi
Contoh :
23
Modul Visual Basic 6
[email protected]
Gambar 2-4, pengaturan properti dapat dilakukan melalui jendela properti pada waktu
desain
atau
Anda dapat mengambil nilai dari properti suatu objek dengan penulisan sebagai
berikut :
Variabel = Objek.properti
Contoh :
Ketika anda mengunakan suatu metode dalam kode anda, hal tersebut tergantung
kepada bagaimana kaitan perintah dan berapa argumen yang diperlukan, dan apakah
metode tersebut mengembalikan suatu nilai. Ketika suatu metode tidak membutuhkan
argumen anda dapat menulisnya sebagai berikut ::
Objek.Metode
Contoh :
Berikut ini akan dibahas beberapa properti yang umum yang hampir terdapat pada
semua intrinsic kontrol pada Visual Basic.
24
Modul Visual Basic 6
[email protected]
Properti Left, Top, Width dan Height
Semua objek yang visible memiliki properti yang menentukan letak dan ukurannya. Nilai
properti Left dan Top sifatnya relatif terhadap kontainernya (misalnya suatu textbox
yang ditanamkan diatas form, maka form tersebut disebut sebagai kontainer bagi
textbox tersebut), sedangkan Width dan Height menentukan ukuran dari objek tersebut.
Nb. Pada defaultnya nilai properti ini dinyatakan dalam twips ( 1 inch = 1440 twips; 1 cm
= 576 twips)
Perhatian : Properti Width dan Height pada control Combobox sifatnya readonly.
Umumnya objek yang visible memiliki properti Forecolor dan Backcolor, yang
mempengaruhi warna tulisan dan warna latarbelakang, tetapi beberapa diantaranya
tidak ada (misalnya control scroll-bars), pada command button tidak terdapat properti
Forecolor, dan Backcolornya hanya berfungsi jika anda menganti properti style menjadi
1 - Graphical.
Nb. Setting properti Backcolor menjadi tidak berfungsi jika anda menset properti
BackStyle menjadi 0 - transparent.
25
Modul Visual Basic 6
[email protected]
Ketika anda menentukan nilai untuk properti ini, anda dapat menggunakan suatu warna
standard, atau warna custom (saya menyarankan anda untuk menggunakan warna
standard untuk menjaga nilai rasa pemakai integrasi dengan sistem operasi)
Properti Font
Pada waktu desain, anda dapat menentukan properti Font dengan dialog box, tetapi
pada saat runtime, hal tersebut harus dilakukan dengan properti Name, Size, Bold,
Italic, Underline, and Strikethrough, karena sebenarnya Font adalah suatu objek
campuran.
Contoh :
Text1.Font.Name = "Tahoma"
Text1.Font.Size = 12
Text1.Font.Bold = True
Text1.Font.Underline = True
Caption adalah tulisan yang tampil dalam suatu control (atau title pada objek form) yang
mana pemakai tidak dapat melakukan modifikasi langsung (control Label,
CommandButton, Checkbox, Optionbutton, Data, dan Frame), sebaliknya Text adalah
tulisan yang dapat dimodifikasi oleh pemakai (control Textbox, Listbox dan Combobox).
26
Modul Visual Basic 6
[email protected]
Gambar 2-8, pengaturan Font melalui dialog box Font dari jendela properti
Nb. Pada properti Caption, kita dapat menggunakan tanda & (ampersand) untuk
menyatakan hotkey bagi control tersebut. Properti Text dapat diabaikan, karena
merupakan properti default bagi suatu control.
Contoh :
Pada defaultnya semua control dan form adalah Enabled dan Visible. Anda dapat
menyembunyikan suatu kontrol dengan menggunakan properti Visible = False. Kontrol
yang properti Enabled = False tidak dapat diakses oleh pemakai, tetapi dapat diakses
secara kode.
Programmer dapat juga menggunakan properti Locked = True untuk membuat suatu
kontrol read only.
Suatu kontrol yang dapat menerima fokus input memiliki properti TabStop. Kontrol yang
memiliki properti TabStop juga memiliki properti TabIndex. Properti TabStop
menentukan apakah suatu kontrol dapat menerima fokus pada penekanan tombol Tab
oleh pemakai, defaultnya adalah true, sedangkan properti TabIndex menentukan urutan
fokus pada saat pemakai menekan Tab.
Properti ini akan menentukan bentuk kursor mouse ketika berada diatas kontrol
tersebut. Windows memperbolehkan kita mengatur tampilan mouse untuk setiap form
dan kontrol dengan mengikuti aturan berikut :
27
Modul Visual Basic 6
[email protected]
• Jika properti Screen.MousePointer di set ke nilai yang bukan 0-vbDefault, kursor
mouse akan mengikuti nilai ini, tetapi ketika mouse berada diatas aplikasi lain
(atau pada desktop), tampilan kursor akan bergantung kepada kondisi aplikasi
bersangkutan, bukan pada aplikasi anda.
• Jika Screen.MousePointer adalah 0 dan kursor mouse berada diatas suatu
kontrol, Visual Basic akan memeriksa nilai properti MousePointer kontrol
tersebut; jika nilainya bukan 0-vbDefault, kursor mouse akan di set ke nilai
tersebut.
• Jika Screen.MousePointer adalah 0 dan mouse berada diatas permukaan suatu
form atau berada diatas kontrol yang properti MousePointer adalah 0, Visual
Basic akan menggunakan nilai yang tersimpan pada properti Mousepointer pada
form.
Properti MouseIcon dapat digunakan untuk menampilkan bentuk pointer mouse sesuai
dengan keinginan pemakai, tetapi sebelumnya properti MouseIcon harus di set ke 99-
vbCustom, dan kemudian set suatu icon pada properti MouseIcon.
Gambar 2-9, pengaturan Mouse Pointer dan Mouse Pointer melalui jendela properti
Properti Tag
Semua kontrol mendukung properti Tag, tanpa kecuali, karena properti ini disediakan
oleh Visual Basic, bukan oleh kontrol. Properti Tag digunakan sebagai kontainer untuk
bagi data dari kontrol yang anda ingin simpan (misalnya anda dapat mengunakannya
untuk menyimpan nilai awal dari textbox, sehingga pemakai dapat melakukan Undo
dengan mengembalikan nilai awal tersebut dari properti Tag).
Berikut ini akan dibahas beberapa metode yang umum yang hampir terdapat pada
semua intrinsic kontrol pada Visual Basic.
28
Modul Visual Basic 6
[email protected]
Metode Move
Jika suatu kontrol mendukung properti Left, Top, Width, dan Height, juga mendukung
metode Move, dengannya dimana anda dapat mengubah beberapa atau semua
properti dalam satu operasi tunggal. Contoh berikut mengubah tiga properti: Left, Top,
dan Width.
Contoh :
Form1.Move 0, 0, Form1.Width * 2
Metode Refresh
Metode refresh menyebabkan suatu form akan digambar ulang. Pada dasarnya Visual
Basic otomatis memanggil metode ini setiap ada kesempatan, tetapi anda dapat
menggunakannya untuk mengupdate tampilan seketika.
Contoh :
Metode SetFocus
Metode ini memindahkan fokus input ke kontrol tertentu. Sesuatu masalah yang sering
terjadi adalah metode ini akan menyebabkan error ketika diterapkan pada kontrol yang
sedang di Disable atau dalam keadaan Invisible. Untuk menhindari hal ini, metode
SetFocus jangan digunakan pada bagian Form Load.
Contoh :
Metode ZOrder
Metode ZOrder memberikan efek tampilan kontrol yang saling menimpa. Anda
menggunakan metode ini untuk memindahkan kontrol keatas kontrol yang lain.
Gunakan argumen satu untuk sebaliknya.
Contoh :
29
Modul Visual Basic 6
[email protected]
Pada saat design, anda dapat menggunakan Ctrl+J untuk memindahkan kontrol ke
depan, dan Ctrl+K untuk memindahkan form ke belakang.
Berikut ini akan dibahas beberapa metode yang umum yang hampir terdapat pada
semua intrinsic kontrol pada Visual Basic.
Event click terjadi ketika pemakai melakukan klik pada tombol kiri mouse. demikian juga
Event DblClick terjadi karena pemakai melakukan klik dua kali.
Pada kontrol-kontrol seperti Checkbox dan OptionButton, event Click juga dibangkitkan
kalau terjadi perubahan nilai properti Value secara koding.
ListBox dan Combobox juga melakukan hal yang sama kalau properti ListIndex-nya
berubah.
Adalah penting untuk menghindari pemakaian Event Click dan DblClick pada satu
kontrol yang sama, karena tidak menjamin Event DblClick dibangkitkan setelah Event
Click terjadi.
30
Modul Visual Basic 6
[email protected]
Event Change
Event Change dibangkitkan ketika isi dari suatu kontrol berubah. Tetapi pada
CheckBox, dan OptionButton Event Click yang dibangkitkan.
Pada kontrol TextBox dan ComboBox dibangkitkan ketika pemakai mengetik sesuatu.
(Tetapi pada kontrol ComboBox, kontrol membangkitkan event Click kalau pemakai
memilih item dari list dari pada mengetiknya). Pada kontrol Scroll bar event Change
terjadi ketika pemakai melakukan klik baik pada panah maupun scroll box. Event
Change juga terdapat pada PictureBox, DriveListBox, dan kontrol DirListBox.
Event Change juga dibangkitan oleh isi kontrol yang diubah melalui koding.
Event-event ini dibangkitkan ketika pemakai menekan tombol pada keyboard pada
kontrol yang memiliki fokus. Urutan eventnya adalah : KeyDown (ketika pemakai
menekan tombol), KeyPress (Visual Basic menterjemahkan tombol ke numerik ANSI
code), dan KeyUp (ketika pemakai melepas tombol). Hanya tombol yang berkaitan
dengan tombol kontrol (Ctrl+x, BackSpace, Enter, dan Escape) serta karakter yang
dapat dicetak membangkitkan event KeyPress event. Tombol lainnya--termasuk tombol
panah, tombol fungsi, kombinasi Alt+x, tidak menyebabkan event ini, hanay
membangkitkan event KeyDown dan KeyUp.
Event KeyPress melewatkan ANSI code dari tombol yang ditekan. Anda dapat
memanipulasinya untuk keperluan tertentu.
Objek Browser
Anda dapat melihat properti-properti, metode-metode, dan event-event pada suatu
objek dengan menggunakan fasilitas Objek Browser yang dapat diaktifkan dengan
menggunakan menu View, Object Browser.
31
Modul Visual Basic 6
[email protected]
Gambar 2-11, jendela objek browser untuk melihat isi suatu objek
Mengenal Form
Form merupakan objek pertama yang anda hadapi begitu membuat suatu project dan
merupakan tempat kita membentuk user interface. Pada form kita dapat menanamkan
berbagai Kontrol seperti label, textbox, combobox, listbox, optionbutton, dll.
32
Modul Visual Basic 6
[email protected]
Untuk memudahkan anda mengatur ukuran, jarak antar kontrol maupun pemerataan
kontrol-kontrol yang anda tempatkan diatas form, anda dapat menggunakan kelompok
menu format
• Bagian General Declaration, bagian ini digunakan untuk deklarasi Option Explicit,
Option Base, Type, dan variabel yang dapat digunakan pada form level (dikenal
oleh semua subrutin pada form tersebut) baik pada tingkat Public maupun
Private. Bagian ini biasanya terletak pada bagian teratas pada jendela koding.
33
Modul Visual Basic 6
[email protected]
• Bagian General Procedure, bagian ini merupakan subrutin maupun fungsi yang
dibuat oleh pemakai. Bagian ini ditandai dengan (General), dan nama subrutin.
• Bagian Event Procedure, bagian ini merupakan subrutin yang digunakan untuk
menangani kejadian yang diakibatkan oleh aksi pemakai terhadap kontrol
tertentu. Ditandai dengan nama kontrol dan jenis eventnya.
34
Modul Visual Basic 6
[email protected]
Event Initialize
Event ini terjadi pertama kali ketika Form dibuat dari Class-nya dan hanya sekali
selama keberadaan form tersebut, Event ini digunakan untuk menginisialisasi nilai awal
variabel.
Event Terminate
Event ini terjadi ketika objek Form akan dimusnahkan dari memori.
Event Load
Event ini terjadi ketika suatu form di Load. Pada Event procedure ini anda letakkan
statement yang digunakan untuk mengatur setting awal form anda, misalnya membuka
file, menginisialisasi nilai awal variabel, dan mengatur properti kontrol-kontrol pada
form.
Contoh :
Event QueryUnload
Event ini terjadi ketika suatu form akan tutup, dan dapat mempelajari bagaimana
pemakai menutup form tersebut dengan mempelajari parameter UnloadMode.
Contoh :
Event UnLoad
Event ini terjadi ketika suatu form di unload dengan menggunakan command Close
pada Control menu atau dengan statement UnLoad. Event ini terjadi setelah Event
QueryUnload. Anda dapat mengetikkan kode-kode untuk menutup file-file yang terbuka
pada Event ini.
Contoh :
Contoh :
Event Resize
Event ini terjadi ketika form pertama kali ditampilkan atau ukuran dari suatu object
berubah.
Contoh :
Catatan :
ScaleWidth, properti yang mengembalikan nilai ukuran lebar interior dari suatu kontrol
ScaleHeight, properti yang mengembalikan nilai ukuran lebar interior dari suatu kontrol
Event Activate
Event Activate terjadi ketika suatu form menjadi jendela aktif, ketika user melakukan klik
pada form, atau menggunakan metode SHOW atau SETFOCUS.
Event DeActivate
Event DeActivate terjadi ketika suatu form menjadi jendela yang tidak aktif, dimana
ketika focus bergeser ke form lain. Event ini tidak terjadi pada saat UNLOAD.
Perintah Load
Syntax :
Load form
Contoh :
Metoda Show
37
Modul Visual Basic 6
[email protected]
Melakukan Load suatu Form, dan membuatnya menjadi Visible.
Syntax :
object.Show
Contoh :
Metoda Hide
Syntax :
object.Hide
Contoh :
Perintah UnLoad
Syntax :
UnLoad form
Contoh :
Initialize, hanya sekali yaitu ketika form pertama kali dibuat dari Class-nya
Load, Activate
Deactivate
38
Modul Visual Basic 6
[email protected]
Ketika anda menulis Code Visual Basic, anda mendeklarasikan banyak elemen (Sub
dan Function procedures, variables, constants,dan lainnya). Nama dari procedure,
variabel, dan konstanta yang mana anda deklarasi pada Visual Basic harus mengikuti
petunjuk berikut :
Keyword yang tercadang adalah kata yang Visual Basic gunakan sebagai bagian dari
bahasanya. Ini terdiri dari predefined statements (seperti If dan Loop), function (seperti
Len dan Abs), dan operator (seperti Or dan Mod).
Deklarasi Variabel
• Deklarasi variabel pada bagian deklarasi di suatu form, standard, atau class
module, dari pada dalam suatu procedure, membuat variabel itu berlaku
untuk semua procedure dalam module tersebut
• Deklarasi variabel dengan menggunakan keyword Public membuatnya
berlaku pada keseluruhan aplikasi anda.
• Deklarasi suatu variabel lokal dengan menggunakanan keyword Static akan
menyimpan nilainya ketika suatu procedure berakhir.
Deklarasi Implicit
Deklarasi Explicit
Untuk mencegah kesalahan mengetik variabel, dan Visual Basic akan selalu
memberikan peringatan jika menemukan nama yang tidak dideklarasikan terlebih
dahulu sebagai suatu variabel.
Catatan :
Pernyataan Option Explicit hanya bekerja per-module, sehingga harus diletakkan pada
bagian deklarasi pada setiap form, dan class module yang mana anda ingin Visual
Basic memaksakan suatu explicit variabel deklarasi
39
Modul Visual Basic 6
[email protected]
berjalan dari kiri ke kanan dan dari atas kebawah. Hanya program yang sangat
sederhana dapat ditulis tanpa statement control-flow.
Struktur Keputusan
Struktur keputusan yang didukung oleh Visual Basic adalah sebagai berikut :
If...Then
atau
If kondisi Then
pernyataan-pernyataan
End If
If...Then...Else
If kondisi1 Then
[blok pernyataan-1]
[ElseIf kondisi2 Then
[blok pernyataan-2]] ...
[Else
[blok pernyataan-n]]
End If
Visual Basic awalnya akan mencoba kondisi1. Jika False, maka Visual Basic akan
memeriksa kondisi2, dan seterusnya sampai menemukan suatu kondisi True untuk
dijalankan blok pernyataannya.
Contoh :
40
Modul Visual Basic 6
[email protected]
Select Case
Visual Basic menyediakan struktur Select Case sebagai suatu alternatif terhadap
If...Then...Else. Suatu Select Case statement memiliki kemampuan yang sama dengan
If…Then…Else…, tetapi membuat code lebih mudah dibaca.
Struktur Select Case bekerja dengan suatu percobaan tunggal yang hanya dievaluasi
satu kali pada bagian atas struktur. Visual Basic then membandingkan hasil ekspresi
dengan nilai pada setiap Case didalam struktur tersebut, jika ada yang sesuai, akan
dijalankan blok statement yang sesuai
End Select
Latihan 1
Judul : Memahami urutan event, metoda, dan perintah pada Form
1. Tambahkan Form2 ke dalam project anda (caranya : Pada menu Project, pilih Add
Form), Kemudian tanamkan Command1 pada Form2, sehingga menjadi sebagai
berikut :
2. Aktifkan jendela koding Form2 dengan menekan F7, atau pada Menu View, pilih
Code, atau klik icon View Code pada jendela Project Explorer. Pada DropDownList
object, pilih Form, dan pada DropDownList procedure pilih Initialize.
41
Modul Visual Basic 6
[email protected]
Dan lakukan koding untuk Event Initialize untuk form2, sebagai berikut :
Dan dengan cara yang sama lakukan juga koding untuk Event-Event berikut :
42
Modul Visual Basic 6
[email protected]
3. Tampilkan kembali Form1. (caranya : Double Klik pada Form1 di jendela Project
Explorer), dan kemudian tanamkan Command1 s/d 4 diatasnya, dan lakukan koding
berikut :
43
Modul Visual Basic 6
[email protected]
Private Sub Form_Resize()
MsgBox "Ini adalah Resize Form2"
End Sub
• Lakukan klik pada Show, dan perhatikan tulisan pada message box, yang
menunjukkan urutan Event pada Form2, klik Ok untuk menutup masing-masing
MsgBox.
• Alih keaktifan ke Form1 tanpa menutup Form2, perhatikan tulisan pada message
box, yang menunjukkan Event yang terjadi.
• Aktifkan kembali ke Form2 dengan klik pada Form2 (bukan klik pada Command1
di Form1), perhatikan Event yang terjadi.
• Tutup Form2, dengan klik pada Command1, dan perhatikan urutan Event yang
terjadi.
• Buka kembali Form2, dengan klik pada Command1 diatas Form1, dan
perhatikan urutan Event yang terjadi (apakah Event Initialize dijalankan ?)
• Tutup Form2
• Tutup Form1, dan perhatikan Event yang terjadi (mengapa Event Terminate
Form2 terjadi ?)
• Lakukan klik pada Load, dan perhatikan tulisan pada message box, yang
menunjukkan urutan Event pada Form2, klik Ok untuk menutup masing-masing
MsgBox.
• Lakukan klik pada Show, dan perhatikan Event yang terjadi.
Latihan 2
Judul : Pengaturan Form, Properti, dan Event yang diterapkan pada
pengolahan Random File
44
Modul Visual Basic 6
[email protected]
1. Buatlah suatu project baru, dan periksalah setting grid pada form anda, dengan
menu Tools, Option, General. Adapun hal yang perlu diperhatikan adalah keaktifan
Show Grid, dan Align Control to Grid
Pilihlah kontrol Label1, Label2, dan Label3 (caranya : klik pada Label1, kemudian tekan
tombol Ctrl dan jangan di lepas, klik pada Label2, dan klik pada Label3, akhirnya tombol
Ctrl di lepas), kemudian pada menu Format Pilih Align pilih Left.
45
Modul Visual Basic 6
[email protected]
Pilih Text1, Text2, dan Text3, dan, kemudian pada menu Format, pilih Make Same
Size, pilih Both, dan juga dibuat rata Kiri.
2. Aturlah properti dari masing-masing kontrol sehingga menjadi sebagai berikut, dan
jangan lupa untuk mengatur tabindex dengan urutan txtCCode, txtNama,txtEkstension,
fraAkses, optLokal, optSLJJ, optSLI, baru kemudian urutan untuk commandbutton :
3. Aktifkan ke jendela Koding, dengan menekan tombol F7, atau pada jendela Project
Explorer, klik pada frmPemakai, dan klik pada icon View Code, dan pilih General,
Declaration
Option Explicit
47
Modul Visual Basic 6
[email protected]
Ekstension As String * 3 'Ekstension
Local As Boolean 'Akses Lokal
SLJJ As Boolean 'Akses SLJJ
SLI As Boolean 'Akses SLI
End Type
Sub Kunci()
'Mengunci kontrol Text, dan OptionButton
txtCCode.Locked = True
txtNama.Locked = True
txtEkstension.Locked = True
FraAkses.Enabled = False 'Kalau framenya
disable, maka isinya tidak dapat diakses
End Sub
Sub Buka()
txtCCode.Locked = False
txtNama.Locked = False
txtEkstension.Locked = False
FraAkses.Enabled = True
End Sub
Sub Tampil()
'Sub rutin ini digunakan untuk menampilkan isi record ke
'Masing-masing kontrol yang bersesuaian
If Posisi > 0 Then 'Jika posisi
record lebih besar dari 0
Get #1, Posisi, DatPemakai 'Baca record
berdasarkan posisi
txtCCode.Text = DatPemakai.CCode
txtNama.Text = DatPemakai.Nama
txtEkstension.Text = DatPemakai.Ekstension
optLocal.Value = DatPemakai.Local
optSLJJ.Value = DatPemakai.SLJJ
optSLI.Value = DatPemakai.SLI
Else
Call Kosong
End If
Aksi = flNone 'Tandai Flag
Aksi adalah None
Call Kunci 'Buat semua
kontrol tidak dapat diperbaki
End Sub
48
Modul Visual Basic 6
[email protected]
Sub Kosong()
'Subrutin ini akan mengosongkan semua nilai pada masing-masing
kontrol
txtCCode.Text = ""
txtNama.Text = ""
txtEkstension.Text = ""
optLocal.Value = False
optSLJJ.Value = False
optSLI.Value = False
End Sub
4. Kembali ke tampilan Form1 (gunakan Shift-F7 atau icon view Object pada Project
Explorer), dan double klik pada frmPemakai, sehingga muncul Event Procedure
Form_Load, dan ketiklah kode berikut :
49
Modul Visual Basic 6
[email protected]
Cancel = 0 'Proses
tutup form dilakukan
Else
Cancel = 1 'Proses
tutup form dibatalkan
End If
End Sub
5. Gunakan menu Format, Lock Controls, untuk mengunci semua kontrol yang berada
pada form agar ditidak dapat digeser dan diubah ukurannya, hal ini cocok dilakukan
pada form yang telah selesai.
7. Aktifkan Objek browser, dan amati objek-objek yang ada pada Project1, dengan
menu View, Object Browser, kemudian pilih Project1.
Latihan 3
Judul : Tantangan pemrograman
Lengkapi program diatas dengan fasilitas Find, dimana jika tombol Find ditekan akan
muncul suatu InputBox yang menanyakan nama yang dicari, jika ketemu, akan
ditampilkan, dan jika tidak ketemu akan muncuk message box data tidak ada.
51
Modul Visual Basic 6
[email protected]
End If
End Sub
Pada Modul ini kita akan membahas Label, Textbox, Option, Check,
Frame dan Command.
Label
Digunakan untuk menampilkan text tanpa bisa diubah oleh pemakai pada saat runtime.
Beberapa properti pada label :
Properti Fungsi
Digunakan untuk menentukan pemerataan tulisan pada kontrol label (0 - Left
Justify, 1 - Right Justify, 2 - Center)
Alignment
Digunakan untuk menentukan tampilan dari kontrol label di cat atau tidak (0 -
Appearance
Flat, 1 - 3D)
Digunakan untuk menentukan apakah ukuran kontrol otomatis disesuaikan
AutoSize
dengan ukuran tulisan (False, True)
Digunakan untuk menentukan warna latar belakang (properti ini saling berkaitan
BackColor
dengan properti Appearance)
BackStyle Digunakan untuk menentukan prilaku latar belakang kontrol label (0 -
Transparent, 1 - Opaque), kalau transparan, maka BackColor menjadi tidak
berarti, demikian juga Appearance.
52
Modul Visual Basic 6
[email protected]
Digunakan untuk menentukan bentuk border, apakah (0- None, 1 - Fixed Single)
BorderStyle
Digunakan untuk menentukan tulisan pada kontrol label, mungkin ini adalah
Caption
properti yang paling sering anda gunakan.
Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop
DragIcon
pada kontrol label
DragMode Menentukan modus drag-n-drop (0 - manual, 1 - automatic)
Menentukan apakah kontrol label dapat menerima event yang dibuat oleh
Enabled
pemakai, misalnya event Click, MouseDown, MouseUp, dll.
Font Digunakan untuk menentukan jenis font, ukuran, style, dll
ForeColor Digunakan untuk menentukan warna tulisan
Height Digunakan untuk menentukan tinggi dari kontrol
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
Digunakan untuk menentukan tip tulisan ketika mouse pointer berada diatas
ToolTipText
kontrol
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Digunakan untuk menentukan perlakuan terhadap tanda & ampersand sebagai
UseMnenomic
access key, atau sebagai simbol & (False, True)
Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
Visible
(False, True)
Width Digunakan untuk menentukan lebar kontrol label
Digunakan untuk menentukan apakah tulisan dalam kontrol label dapat dilipat
WordWrap
menjadi beberapa baris.
53
Modul Visual Basic 6
[email protected]
Event Keterangan
Change Event ini terjadi ketika nilai properti Caption dari kontrol
Event ini terjadi ketika pemakai melakukan klik pada kontrol, event ini terjadi
Click
dengan urutan (MouseDown, MouseUp, Click)
Event ini terjadi ketika pemakai melakukan double klik pada kontrol, event ini
DblClick terjadi dengan urutan (MouseDown, MouseUp, Click, MouseDown, DblClick,
MouseUp)
Event ini terjadi ketika pemakai melakukan penekanan tombol mouse pada
kontrol, parameter yang dapat digunakan adalah Button (1 - Tombol kiri, 2 -
MouseDown
Tombol kanan), Shift (1 - Shift, 2 - Ctrl, 3 - Alt), X (posisi kolom pointer), Y (posisi
baris pointer)
Event ini terjadi ketika pamakai mengerakan mouse pada kontrol, parameter
MouseMove yang dapat digunakan adalah Button (1 - Tombol kiri, 2 - Tombol kanan), Shift (1
- Shift, 2 - Ctrl, 3 - Alt), X (posisi kolom pointer), Y (posisi baris pointer)
Event ini terjadi ketika pemakai melepaskan penekanan tombol mouse pada
kontrol, parameter yang dapat digunakan adalah Button (1 - Tombol kiri, 2 -
MouseUp
Tombol kanan), Shift (1 - Shift, 2 - Ctrl, 3 - Alt), X (posisi kolom pointer), Y (posisi
baris pointer)
Metoda Keterangan
Metoda ini digunakan untuk memindahkan letak (koordinat Left, Top) dari kontrol
Move
label maupun ukurannya (ukuran Height, Width)
Refresh Metoda ini digunakan untuk mencetak ulang kontrol label.
Metoda ini digunakan untuk menentukan order kontrol, apakah diatas atau
ZOrder
dibawah kontrol lain.
Textbox
Digunakan untuk menampilkan text yang dapat diubah oleh pemakai pada saat runtime
54
Modul Visual Basic 6
[email protected]
Properti Fungsi
Alignment sda
Appearance sda
BackColor sda
BorderStyle sda
Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol
CauseValidation
akan kehilangan fokus (False, True)
DragIcon sda
DragMode sda
Enabled sda
Font sda
ForeColor sda
Height sda
Digunakan untuk menentukan apakah selection disembunyikan ketika kontrol
HideSelection
kehilangan fokus
Index sda
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan apakah text dalam kontrol textbox dapat di
Locked
perbaharui oleh pemakai atau tidak (False, True)
Digunakan untuk menentukan jumlah huruf maksimal yang dapat diketikkan
MaxLength
dalam textbox (0 s/d 65535), 0 tidak dibatasi.
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Digunakan untuk menentukan apakah tulisan dalam textbox dapat ditampilkan
dalam bentuk beberapa baris, dan mengenali Enter untuk memasuki baris baru.
(False, True)
MultiLine
PasswordChar
ScrollBars Digunakan untuk menentukan penampilan ScrollBar pada textbox, properti ini
efektif jika setting properti MultiLine adalah True (0 - None, 1 - Horizontal, 2 -
Vertical, 3 - Both)
55
Modul Visual Basic 6
[email protected]
Event Keterangan
Change Event ini terjadi ketika nilai properti Text dari kontrol mengalami perubahan
Click sda
DblClick sda
GotFocus Event ini terjadi ketika kontrol mendapatkan fokus
KeyDown Event ini terjadi ketika pemakai mengetik karakter pada kontrol
KeyPress Event ini terjadi setelah event KeyDown ketika pemakai mengetik karakter pada
kontrol, parameter yang dapat digunakan adalah KeyAscii. Anda dapat
memanipulasi tombol yang diketik dengan melakukan perubahan pada nilai
KeyAscii.
Contoh :
56
Modul Visual Basic 6
[email protected]
End If
End Sub
Event ini terjadi setelah event KeyPress ketika pemakai mengetik karakter pada
KeyUp
kontrol dengan urutan (KeyDown, KeyPress, KeyUp, Change)
LostFocus Event ini terjadi ketika kontrol kehilangan fokus
MouseDown sda
MouseMove sda
MouseUp sda
Validate Event ini terjadi ketika kontrol akan kehilangan fokus.
Metoda Keterangan
Move sda
Refresh sda
Setfocus Metoda ini digunakan untuk menimdahkan fokus ke kontrol yang bersangkutan
ZOrder sda
Option
Digunakan untuk menampilkan beberapa pilihan yang hanya dapat dipilih salah satu
dalam suatu form, untuk
Properti Fungsi
Alignment sda
Appearance sda
BackColor sda
Caption sda
CauseValidation sda
Digunakan untuk menentukan gambar yang ditampilkan ketika kontrol Option
DisablePicture disable (properti Enabled = False), properti ini efektif jika setting properti Style
adalah (1- Graphical)
Digunakan untuk menentukan gambar yang ditampilkan ketika kontrol Option dipilih
DownPicture (properti Value = True), properti ini efektif jika setting properti Style adalah (1-
Graphical)
DragIcon sda
DragMode sda
Enabled sda
Font sda
ForeColor sda
Height sda
Index sda
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
MaskColor Digunakan untuk warna pada bitmap yang akan dijadikan transparan, properti ini
57
Modul Visual Basic 6
[email protected]
efektif jika picture yang masukkan adalah (*.bmp), dan setting properti
UseMaskColor adalah True
MouseIcon sda
MousePointer sda
Digunakan untuk menentukan gambar yang digunakan, properti ini efektif jika
Picture
setting properti Style adalah (1 - Graphical)
Digunakan untuk menentukan jenis style pada kontrol option (0 - Standard, 1 -
Style
Graphical)
TabIndex sda
TabStop sda
Tag sda
ToolTipText sda
Top sda
Digunakan akan warna yang ditentukan pada MaskColor efektif atau tidak (False,
UseMaskColor
True)
Value Adalah nilai kontrol option button (True - terpilih, False - tidak terpilih)
Visible Digunakan untuk menentukan apakah kontrol Visibel atau tidak.
Width sda
Event Keterangan
sda, pada option event ini juga dibangkitkan ketika kontrol menerima fokus,
Click
maupun ketika pemakai menekan space pada kontrol bersangkutan.
DblClick sda
GotFocus sda
KeyDown sda
KeyPress sda
KeyUp sda
LostFocus sda
MouseDown sda
MouseMove sda
MouseUp sda
Validate sda
Check
Digunakan untuk menampilkan beberapa pilihan yang dapat dipilih lebih dari satu
Properti kontrol Check, maupun event dapat dilihat pada properti Option
Frame
Properti Fungsi
Appearance sda
BackColor sda
BorderStyle sda
Caption sda
59
Modul Visual Basic 6
[email protected]
CauseValidation sda
DragIcon sda
DragMode sda
Enabled sda
Font sda
ForeColor sda
Height sda
Index sda
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
MouseIcon sda
MousePointer sda
TabIndex sda
Tag sda
ToolTipText sda
Top sda
Digunakan untuk menentukan apakah kontrol Visibel atau tidak, jika Visible false,
Visible
maka semua kontrol yang berada diatasnya menjadi tidak kelihatan.
Width sda
Event Keterangan
Click sda
DblClick sda
MouseDown sda
MouseMove sda
MouseUp sda
Metoda Keterangan
Move sda
Refresh sda
ZOrder sda
60
Modul Visual Basic 6
[email protected]
CommandButton
Properti Fungsi
Alignment sda
Appearance sda
BackColor sda
Digunakan untuk menentukan apakah command button merupakan perintah
Cancel Cancel untuk form tersebut , jika properti ini True, maka ketika pemakai menekan
ESC, akan membangkitkan event Click untuk kontrol tersebut.
Caption sda
CauseValidation sda
Digunakan untuk menentukan apakan command button merupakan Default
Default command untuk form tersebut, jika properti ini True, maka ketika pemakai
menekan Enter, akan membangkitkan event Click untuk kontrol tersebut.
DragIcon sda
DragMode sda
Enabled sda
Font sda
ForeColor sda
Height sda
Index sda
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk warna pada bitmap yang akan dijadikan transparan, properti ini
MaskColor efektif jika picture yang masukkan adalah (*.bmp), dan setting properti
UseMaskColor adalah True
MouseIcon sda
MousePointer sda
Picture sda
Style sda
TabIndex sda
TabStop sda
Tag sda
ToolTipText sda
Top sda
UseMaskColor sda
Visible Digunakan untuk menentukan apakah kontrol Visibel atau tidak.
Width sda
61
Modul Visual Basic 6
[email protected]
Event Keterangan
sda, pada commandbutton, event ini juga dibangkitkan ketika pemakai menekan
Click
space pada kontrol tersebut.
GotFocus sda
KeyDown sda
KeyPress sda
KeyUp sda
LostFocus sda
MouseDown sda
MouseMove sda
MouseUp sda
Metoda Keterangan
Move sda
Refresh sda
Setfocus sda
ZOrder sda
62
Modul Visual Basic 6
[email protected]
• Intrinsic atau System-defined konstanta yang disediakan oleh suatu aplikasi atau
control. Konstanta Visual Basic terdaftar pada Visual Basic (VB), Visual Basic for
Application (VBA), dan Data Access (DAO).
• Symbolic atau User-defined konstanta adalah dideklarasikan dengan
menggunakan statement Const.
Contoh :
Const Pi = 3.12159265358979
Public Const Planet As Integer= 9
Const ReleaseDate = #7/1/95#
• Membuat suatu konstanta yang mana hanya ada dalam suatu procedure,
deklarasikan dia dalam procedure tersebut
• Membuat suatu konstanta berlaku pada semua procedure dalam suatu module,
deklarasikan dia pada bagian deklarasi di module tersebut
• Membuat suatu konstanta berlaku pada semua aplikasi, deklarasikan dia dengan
keyword Public sebelum kata Const.
Struktur Perulangan
Struktur loop memperbolehkan anda untuk melaksanakan sekelompok baris lebih dari
satu kali :
Do...Loop
Gunakan Do loop untuk mengeksekusi suatu blok statement dengan jumlah perulangan
yang tak terhingga, ada beberapa Do...Loop statement, tetapi masing-masing
mengevaluasi suatu kondisi untuk menentukan apakah melanjutkan eksekusi
Berikut ini adalah statement Do…Loop, yang dijalankan selama kondisi benar :
Do While condition
statements
Loop
Ketika Visual menjalankan Do loop ini, pertama kali akan di coba kondisinya, jika
kondisi False (zero), akan diloncati semua statements yang mengikuti kondisi tersebut.
Visual Basic akan menjalankan statements jika kondisi benar dan kembali ke Do…Loop
berikutnya.
Variasi lain dari statement Do…Loop, yang menjamin minimal satu kali statement
dijalankan :
Do
statements
Loop While condition
Dua variasi yang analog dengan dua contoh sebelumnya adalah perulangan minimal
satu kali. Dan berikut ini adalah berulang atau tidak sama sekali :
Do Until condition
statements
Loop
Do
statements
Loop Until condition
For...Next
Do loops bekerja dengan baik, ketika anda tidak tahu berapa bayak kali untuk butuhkan
untuk menjalankan statement. Ketika anda mengetahui harus menjalankan statement
sejumlah kali, bagaimanapun For…Next adalah pilihan yang lebih baik. Tidak seperti
Do Loop, For…loop menggunakan suatu variabel yang disebut counter yang mana
akan bertambah atau berkurang pada setiap perulangan. Syntaxnya adalah :
Code berikut akan mencetak semua item yang terdapat pada suatu daftar list.
Statement Exit memperbolehkan anda untuk keluar langsung dari suatu For loop, Do
Loop, syntax untuk statement Exit adalah sederhana : Exit For dapat muncul sebanyak
mungkin dalam suatu For. Loop, demikian juga Exit Do untuk Do loop.
Latihan 1
Judul : Mengenal Properti Label, Text, Option, Check, Frame dan Command
Form 1
Form 2
65
Modul Visual Basic 6
[email protected]
Form 3
Form 4
Form 5
Form 6
66
Modul Visual Basic 6
[email protected]
Latihan 2
67
Modul Visual Basic 6
[email protected]
Kontrol Properti Value
Name txtUmur
Text1
CauseValidation True
Text2 Name txtCoba1
Text3 Name txtCoba2
Name cmdDefault
Command1 Caption &Default True
Default True
Name cmdCancel
Command2 Caption &Cancel True
Cancel True
68
Modul Visual Basic 6
[email protected]
MsgBox "txtCoba1 menerima fokus"
End Sub
Latihan 3
Judul : Tantangan melengkapi program data pemakai
Telepon Latihan Bab2
1. Aktifkan program Latihan 2-2, modul sebelumnya.
1. txtCCode, maksimal pengetikkan 4 huruf, dan tidak boleh kurang dari 4 huruf, dan
yang dapat diketik hanya digit (0 s/d 9)
2. txtNama, maksimal pengetikkan 30 huruf, dan huruf pertama setiap suku kata
otomatis besar, misalnya Hendra Wijaya, Susan Dewichan
3. txtEkstension, maksimal pengetikkan 3 huruf, dan yang dapat diketik hanya digit (0 s/
d 9), dan nomor ekstension terkecil 100, terbesar 600.
69
Modul Visual Basic 6
[email protected]
4. Penekanan Enter dapat digunakan untuk berpindah antar textbox
5. Option SLI, hanya bisa dipilih untuk ekstension 100 s/d 199, SLJJ, hanya dipilih
untuk ekstension 200 s/d 299
Properti Fungsi
Appearance Digunakan untuk menentukan tampilan dari kontrol (0 - Flat, 1 - 3D)
BackColor Digunakan untuk menentukan warna latar belakang.
Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol
CauseValidation
akan kehilangan fokus (False, True)
Digunakan untuk menentukan apakah daftar pilihan dalam listbox ditampilkan 1
kolom vertikal kebawah (0), atau kebawah dan menyamping sesuai dengan
jumlah kolom yang ditentukan jika daftar pilihan cukup panjang.
Column
70
Modul Visual Basic 6
[email protected]
Adalah daftar yang dapat digunakan untuk menyimpan nilai numerik yang
ItemData berkaitan dengan item-item yang terdapat dalam listbox. Berkoresponden satu-
satu.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Merupakan properti yang berisi pilihan dalam Listbox, untuk mengetik itemnya
List
anda harus menggunakan Ctrl-Enter untuk memasukki item yang berikutnya.
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Digunakan untuk menentukan apakah item dalam listbox dapat dipilih lebih dari
satu atau tidak (0 - None, 1 - Simple, 2 - Extended) Perbedaan antara 1 - Simple
dengan 2 - Extended, adalah pada Simple pemilihan beberapa item sekaligus
tidak dapat menggunakan bantuan Shift.
MultiSelect
Style
71
Modul Visual Basic 6
[email protected]
Width Digunakan untuk menentukan lebar kontrol label
Untuk menentukan isi listbox anda dapat mengetikkannya pada waktu design dengan
mengisinya di properti List. Misalnya daftar pilihan yang diinginkan adalah Satu, Dua,
Tiga ..., Lima, maka :
Cara lain adalah dengan menggunakan metoda AddItem(string, index) pada Event
Load pada Form, dimana string adalah item yang ingin ditambahkan ke ListBox,
sedangkan index adalah posisi dimana item akan disisip, defaultnya adalah posisi
terakhir. Contoh :
Untuk mendapatkan jumlah item dalam Listbox anda dapat menggunakan properti
ListCount.
Pada Listbox jenis Multiselect = False, maka item yang dapat dipilih oleh pemakai
hanya satu, sehingga hal tersebut efektif diambil dengan menggunakan properti Text
dari Listbox. Contoh berikut akan menampilkan item yang diklik oleh pemakai.
Jika pada Listbox dengan Multiselect = True, maka pekerjaan menjadi sedikit lebih
rumit, dimana kita perlu memeriksa item pada listbox satu persatu untuk memeriksa
apakah item tersebut dalam keadaan terpilih (diperiksa dengan properti selected(index)
atau tidak. Contoh berikut akan menampilkan kotak pesan yang berisi item-item yang
terpilih.
72
Modul Visual Basic 6
[email protected]
Sesuatu hal yang perlu diingat bahwa nomor index item pada Listbox dimulai dari 0 s/d
ListCount - 1
Untuk mendapatkan posisi item yang sedang difokus pada Listbox dapat digunakan
properti ListIndex
Contoh : Untuk memindahkan item yang terpilih pada ListBox kiri ke listbox kanan,
dimana setting properti pada Listbox kiri Multiselect = False.
Pada Listbox yang MultiSelect = False, properti ListIndex menunjukkan nomor index
(mulai dari 0) item yang sedang terpilih, dan jika tidak ada yang terpilih nilainya -1.
Untuk mengosongkan isi seluruh Listbox, anda dapat menggunakan Metoda Clear.
Event Keterangan
Event ini terjadi ketika pemakai melakukan klik pada kontrol, event ini terjadi
Click
dengan urutan (MouseDown, MouseUp, Click)
Event ini terjadi ketika pemakai melakukan double klik pada kontrol, event ini
DblClick terjadi dengan urutan (MouseDown, MouseUp, Click, MouseDown, DblClick,
MouseUp)
GotFocus Event ini terjadi ketika kontrol mendapatkan fokus
73
Modul Visual Basic 6
[email protected]
Event ini terjadi ketika pemakai melakukan klik untuk menandai checkbox pada
ItemCheck
item Listbox, Event ini efektif pada ListBox yang Style = Checkbox
KeyDown Event ini terjadi ketika pemakai mengetik karakter pada kontrol
Event ini terjadi setelah event KeyDown ketika pemakai mengetik karakter pada
kontrol, parameter yang dapat digunakan adalah KeyAscii. Anda dapat
KeyPress
memanipulasi tombol yang diketik dengan melakukan perubahan pada nilai
KeyAscii.
Event ini terjadi setelah event KeyPress ketika pemakai mengetik karakter pada
KeyUp
kontrol dengan urutan (KeyDown, KeyPress, KeyUp, Change)
LostFocus Event ini terjadi ketika kontrol kehilangan fokus
Event ini terjadi ketika pemakai melakukan penekanan tombol mouse pada
kontrol, parameter yang dapat digunakan adalah Button (1 - Tombol kiri, 2 -
MouseDown
Tombol kanan), Shift (1 - Shift, 2 - Ctrl, 3 - Alt), X (posisi kolom pointer), Y (posisi
baris pointer)
Event ini terjadi ketika pamakai mengerakan mouse pada kontrol, parameter
MouseMove yang dapat digunakan adalah Button (1 - Tombol kiri, 2 - Tombol kanan), Shift (1
- Shift, 2 - Ctrl, 3 - Alt), X (posisi kolom pointer), Y (posisi baris pointer)
Event ini terjadi ketika pemakai melepaskan penekanan tombol mouse pada
kontrol, parameter yang dapat digunakan adalah Button (1 - Tombol kiri, 2 -
MouseUp
Tombol kanan), Shift (1 - Shift, 2 - Ctrl, 3 - Alt), X (posisi kolom pointer), Y (posisi
baris pointer)
Scroll Event ini terjadi ketika Listbox mengalami scroll.
Validate Event ini terjadi ketika kontrol akan kehilangan fokus.
Combo Box
Jika dibandingkan dengan Listbox, maka ComboBox lebih menghemat pemakaian
tempat pada form, dimana hasil pilihan pemakai ditempilkan dalam suatu textbox,
dimana pilihan-pilihan dapat di drop-down dalam bentuk listbox. Pada Combobox
pemakai juga dapat mengetik langsung pilihannya, tetapi hal ini sangat bergantung
pada Style yang digunakan. Jika pada Listbox dimungkinkan pemakai melakukan
MultiSelect, tetapi pada Combobox hal tersebut tidak dapat dilakukan.
Properti Fungsi
BackColor sda
CauseValidation sda
DragIcon sda
DragMode sda
Enabled sda
Font sda
ForeColor sda
Height sda
Index sda
IntegralHeight sda
ItemData sda
Left sda
Locked sda
MouseIcon sda
MousePointer sda
Sorted sda
74
Modul Visual Basic 6
[email protected]
Digunakan untuk menentukan bentuk tampilan combo yang digunakan (0 -
Dropdown Combo, 1 - Simple Combo, 2 - Dropdown List), pada Dropdown
Combo, pemakai diperbolehkan mengetik tulisan yang tidak ada di list, pada
Simple Combo, pemakai boleh mengetik atau memilih dengan tombol keatas
atau kebawah dan daftar tidak bisa terbuka, pada Dropdown List, tulisan hanya
dapat dipilih dari daftar.
Style
TabIndex sda
TabStop sda
Tag sda
Text sda
ToolTipText sda
Top sda
Visible sda
Width sda
Untuk pengolahan ComboBox tidak jauh berbeda dengan Listbox, untuk itu perhatikan
kembali contoh-contoh pengolahan Listbox diatas dengan sedikit perbedaan
karakteristik antara Listbox dan ComboBox.
Event Keterangan
Click sda
DblClick sda
GotFocus sda
KeyDown sda
KeyPress sda
KeyUp sda
LostFocus sda
MouseDown sda
MouseMove sda
MouseUp sda
Validate sda
Mengenal Procedure
Procedure digunakan untuk memadatkan tugas-tugas berulang ataupun proses yang
digunakan bersama, seperti perhitungan yang sering dilakukan, text dan manipulasi
kontrol, serta operasi database.
75
Modul Visual Basic 6
[email protected]
Secara umum ada dua keuntungan dengan pemakaian procedure dalam program :
Sub Procedure
pernyataan-pernyataan
End Sub
Argumen pada procedure adalah nilai yang akan dilewatkan saat pemanggilan
procedure.
Contoh, sub Tengah yang dapat digunakan untuk menampilkan form ketengah Layar,
dimana x adalah parameter yang merupakan form yang akan dibuat ketengah layar.
Function Procedure
Pada Visual Basic telah tersedia berbagai fungsi bawaan seperti Sqr, Cos, dan Chr,
tetapi fungsi-fungsi yang tersedia tersebut bersifat umum dan kandang-kadang tidak
76
Modul Visual Basic 6
[email protected]
memenuhi kebutuhan programer, untuk keperluan tersebut anda dapat menciptakan
fungsi-fungsi sendiri yang dikenal dengan Function procedure.
statements
End Function
Contoh Fungsi ciptaan untuk mengembalikan nama bulan dari suatu tanggal dalam
bahasa Indonesia.
Bulan = sRet
End Function
Latihan 1
1. Buatlah program yang menyimpan nama-nama negara didalam sebuah text file
Negara.txt, dimana setiap kali form diaktifkan, maka isi file Negara.txt akan dibaca dan
77
Modul Visual Basic 6
[email protected]
ditampilkan dalam suatu listbox, kemudian pemakai dapat melakukan tambah, perbaiki
maupun hapus item dalam listbox, dan isi daftar akan disimpan kembali ke file
Negara.txt setiap pemakai melakukan klik pada Simpan ke file.
Membaca dari file Negara.txt dan mengisikannya kedalam lstNegara, serta membuat
setting awal variabel pada Event Form Load
End If
78
Modul Visual Basic 6
[email protected]
End Sub
Melakukan koding untuk menangani event klik pada kontrol cmdTambah, adapun hal
yang perlu dilakukan adalah menandai Aksi sebagai flAdd dan mimindahkan fokus ke
txtItem.
Melakukan koding untuk menangani event klik pada kontrol cmdPerbaiki, adapun hal
yang perlu dilakukan adalah memeriksa apakah pemakai ada memilih item yang
diperbaiki, kemudian memasukkan item yang diperbaiki ke txtItem, kemudian menandai
Aksi sebagai flEdit, kemudian memindahkan fokus ke txtItem.
Else
txtItem = LstNegara.Text
txtItem.SetFocus
Aksi = flEdit
End If
End Sub
Melakukan koding untuk menangani event klik pada kontrol cmdHapus, adapauh hal
yang perlu dilakukan adalah memeriksa Aksi, apakah flAdd atau flEdit, jika flAdd, maka
tulisan dalam txtItem ditambahkan ke listbox, kalau flEdit maka item pada listbox
dihapus, dan tulisan pada txtItem ditambahkan, kemudian Aksi di set ke flNone dan isi
txtItem dikosongkan
End If
End Sub
79
Modul Visual Basic 6
[email protected]
Melakukan koding untuk menangani event klik pada cmdHapus, dengan memeriksa
apakah ada item yang dipilih, kalau ada remove item tersebut,dan reset flag Aksi
LstNegara.RemoveItem LstNegara.ListIndex
End If
Aksi = flNone
End Sub
Melakukan koding untuk menangani event klik pada cmdSimpankeFile, dengan looping
dari item 0 s/d Listcount -1.
Next i
End Sub
2. Buatlah program yang menyimpan nama-nama propinsi didalam sebuah text file
Indonesia.txt, dimana setiap kali form diaktifkan, maka isi file Indonesia.txt akan dibaca
dan ditampilkan dalam suatu listbox, kemudian pemakai dapat melakukan tambah,
perbaiki maupun hapus item dalam listbox, dan isi daftar akan disimpan kembali ke file
Indonesia.txt setiap pemakai melakukan klik pada Simpan ke file.
80
Modul Visual Basic 6
[email protected]
Latihan 2
1. Buatlah program untuk menyimpan data perserta indoprog-vb kesebuah random file
Peserta.Dat yang memiliki struktur sebagai berikut :
81
Modul Visual Basic 6
[email protected]
Isi ComboBox cboNegara diisi dari file Negara.txt, dan Propinsi dari file Propinsi.txt,
sehingga menghasilkan tampilan sebagai berikut :
Petunjuk, lakukan hal tersebut pada Event Form_Load, adapun potongan programnya
adalah sebagai berikut :
End Sub
Untuk koding pada event-event tombol harus anda buat sendiri dengan mempelajari
dan mencontoh Latihan pada Modul-modul sebelumnya untuk kemajuan anda sendiri.
82
Modul Visual Basic 6
[email protected]
Catatan : Fasilitas Find adalah mencari berdasarkan Nama.
Latihan 3
1. Buka kembali program Latihan1 diatas, jalankan program diatas, dan carilah
kelemahan-kelemahan yang ada, serta lengkapi program diatas untuk menutupi lubang
kelemahan tersebut.
3. Lengkapi program Latihan2 dengan kemampuan Find Next, dimana mencari data
memenuhi syarat yang berikutnya.
4. Buatlah semua form-form diatas ditampilkan ditengah layar pada saat di jalankan.
Properti Fungsi
BorderStyle Digunakan untuk menentukan jenis border yang digunakan (0 - None, 1 - Fixed
83
Modul Visual Basic 6
[email protected]
Single)
Stretch
84
Modul Visual Basic 6
[email protected]
Pada saat design anda dapat mengisikan gambar kedalam image box dengan
menggunakan properti Picture, sedangkan pada runtime anda dapat menggunakan
fungsi LoadPicture(namafile) untuk memuat gambar ke properti Picture dari kontrol
image, contoh :
MyImage.Picture = LoadPicture("C:\Grafik\Indoprog.gif")
Catatan :
Fungsi LoadPicture(namafile) digunakan untuk memuat file grafik dengan format grafik
bitmap (.bmp), icon (.ico), run-length encoded (.rle), metafile (.wmf), enhanced metafiles
(.emf), GIF, JPEG (.jpg).
MyImage.Picture = Clipboard.GetData
Catatan :
Metoda GetData Mengembalikan suatu grafik dari objek Clipboard, format adalah suatu
konstanta optional yang menentukan format grafik. Jika format adalah 0 (nol) atau
diabaikan, GetData secara otomatis.
argumen format Optional. Suatu konstanta atau nilai yang menunjukkan format grafik
pada clipboard, Jika format 0 (nol) atau diabaikan, GetData otomatis menggunakan
format yang sesuai. Adapun nilai konstanta untuk argumen format Optional adalah
sebagai berikut :
Untuk mengosongkan kontrol image pada saat runtime, anda dapat menggunakan
fungsi LoadPicture, tanpa menggunakan argumen nama file, contoh :
MyImage.Picture = LoadPicture
Anda dapat juga menggunakan fungsi LoadPicture tanpa argumen untuk memeriksa
apakah kontrol image dalam keadaan kosong atau tidak.
85
Modul Visual Basic 6
[email protected]
Menyimpan gambar dalam kontrol image ke file
Catatan :
Perintah SavePicture akan selalu menyimpan gambar ke format bitmap (.bmp), tanpa
memperhatikan format sumber gambar.
PictureBox
Kalau image digunakan untuk menampilkan gambar, demikian juga picturebox. Selain
menampilkan gambar picture box mendukung berbagai metoda untuk operasi grafik,
dan dapat berfungsi sebagai kontainer bagi kontrol-kontrol lain.
Contoh :
86
Modul Visual Basic 6
[email protected]
Properti Fungsi
Digunakan untuk menentukan bagaimana pemerataan objek pada form (0 -
Align
None, 1 - Align Top, 2 - Align Bottom, 3 - Align Left, 4 - Align Right)
Appearance sda
Digunakan untuk menentukan warna latar belakang.
BackColor
87
Modul Visual Basic 6
[email protected]
Contoh :
1 inchi = 72 point
88
Modul Visual Basic 6
[email protected]
Anda dapat membuat modus skala sendiri dengan menset properti ini menjadi 0 -
User, dan skala anda dapat ditentukan pada ScaleWidth dan ScaleHeight,
perhatikan kembali contoh Grafik sinus sebelumnya.
Digunakan untuk menentukan nilai koodinat horizontal paling kiri, anda dapat
ScaleLeft menggunakan properti ini untuk menentukan koordinat paling kiri dari suatu
sumbu X.
Digunakan untuk menentukan nilai koodinat vertikal paling atas, anda dapat
ScaleTop menggunakan properti ini untuk menentukan koordinat paling atas dari suatu
sumbu Y.
Digunakan untuk menentukan tinggi sumbu vertikal. Menentukan panjang sumbu
ScaleHeight
Y.
Digunakan untuk menentukan panjang sumbu horizontal. Menentukan panjang
ScaleWidth
sumbu X.
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol picture tersebut
Digunakan untuk menentukan tip tulisan ketika mouse pointer berada diatas
ToolTipText
kontrol
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
Visible
(False, True)
Width Digunakan untuk menentukan lebar picturebox
Properti Fungsi
Digunakan untuk mendapatkan/menentukan posisi X yang sedang aktif,
CurrentX
digunakan untuk perintah Print
Digunakan untuk mendapatkan/menentukan posisi Y yang sedang aktif,
CurrentY
digunakan untuk perintah Print
Pengolahan gambar dalam Picturebox dapat dicontoh dari contoh pada Image diatas.
Salah satu perbedaan antara Image dengan Picturebox adalah tersedianya berbagai
metoda pengambaran grafik pada Picturebox, antara lain :
Metoda Keterangan
Mengambarkan sebuah lingkaran dengan berpusat pada
koordinat x,y dan jari-jari r dengan warna garis, mulai dari sudut
Circle(x,y),r,warna,awal,akhir,Aspek
awal, sampai sudut akhir yang dinyatakan dalam radian), serta
aspek perbandingkan tinggi dengan lebar.
Cls Membersihkan Picturebox dengan warna BackColor
Mengambarkan garis tunggal dari koordinat x1,y1 sampai
Line (x1,y1) - (x2, y2),warna
dengan x2,y2
Line (x1,y1) - (x2, y2),warna,B Mengambarkan kotak dari koordinat x1,y1 sampai dengan x2,y2
Mengambarkan kotak berisi dari koordinat x1,y1 sampai dengan
Line (x1,y1) - (x2, y2),warna,BF
x2,y2
Mencetak dot (titik) pada koordinat tertentu pada Form,
PSet (x,y)
Picturebox, dan Printer, pada koordinat yang ditentukan
89
Modul Visual Basic 6
[email protected]
Mencetak dot (titik) pada koordinat relatif terhadap posisi dot
PSet Step (x,y)
sebelunnya.
Mendapatkan warna dot (titik) tertentu pada layar
Point(x,y) Contoh :
Color& = MyPicture.Point(100,200)
Menyebabkan kontrol picture dan bitmap tetapnya digambar
Refresh
ulang.
Event Paint akan diaktifkan ketika PictureBox mengalami pengambaran. Anda dapat
menggunakan event ini untuk menjalankan fungsi-fungsi tertentu ketika PictureBox
digambar.
Untuk meyimpan ataupun mengambil grafik yang terdapat dalam suatu picturebox, baik
yang di muat dari suatu file gambar, maupun yang dibuat dengan menggunakan
metoda pengambaran, Anda dapat menggunakan properti image.
Contoh :
90
Modul Visual Basic 6
[email protected]
IsEmpty(ekspresi)
Contoh :
Dim A as Variant
If IsEmpty(A) Then
Msgbox "Variabel A Empty" 'Message akan muncul karena A belum terinisialisai
End If
A=1
If IsEmpty(A) Then
Msgbox "Variabel A masih Empty" 'Tidak akan muncul lagi karena A telah
'terinisialisasi sebagai Integer
End If
Dim B as Integer
If IsEmpty(B) Then
Msgbox "Variabel B Emtpy" 'Tidak akan muncul karena B adalah Integer
End If
IsNull(ekspresi)
IsArray(varname)
Mengembalikan suatu nilai boolean yang menunjukan suatu variabel adalah suatu
array.
IsDate(ekspresi)
Mengembalikan suatu nilai boolean yang menunjukan suatu ekspresi dapat dikonversi
ke date.
IsError(ekspresi)
Mengembalikan suatu nilai boolean yang menunjukkan suatu ekspresi adalah nilai error
IsObject(ekspresi)
Mengembalikan suatu nilai boolean yang menunjukkan suatu ekspresi mengacu pada
suatu OLE Automation object.
91
Modul Visual Basic 6
[email protected]
IsMissing(argname)
Mengembalikan suatu nilai boolean yang menunjukan suatu argumen optional pada
procedure ada dilewatkan atau tidak
CBool(ekspresi)
Contoh :
A=0
Check = CBool(A) ' Check berisi False.
CByte(ekspresi)
Contoh :
CCur(ekspresi)
Contoh :
CDate(date)
Contoh :
CDbl(ekspresi)
92
Modul Visual Basic 6
[email protected]
Konversi suatu ekspresi ke Double
Contoh :
CInt(ekspresi)
Contoh :
CLng(ekspresi)
Contoh :
CSng(ekspresi)
Contoh :
CStr(ekspresi)
Contoh :
CVar(ekspresi)
Contoh :
93
Modul Visual Basic 6
[email protected]
Asc(string)
Contoh :
Chr(charcode)
Contoh :
Contoh :
MyTime = #17:04:23#
MyDate = #January 27, 1993#
Hex(number)
Oct(number)
Mengembalikan string yang mewakili Octal atau Hexa dari suatu bilangan
Contoh :
94
Modul Visual Basic 6
[email protected]
MyHex = Hex(5) ' Mengembalikan 5.
MyHex = Hex(10) ' Mengembalikan A.
MyHex = Hex(459) ' Mengembalikan 1CB.
MyOct = Oct(4) ' Mengembalikan 4.
MyOct = Oct(8) ' Mengembalikan 10.
MyOct = Oct(459) ' Mengembalikan 713.
Str(number)
Contoh :
Val(string)
Contoh :
Time
Timer
Mengembalikan suatu bilangan yang menunjukan jumlah detik sejak tengah malam
Date
Time = Time
Date = Date
Untuk sistem yang menjalankan Microsoft Windows 95, tanggal yang dibutuhkan harus
95
Modul Visual Basic 6
[email protected]
berupa tanggal dari 1 Jan 1998 sampai 31 Des 2099. Untuk sistem yang menjalankan
Microsoft Windows NT, tanggal yang dibutuhkan harus berupa tanggal dari 1 Jan 1980
sampai 31 Desember 2079.
Hour(time)
Minute(time)
Second(time)
Mengembalikan suatu Variant (Integer) berupa bilangan 0 s/d 23 untuk jam, 0 s/d 59
untuk menit, dan 0 s/d 59 untuk detik.
Day(date)
Month(date)
Year(date)
Mengembalikan suatu Variant (Integer) berupa bilangan 1 s/d 31 untuk bulan, 1 s/d 12
untuk bulan, dan tahun.
Weekday(date, [hariPertamaDariMinggu])
96
Modul Visual Basic 6
[email protected]
Bagian Keterangan
interval Ekspresi string yang menunjukkan interval waktu yang ingin dijumlahkan (Perlu)
Ekspresi numerik yang merupakan jumlah dari interval yang ingin dijumlahkan. Nilai Positif
number
menunjukan (tanggal berikutnya), Nilai Negatif menunjukan (tanggal sebelumnya) (Perlu)
Suatu Variant (Date) atau literal yang merupakan tanggal dimana interval akan dijumlahkan
date
padanya. (Perlu)
Setting Keterangan
yyyy Tahun
q Triwulan
m Bulan
y Hari dari tahun
d Hari
w Hari dari minggu
ww Minggu
h Jam
n Menit
s Detik
Contoh :
Latihan 1
Pada Latihan ini kita akan meningkatkan fasilitas project Modul 4 Latihan 1 sebelumnya
dengan kemampuan menampilkan foto dan menyimpan foto perserta. Adapun foto dari
masing-masing peserta akan disimpan pada file-file eksternal yang diberi nama
Fotox.bmp, dimana x disesuaikan dengan nomor record data dalam random file.
Misalnya pada record 1, maka nama file fotonya adalah Foto1.bmp, record 2 nama file
fotonya adalah Foto2.bmp, dst.
1. Bukalah project Modul 4 Latihan 1, dan tambahkan kontrol image serta command
sehingga menjadi sebagai berikut :
97
Modul Visual Basic 6
[email protected]
2. Pada bagian general declaration tambahkan deklarasi variabel cFileFoto yang akan
digunakan untuk menyimpan nama file foto. Adapun penamaan file foto adalah
Fotox.bmp, dimana x disesuaikan dengan nomor record data dalam random file.
Misalnya pada record 1, maka nama file fotonya adalah Foto1.bmp, record 2 nama file
fotonya adalah Foto2.bmp, dst.
3. Lakukan koding untuk event klik pada cmdPaste yang berfungsi untuk mengisi
kontrol imgFoto dengan isi dari Clipboard.
cFileFoto = "Foto" & Posisi & ".bmp" 'Buat nama file Fotox.bmp
If imgFoto.Picture <> LoadPicture Then 'Periksa apakah kontrol image kosong
98
Modul Visual Basic 6
[email protected]
SavePicture imgFoto.Picture, cFileFoto 'Simpan gambar ke file dengan nama yang
End If 'telah dibuat
5. Pada Sub Tampil tambahkan koding yang berfungsi membaca file foto dari disk dan
menampilkan ke kontrol image. Adapun proses yang dilakukan adalah membentuk
nama file foto berdasarkan posisi record yang ditampilkan, kemudian memeriksa
keberadaan file foto tersebut dalam media penyimpanan, jika ada, maka baca dan
tampilkan pada kontrol imgFoto.
cFileFoto = "Foto" & Posisi & ".bmp" 'Bentuk nama file yaitu Fotox.bmp
If Dir(cFileFoto) <> "" Then 'Periksa keberadaan file tersebut
imgFoto.Picture = LoadPicture(cFileFoto) 'Baca dan tampilkan
Else
imgFoto.Picture = LoadPicture
End If
Sub Tampil()
If Posisi > 0 Then
Get #1, Posisi, DatPeserta
txtEmail.Text = DatPeserta.Email
txtNama.Text = DatPeserta.nama
txtAlamat.Text = DatPeserta.Alamat
txtKota.Text = DatPeserta.Kota
99
Modul Visual Basic 6
[email protected]
cboNegara.Text = DatPeserta.Negara
cboPropinsi.Text = DatPeserta.Propinsi
txtTempat.Text = DatPeserta.Tempat
txtTglLahir.Text = DatPeserta.TglLahir
chkPria.Value = DatPeserta.Pria
cFileFoto = "Foto" & Posisi & ".bmp" 'Ini yang ditambahkan
If Dir(cFileFoto) <> "" Then
imgFoto.Picture = LoadPicture(cFileFoto)
Else
imgFoto.Picture = LoadPicture
End If
Call Kosong
End If
Aksi = flNone
Call Kunci
End Sub
6. Jalankan software paintbrush, dan buka suatu file gambar, select suatu lokasi
tertentu, kemudian klik Edit Copy.
7. Jalankan project diatas, dan klik pada Edit, kemudian klik pada Paste, dan Klik
Update. Tutup program dan jalankan kembali, apakah foto masih ada disana ?
Latihan 2
1. Buatlah grafik 2 Sin x (warna hijau), Cos x (warna biru), dan 2 Sin x + Cos x (warna
merah), dengan sumbu Y dari -3 s/d 3, dan Sumbu X dari 0 sampai 720 derajat.
Solusi :
MyPicture.ScaleMode = 0
MyPicture.ScaleWidth = 720
100
Modul Visual Basic 6
[email protected]
MyPicture.ScaleHeight = 6
MyPicture.ScaleLeft = 0
MyPicture.ScaleTop = -3
6. Gambarkan sumbu Y, dengan metode Line, mulai dari koordinat 0,0 s/d 720,0
7. Lakukan looping mulai dari 0 s/d 720 untuk menggambarkan titik-titik 2 Sin x, Cos x,
dan 2 Sin x + Cos x.
For i = 0 To 720
MyPicture.ForeColor = vbGreen 'Warna Hijau
MyPicture.PSet (i, -2 * Sin(i * 3.14 / 180))
MyPicture.ForeColor = vbBlue 'Warna Biru
MyPicture.PSet (i, -Cos(i * 3.14 / 180))
MyPicture.ForeColor = vbRed 'Warna Merah
MyPicture.PSet (i, -2 * Sin(i * 3.14 / 180) - Cos(i * 3.14 / 180))
Next i
2. Jalankan program dan klik pada command Grafik, dan perhatikan hasilnya.
101
Modul Visual Basic 6
[email protected]
4. Jalankan kembali program, dan klik pada command Grafik, dan klik pada command
Refresh, dan perhatikan hal yang terjadi.
6. Jalankan kembali program, dan klik pada command Grafik, dan klik pada command
Refresh, dan perhatikan hal yang terjadi. Apa perbedaannya dengan yang sebelumnya.
102
Modul Visual Basic 6
[email protected]
8. (Memahami event Paint) Tanamkan pada Form anda suatu Picturebox berukuran
1550 Twips x 1550 Twips, kemudian lakukan koding berikut pada Event Paint, dan
jalankan project tersebut, dan perhatikan picturebox anda.
Latihan 3
Buatlah program mari yang mampu menggambar bentuk Lingkaran, Persegi, Garis,
Titik, dan dapat menyimpan hasil ke suatu file bmp.
103
Modul Visual Basic 6
[email protected]
Berikut ini adalah contoh solusi untuk menggambar Lingkaran, yang lainnya adalah
tugas anda untuk melengkapinya.
104
Modul Visual Basic 6
[email protected]
Aksi = None
End If
End If
End Sub
Jawaban Latihan 3
Buatlah program mari yang mampu menggambar bentuk Lingkaran, Persegi, Garis,
Titik, dan dapat menyimpan hasil ke suatu file bmp.
Solusi :
105
Modul Visual Basic 6
[email protected]
Catatan : Untuk gambar lingkaran kita perlu titik pusat (PusatX,PusatY), untuk
Persegi dan Garis kita perlu titik Awal.
Untuk melakukan aksi pengambaran kita perlu membuat suatu General Procedure,
yang mana akan melakukan penggambaran sesuai dengan Aksi pemakai.
Selanjutnya kita lakukan koding pada Event klik masing-masing Command Button :
Catatan : Untuk titik kita langsung ketahap pengambaran akhir, karena tidak
diperlukan titik pusat
106
Modul Visual Basic 6
[email protected]
End If
End If
End Sub
Catatan : Metoda Refresh akan menghapus gambar sementara yang dibuat dengan
properti AutoRedraw = False
Melakukan koding terhadap Event MouseUp untuk membuat Gambar permanen, dan
mereset Aksi pemakai kembali ke None.
Akhirnya kita buat Event Klik untuk menyimpan Gambar yang dihasilkan ke sebuah file :
Properti Fungsi
Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol
CauseValidation
akan kehilangan fokus (False, True)
DragMode Menentukan modus drag-n-drop (0 - manual, 1 - automatic)
Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop
DragIcon
pada kontrol.
Menentukan apakah kontrol label dapat menerima event yang dibuat oleh
Enabled
pemakai, misalnya event Click, MouseDown, MouseUp, dll.
Height Digunakan untuk menentukan tinggi dari kontrol
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Digunakan untuk menentukan besar perubahan Value ketika pemakai melakukan
LargeChange klik di antara tanda Arah dan Bar, atau ketika pemakai melakukan penekanan
tombol PgUp dan PgDn pada saat aktif di ScrollBar.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan nilai Maksimal dari kontrol ScrollBar, ketika Bar
rapat ke kanan atau ketika pemakai melakukan penekanan tombol End pada
saat aktif di ScrollBar.
Max
Digunakan untuk menentukan nilai Minimal dari kontrol ScrollBar, ketika Bar
rapat ke kiri atau ketika pemakai melakukan penekanan tombol Home pada saat
aktif di ScrollBar.
Min
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Digunakan untuk menentukan besar perubahan Value ketika pemakai melakukan
SmallChange klik pada tanda Arah, atau ketika pemakai melakukan penekanan tombol panah
kiri dan kanan pada saat aktif di ScrollBar.
Digunakan untuk menentukan urutan tabindex, 0 adalah kontrol yang pertama
TabIndex mendapat fokus jika form dijalankan. Properti ini efektif jika setting properti
TabStop adalah True
Digunakan untuk menentukan apakah textbox dapat menerima fokus karena
TabStop
penekanan tombol TAB oleh pemakai (False, True)
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Value Digunakan untuk mendapatkan / menentukan nilai dari ScrollBar
Visible Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
108
Modul Visual Basic 6
[email protected]
(False, True)
Width Digunakan untuk menentukan lebar kontrol.
Pada ScrollBar ada dua event yang perlu diperhatikan, yaitu Event Change dan Event
Scroll, dimana :
Event Change, akan dibangkitkan ketika terjadi perubahan Value pada ScrollBar, tetapi
event ini tidak dibangkitkan ketika pemakai masih melakukan pengeseran terhadap Bar,
kecuali kalau pemakai telah melepaskan tombol kiri Mouse.
Contoh :
Event Scroll, akan dibangkitkan ketika pemakai melakukan pergeseran terhadap Bar
dengan menggunakan drag pada tombol kiri mouse, jadi Event Scroll akan terjadi ketika
pemakai melakukan pergeseran dengan menekan tombol kiri mouse, dan diakhiri
dengan Event Change ketika pemakai melepas penekenan tombol mouse.
Jadi anda harus memanfaatkan kedua event tersebut untuk mendapatkan hasil yang
baik dari pemakaian ScrollBar.
BackColor
BorderColor
109
Modul Visual Basic 6
[email protected]
BorderWidth
Menentukan jenis Drawmode yang digunakan. defaultnya adalah (13 - Copy pen)
DrawMode
FillColor
Menentukan jenis arsiran yang digunakan untuk isian kontrol Shape. Lihat
FillStyle
gambar pada properti FillColor.
Height Digunakan untuk menentukan tinggi dari kontrol
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan bentuk Shape (0 - Rectangle, 1 - Square, 2 - Oval,
Shape
3 - Circle, 4 - Rounded Rectangle, 5 - Rounded Square)
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
Visible
(False, True)
Width Digunakan untuk menentukan lebar kontrol.
Timer
Properti Fungsi
Enabled Menentukan apakah kontrol dapat efektif terhadap Event Timer.
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Interval Menentukan nilai interval dalam mili detik (1/1000) antar pemanggilan Event
110
Modul Visual Basic 6
[email protected]
Timer.
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
Event Timer
Event Timer adalah event yang dibangkitkan oleh kontrol timer berdasarkan interval
waktu yang telah ditentukan.
Contoh :
Sesaat setelah anda menambahkan module, maka pada Jendela Project Explorer akan
nampak Module1
Untuk melakukan koding, anda dapat melakukan double klik pada Module tersebut.
111
Modul Visual Basic 6
[email protected]
Contoh :
Contoh :
Sub Tengah(x)
x.Move (Screen.Width - x.Width) \ 2, _
(Screen.Height - x.Height) \ 2
End Sub
Latihan 1
Trik : Untuk membuat gambar yang dapat bergeser anda perlu menanamkan sebuah
kontrol image, kontrol VscrollBar dan HScrollBar diatas sebuah kontrol Picture. Jadi
dalam hal ini kontrol Picture bertindak sebagai kontainer.
112
Modul Visual Basic 6
[email protected]
Membuat Sub StatusBingkai yang berfungsi membuat ukuran Picturebox sama dengan
ukuran Form sebelah dalam (ScaleWidth, ScaleHeight) dengan menggunakan Metoda
Move. Dan membuat kontrol imgGambar rapat kiri atas terhadap kontainernya (0,0)
Membuat Sub AturScrollBar yang berfungsi menentukan keaktifan tampilan dari VScroll
dan HScroll. Adapun syarat penampilan dari kedua kontrol tersebut adalah :
HScroll, jika ukuran lebar gambar (imgGambar.Width) > ukuran tinggi bingkai
(PicPingkai.Width)
VScroll, jika ukuran tinggi gambar (imgGambar.Height) > ukuran tinggi bingkai
(PicPingkai.Height)
113
Modul Visual Basic 6
[email protected]
Private Sub StatusHScroll()
If ImgGambar.Width > PicBingkai.ScaleWidth Then
HScroll.Left = 0
HScroll.Top = PicBingkai.ScaleHeight - HScroll.Height
If ImgGambar.Height > PicBingkai.ScaleHeight Then
HScroll.Width = PicBingkai.ScaleWidth - VScroll.Width
Else
HScroll.Width = PicBingkai.ScaleWidth
End If
HScroll.Min = 0
HScroll.Max = (ImgGambar.Width - HScroll.Width) - 1
HScroll.SmallChange = HScroll.Max \ 50
HScroll.LargeChange = HScroll.Max \ 10
End If
End Sub
Melakukan Koding terhadap Event Change pada VScroll dan HScroll, yang berfungsi
mengatur Top dan Left dari imgGambar terhadap kontainernya, dimana adalah jika
pemakai melakukan geser kebawah, maka imgGambar perlu digeser keatas (
-VScroll.Value), dan jika pemakai melakukan geser kekanan, maka imgGambar perlu
digeser kekiri (-HScroll.Value)
Untuk melakukan percobaan terhadap project ini anda perlu menentukan gambar yang
berukuran besar pada imgGambar
114
Modul Visual Basic 6
[email protected]
Latihan 2
Untuk membuat jam analog beberapa hal yang perlu diketahui adalah :
Jam 1 = 60 derajat
Jam 2 = 30 derajat
Jam 3 = 0 derajat
Rumus deret aritmatika adalah (n-1) * b + a, dimana n adalah suku, a adalah nilai awal,
b adalah beda, maka berdasarkan deret diatas :
b = -30
a = 60
(Jam - 1) * -30 + 60
(Menit - 1) * -6 + 84
(Detik - 1) * -6 + 84
2. Menghitung koordinat Cartesius (x,y) untuk jarum jam, menit dan detik
Untuk menghitung koordinat Cartesius, kita perlu menguraikan suatu koordinat Polar
menjadi komponen X dan Y dengan rumus :
115
Modul Visual Basic 6
[email protected]
X = R Cos sudut
Y = R Sin sudut
Tanamkan pada Form 1 Shape, 3 Line, dan 1 Timer, sehingga menjadi sebagai
berikut :
Option Explicit
Dim PanjangJJam As Integer 'untuk panjang jarum jam
Dim PanjangJMenit As Integer
Dim PanjangJDetik As Integer
Dim PusatX As Integer 'titik pusat jam
Dim PusatY As Integer
Sub HitungSkala, berfungsi membuat diameter Bingkai menjadi cocok pada form,
menghitung panjang masing-masing jarum, dan menghitung titik pusat bingkai.
116
Modul Visual Basic 6
[email protected]
Sub HitungSkala()
Bingkai.Top = 0
Bingkai.Left = 0
Bingkai.Height = Me.ScaleHeight 'Hitung diameter bingkai
Bingkai.Width = Me.ScaleWidth
PanjangJJam = (4 / 10 * Me.ScaleHeight) \ 2 'Hitung panjang jarum Jam (40% dari diameter)
PanjangJMenit = (6 / 10 * Me.ScaleHeight) \ 2 ' 60% dari diameter
PanjangJDetik = (8 / 10 * Me.ScaleHeight) \ 2 ' 80% dari diameter
PusatX = Me.ScaleWidth \ 2 'Hitung titik pusat Bingkai
PusatY = Me.ScaleHeight \ 2
End Sub
117
Modul Visual Basic 6
[email protected]
Call AturJarumDetik 'Atur Jarun Detik
End Sub
Dengan menggunakan fungsi API, anda dapat membuat form berbentuk Bulat sesuai
dengan ukuran Jam Analog Diatas, adapun perubahan yang perlu dilakukan adalah :
Tambahkan sebuah module kedalam project anda dan lakukan koding sebagai berikut :
Public Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2
As Long, ByVal Y2 As Long) As Long
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal
bRedraw As Boolean) As Long
Public XP As Single
Public yp As Single
Lakukan perubahan koding pada event Form Load dan Form Resize
118
Modul Visual Basic 6
[email protected]
Dim mFormRegion As Long
Call HitungSkala
mFormRegion = CreateEllipticRgn(Bingkai.Left, Bingkai.Top, Bingkai.Width / XP, Bingkai.Height / yp)
SetWindowRgn Me.hwnd, mFormRegion, False
End Sub
Latihan 3
1. Buka kembali Latihan 1, dan tambahkan fasilitas Zoom (+) kalau klik kiri, Zoom (-)
kalau klik kanan pada Gambar. Adapun persentase pembesaran maupun pengecilan
adalah 25%
2. Buka kembali Latihan 2, dan tambahkan fasilitas memindahkan jam Analog setelah
form berbentuk Lingkaran, karena BorderStyle 0-None tidak dapat dipindah-pindahkan.
3. Buatlah program yang dapat mencatat Absensi Karyawan ke sebuah text file dengan
format, pada Form tampil Jam Digital dan Analog, sebuah textbox untuk pemasukkan
No Induk Pegawai :
DDMMYYYYHHMMXXXXXXK
Dimana :
DDMMYYYY (Tanggal)
HHMM (Jam dan Menit)
XXXXXX (No Induk Pegawai)
K (Kode 1 = Masuk 2 = Keluar)
119
Modul Visual Basic 6
[email protected]
Properti Fungsi
BackColor Digunakan untuk menentukan warna latarbelakang kontrol
Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol
CauseValidation
akan kehilangan fokus (False, True)
DragMode Menentukan modus drag-n-drop (0 - manual, 1 - automatic)
Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop
DragIcon
pada kontrol label
Menentukan apakah kontrol label dapat menerima event yang dibuat oleh
Enabled
pemakai, misalnya event Click, MouseDown, MouseUp, dll.
Digunakan untuk menentukan Font, Size, dan Style huruf yang digunakan pada
Font
kontrol DriveListBox
Digunakan untuk menentukan warna tulisan yang digunakan pada kontrol
ForeColor
DriveListBox
Height Digunakan untuk menentukan tinggi dari kontrol
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Digunakan untuk menentukan urutan tabindex, 0 adalah kontrol yang pertama
TabIndex mendapat fokus jika form dijalankan. Properti ini efektif jika setting properti
TabStop adalah True
Digunakan untuk menentukan apakah textbox dapat menerima fokus karena
TabStop
penekanan tombol TAB oleh pemakai (False, True)
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Value Digunakan untuk mendapatkan / menentukan nilai dari ScrollBar
Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
Visible
(False, True)
Width Digunakan untuk menentukan lebar kontrol.
DirListBox
DirListBox dapat digunakan untuk menampilkan folder-folder yang terdapat didrive yang
aktif.
Properti Fungsi
Appearance Digunakan untuk menentukan penampilan dari kontrol (0 - Flat, 1 - 3D)
BackColor Digunakan untuk menentukan warna latarbelakang kontrol
Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol
CauseValidation
akan kehilangan fokus (False, True)
DragMode Menentukan modus drag-n-drop (0 - manual, 1 - automatic)
Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop
DragIcon
pada kontrol label
Menentukan apakah kontrol label dapat menerima event yang dibuat oleh
Enabled
pemakai, misalnya event Click, MouseDown, MouseUp, dll.
Digunakan untuk menentukan Font, Size, dan Style huruf yang digunakan pada
Font
kontrol.
ForeColor Digunakan untuk menentukan warna tulisan yang digunakan pada kontrol.
Height Digunakan untuk menentukan tinggi dari kontrol
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Digunakan untuk menentukan urutan tabindex, 0 adalah kontrol yang pertama
TabIndex mendapat fokus jika form dijalankan. Properti ini efektif jika setting properti
TabStop adalah True
Digunakan untuk menentukan apakah textbox dapat menerima fokus karena
TabStop
penekanan tombol TAB oleh pemakai (False, True)
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
121
Modul Visual Basic 6
[email protected]
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Value Digunakan untuk mendapatkan / menentukan nilai dari ScrollBar
Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
Visible
(False, True)
Width Digunakan untuk menentukan lebar kontrol.
Untuk mendapatkan Path yang sedang aktif pada DirListBox, anda dapat menggunakan
properti Path.
FileListBox
DirListBox dapat digunakan untuk menampilkan file-file yang terdapat pada folder yang
sedang aktif.
Properti Fungsi
Appearance Digunakan untuk menentukan penampilan dari kontrol (0 - Flat, 1 - 3D)
Digunakan untuk menentukan apakah FileListBox dapat menampilkan file dengan
Archive
atribut Archive atau tidak.
BackColor Digunakan untuk menentukan warna latarbelakang kontrol
Digunakan untuk menentukan apakan event Validate di aktifkan ketika kontrol
CauseValidation
akan kehilangan fokus (False, True)
DragMode Menentukan modus drag-n-drop (0 - manual, 1 - automatic)
Digunakan untuk menentukan icon yang digunakan pada operasi drag-n-drop
DragIcon
pada kontrol label
Menentukan apakah kontrol label dapat menerima event yang dibuat oleh
Enabled
pemakai, misalnya event Click, MouseDown, MouseUp, dll.
Digunakan untuk menentukan Font, Size, dan Style huruf yang digunakan pada
Font
kontroi.
ForeColor Digunakan untuk menentukan warna tulisan yang digunakan pada kontrol.
Hidden Digunakan untuk menentukan apakah FileListBox dapat menampilkan file dengan
122
Modul Visual Basic 6
[email protected]
atribut Hidden atau tidak.
Height Digunakan untuk menentukan tinggi dari kontrol
Digunakan untuk menentukan nomor index, jika kontrol tersebut merupakan
Index
kontrol array.
Left Digunakan untuk menentukan jarak kiri kontrol dari kontainernya.
Digunakan untuk menentukan apakah FileListBox dapat menampilkan file dengan
Normal
atribut Normal atau tidak.
Digunakan untuk menentukan icon mouse yang digunakan ketika pointer mouse
MouseIcon berada diatas kontrol label tersebut, properti ini berarti bila properti MousePointer
diset menjadi (99 - Custom)
Digunakan untuk menentukan bentuk pointer yang digunakan ketika mouse
MousePointer
pointer berada diatas kontrol label tersebut.
Digunakan untuk menentukan apakah item dalam listbox dapat dipilih lebih dari
satu atau tidak (0 - None, 1 - Simple, 2 - Extended) Perbedaan antara 1 - Simple
MultiSelect
dengan 2 - Extended, adalah pada Simple pemilihan beberapa item sekaligus
tidak dapat menggunakan bantuan Shift.
Digunakan untuk menentukan pola wildcard yang digunakan untuk membatasi file
Pattern
yang akan ditampilkan dalam kontrol (*.* semua file, *.bmp, ?A*.jpg)
Digunakan untuk menentukan apakah FileListBox dapat menampilkan file dengan
ReadOnly
atribut ReadOnly atau tidak.
Digunakan untuk menentukan apakah FileListBox dapat menampilkan file dengan
System
atribut System atau tidak.
Digunakan untuk menentukan urutan tabindex, 0 adalah kontrol yang pertama
TabIndex mendapat fokus jika form dijalankan. Properti ini efektif jika setting properti
TabStop adalah True
Digunakan untuk menentukan apakah textbox dapat menerima fokus karena
TabStop
penekanan tombol TAB oleh pemakai (False, True)
Properti ini dapat digunakan sebagai tempat menyimpan data sementara yang
Tag
berkaitan dengan kontrol label tersebut
Top Digunakan untuk menentukan jarak atas kontrol dari kontainernya.
Value Digunakan untuk mendapatkan / menentukan nilai dari ScrollBar
Digunakan untuk menentukan apakah kontrol label tersebut Visible atau tidak
Visible
(False, True)
Width Digunakan untuk menentukan lebar kontrol.
Untuk membatasi file berdasarkan nama file, anda dapat menggunakan properti
Pattern, misalnya kalau file yang ingin ditampilkan hanya berupa file bitmap, maka kita
dapat menggunakan (*.bmp), kalau file yang ingin ditampilkan berupa file grafik kita
dapat menggunakan (*.bmp;*.jpg;*.gif;*.wmf;*.ico)
Contoh :
MyFile.System = False
Contoh :
Salah satu masalah dalam pengaktifan file adalah menentukan path dimana file
tersebut berada, sebagaimana kita ketahui, pada aplikasi Windows umumnya di
instalasi pada folder Program Files, tetapi ketika kita mengembangkan program
tersebut, tentu saja kita lakukan pada folder sendiri, sehingga kadang-kadang menjadi
masalah ketika program tersebut didistribusikan. Untuk mendapatkan Path dimana
aplikasi berada kita dapat menggunakan properti Path pada objek App
124
Modul Visual Basic 6
[email protected]
Contoh :
cFolder = App.Path
Open cFolder & "\Pegawai.Dat" For Random As #1 Len = Len(DatPegawai)
Dengan potongan program diatas, kita senantiasa yakin bahwa file Pegawai.Dat akan
berada di Path yang sama dengan aplikasi.
Anda dapat menggunakan properti EXEname untuk mendapatkan nama file Executable
anda.
Contoh :
Kadang-kadang aplikasi kita hanya boleh dijalankan sekali pada komputer yang sama.
Untuk memeriksa apakah instance yang sama dari aplikasi telah berjalan pada sistem,
anda dapat menggunakan properti PrevInstance.
Contoh :
Contoh :
Sub Main()
App.TaskVisible = False
End Sub
Sedangkan properti Title dapat digunakan untuk menentukan judul aplikasi pada Task
List.
Contoh :
Sub Main()
125
Modul Visual Basic 6
[email protected]
App.Title = "Program Kwitansi Ver 1.0"
End Sub
atau anda dapat juga menentukannya pada saat design, pada menu Project Properties
Contoh :
Sub Tengah(x)
x.Move (Screen.Width - x.Width) \ 2, _
(Screen.Height - x.Height) \ 2
End Sub
Properti Height dan Width mengembalikan ukuran Tinggi dan Lebar layar dalam ukuran
Twips, tetapi untuk fungsi-fungsi API kita membutuhkan ukuran dalam pixel. Untuk
mendapatkan jumlah Twips per pixel kita dapat menggunakan properti TwipsPerPixelY
dan TwipsPerPixelX.
Contoh :
Dengan menggunakan objek Screen kita juga dapat memperoleh nama-nama font yang
tersedia dilayar dengan menggunakan properti Font dan FontCount.
126
Modul Visual Basic 6
[email protected]
Contoh :
' Menggambil semua font pada objek Screen dan memasukkannya ke kontrol ListBox.
Dim i As Integer
For i = 0 To Screen.FontCount - 1
lstFonts.AddItem Screen.Fonts(i)
Next
Contoh :
Screen.MousePointer = vbHourglass
Latihan 1
Kita perlu mempersiapkan beberapa variabel Form Level yang dapat digunakan oleh
semua Sub yang ada, adapun variabel tersebut adalah :
Dim LebarTempatGambar As Integer 'Untuk menyimpan lebar tempat Gambar yang tersedia
Dim TinggiTempatGambar As Integer 'Tinggi Gambar
Dim PosisiKiriGambar As Integer 'Posisi kiri tempat Gambar
Dim PosisiAtasGambar As Integer 'Posisi atas tempat Gambar
Selanjutnya kita buat sebuah Sub untuk menentukan posisi dan ukuran masing-masing
kontrol diatas form ketika ukuran Form berubah :
127
Modul Visual Basic 6
[email protected]
MyDrive.Left = 0 'Kiri atas Form
MyDrive.Width = 2500
MyDir.Top = MyDrive.Height 'Kontrol Dir berada dibawah
MyDir.Left = 0 'kontrol Drive dan rapat kiri
MyDir.Width = 2500
MyDir.Height = Me.ScaleHeight \ 3 'Tingginya 1/3 tinggi form
MyFile.Top = MyDir.Top + MyDir.Height 'Kontrol File berada dibawah kontrol Dir
MyFile.Left = 0
MyFile.Width = 2500
MyFile.Height = Me.ScaleHeight - MyDrive.Height - MyDir.Height 'Tingginya adalah tinggi sisa setelah
Drive dan Dir
Pemisah.Y1 = 0 'Garis Pemisah Antara Drive, Dir, File dengan Gambar
Pemisah.Y2 = Me.ScaleHeight
Pemisah.X1 = MyDrive.Width + 1 'Berada disamping kanan kontrol Drive
Pemisah.X2 = MyDrive.Width + 1
PosisiAtasGambar = 0 'Hitung Tempat sisa untuk Gambar
PosisiKiriGambar = Pemisah.X1 + 50
TinggiTempatGambar = Me.ScaleHeight
LebarTempatGambar = Me.ScaleWidth - PosisiKiriGambar
End Sub
Kita juga perlu membuat sebuah Sub yang berfungsi membuat tampilan Gambar
berada ditengah kalau ukurannya lebih kecil dari tempat gambar yang tersedia.
Selanjutnya kita lakukan koding pada Event Load untuk membatasi jenis file yang
ditampilkan pada FileListBox:
Lakukan koding untuk Event Resize pada Form untuk memposisikan ulang semua
kontrol kalau terjadi perubahaan ukuran Form :
128
Modul Visual Basic 6
[email protected]
End Sub
Private Sub MyFile_Click()
Dim fName As String
If Right(MyFile.Path, 1) = "\" Then 'Kalau sudah ada backslash
fName = MyFile.Path & MyFile.FileName
Else
fName = MyFile.Path & "\" & MyFile.FileName 'Tambahkan \
End If
Gambar.Visible = False 'Sembunyikan Gambar
Gambar.Picture = LoadPicture(fName) 'GantiGambar
Call BuatGambarKeTengah 'Buat ketengah kalau lebih kecil dari tempat gambar
Gambar.Visible = True 'Tampilkan
End Sub
Latihan 2
2. Pada menu Project, pilih Add Form, kemudian pilih Splash Screen.
Kemudian pada menu Project, pilih Project Properties, dan pilih tab Make
Properti Value
Title Penampil Gambar
Icon frmSplash
Comments Peringatan : Hak cipta di lindungi Undang-undang
Company Name [email protected]
129
Modul Visual Basic 6
[email protected]
Legal Copyright Hak Cipta dan Distribusi oleh :
ProductName Just4U
Pada menu Project, Project Properties, tentukan StartUp Object menjadi SubMain
Latihan 3
130
Modul Visual Basic 6
[email protected]
Aktifkan kembali Latihan Sebelumnya, dan :
Pada aplikasi SDI, setiap form merupakan form-form yang berdiri sendiri, Aplikasi SDI
pada windows terdapat pada aplikasi seperti Notepad, WordPad dan Paint.
Sedangkan aplikasi seperti Microsoft Word menggunakan MDI, yaitu terdiri dari suatu
MDIForm, dan didalamnya merupakan form-form anak (MDIchild).
Ada beberapa hal yang harus diperhatikan dalam penggunaan MDIForm adalah :
131
Modul Visual Basic 6
[email protected]
2. Menentukan StartUp Objek
Pada Menu Tools, pilih Command Options, pilih Tab Project, Tentukan StartUp
Object ke MDI form yang telah ditambahkan.
• Semua child form tidak dapat dipindahkan keluar dari MDI Form.
• Ketika suatu child form diminimize, akan menjadi icon dibawah MDI Form.
• Anda dapat menentukan apakah child form secara otomatis ditampilkan atau
tidak dengan menggunakan properti AutoShowChildren pada MDIForm.
• Jika pada child form ada menu, maka menu akan ditampilkan pada MDIform
menu.
Pada MDIform anda tidak dapat menempatkan kontrol-kontrol visible yang tidak
mendukung alignment, kecuali kalau anda menempatkannya kedalam suatu kontainer
seperti Picturebox, dan Toolbar. Sedangkan kontrol non-visible seperti Timer dan
CommonDialog box dapat ditempatkan diatas MDIForm.
Untuk mendapatkan form-form yang sedang aktif didalam suatu MDIform, anda dapat
menggunakan properti ActiveForm, contoh :
132
Modul Visual Basic 6
[email protected]
End Sub
Pada dasarnya setiap item menu memiliki Caption dan sebuah Nama. Anda dapat
membentuk Kunci Akses dengan menggunakan tanda & (ampersand) pada Caption
dari menu tersebut. Untuk membuat menu anda cukup mengetikan Caption dan Name,
selanjutnya klik pada Next, dan ketikkan menu yang berikutnya, sampai selesai.
Selanjutnya adalah menbuat Sub Menu dengan melakukan klik pada panah kanan dan
sebaliknya. Anda dapat membuat sampai 5 Sub Menu (6 kalau termasuk Menu Utama).
Anda dapat menggunakan tanda - (karakter hypen) untuk membuat garis pemisah antar
menu pada Caption.
133
Modul Visual Basic 6
[email protected]
Untuk melakukan koding terhadap item menu, anda dapat membuka menu pada saat
design dan akan menghasilkan Event Click untuk item menu tersebut, contoh :
Anda dapat membuat menu yang memiliki tanda Check dengan memanfaatkan option
Checked pada Menu Editor.
134
Modul Visual Basic 6
[email protected]
Anda dapat mengatur keaktifan tanda Check dari item menu tersebut dengan koding
sebagai berikut :
135
Modul Visual Basic 6
[email protected]
Membuat Menu Pop Up
Pada Visual Basic, anda dapat membuat menu pop up dengan memanfaatkan menu
Editor untuk mendefinisikan nama kelompok menu Pop Up beserta Sub Menunya, dan
menonaktifkan option Visible dari kelompok menu tersebut.
Sehingga kalau dilakukan klik kanan pada form akan menanpilkan suatu Pop Up menu
yang berupa Sub Menu dari mnuAtur.
136
Modul Visual Basic 6
[email protected]
Untuk memcetak hasil aplikasi anda ke printer, anda dapat mengunakan objek Printer
yang disediakan oleh Visual Basic. Pada objek printer tersedia berbagai metoda
pencetakkan text dan pengambaran grafik (Line, Circle, Pset, dll) seperti yang tersedia
pada form maupun kontrol Picturebox.
Anda dapat menggunakan metoda print untuk mengirim tulisan yang akan dicetak ke
objek printer. Anda dapat juga menggunakan metoda Newpage untuk membuat printer
mencetak tulisan berikutnya ke halaman baru. Metoda EndDoc untuk memulai
pencetakkan yang sebenarnya, sedangkan KillDoc untuk membatalkan pencetakkan.
Anda juga dapat menggunakan properti Page untuk mendapatkan nomor halaman.
Contoh :
Contoh :
Printer.Copies = 2
Printer.Print "Indoprog-vb, forum diskusi dan belajar bersama Visual Basic"
Printer.NewPage
Printer.Print "Ini akan dicetak pada halaman kedua"
Printer.EndDoc
Anda dapat juga menggunakan metode pengambaran grafik seperti Line, Circle, PSet,
dan PaintPicture seperti yang terdapat pada Form dan PictureBox.
Contoh :
Printer.PaperSize = vbPRPSLetter
137
Modul Visual Basic 6
[email protected]
Contoh :
Printer.CurrentX = 0.5*1440 '1/2 inch
Printer.CurrentY = 1*1440 '1 inch
Printer.Print "Hello Indoprog-vb"
Anda dapat mengatur font pencetakan dengan menggunakan objek font. Pada objek
font anda dapat mengatur setting seperti :
Properti Keterangan
Bold Mengaktifkan cetak tebal (True, False)
Menentukan nama font yang digunakan, misalnya Verdana, Times New Roman, Arial,
Name
Courier New, dll
Italic Mengaktifkan cetak miring (True, False)
Size Menentukan ukuran font
StrikeThrought Mengaktifkan cetak coret (True, False)
Underline Mengaktifkan cetak garis bawah (True, False)
Contoh :
Printer.Font.Name = "Verdana"
Printer.Font.Size = 14
Printer.Font.Bold = True
Printer.Print "Hello Indoprog-vb"
Contoh :
Printer.Orientation = vbPRORLandscape
Untuk mendapatkan jumlah printer yang terinstalasi pada sistem, anda dapat
menggunakan properti Count, sedangkan nama printer dapat diperoleh dengan
DeviceName, dan DriverName untuk mendapatkan nama Driver. Berikut ini adalah
contoh mengisi nama Device dan Driver dari printer yang terinstalasi pada sistem pada
suatu ComboBox.
Contoh :
138
Modul Visual Basic 6
[email protected]
For i = 0 To Printers.Count _ 1
cboPrinters.AddItem Printers(i).DeviceName & " [" & _
Printers(i).DriverName & "]"
Next
Anda dapat juga mendapatkan informasi dengan properti Port (misalnya, LPT1:),
memeriksa apakah printer tertentu dapat melakukan pencetakkan berwarna denga
properti ColorMode (1-vbPRCMMonochrome or 2-vbPRCMColor).
Jika anda tidak menentukan printer yang akan digunakan, maka printer yang akan
digunakan adalah printer default pada sistem anda.
Untuk mencetak dengan menggunakan printer yang tertentu anda dapat melakukan
setting printer ke printer yang bersesuaian. Contoh berikut akan menlakukan setting
printer ke nomor printer tertentu berdasarkan pilihan pemakai dari ComboBox.
Contoh :
Latihan 1
2. Tambahkan MDIForm pada project tersebut, dengan menu Project, kemudian pilih
Add MDIform, kemudian aturlah properti sebagai berikut :
3. Jadikan form-form lain yang berada pada project tersebut menjadi MDIChild, dengan
membuat properti MDIChild pada masing-masing form menjadi True.
4. Kemudian tambahkan menu berikut pada MDIForm anda, dengan menu Tools, Menu
Editor, dan ketikan data berikut.
Data mnuData
- Peserta mnuDataPeserta
- Negara mnuDataNegara
- Propinsi mnuDataPropinsi
- Garis pemisah mnuPemisah1
- Ujian mnuDataUjian
Laporan mnuLaporan
139
Modul Visual Basic 6
[email protected]
- Daftar Peserta mnuLaporanDaftarPeserta
- Peserta Ujian dan Nilai mnuLaporanPesertaUjian
Cetak mnuCetak
- Cetak Sertifikat mnuCetakSertifikat
- Cetak Label Amplop mnuCetakLabelAmplop
Selesai mnuSelesai
- Ya mnuYa
- Tidak mnuTidak
Latihan 2
1. Tambahkan pada project Latihan 1 sebuah form, dan tanamkan sebuah ComboBox
dan Command sebagai berikut :
140
Modul Visual Basic 6
[email protected]
Kontrol Properti Value
Name frmDaftarPeserta
Caption Cetak Daftar Peserta
Form1
BorderStyle 3 - Fixed Dialog
MDIChild True
Combo1 Name cboPrinter
Name cmdCetak
Command1
Caption &Cetak
2. Tambahkan lagi sebuah form dengan nama frmPreview, dan atur properti form
sebagai berikut
'General Declaration
For i = 1 To JlhRec
If frmPreview.CurrentY = 0 Then 'Jika halaman baru, maka set margin atas
frmPreview.CurrentY = InchToTwips(0.75)
frmPreview.Font.Name = "Courier New"
frmPreview.Font.Size = 14'Atur Font untuk judul pencetakkan
frmPreview.Font.Bold = True
Call cetak(0.75, "Laporan Data Peserta Indoprog-vb", True)
frmPreview.Line (0.75 * 1440, frmPreview.CurrentY)-(7.25 * 1440, frmPreview.CurrentY)
frmPreview.Font.Name = "Courier New"
frmPreview.Font.Size = 10
frmPreview.Font.Bold = False
Call cetak(0.75, "Email Nama Kota", True)
frmPreview.Line (0.75 * 1440, frmPreview.CurrentY)-(7.25 * 1440, frmPreview.CurrentY)
frmPreview.Print
End If
Get #1, i, DatPeserta
Call cetak(0.75, DatPeserta.Email & Space(2) & _
DatPeserta.nama & Space(2) & _
DatPeserta.Kota, True)
If i = JlhRec Then
frmPreview.Line (0.75 * 1440, frmPreview.CurrentY)-(7.25 * 1440, frmPreview.CurrentY)
Call cetak(0.75, "By indoprog-vb", True)
End If
'If frmPreview.CurrentY >= frmPreview.Height - InchToTwips(0.75) Then
'Printer.NewPage 'Sementara dimatikan
'End If
Next i
frmPreview.AutoRedraw = False
frmPreview.Visible = True
'Printer.EndDoc 'Sementara dimatikan
Close #1
End Sub
Latihan 3
142
Modul Visual Basic 6
[email protected]
4. Buatlah program Cetak Sertifikat menggunakan Printer.
Mengenal SQL 1
Structured Query Language (SQL) adalah suatu bahasa database standar industri. SQL
menyediakan Data Definiton Language (DDL) dan Data Manipulation Language (DML).
Walaupun dalam beberapa bagian saling bersangkutan, perintah DDL memungkinkan
kita untuk membuat dan mendefinisikan tabel (CREATE TABLE), dan index (CREATE
INDEX), sedangkan perintah DML memungkinkan anda untuk membangun query untuk
mengambil data (SELECT) dari beberapa tabel, menyisip (INSERT) data baru,
memperbaiki (UPDATE) data, dan menghapus (DELETE).
CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)]
[NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])
Perintah CREATE TABLE digunakan untuk mendefinisikan suatu tabel baru beserta
fieldnya dan konstraint, jika NOT NULL disebutkan, maka record baru membutuhkan
data yang sah untuk field tersebut.
CONSTRAINT clause dapat digunakan untuk membuat berbagai batasan pada field
termasuk PRIMARY KEY, anda dapat juga menggunakan perintah CREATE INDEX
untuk membuat index dan PRIMARY KEY pada tabel yang ada. CONSTRAINT clause
menyerupai CREATE INDEX, tetapi dapat digunakan untuk membuat Relation antar
tabel.
dimana :
143
Modul Visual Basic 6
[email protected]
BIT 1 byte Menyimpan nilai Yes atau No.
BYTE 1 byte Menyimpan nilai integer 0 s/d 255
Menyimpan nilai numerik yang otomatis bertambah setiap
COUNTER 4 byte
record baru ditambahkan.
Menyimpan suatu nilai skalar antara
CURRENCY 8 byte – 922,337,203,685,477.5808 dan
922,337,203,685,477.5807
Menyimpan suatu nilai tanggal dan waktu antara tahun
DATETIME 8 byte
100 s/d 9999
Menyimpan suatu nomor identifikasi unik yang digunakan
GUID 128 byte
untuk RPC
Menyimpan suatu nilai floating point single-precision
dengan jangkauan – 3.402823E38 s/d – 1.401298E-45
SINGLE 4 byte
untuk nilai negatif , 1.401298E-45 s/d 3.402823E38 untuk
nilai positif dan 0.
Menyimpan suatu nilai floating point double-precision
dengan jangkauan – 1.79769313486232E308 s/d
DOUBLE 8 byte – 4.94065645841247E-324 untuk nilai negatif,
4.94065645841247E-324 s/d 1.79769313486232E308
untuk nilai positif, dan 0
Menyimpan suatu nilai short integer antara – 32,768 dan
SHORT 2 byte
32,767.
Menyimpan suatu nilai long integer antara
LONG
– 2,147,483,648 dan 2,147,483,647.
LONGTEXT 1 byte per karakter Kosong s/d maksimal 1.2 gigabytes.
Kosong s/d maksimal 1.2 gigabytes. Digunakan untuk
LONGBINARY Sesuai dengan kebutuhan
objek OLE.
TEXT 1 byte per karakter 0 s/d 255 karakter
Contoh :
Tabel Forum
Nama Field Type Size AutoIncrField AllowNulls Require
ForumID Text 25 Tidak Ya
Keterangan Text 50
Alamat Text 50 Tidak Ya
Perintah SQL :
atau
144
Modul Visual Basic 6
[email protected]
Tabel Status
Nama Field Type Size AutoIncrField AllowNulls Require
Status Byte 1 Tidak Ya
Keterangan Text 50
Perintah SQL :
Tabel Peserta
Nama Field Type Size AutoIncrField AllowNulls Require
Email Text 25 Tidak Ya
Nama Text 50
Alamat Text 50
Kota Text 50
Telepon Text 25
Homepage Text 50
Perusahaan Text 50
TanggalGabung Date 8
Perintah SQL :
CREATE TABLE PESERTA (Email TEXT(25) NOT NULL CONSTRAINT P_KEY PRIMARY KEY,
Nama TEXT(50),
Alamat TEXT(50),
Kota TEXT(50),
Telepon TEXT(50),
Homepage TEXT(50),
Perusahaan TEXT(50),
TanggalGabung Date);
Tabel Aktifitas
Nama Field Type Size AutoIncrField AllowNulls Require
ID Long 4 Ya
Email Text 25 Tidak Ya
ForumID Text 25 Tidak Ya
Status Byte Tidak Ya
145
Modul Visual Basic 6
[email protected]
Perintah SQL :
Membuat Index
CREATE [ UNIQUE ] INDEX indexON table (field [ASC|DESC][, field [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
dimana :
Gunakan UNIQUE untuk membuat nilai unik terhadap field tertentu sehingga tidak
memungkinkan duplikasi data. Gunakan WITH clause untuk menentukan apakah :
146
Modul Visual Basic 6
[email protected]
• Tidak memperbolehkan pemasukan nilai Null pada field yang diindex dengan
menggunakan option DISALLOW NULL.
• Menghindarkan record dengan nilai Null pada field yang diindex untuk
diikutsertakan dalam index.
• Membuat index sebagai PRIMARY, setiap tabel hanya dapat memiliki satu index
PRIMARY.
Contoh membuat Index S_KEY berdasarkan Nama pada tabel PESERTA, perintah
SQL DDL-nya adalah sebagai berikut :
Memodifikasi Tabel
ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT
index] |CONSTRAINT multifieldindex} |DROP {COLUMN field I CONSTRAINT
indexname} }
dimana :
Menghapus tabel yang ada dalam database, atau index dari suatu tabel
table nama tabel yang akan dihapus atau tabel dimana index berada
index nama index yang akan dihapus
Latihan 1
Tabel Anggota
Caranya :
Lakukan klik pada tombol Execute, dan akan muncul dialog box :
Kalau muncul dialog box berikut, abaikan saja, karena DDL SQL tidak menghasilkan
Recordset
Tabel CD
148
Modul Visual Basic 6
[email protected]
Perintah SQL DDL :
CREATE TABLE CD (
KodeCD Text(7) NOT NULL CONSTRAINT P_KEY PRIMARY KEY,
Judul Text(50) NOT NULL, Kategori Text(20) NOT NULL,
Aktor Text(30),
Harga Currency NOT NULL,
Daftar DateTime);
Tabel Transaksi
149
Modul Visual Basic 6
[email protected]
CREATE INDEX S_KEY ON Anggota (Nama);
CREATE INDEX S_KEY ON CD (Judul);
4. Tambahkan field BlackList pada Tabel Anggota, dan field Status pada CD
Latihan 2
1. Aktifkan Visual Data Manager, dan buatlah suatu Database file baru Akademik.Mdb
2. Dengan menggunakan DDL SQL buatlah tabel-tabel berikut ini, definisikan Primary
Key masing-masing tabel dan Relation antar tabel.
Tabel Fakultas
Tabel Jurusan
Tabel Mahasiswa
Tabel Kuliah
150
Modul Visual Basic 6
[email protected]
Nama Field Type Size AutoIncrField AllowNulls Require
MataKuliah Text 6 Tidak Ya
Keterangan Text 50 Tidak Ya
SKS Byte Tidak Ya
Semester Byte Tidak Ya
Tabel Dosen
Tabel KHS
Latihan 3
1. Buatlah Project Baru, dan Form Entri data untuk tabel Anggota dan tabel CD
Catatan : Limit mesti Numerik, Daftar mesti Tanggal, serta memperhatikan NOT NULL
pada tabel
151
Modul Visual Basic 6
[email protected]
Catatan : Harga mesti Numerik, Daftar mesti Tanggal, serta memperhatikan NOT NULL
pada tabel
152
Modul Visual Basic 6
[email protected]
Visible False
Lakukan koding pada Form Load untuk mengatur Index masing-masing Data Kontrol
153
Modul Visual Basic 6
[email protected]
If Flag = flNone Then
If RsTransaksi.Recordset.EOF Then 'Jika tabel kosong
Call AturTombol(True, False, False)
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
Else
Call AturTombol(True, False, False)
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
Call Kunci(True)
End If
End Sub
Lakukan koding pada Command Add Click untuk mengatur data tanggal dan membuka
penguncian
Lakukan koding pada txtKodeAnggota LostFocus untuk mencari data anggota pada
RsAnggota
RsTransaksi.Recordset.Update
Flag = flNone
Call Kunci(True)
Call AturTombol(True, False, False)
RsTransaksi.Recordset.Bookmark = RsTransaksi.Recordset.LastModified
CancelcmdUpdate:
Exit Sub
ErrcmdUpdate_click:
Select Case Err.Number
Case 3022
MsgBox "Telah terjadi duplikasi pada Transaksi", vbOKOnly + vbInformation, "Warning"
Case 3167
MsgBox "Data telah dihapus pemakai lain" & vbCrLf & _
"Lakukan refresh data anda !", vbOKOnly + vbInformation
Case 3197
'Data pada recordset telah berubah
'sejak ditampilkan.
MsgBox "Data telah diubah oleh pemakai lain !", vbOKOnly + vbInformation
'Hal ini secara otomatis akan menyegarkan
'kembali recordset untuk menampilkan data terakhir
RsTransaksi.Recordset.Move 0
Resume CancelcmdUpdate
Case 3260
'Record dikunci pemakai lain
nHitung = nHitung + 1
'Mencoba mengunci dua kali
'Memungkinkan pemakai membuat keputusan ulangi, batal
If nHitung > 2 Then
nPilih = MsgBox("Data sedang dikunci pemakai lain" & vbCrLf & _
"Ulangi penguncian ?", vbYesNo + _
vbQuestion)
If nPilih = vbYes Then
nHitung = 1
Else
Resume CancelcmdUpdate
End If
End If
DoEvents 'menjalankan event windows
'menunda sejumlah waktu random
nTunda = nHitung ^ 2 * Int(Rnd * 3000 + 1000)
For i = 1 To nTunda: Next i
Resume
Case Else
MsgBox "Error " & Err & ":" & Error, vbOKOnly
Resume CancelcmdUpdate
End Select
End Sub
Catatan :
Mengenal SQL 2
Sebagaimana telah diterangkan pada Modul sebelumnya bahwa perintah SQL dibagi
atas dua kelompok besar yaitu DDL (Data Definition Language) dan DML (Data
Manipulation Language). Pada DML, terbagi atas APPEND, UPDATE, DELETE, dan
SELECT query yang dapat digunakan untuk pengolahan data.
Menambah suatu record ke table, hal ini dikenal sebagai append query.
Contoh :
Menghapus satu atau lebih record dari tabel yang berada di daftar FROM clause yang
memenuhi WHERE clause.
Pada tabel yang memiliki hubungan one-to-many relationship dengan tabel lain.
Operasi Cascade delete dapat menyebabkan record lain yang berada pada sisi many
ikut terhapus ketika penghapusan di lakukan terhadap data pada sisi one.
Penting
· Data yang telah dihapus dengan delete query, tidak dapat dibatalkan.
156
Modul Visual Basic 6
[email protected]
· Lakukan backup terhadap data anda setiap saat. Jika anda salah menghapus, maka
anda dapat mengambil kembali dari backup.
Contoh :
Syntax
UPDATE table
SET newvalue
WHERE criteria;
Penting :
· UPDATE tidak menghasilkan suatu himpunan hasil. Juga, setelah anda mengupdate
record dengan menggunakan update query, anda tidak dapat membatalkan operasi
tersebut. Jika anda ingin mengetahui record mana saja yang akan terupdate, pertama
anda perlu melakukan select query dengan kriteria yang sama.
· Lakukan backup terhadap data anda setiap saat. Jika anda salah menghapus, maka
anda dapat mengambil kembali dari backup.
Contoh :
dimana fields adalah daftar dari field-field yang akan diambil dari tabel, anda dapat
menggunakan tanda * (Asterisk) untuk menyatakan seluruh field dari tabel.
Contoh :
SELECT KodeAnggota, Nama, Alamat, Telepon, Limit, Daftar, Blacklist FROM Anggota;
Atau
Contoh :
dalam hal ini nama objek field TanggalDaftar akan digunakan untuk field Daftar.
Anda dapat menggunakan AS untuk menentukan nama objek field pada recordset yang
merupakan hasil dari fungsi Agregate maupun ekspresi.
Contoh :
Akan mendapat suatu recordset dengan field JlhAnggota dan record tunggal yang berisi
jumlah anggota yang terdaftar pada tabel Anggota.
SELECT fieldlist
FROM tableexpression
WHERE criteria
Sebagaimana pemakaian WHERE clause pada UPDATE dan DELETE query, anda
dapat menggunakan WHERE clause untuk membatasi data yang dikembalikan
berdasarkan kriteria tertentu.
Contoh :
SELECT fieldlist
FROM table
WHERE selectcriteria
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]
Anda dapat menggunakan ORDER BY clause untuk menentukan urutan data hasil
query berdasarkan field tertentu, pada defaultnya adalah Ascending kalau tidak
disebutkan ASC ataupun DESC.
Contoh :
158
Modul Visual Basic 6
[email protected]
Anda dapat menggunakan fungsi-fungsi Agregate seperti AVG (rata-rata), COUNT
(jumlah data), MIN atau MAX, SUM (hasil jumlah), StDEV atau StDEVP (standard
deviasi sample/populasi), VAR atau VARP (variasi sample / populasi) untuk
mendapatkan nilai statistifk field terentu.
Contoh :
Akan mendapat suatu recordset dengan field JlhDenda dan record tunggal yang berisi
jumlah perhitungan field denda pada tanggal 20 September 2001 dari tabel Transaksi.
SELECT fieldlist
FROM table
WHERE criteria
[GROUP BY groupfieldlist]
Anda dapat menggunakan ORDER BY clause untuk meringkas record yang nilai
fieldnya sama menjadi satu record dikombinasikan dengan fungsi Agregate untuk
mendapatkan statistik dari masing-masing ringkasan.
Misalnya kita ingin mendapatkan suatu daftar recordset yang berisi jumlah denda
harian berdasarkan tanggal pengembalian (Kembali), maka perintah SQL adalah :
SELECT fieldlist
FROM table
WHERE selectcriteria
GROUP BY groupfieldlist
[HAVING groupcriteria]
Jika anda menggunakan WHERE clause untuk membatasi data hasil query
berdasarkan kriteria tertentu, maka HAVING clause digunakan untuk membatasi data
setelah GROUPING dilakukan.
Contoh :
Mendapatkan daftar hasil jumlah denda harian, dimana yang dikembalikan hanya
jumlah denda yang diatas 10000.
159
Modul Visual Basic 6
[email protected]
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM table
Secara default kalau tidak dituliskan, maka predikat ALL akan digunakan. Anda dapat
menggunakan predikat DISTINCT untuk mengambil satu record dari beberapa record
yang memiliki nilai yang sama.
Contoh :
Akan menghasilkan daftar nama Aktor dari tabel CD yang kita miliki. pemakaian
predikat DISTINCT dalam hal ini untuk memastikan hanya 1 aktor terambil dari
beberapa CD yang mungkin memiliki aktor utama yang sama.
Pemakaian predikat TOP untuk mendapatkan n record atau n persen record dari daftar
teratas.
Misalnya kita ingin mendapatkan 10 kode CD yang paling sering diTransaksi oleh
Anggota.
Mengambil kolom dari dua atau lebih tabel dengan Operasi INNER JOIN
Pada operasi INNER JOIN akan mengabungkan record-record yang memiliki nilai sama
pada kolom tertentu pada kedua tabel.
Tabel Transaksi
160
Modul Visual Basic 6
[email protected]
Tanggal DateTime
KodeAnggota Text
KodeCD Text
Kembali DateTime
Denda Currency
Tabel CD
Tabel Anggota
Misalnya kita ingin mengambil suatu recordset yang berisi kolom-kolom berikut :
Tabel
Kolom Kriteria
sumber
Tanggal Transaksi
Judul Transaksi
Nama Anggota
Denda Transaksi Not Null
Dalam hal ini kita akan menggambil data dari dua tabel, yaitu tabel Transaksi, dan tabel
Anggota, dimana dalam pengambilan tersebut KodeAnggota pada tabel Transaksi
harus bersesuaian dengan KodeAnggota pada tabel Anggota, sehingga FROM clause-
nya dapat ditulis menjadi :
161
Modul Visual Basic 6
[email protected]
SELECT Transaksi.Tanggal, Transaksi.KodeAnggota, Anggota.Nama, Transaksi.Denda
FROM Transaksi INNER JOIN
Anggota ON Transaksi.KodeAnggota = Anggota.KodeAnggota
WHERE NOT Denda Is NULL;
Pada perintah SELECT yang menggambil kolom lebih dari satu tabel, kita perlu
menuliskan nama Tabel dan Field yang dipisahkan dengan dot (.).
Anda dapat melakukan nested untuk mengambil data lebih dari dua
tabel
Misalnya kita ingin mengambil suatu recordset yang berisi kolom-kolom berikut :
Dalam hal ini kita akan menggambil data dari tiga tabel, yaitu tabel Transaksi, tabel CD
dan tabel Anggota, dimana dalam pengambilan tersebut KodeCD pada tabel Transaksi
harus bersesuaian dengan KodeCD pada tabel CD, dan KodeAnggota pada tabel
Transaksi harus bersesuaian dengan KodeAnggota pada tabel Anggota, sehingga
FROM clause-nya dapat ditulis menjadi :
atau
atau
Jika pada operasi INNER JOIN, recordset yang dihasilkan adalah data-data yang
memiliki nilai yang bersesuaian pada kolom tertentu, sedangkan operasi OUTER JOIN
seperti LEFT JOIN dan RIGHT JOIN dapat digunakan untuk mengambil seluruh data
dari suatu tabel walaupun pada tabel lainnya tidak ada data yang bersesuaian.
Contoh :
162
Modul Visual Basic 6
[email protected]
SELECT Transaksi.Tanggal, Transaksi.KodeAnggota, Anggota.Nama, Transaksi.Denda
FROM Transaksi LEFT JOIN
Anggota ON Transaksi.KodeAnggota = Anggota.KodeAnggota
WHERE NOT Denda Is NULL;
Membuat suatu query union, yang mana mengabung hasil dari dua query atau tabel
dengan menghilangkan record duplikat, untuk mengikutkan record yang duplikat, anda
dapat mencamtumkan ALL.
[TABLE] query1 UNION [ALL] [TABLE] query2 [UNION [ALL] [TABLE] queryn [ ... ]]
Misalnya kita memiliki dua tabel History (data transaksi bulan lalu), Transaksi (data
transaksi sekarang), kita ingin mengambil data dari dua tabel tersebut menjadi satu
recordset.
TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]
Misalnya kita akan membuat ringkasan data jumlah transaksi peminjaman CD oleh
masing-masing Anggota (baris) pada masing-masing bulan JAN, FEB, ... (kolom)
163
Modul Visual Basic 6
[email protected]
TRANSFORM Count(NoTransaksi)
SELECT Transaksi.KodeAnggota
FROM Transaksi
GROUP BY Transaksi.KodeAnggota
PIVOT Format([Tanggal],"mmm") In
("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
Latihan 1
Tabel Anggota
Tabel CD
Tabel Transaksi
Latihan 2
2. Aktifkan tampilan dengan menggunakan DBGrid, yang dapat dipilih dari Toolbar.
• CustomerId
• CompanyName
• ContactName
• ContactTitle
• Address
• City
• Region
• PostalCode
• Country
• Phone
• Fax
4. Pada Jendela SQL ketikkan perintah SQL berikut, dan klik pada Execute.
Dengan menggunakan WHERE clause, batasi data yang ContactTitle adalah Sales
Manager
Hitung Jumlah pelangan yang terdapat di Country USA dengan Fungsi Agregate Count
Buatlah Daftar Negara yang mana jumlah pelangan diatas 10 perusahaan dengan
HAVING clause
165
Modul Visual Basic 6
[email protected]
SELECT Country, Count(*) As JlhPelangan FROM Customers GROUP BY Country
HAVING Count(*) >= 10;
Buatlah Daftar Negara dimana langanan berada (tidak boleh double) dengan
menggunakan predikat DISTINCT
Buatlah Daftar 10 besar Negara berdasarkan jumlah pelanggan, dengan predikat TOP
• ProductID
• ProductName
• SupplierID
• CategoryID
• QuantityPerUnit
• UnitPrice
• UnitInStock
• UnitOnOrder
• ReorderLevel
• Discontinued
• CategoryID
• CategoryName
• Description
• Picture
7. Dengan menggunakan perintah SQL dan operasi INNER JOIN antara tabel Products
dan Categories, tampilkan kolom ProductName, CategoryName, dan Unit Price.
• SupplierId
• CompanyName
• ContactName
• ContactTitle
• Address
• City
• Region
• PostalCode
• Country
• Phone
• Fax
166
Modul Visual Basic 6
[email protected]
• Homepage
9. Dengan menggunakan perintah SQL dan operasi INNER JOIN antara tabel Products,
Categories, Suppliers, tampilkan kolom ProductName, CategoryName, SupplierName,
dan Unit Price.
10. Buatlah suatu daftar negara dimana perusahaan memiliki hubungan, baik dari tabel
Customers maupun tabel Suppliers, dengan operasi UNION.
• OrderID
• CustomerID
• EmployeeID
• OrderDate
• RequiredDate
• ShippedDate
• ShipVia
• Freight
• ShipName
• ShipAddress
• ShipCity
• ShipRegion
• ShipPostalCode
• ShipCountry
12. Buatlah suatu daftar jumlah Order Per CustomerID untuk Jan, Feb, ..., Dec.
TRANSFORM Count(*)
SELECT Orders.CustomerId
FROM Orders
GROUP BY Orders.CustomerId
PIVOT Format([OrderDate],"mmm") In
("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
TRANSFORM Count(*)
SELECT Orders.CustomerId
FROM Orders WHERE Year([OrderDate]) = 1994
GROUP BY Orders.CustomerId
PIVOT Format([OrderDate],"mmm") In
("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
167
Modul Visual Basic 6
[email protected]
Latihan 3
Judul : Latihan
• Menampilkan kolom PubId, Name, dan Company Name dari tabel Publishers
• Batasi data yang dari City New York
• Urutkan data berdasarkan Name Descending
• Hitung jumlah publishers dari City Carmel
• Hitung jumlah pelanggan dari masing-masing City
• Buatlah Daftar City yang mana jumlah publishernya diatas 3
• Buatlah Daftar City publishers (tidak boleh double)
• Buatlah Daftar 10 besar City berdasarkan jumlah publishers
3. Tampilan recordset dengan kolom ISBN, Author dari tabel TitleAuthor dan Authors.
4. Tampilan recordset dengan kolom Title, Author, Name, dari tabel Titles, Title Author,
Authors, dan Publishers (4 Table)
Pada Modul ini kita akan memanfaatkan fasilitas ini untuk mempelajari kontrol ADODC
yang diperkenalkan sejak Visual Basic 6.0.
Anda dapat mengaktifkan fasilitas ini melalui menu Add Ins, Add Ins Manager, dan
kemudian akan muncul dialog box Add-In Manager, dan lakukan double klik pada VB 6
Data Form Wizard.
168
Modul Visual Basic 6
[email protected]
Lakukan klik Next, dan akan muncul dialog box berikutnya yaitu memilih jenis database
yang akan digunakan, dalam hal ini Access (data lokal), atau Remote (SQL server)
169
Modul Visual Basic 6
[email protected]
Misalnya kita memilih Access, dan akan muncul dialog box berikut ini :
170
Modul Visual Basic 6
[email protected]
Dalam hal ini kita akan menggunakan ADO Data Control.
Tentukan Record Source yang akan digunakan, dalam hal ini kita menggunakan tabel
Customers, kemudian tentukan field-field yang akan digunakan, dan kolom yang akan
di Sort, dan klik pada Next.
Selanjutnya tentukan tombol-tombol yang ingin ditambahkan pada form, dan klik pada
next.
171
Modul Visual Basic 6
[email protected]
172
Modul Visual Basic 6
[email protected]
Hal yang paling paling penting dari suatu ADODC adalah Connection String.
Connection String ini dapat dibuat dengan command Build, atupun dengan mengetik
sendiri.
Dalam hal ini PROVIDER yang kita gunakan adalah Microsoft.Jet.OLEDB.3.51. Jenis
provider ini sangat tergantung kepada jenis database yang kita gunakan, dalam hal ini
adalah *.mdb.
Catatan :
173
Modul Visual Basic 6
[email protected]
Microsoft.Jet.OLEDB.3.51, hanya mampu membuka sampai database Access 97, untuk
membuka data Access 2000, anda perlu mengunakan PROVIDER
Microsoft.Jet.OLEDB.4.0.
Klik pada Test Connection untuk mencoba keberhasilan koneksi dengan sumber data.
174
Modul Visual Basic 6
[email protected]
Halaman RecordSource digunakan untuk menentukan sumber data dari Table, Query
ataupun suatu SQL Statement. Dalam hal ini menggunakan SQL Statement :
select
CustomerID,CompanyName,Address,City,ContactName,ContactTitle,Country,Fax,Phon
e,PostalCode,Region from Customers
Property Value
DataSource DatPrimaryRs
DataField CustomerId
Dalam hal ini Property DataSource berisi DatPrimaryRs (nama dari kontrol ADODC),
dan properti DataField berisi CustomerId (nama dari field yang di bound)
Exit Sub
AddErr:
MsgBox Err.Description
End Sub
datPrimaryRS.Recordset.UpdateBatch adAffectAll
Exit Sub
UpdateErr:
MsgBox Err.Description
End Sub
177
Modul Visual Basic 6
[email protected]
Selanjutnya langkah wizard adalah sama dengan bagian sebelumnya.
Sesuatu hal yang harus anda sadari adalah bahwa record navigator yang ada bukan
merupakan suatu ADODC, melainkan dibuat dengan menggunakan Command button
dan Label.
178
Modul Visual Basic 6
[email protected]
Property Value
DataSource kosong (tidak diisi)
DataField CustomerId
Dalam hal ini, properti DataSource tidak disi (binding akan dilakukan secara koding
pada event Form_Load), sedangkan DataField berisi nama field yang akan di bound.
Sesuatu hal yang baru disini adalah deklarasi variabel object adoPrimaryRS diawali
dengan WithEvents. Pada VB 6.0 kita dapat mendeklarasi variabel object beserta
dengan eventnya untuk object yang memiliki event (dalam hal ini ADO memiliki
beberapa event yang dapat dikoding). Hal ini tidak ditemui pada VB 5.0 maupun DAO.
Event Form_Load, pada bagian ini akan membuka tabel Customer (dengan SQL)
sebagai recordset yang akan digunakan pada form. Pada ADO, pembukaan recordset
harus didahului dengan membuka koneksi ke data provider dengan object Connection
dan Connection String.
179
Modul Visual Basic 6
[email protected]
adoPrimaryRS.Open "select
Address,City,CompanyName,ContactName,ContactTitle,Country,CustomerID,Fax,Phone,PostalCode,Re
gion from Customers", db, adOpenStatic, adLockOptimistic
mbDataChanged = False
End Sub
Pada Event Form Resize, pada bagian ini dilakukan pengaturan ukuran record
navigator yang disesuaikan dengan ukuran form, dalam hal ini record navigator dibuat
dengan command button, dan Label.
Pada Event Form KeyDown, pada bagian ini akan dibangkitkan event-event yang
bersesuaian dengan penekanan tombol oleh pemakai pada form aktif.
180
Modul Visual Basic 6
[email protected]
lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)
End Sub
Exit Sub
AddErr:
MsgBox Err.Description
End Sub
181
Modul Visual Basic 6
[email protected]
Event cmdRefresh_Click, merupakan event untuk command button cmdRefresh
EditErr:
MsgBox Err.Description
End Sub
Private Sub cmdCancel_Click()
On Error Resume Next
SetButtons True
mbEditFlag = False
mbAddNewFlag = False
adoPrimaryRS.CancelUpdate
If mvBookMark > 0 Then
adoPrimaryRS.Bookmark = mvBookMark
Else
adoPrimaryRS.MoveFirst
End If
mbDataChanged = False
End Sub
adoPrimaryRS.UpdateBatch adAffectAll
If mbAddNewFlag Then
adoPrimaryRS.MoveLast 'move to the new record
End If
mbEditFlag = False
mbAddNewFlag = False
SetButtons True
mbDataChanged = False
Exit Sub
UpdateErr:
MsgBox Err.Description
End Sub
182
Modul Visual Basic 6
[email protected]
Event cmdClose_Click, merupakan event untuk command button cmdClose
adoPrimaryRS.MoveFirst
mbDataChanged = False
Exit Sub
GoFirstError:
MsgBox Err.Description
End Sub
adoPrimaryRS.MoveLast
mbDataChanged = False
Exit Sub
GoLastError:
MsgBox Err.Description
End Sub
Exit Sub
GoNextError:
MsgBox Err.Description
End Sub
183
Modul Visual Basic 6
[email protected]
Beep
'moved off the end so go back
adoPrimaryRS.MoveFirst
End If
'show the current record
mbDataChanged = False
Exit Sub
GoPrevError:
MsgBox Err.Description
End Sub
Event Form_Unload, merupakan event yang akan dibangkitkan ketika form di buang
dari memori.
Suatu database merupakan koleksi dari informasi yang berhubungan dengan subjek
atau fungsi tertentu, seperti menangani nilai-nilai ujian mahasiswa atau menangani
suatu daftar koleksi musik. Jika database anda tidak tersimpan dalam komputer, maka
anda harus menangani informasi tersebut dari berbagai sumber dan mengkoordinir
serta mengorganisasinya sendiri.
184
Modul Visual Basic 6
[email protected]
Suatu struktur didefinisikan dengan membuat relasi antar tabel, kaitan data antar tabel
ini di dalam database merupakan model dari relationship.
185
Modul Visual Basic 6
[email protected]
Tabel
Model database relational menampilkan data sebagai suatu koleksi dari tabel-tabel.
Suatu tabel adalah pengelompokan secara logika dari informasi yang berhubungan.
Sebagai contoh, pada database Northwind memiliki suatu daftar dari tabel-tabel
karyawan, pelanggan, order. Tabel-tabel dibentuk oleh baris-baris dan kolom-kolom.
Baris-baris sering disebut sebagai record-record dan kolom-kolom disebut sebagai
field-field.
Record
Suatu record mengandung informasi dari suatu isian tunggal dalam suatu tabel.
Sebagai contoh, sebuah record dalam suatu tabel Karyawan akan mengandung
informasi dari karyawan-karyawan.
Field
Suatu record dibentuk oleh banyak field. Setiap field dalam suatu record mengandung
suatu potongan tunggal dari informasi tentang record. Sebagai contoh, suatu record
Karyawan memiliki No Induk Karyawan, Nama, Marga dan yang lainnya.
Key
Untuk secara unik mengenali suatu baris (record), setiap tabel harus memiliki suatu
primary key. Primary key adalah suatu field, atau konbinasi dari field-field, yang mana
nilainya bersifat unik untuk tiap baris atau record dalam tabel. Sebagai contoh, field
Nomor Induk Karyawan adalah primary key untuk tabel Karyawan. Tidak ada dua
karyawan yang memiliki Nomor Induk yang sama.
Suatu tabel dapat mengandung field yang merupakan foreign key. Suatu foreign key
"menunjuk pada" suatu field primary key pada tabel yang berhubungan. Sebagai
contoh, pada database Northwind, Tabel Pesanan mengandung suatu field Nomor
Pelanggan. Setiap Nomor Pelanggan pada tabel Order menunjukkan Pelanggan yang
melakukan Pesanan tersebut.
Untuk mempercepat akses, banyak database menggunakan index. Data tabel yang
terindex berurut akan lebih cepat pencariaannya dibandingkan dengan tabel. Setiap isi
index menunjuk ke posisi ditabelnya.
187
Modul Visual Basic 6
[email protected]
Membuat Tabel anda yang pertama
3. Pada Table Name ketikkan nama tabel yang ingin anda buat, misalnya Forum
4. Klik pada Add Field untuk mengetikkan field-field tabel anda, dan akan muncul
kotak dialog Add Field, Name ketikkan nama field anda, pilihlah Type data yang
bersesuaian dan ukuran dari field tersebut
Anda dapat menentukan apakah field tersebut adalah AutoIncrField (untuk type Long),
AllowZeroLength (untuk type Text), Required.
Klik pada Ok, dan lakukan hal yang sama untuk field berikutnya, jika telah selesai klik
pada Close.
188
Modul Visual Basic 6
[email protected]
5. Langkah selanjutnya adalah membuat Primary Key untuk tabel anda dengan
melakukan klik pada tombol Add Index. Pada Name ketikkan nama Index, dan
double klik pada field yang ingin di Index pada kotak Available Fields.
Anda dapat menentukan option Primary, Unique dan IgnoreNulls, klik OK jika telah
selesai, dan akhirnya Close.
189
Modul Visual Basic 6
[email protected]
Pada database yang telah kita buat pada Latihan 1, adapun relasi antar tabel tersebut
adalah sebagai berikut :
Tabel Aktifitas berisi data aktifitas peserta dimana seorang Peserta dapat mengikuti
lebih dari satu forum Diskusi, dan sebuah forum diskusi dapat diikuti oleh lebih dari satu
peserta, dan status Peserta pada masing-masing forum diskusi dapat berbeda-beda.
Tabel Aktifitas
190
Modul Visual Basic 6
[email protected]
Untuk membuat Relasi antar tabel pada Visual Data Manager anda dapat
menggunakan Bahasa SQL yang diketikan pada jendela SQL Language dan kemudian
di Execute.
Adapun DDL (Data Definition Language) SQL untuk membuat Relasi antar tabel
adalah sebagai berikut :
dimana :
Contoh :
ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasEmail FOREIGN KEY (Email) REFERENCES
Peserta (Email);
ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasForumID FOREIGN KEY (ForumId) REFERENCES
Forum (ForumId);
ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasStatus FOREIGN KEY (Status) REFERENCES
Satus (Status);
Jika dibuka dengan Relationship pada Microsoft Access maka hasil perintah SQL diatas
akan membuat relasi antar tabel sebagai berikut :
Data kontrol merupakan kontrol standar yang disediakan pada Visual Basic untuk
digunakan untuk membuat aplikasi database sederhana. Data kontrol merupakan suatu
lapisan yang menghubungkan data dengan user interface.
Jenis
Keterangan
Recordset
Table Suatu himpunan dari record yang diambil dari suatu tabel tunggal database. Anda dapat
menambah, mengubah, atau menghapus record pada jenis recordset ini.
Dynaset Suatu himpunan dari record secara dinamis yang di ambil dari suatu tabel tunggal maupun
hasil Query (SQL) dari satu atau lebih tabel. Anda dapat menambah, mengurangi, atau
menghapus record pada jenis recordset ini, dan perubahan akan mempengaruhi tabel yang
bersangkutan.
Snapshot Suatu himpunan dari record yang merupakan duplikasi secara statis. Anda dapat
menggunakan recordset jenis ini untuk mencari data, dan membuat laporan. Recorset
Snapshot dapat mengandung field dari satu atau lebih tabel yang tidak dapat di update.
Anda dapat memilih jenis objek Recordset yang ingin anda gunakan pada Property
(RecordsetType), dan nilai defaultnya adalah vbDynasetType.
192
Modul Visual Basic 6
[email protected]
Catatan :
Pada Dynaset dan Snapshot, recordset disimpan pada memori lokal, jika aplikasi anda
tidak menggambil data lebih dari satu tabel, ataupun sumber data non-ODBC, maka
Recordset jenis Table merupakan pilihan yang baik dari segi kecepatan dan efisiensi
pemakaian memori.
Metoda Fungsi
MoveFirst Memindahkan keaktifan pointer ke awal recordset
MoveLast Memindahkan keaktifan pointer ke akhir recordset
MovePrevious Memindahkan keaktifan pointer ke record sebelumnya
MoveNext Memindahkan keaktifan pointer ke record berikutnya
Contoh :
Data1.Recordset.MoveFirst
Contoh :
Pada recordset jenis table anda dapat menggunakan metoda Seek, tetapi sebelumnya
anda perlu menentukan index yang digunakan dengan properti index
Data1.RecordSet.Index = NamaIndex
Perbandingan Keterangan
"=" Sama dengan
">=" Lebih besar atau sama
193
Modul Visual Basic 6
[email protected]
">" Lebih besar
"<=" Lebih kecil atau sama
"<" Lebih kecil
Contoh :
Data1.Recordset.Index = "P_Key"
Data1.Recordset.Seek "=","[email protected]"
Anda dapat menggunakan properti NoMatch untuk memeriksa hasil pencarian dengan
metoda Find maupun metoda Seek.
Contoh
atau
Data1.Recordset.Index = "P_Key"
Data1.Recordset.Seek "=","[email protected]"
If Data1.Recordset.NoMatch Then
MsgBox "Peserta belum terdaftar !"
Else
MsgBox "Peserta telah terdaftar !"
End If
Contoh :
Jika suatu kontrol di bound pada data kontrol, maka kontrol tersebut akan menampilkan
nilai field dari record yang sedang aktif.
Untuk mengambil nilai field dari record yang sedang aktif secara koding, anda dapat
menggunakan salah satu cara berikut :
194
Modul Visual Basic 6
[email protected]
Data1.Recordset.Fields("FName") ' Mengacu pada FName field.
string$ = "FName" ' Mengacu tidak langsung dengan nama field.
Data1.Recordset.Fields(string$) ' Mengacu pada FName field
Data1.Recordset("FName") ' Mengacu kepada field sebagai collection default.
Data1.Recordset(n) ' Mengacu kepada field sebagai collection default.
Contoh :
Debug.Print Data1.Recordset("Email")
Jika suatu kontrol di bound pada data kontrol, maka perubahan nilai pada kontrol
tersebut akan mempengaruhi isi field yang bersangkutan ketika posisi record pointer
berpindah, maupun ketika dilakukan proses update dengan metoda UpdateRecord.
Contoh :
Untuk mengubah nilai field dari record yang sedang aktif secara koding, anda dapat
melakukan langkah sebagai berikut :
Contoh :
Data1.Recordset.Edit
Data1.Recordset("Email") = "[email protected]"
...
Data1.RecordSet.Update
Secara koding anda dapat melakukan langkah berikut untuk menambahkan record baru
ke recordset :
1. Membuat suatu record baru dengan method AddNew. Current record pointer
disimpan dan berpindah ke record baru.
2. Tentukan nilai baru untuk record baru.
3. Simpan record baru dengan method Update.
Contoh :
195
Modul Visual Basic 6
[email protected]
Data1.Recordset.AddNew
Data1.Recordset("Email") = "[email protected]"
...
Data1.RecordSet.Update
Catatan :
Setelah update, posisi record pointer akan dikembalikan keposisi sebelum record baru
tersebut ditambah. Untuk membuat posisi record berada di record baru tersebut anda
dapat menggunakan bookmark yang diset ke lastmodified.
Contoh :
Data1.Recordset.AddNew
Data1.Recordset("Email") = "[email protected]"
...
Data1.RecordSet.Update
Data1.RecordSet.Bookmark = Data1.Recordset.LastModified
Untuk menghapus seluruh record, posisikan ke record yang akan dihapus, dan
gunakan method Delete. Sesaat setelah record tersebut dihapus, maka record tersebut
menjadi invalid, sehingga anda harus menggunakan MoveNext untuk memindahkan
posisi setelah setiap penghapusan.
Contoh :
Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.Eof Then
Data1.Recordset.MoveLast
End If
Anda dapat menggunakan metoda Refresh untuk menutup dan membentuk ulang isi
Recordset.
Contoh :
Data1.Refresh
Contoh :
Data1.Recordset.Close
196
Modul Visual Basic 6
[email protected]
1. Anda menggunakan method Close terhadap recordset tertentu.
2. Form yang mengandung data control di unload
3. Program menjalankan statement End.
Event Error akan dibangkitkan ketika terjadi kesalahan pada data kontrol yang bukan
disebabkan oleh koding yang menggunakan perintah Visual Basic.
End Sub
Anda dapat mendapatkan nomor kesalahan dengan mengevaluasi nilai DataErr, dan
menentukan Response terhadap kesalahan tersebut (vbDataErrContinue,
vbDataErrDisplay) apakah diabaikan atau ditampilkan.
Contoh :
Event Reposition
End Sub
Contoh berikut akan mengunci semua textbox dari perubahan ketika terjadi event
reposition.
Event Validate
197
Modul Visual Basic 6
[email protected]
Event ini terjadi sebelum perubahan dilakukan terhadap yang sedang aktif seperti
metoda update, delete ataupun close.
End Sub
Anda dapat melakukan evaluasi terhadap Action untuk mendapatkan aksi yang
membangkitkan event Validate tersebut, misalnya vbDataActionAddNew,
vbDataActionBookmark, vbDataActionCancel, dll.
Latihan 1
Tabel Forum
Keterangan Text 50
Tabel Status
Keterangan Text 50
Tabel Peserta
198
Modul Visual Basic 6
[email protected]
Tabel Aktifitas
Latihan 2
1. Aktifkan Visual Data Manager, dan buatlah relasi antar table di database
Indoprog.mdb
Tabel Aktifitas
Caranya :
ALTER TABLE Aktifitas ADD CONSTRAINT AktifitasEmail FOREIGN KEY (Email) REFERENCES
Peserta (Email);
Untuk membuat relasi antara "tabel Aktifitas" dengan "tabel Peserta" berdasarkan field
"Email".
Klik pada tombol Execute, jika terjadi Error abaikan saja, karena perintah SQL diatas
tidak menghasilkan recordset.
Latihan 3
199
Modul Visual Basic 6
[email protected]
200
Modul Visual Basic 6
[email protected]
'Deklarasi Enumerated type untuk aksi oleh pemakai
Private Enum Aksi
flNone = 0
flAdd = 1 'Tambah data
flEdit = 2 'Perbaiki data
End Enum
Pengaturan modus pembukaan file database pada Data kontrol dapat dilakukan
dengan menentukan nilai dari properti Exclusive menjadi True (Single User) atau False
(Multi User).
Sesuatu hal yang perlu diperhatikan dalam pengaktifan file Database secara Share
(Exclusive False) adalah mekanisme penguncian ketika data di Edit. Mekanisme
penguncian pada Data kontrol dapat menggunakan dua jenis strategi, yaitu :
Pemakaian strategi penguncian ini dapat ditentukan pada Properti LockEdits dengan
mengubah nilainya menjadi True (Pesimistik Locks) atau False (Optimistik Locks).
203
Modul Visual Basic 6
[email protected]
Contoh :
Catatan :
Penguncian dilakukan oleh Visual Basic secara per Page (Halaman) dimana terdiri dari
2 Kilobyte Page dimana record tersebut berada. Pada saat suatu Page sedang dikunci,
maka usaha penguncian oleh pemakai lain terhadap data lain yang berada pada Page
yang sama akan gagal.
Perhatikan kembali potongan program berikut yang diambil dari Latihan 3 Modul 9,
dimana mekanisme masing-masing Locks dapat dijelaskan sebagai berikut :
Anda dapat menggunakan Error Handling untuk menangani kegagalan ini dengan
mengevaluasi nilai Err yang dihasilkan, dalam hal ini adalah 3260.
Contoh :
CancelcmdEdit:
Exit Sub
ErrcmdEdit_Click:
Select Case Err
'Data telah dihapus pemakai lain
Case 3167
MsgBox "Data telah dihapus pemakai lain" & vbCrLf & _
"Lakukan refresh data anda !", vbOKOnly + vbInformation
'Data Page (2 kb) telah dikunci oleh pemakai lain
Case 3260
nHitung = nHitung + 1
'Memungkinkan pemakai membuat keputusan ulangi
'Penguncian atau batal, maksimum 2 kali
If nHitung > 2 Then
nPilih = MsgBox("Ulangi penguncian ?", vbYesNo + _
vbQuestion)
If nPilih = vbYes Then
nHitung = 1
Else
Resume CancelcmdEdit
End If
End If
DoEvents 'menjalankan event windows
'menunda sejumlah waktu random
nTunda = nHitung ^ 2 * Int(Rnd * 3000 + 1000)
For i = 1 To nTunda: Next i
Resume
Case Else
MsgBox "Error " & Err & ":" & Error, vbOKOnly
Resume CancelcmdEdit
End Select
End Sub
Private Sub cmdDelete_Click()
On Error GoTo ErrCmdDelete_Click
RsForum.Recordset.Delete 'Sumber Error pada Pesimistik Locks
RsForum.Recordset.MoveNext
If RsForum.Recordset.EOF Then
205
Modul Visual Basic 6
[email protected]
RsForum.Recordset.MoveLast 'Sumber Error kalau data telah habis
End If
CancelcmdDelete:
Exit Sub
ErrCmdDelete_Click:
Select Case Err.Number
'Data telah kosong
Case 3021
MsgBox "Data telah kosong", vbOKOnly + vbInformation, "Warning"
'Data Page (2 kb) telah dikunci oleh pemakai lain
Case 3260
MsgBox "Data dikunci user lain, hapus tidak dapat dilakukan !", vbOKOnly + vbInformation
Resume CancelcmdDelete
Case Else
MsgBox "Error" & Err.Number & vbCrLf & Err.Description
End Select
End Sub
Anda dapat menggunakan Error Handling untuk menangani kegagalan ini dengan
mengevaluasi nilai Err yang dihasilkan, dalam hal ini adalah 3260 (kegagalan
penguncian) dan 3197 (data telah berubah sejak metoda edit). Untuk merefresh data
yang telah berubah, anda dapat menggunakan metoda Move 0.
Contoh :
206
Modul Visual Basic 6
[email protected]
Case 3022
MsgBox "Telah terjadi duplikasi pada Forum ID", vbOKOnly + vbInformation, "Warning"
'Data telah dihapus pemakai lain
Case 3167
MsgBox "Data telah dihapus pemakai lain" & vbCrLf & _
"Lakukan refresh data anda !", vbOKOnly + vbInformation
'Data telah berubah sejak metoda Edit
Case 3197
'Data pada recordset telah berubah
'sejak ditampilkan.
MsgBox "Data telah diubah oleh pemakai lain !", vbOKOnly + vbInformation
'Hal ini secara otomatis akan menyegarkan
'kembali recordset untuk menampilkan data terakhir
RsForum.Recordset.Move 0
Resume CancelcmdUpdate
'Data Page (2 kb) telah dikunci oleh pemakai lain
Case 3260
'Record dikunci pemakai lain
nHitung = nHitung + 1
'Mencoba mengunci dua kali
'Memungkinkan pemakai membuat keputusan ulangi, batal
If nHitung > 2 Then
nPilih = MsgBox("Data sedang dikunci pemakai lain" & vbCrLf & _
"Ulangi penguncian ?", vbYesNo + _
vbQuestion)
If nPilih = vbYes Then
nHitung = 1
Else
Resume CancelcmdUpdate
End If
End If
DoEvents 'menjalankan event windows
'menunda sejumlah waktu random
nTunda = nHitung ^ 2 * Int(Rnd * 3000 + 1000)
For i = 1 To nTunda: Next i
Resume
Case Else
MsgBox "Error " & Err & ":" & Error, vbOKOnly
Resume CancelcmdUpdate
End Select
End Sub
Suatu Recordset jenis Tabel mengambil data dari suatu tabel, anda dapat melakukan
tambah, perbaiki maupun hapus data dari tabel, Hanya record yang aktif yang dimuat
ke memori. Sehingga perubahan, penambahan dan penghapusan data oleh pemakai
lain dapat langsung diakses.
Dynaset
Recordset jenis Dynaset adalah himpunan dari record-record secara dinamis yang
dapat mengandung field-field dari satu atau lebih tabel maupun query yang dapat di
update. Ketika user mengupdate data, maka tabel yang berkaitan akan berubah. Pada
lingkungan MultiUser, perubahan data tersebut dapat langsung diakses, tetapi jika
seorang user melakukan penambahan data, data tersebut tidak akan kelihatan sama
user lain, sampai pemakaian metoda Requery (pada Data Kontrol digunakan Refresh).
207
Modul Visual Basic 6
[email protected]
Jika seorang user menghapus suatu record, user lain akan diberitahu ketika akan
mengakses record tersebut.
Contoh :
Latihan 1
Judul : Pengaturan Program MultiUser dengan Pesimistik Locks
CancelcmdEdit:
Exit Sub
ErrcmdEdit_Click:
Select Case Err
'Data telah dihapus pemakai lain
Case 3167
MsgBox "Data telah dihapus pemakai lain" & vbCrLf & _
"Lakukan refresh data anda !", vbOKOnly + vbInformation
'Data Page (2 kb) telah dikunci oleh pemakai lain
Case 3260
nHitung = nHitung + 1
'Memungkinkan pemakai membuat keputusan ulangi
'Penguncian atau batal, maksimum 2 kali
If nHitung > 2 Then
nPilih = MsgBox("Ulangi penguncian ?", vbYesNo + _
vbQuestion)
If nPilih = vbYes Then
nHitung = 1
Else
Resume CancelcmdEdit
End If
End If
DoEvents 'menjalankan event windows
208
Modul Visual Basic 6
[email protected]
'menunda sejumlah waktu random
nTunda = nHitung ^ 2 * Int(Rnd * 3000 + 1000)
For i = 1 To nTunda: Next i
Resume
Case Else
MsgBox "Error " & Err & ":" & Error, vbOKOnly
Resume CancelcmdEdit
End Select
End Sub
4. Lakukan perbaikan pada Event cmdDelete_Click, sebagai berikut :
Private Sub cmdDelete_Click()
On Error GoTo ErrCmdDelete_Click
RsForum.Recordset.Delete
RsForum.Recordset.MoveNext
If RsForum.Recordset.EOF Then
RsForum.Recordset.MoveLast
End If
CancelcmdDelete:
Exit Sub
ErrCmdDelete_Click:
Select Case Err.Number
'Data telah kosong
Case 3021
MsgBox "Data telah kosong", vbOKOnly + vbInformation, "Warning"
'Data Page (2 kb) telah dikunci oleh pemakai lain
Case 3260
MsgBox "Data dikunci user lain, hapus tidak dapat dilakukan !", vbOKOnly + vbInformation
Resume CancelcmdDelete
Case Else
MsgBox "Error" & Err.Number & vbCrLf & Err.Description
End Select
End Sub
5. Simpan Project Anda, dan pada menu file pilih Make Project1.Exe, lakukan
penyimpanan ke folder dimana Indoprog.mdb berada.
8. Lakukan berbagai aktifitas seperti tambah data, perbaiki data pada record yang
sama, hapus data, dll. Perhatikan prilaku pada program anda pada lingkungan
MultiUser.
Latihan 2
Judul : Pengaturan Program MultiUser dengan Optimistik Locks
1. Aktifkan kembali project sebelumnya dan lakukan perubahan pada koding Event
Form_Load, sebagai berikut :
209
Modul Visual Basic 6
[email protected]
RsForum.Refresh
RsForum.Recordset.LockEdits = True 'Pesimistik Locks
End Sub
CancelcmdUpdate:
Exit Sub
ErrcmdUpdate_click:
Select Case Err.Number
Case 3022
MsgBox "Telah terjadi duplikasi pada Forum ID", vbOKOnly + vbInformation, "Warning"
Case 3167
MsgBox "Data telah dihapus pemakai lain" & vbCrLf & _
"Lakukan refresh data anda !", vbOKOnly + vbInformation
Case 3197
'Data pada recordset telah berubah
'sejak ditampilkan.
MsgBox "Data telah diubah oleh pemakai lain !", vbOKOnly + vbInformation
'Hal ini secara otomatis akan menyegarkan
'kembali recordset untuk menampilkan data terakhir
RsForum.Recordset.Move 0
Resume CancelcmdUpdate
Case 3260
'Record dikunci pemakai lain
nHitung = nHitung + 1
'Mencoba mengunci dua kali
'Memungkinkan pemakai membuat keputusan ulangi, batal
If nHitung > 2 Then
nPilih = MsgBox("Data sedang dikunci pemakai lain" & vbCrLf & _
"Ulangi penguncian ?", vbYesNo + _
vbQuestion)
If nPilih = vbYes Then
nHitung = 1
Else
Resume CancelcmdUpdate
End If
End If
DoEvents 'menjalankan event windows
'menunda sejumlah waktu random
nTunda = nHitung ^ 2 * Int(Rnd * 3000 + 1000)
For i = 1 To nTunda: Next i
210
Modul Visual Basic 6
[email protected]
Resume
Case Else
MsgBox "Error " & Err & ":" & Error, vbOKOnly
Resume CancelcmdUpdate
End Select
End Sub
Latihan 3
Judul : Mencoba Dynaset di lingkungan MultiUser
Ayo kembali kemasalah koding. Untuk membuat suatu RAT (Remote Administration Tool) kita
membutuhkan dua program yaitu klient dan server. Bagian server berjalan di sistem remote yang mana
akan menjalankan perintah kita. Bagian klient berjalan pada sistem dimana kita akan memberikan
perintah.
Bagian Klient
Option Explicit
Bagian Server
Bagian server harus dapat menyembunyikan diri dan menerima pesan dari klient dan menjalankan
perintah sesuai dengan perintah pesan.
212
Modul Visual Basic 6
[email protected]
1. Buat sebuah project baru
2. Tambahkan sebuah komponen winsock ke form dan lakukan koding berikut
Now a module to the server program and copy the following lines of code to the module. All these are API
functions which help us to interact with Input/Otput devices of the system, multimedia system etc…
Kompilasi kedua program menjadi Executable (file EXE). Untuk mencoba kedua program jalankan pada
komputer local dengan IP 127.0.0.1.
213
Modul Visual Basic 6
[email protected]
Tentu saja : Seratus Duapuluh Tiga Juta Empat Ratus Lima Puluh Enam Ribu Tujuh
Ratus Delapan Puluh Sembilan Rupiah Lima Puluh Lima Sen
Tentu saja kita membutuhkan suatu program yang dapat menterjemahkan angka-angka
tersebut menjadi kata-kata yang sesuai, dan dapatkah anda bayangkan repotnya
melakukan hal tersebut.
Saya sering membaca di mailing list pemrograman, banyak orang menanyakan akan
hal tersebut, dan memang tidak sesederhana seperti kita mengeja ketika menulis
Kwitansi, Slip Tabungan, CEK dan Giro.
Baiklah, sekarang saya akan membantu anda untuk memahami dasar dari program
mengeja terbilang, mari kita lihat kembali angka 123456789.55 yang anda baca
sebagai Seratus Duapuluh Tiga Juta Empat Ratus Lima Puluh Enam Ribu Tujuh Ratus
Delapan Puluh Sembilan Rupiah Lima Puluh Lima Sen, dan akan saya penggal menjadi
potongan yang yang lebih kecil sebagai berikut :
Jadi pada prinsipnya kita memotongnya menjadi bagian (123) Juta, (456) Ribu, (789)
Rupiah, dan (55) Sen.
Sekarang misalnya kita menggambil 123 yang kita baca sebagai Seratus Duapuluh
Tiga, dimana kalau kita penggal menjadi potongan yang lebih kecil sebagai berikut :
123
Se ratus
Dua puluh
214
Modul Visual Basic 6
[email protected]
Tiga
Jadi pada prinsipnya kita memotongnya menjadi bagian (1) ratus, (2) puluh, (3) satuan.
216