Belajar Sendiri VB 6

42
BELAJAR SENDIRI PEMROGRAMAN VISUAL BASIC 6.0 2004 S. HALIM MICROSOFT VISUAL BASIC 6.0 [Type your address] [Type your phone number] [Type your e-mail address] MICROSOFT VISUAL BASIC 6.0 [email protected]

description

VB 6, Kini tinggal kenangan...

Transcript of Belajar Sendiri VB 6

Page 1: Belajar Sendiri VB 6

BELAJAR

SENDIRI PEMROGRAMAN

VISUAL BASIC 6.0

2004 S. HALIM

MIC

RO

SO

FT

VIS

UA

L B

AS

IC 6

.0

[Typ

e y

ou

r ad

dre

ss] [T

yp

e y

ou

r ph

on

e n

um

ber] [T

yp

e y

ou

r e-m

ail a

dd

ress

]

MIC

RO

SO

FT

VIS

UA

L B

AS

IC 6

.0

mail.sh

alim

@yah

oo.co

m

Page 2: Belajar Sendiri VB 6

1

BAB 1

PENGENALAN VISUAL BASIC

Visual Basic adalah bahasa pemrograman pertama yang menggunakan konsep pemrograman visual. Dengan gabungan bahasa basic dan desain visual secara grafis, Visual Basic menyediakan kemudahan dan kesederhanaan untuk mengembangkan aplikasi Windows tanpa pengorbanan kinerja program. IDE (Integrated Development Environment) Visual Basic 6.0

IDE VB terdiri dari beberapa komponen yang penting, diantaranya : 1. Project explorer, untuk menampilkan semua modul, form, dan resource yang

digunakan pada project. Dapat dimunculkan dengan Ctrl+R. 2. Form Designer, untuk merancang user interface aplikasi anda. 3. ToolBox Window, memuat sekumpulan komponen/object untuk anda pakai.

Anda juga dapat menambah komponen sendiri dengan menekan Ctrl+T. 4. Code Window, untuk menuliskan kode program. Masing-masing form

designer memiliki satu code window. 5. Object Browser, menampilkan method, property, dan event yang terdapat

pada suatu object. Dapat dimunculkan dengan menekan tombol F2.

Page 3: Belajar Sendiri VB 6

2

6. Property Window, menampilkan daftar properti dari suatu komponen yang sedang dipilih. Dengan property window, kita dapat merubah karakteristik suatu komponen saat design time.

7. Menu Bar, menyediakan menu-menu untuk operasi file, edit, view, compile, dan sebagainya.

8. Tool Bar, berisi icon-icon yang berfungsi sebagai shortcut untuk mempercepat pemilihan perintah tertentu.

9. Form Layout , untuk mensimulasikan letak form pada monitor saat program dijalankan.

Visual Basic termasuk bahasa pemrograman yang berorientasi object. (Object-Oriented Programming). Namun, Visual basic bukan bahasa pemrograman yang murni object-oriented karena Visual Basic tidak mengenal inheritance dan polymorphism. Setiap object memiliki Property dan Method (Behaviour). Property merupakan sifat atau karakteristik dari object dan Method adalah perilaku object. Contohnya adalah Tombol (Command Button). Pada VB, sebuah tombol memiliki property seperti Backcolor, Caption, Visible, Enabled, dll. Tombol juga memiliki method seperti move, drag.

Cara kerja program Visual Basic adalah Event-driven. Artinya adalah

bahwa program Visual Basic dikendalikan sepenuhnya oleh event. Event merupakan suatu kejadian yang dikenakan pada suatu object. Program akan menunggu sampai adanya respon dari user, misalnya tombol diklik, menu dipilih, keypress, dll. Setiap object/komponen pada VB memiliki event. Dan setiap komponen memiliki kumpulan event yamg berbeda. Misalnya event change pada kontrol textbox. Kita tidak dapat menemukan event ini pada kontrol label.

Page 4: Belajar Sendiri VB 6

3

BAB 2

PEMROGRAMAN DALAM VISUAL BASIC

Proses pemrograman pada VB dibedakan menjadi 2 tahap, yaitu : Fase Desain

Pada fase ini kita dapat menyusun tampilan yang nantinya akan dihasilkan sebagai output, menset property komponen, dan menulis kode program dalam prosedur.

Fase Runtime

Pada fase ini, kita memonitor jalannya program kita. Kita dapat menggunakan tool untuk melakukan debug atau testing yang mana pada fase desain, tool tersebut tidak berfungsi. Tool-tool debug ini antara lain adalah:

- Local Window untuk menampilkan nama dan nilai dari suatu variabel lokal pada modul atau prosedur.

- Watches Windows untuk memonitor nilai dan variabel dalam program kita secara keseluruhan termasuk variabel global.

- Call Stack untuk menampilkan semua prosedur yang sedang menunggu prosedur saat ini untuk diselesaikan. Call stack akan ada ketika kita melakukan break saat program berjalan.

1. Penamaan

a. Control Prefix Suatu property yang dimiliki semua kontrol adalah property name.

Properti ini sangat penting karena berfungsi sebagai pengenal kontrol pada kode program. Berikut adalah standar penamaan untuk komponen Visual Basic.

Nama Kontrol Prefix

CheckBox Chk

ComboBox Cbo

CommandButton Cmd

Data Dat

DirListBox Dir

DriveListBox Drv

FileListBox Fil

Frame Fra

HscrollBar Hsb

Image Img

Label Lbl

Line Lin

ListBox Lst

OLE Container Control Ole

Page 5: Belajar Sendiri VB 6

4

OptionButton Opt

PictureBox Pic

Shape Shp

TextBox Txt

Timer Tmr

VscrollBar Vsb

b. Variable Prefix

Pemberian nama variabel harus menggunakan kata yang singkat, jelas dan mencerminkan isi variabel tersebut. Tabel berikut menunjukkan beberapa prefix variabel yang umum digunakan.

Prefix Variabel Contoh

b Boolean bValue

ctr Control ctrNext

c Currency cAmount

db Database dbPegawai

dt Date/Time dtTanggal

d Double dNum

ds Dynaset dsOverdue

h Handle hWnd

int Integer intNum

l Long lNum

s Single sNum

str String strNama

a Array aMyArr

g Global gTotal

td Tabledef tdEmployees

m Local to module or form m_Jumlah

2. Variabel

a. Deklarasi Deklarasi variabel pada VB dapat dilakukan secara eksplisit dan

implicit. Jika variable tidak dideklarasikan secara eksplisit maupun implicit, maka variabel secara otomatis akan dianggap sebagai variant. - Eksplisit

Ada empat level scope yang menentukan jangkauan variable pada program, yaitu: * Level Prosedur : lifetime variabel hanya selama prosedur dijalankan.

Dideklarasikan dengan kata kunci Dim. Misalnya:

Dim intNum as Integer

Dim strNama as String

* Level Prosedur Statik : lifetime variabel selama program aplikasi

masih berjalan. Dideklarasikan dengan kata kunci Static. Contoh:

Page 6: Belajar Sendiri VB 6

5

Static intCounter as Integer

* Level Form / Modul : variabel yang dideklarasikan pada level ini

dapat dikenali oleh semua prosedur dalam sebuah form/modul. Dideklarasikan dalam bagian General jendela kode dengan kata kunci Dim atau Private. Contoh:

Private dJumlah as Double

Dim lnum as Long

* Level Global : Variabel dikenali dan dapat dipanggil oleh semua

prosedur dalam project atau aplikasi. Dideklarasikan dengan kata kunci Public atau Global pada bagian General jendela kode. Contoh: .

Public strType as String

Global intSum as Integer

- Implisit Untuk deklarasi variabel secara implisit digunakan suffix sebagai berikut :

Tipe Data Suffix Contoh

Integer % Count% = …

Long & Total& = …

Single ! Hasil! = …

Double # Jumlah# = …

Currency @ Harga@ = …

String $ Nama$ = “ ”

b. Konstanta

Konstanta digunakan untuk menset suatu variabel yang nilainya tidak berubah. Cara pendeklarasiannya adalah dengan menambahkan kata kunci Const. Misalnya :

Const AppTittle = “Belajar Visual Basic”

Public Const PI = 3.14159265

c. Tipe Data VB

Tipe data yang terdapat dalam Visual Basic adalah sebagai berikut :

Tipe data Ukuran Range

Byte 1 byte 0 s/d 255

Boolean 2 byte True atau False

Integer 2 byte -32,768 s/d 32,767

Long 4 byte -2,147,483,648 s/d 2,147,483,647

Single 4 byte -3.402823E38 s/d 3.402823E38

Page 7: Belajar Sendiri VB 6

6

Double 8 byte -1.79769313486231E308 s/d 1.79769313486232E308

Currency 8 byte -922,337,203,685,477.5808 s/d 922,337,203,685,477.5807

Date 8 byte January 1, 100 s/d December 31, 9999

Object 4 byte Referensi Object

String 1 byte per karakter Untuk fixed-length 65.000 karakter dan untuk string dinamis lebih kurang 2 milyar

Variant 16 byte + 1 byte Menerima semua tipe data

User-defined type

Tergantung jumlah elemen

Range elemen sesuai dengan tipe data masing-masing elemen.

User-defined type dapat dibuat dengan menggunakan kata kunci Type. Misalnya :

Public Type KOORDINAT

X as Integer

Y as Integer

End Type

3. Array Array adalah satu variabel yang menyimpan data secara berurutan

dengan indeks. Cara pendeklarasiannya adalah sebagai berikut:

Dim arrPos(4) as long

Pendeklarasian ini menghasilkan 5 elemen dengan indeks 0 sampai 4. Untuk mengubah indeks awal menjadi 1, kita dapat mendeklarasikan

Option base 1 atau Dim arrPos(1 To 5) as integer

Variabel array juga dapat berupa array multidimensi. Misalnya:

Dim arrPos(4,4) as Long

Dengan deklarasi seperti ini maka array yang dibuat adalah 2 dimensi yaitu 5x5. Array juga dapat berupa array dinamik dimana jumlah elemen dapat disesuaikan dengan kebutuhan. Contoh:

Dim arrDinamis()

Kita dapat mengalokasikan jumlah elemen dengan kata kunci Redim, seperti

Redim arrDinamis(x, y)

Agar nilai pada variabel tidak hilang setiap kita mengalokasi ulang maka kita perlu menambahkan kata kunci Preserve.

Redim Preserve arrDinamis (Ubound(arrDinamis)+1)

Berikut ini adalah perintah yang berhubungan dengan array :

Page 8: Belajar Sendiri VB 6

7

Lbound (nama_array [, dimensi ]) : digunakan untuk mengembalikan indeks terkecil dari nama_array untuk dimensi yang ke dimensi. Parameter dimensi bersifat optional.

Ubound (nama_array [, dimensi ]) : digunakan untuk mengembalikan indeks terbesar dari nama_array untuk dimensi yang ke dimensi.

Array (arglist) : digunakan untuk menciptakan satu baris array. Contoh:

Dim A As Variant

A = array (1,2,3,4,5,6,7,8,9,0)

Print A(4) „ Maka akan tercetak 5

Isarray (varname) : digunakan untuk menentukan apakah suatu variabel itu array atau bukan. Contoh:

Dim A As Boolean, Dim X(9) as Long

A = isarray(x) „ Jawabannya True

4. Statement

Statement adalah perintah yang dikenal dan dikerjakan oleh Visual Basic. Statement dapat berupa:

Assigment Statement : Digunakan untuk memberi nilai pada suatu variabel sehingga statement ini terdiri dari nama variabel diikuti operator penugasan (=) dan kemudian ekspresi. Misalnya

strNama = “Halim”

Prosedure Call : Digunakan untuk memanggil suatu prosedur/sub prosedur. Prosedur adalah sepenggal program yang memiliki fungsi khusus. Misalnya kita memiliki satu prosedur bernama Cetak. Maka kita dapat memanggilnya dengan cara:

Cetak „ atau

Call Cetak

Function Call : merupakan gabungan dari kedua statement diatas. Statement ini memanggil function atau penggalan program yang mengembalikan hasil untuk ditampung dalam suatu variabel. Misalnya:

A = Pangkat (3,5)

B = A + Pangkat(2,8)

5. Operator Operator merupakan bagian dari suatu ekspresi yang menunjukkan

operasi yang dilakukan terhadap operand. Operand adalah ekspresi yang dikenakan operasi. Semua operator membutuhkan minimal satu operand. Berdasarkan fungsinya operator dapat dibedakan menjadi :

Operator Aritmatika, adalah operator yang digunakan dalam operasi aritmatika dimana operannya bertipe numerik.

Operator Operasi

+ Penjumlahan

- Pengurangan

Page 9: Belajar Sendiri VB 6

8

* Perkalian

/ Pembagian bilangan real

\ Hasil Pembagian

^ Pemangkatan

Mod Sisa Pembagian

Urutan derajat (precedence) operator

Precedence

^

*/

\

Mod

+ -

Operator String, adalah operator yang digunakan untuk melakukan penggabungan string yaitu tanda + atau &. Misalnya:

X$ = “Mari Belajar” & “Visual” + “Basic”

Operator Pembanding, adalah operator yang digunakan untuk membandingkan dua operand dan menghasilkan suatu nilai boolean atau integer yaitu true(-1) atau false(0). Ada 3 statement yang dapat digunakan dalam perbandingan, yaitu:

Hasil = exp1 opt_pembanding exp2 Hasil = Object1 is Object2 Hasil = String1 like pattern

Operator pembanding dalam Visual Basic terdiri dari:

Operator Perbandingan

> Lebih besar

< Lebih kecil

>= Lebih besar sama dengan

<= Kurang dari sama dengan

= Sama dengan

<> Tidak sama dengan

Mod Sisa Pembagian

Operator is digunakan untuk membandingkan dua object reference untuk mengetahui apakah kedua object reference menunjuk pada object yang sama. Misalnya:

Set a = c

Set b = c

Hasil = a is b

Contoh diatas akan menghasilkan nilai True.

Page 10: Belajar Sendiri VB 6

9

Operator Like digunakan untuk membandingkan string dengan pola pattern. Berikut adalah karakter pattern dalam VB.

Karakter Pattern Perbandingan pada string

? Sembarang satu karakter

* Sembarang nol atau lebih karakter

# Sembarang satu digit karakter (0-9)

[charlist] Sembarang satu karakter dalam charlist

[!charlist] Sembarang satu karakter yang tidak termasuk dalam charlist

Operator Logika, adalah operator yang digunakan untuk melakukan operasi aljabar boolean.Operator ini antara lain:

Operator Operasi

Not Negasi

And Dan

Or Atau

Xor Exclusive Or

Eqv Equivalence

Imp Implikasi

Selain sebagai operator logika, keenam operator ini juga berfungsi sebagai operator pembanding bitwise yang membandingkan per-bit 2 nilai atau variabel numerik, misalnya:

Hasil = 10 and 8 „ Hasil =8

Hasil = True and False „ Hasil = False

6. Parameter Fungsi dan prosedur

Pengiriman parameter dibedakan menjadi 2 yaitu:

Passing By value Yaitu passing parameter dimana yang dikirim adalah nilainya. Parameter aktual tidak akan berubah jika parameter formal nilainya diubah. Penulisannya:

Private Sub KirimByValue (ByVal X as Integer)

X = 10

End Sub

Private Sub Test ()

Dim X As Integer

X = 1

KirimByValue X

Print X „ X tetap bernilai 1

End Sub

Passing By Reference Yaitu passing parameter dimana alamat variabel yang dikirimkansehingga parameter aktual akan berubah jika parameter formal nilainya diubah.

Page 11: Belajar Sendiri VB 6

10

Untuk mengirim parameter by reference anda dapat menambahkan keyword ByRef atau tidak perlu sama sekali karena secara Default VB melakukan passing parameter by reference. Misalnya:

Private Sub KirimByRef (X as Integer)

X = 10

End Sub

Private Sub Test ()

Dim X As Integer

X = 1

KirimByRef X

Print X „ X tetap bernilai 10

End Sub

Pengiriman parameter juga dapat ditentukan optional. Artinya

parameter boleh ada dan boleh juga tidak. Misalnya:

Private Sub Cetak (s1 As String, Optional s2 As String)

Print s1 & s2

End Sub

Private Sub Test ()

Cetak “Selamat!” „ Selamat!

Cetak “Selamat”, “Siang!” „ Selamat Siang!

End Sub

Kita juga dapat mengirim parameter dalam bentuk array misalnya:

Private Sub Send (Accept)

For i = 0 To Ubound(Accept)

Print Accept(i) & vbCrlf „ vbCrlf: Chr(13)+Chr(10)

Next i

End Sub

Parameter juga dapat berupa Enum yang kita buat sebelumnya. Misalnya:

Private Enum Tipe

Reguler = 1

Spesial = 2

End Enum

Private Sub Kelas (a As Tipe)

Msgbox “Kelas yang anda pilih adalah ” & a

End Sub

Private Sub Form_Load ()

Dim x As Tipe

X = Reguler

Kelas (x)

End Sub

Page 12: Belajar Sendiri VB 6

11

7. Looping Semua bahasa pemrograman memiliki perintah looping, dan dalam

Visual basic ada beberapa perintah perulangan, antara lain: a. Do While atau While

Perulangan Do While atau While akan melakukan looping selama kondisi yang diberikan masih terpenuhi. Perulangan hanya akan dijalankan jika kondisi benar. Jika kondisi bernilai salah maka perulangan tidak akan dijalankan sama sekali. Syntax:

Do While (Kondisi)

.........

Loop

While (Kondisi)

.........

Wend

Misalnya:

x=1 x=1

While x<=5 Do While (x<=5)

........ ........

x=x+1 x=x+1

Wend Loop

Kedua perintah diatas memiliki arti yang sama. Semua statement diatas akan diulang sebanyak 5 kali yaitu selama nilai x masih tidak lebih dari 5.

Syntax lain Do While adalah

Do

.........

Loop While (Kondisi)

Dengan syntax ini, Perulangan dijalankan minimal 1 kali. Setelah perulangan dilakukan sekali, kondisi baru diperiksa. Jika benar maka looping dilanjutkan, tetapi jika salah maka looping akan keluar.

b. Do Until Perintah looping do until adalah kebalikan dari do while. Do until akan melakukan looping selama kondisi salah. Jika kondisi yang diberikan sudah terpenuhi maka looping akan berhenti. Syntax:

Do Until (Kondisi) Do

......... .........

Loop Loop Until (Kondisi)

Misalnya:

X=1 „ Looping akan terjadi 4x

Do Until X=5 „ sampai X=5

X=X+1

Loop

Page 13: Belajar Sendiri VB 6

12

c. For....Next Perulangan ini hanya digunakan jika jumlah perulangannya sudah diketahui. Syntax:

For varname=nilaiawal To nilaiakhir [Step value]

............

Next varname

Step bersifat optional. Fungsinya adalah melakukan penambahan terhadap varname sejumlah value. Jika tidak ditentukan maka value dianggap 1 sehingga varname bertambah 1 mulai dari nilai awal. Contoh Perulangan Positif (dari nilai kecil ke besar)

For i = 0 To 5

.......

Next i

Contoh Perulangan Negatif (dari nilai besar ke kecil)

For i = 10 To 1 step -1

.......

Next i

Untuk keluar dari perulangan dapat digunakan perintah exit do dan exit for. Exit do tidak dapat digunakan pada perintah looping While...Wend.

8. Seleksi

Ada beberapa statement yang digunakan untuk perintah penyeleksian kondisi.

If....Then....End If Ada beberapa bentuk dan if :

If kondisi then statement1

If kondisi then ..............

statement1 „ akan dikerjakan apabila kondisi benar End if

If kondisi then statement1 „ akan dikerjakan apabila kondisi benar Else statement2 „ akan dikerjakan apabila kondisi salah End if

Contoh:

X=10

If x>=1 and x<20 Then

Msgbox “X berada antara 1 sampai 20”

Else

Msgbox “X tidak berada antara 1 sampai 20”

End If

Page 14: Belajar Sendiri VB 6

13

Select....End Select Bentuk dari statement ini adalah:

Select case ekspresi Case value_n : statement_n Case Else statement_n End Select

Contoh:

X=2 „ Yang tercetak adalah “Dua”

Select Case X

Case 1: Print “Satu”

Case 2: Print “Dua”

Case 3: Print “Tiga”

End Select

Page 15: Belajar Sendiri VB 6

14

BAB 4

FUNGSI DASAR VISUAL BASIC

Visual basic menyediakan beberapa fungsi dasar yang dapat kita kelompokkan menjadi 3 bagian besar, yaitu:

Fungsi Matematik

String

Tanggal dan waktu 1. Fungsi Matematik

Berikut ini adalah beberapa fungsi matematik yang umum dipakai:

Fungsi Keterangan

Abs() Menghasilkan nilai absolut

Atn() Menghasilkan nilai Arc Tangen

Cos() Menghasilkan nilai Cosinus

Exp() Menghasilkan nilai berbasis logaritma

Int() Menghasilkan nilai integer

Len() Jumlah karakter numerik

Log() Menghasilkan nilai logaritma natural

Rnd() Menghasilkan angka random dari 0 sampai 1

Round(a,b) Membulatkan nilai a sebesar b angka dibelakang koma

Sin() Menghasilkan nilai Sinus

Sqr() Akar Kuadrat

Tan() Menghasilkan nilai Tangen

2. Fungsi String

Berikut beberapa fungsi dasar string yang disediakan Visual Basic:

Fungsi Keterangan

Asc(str)

Mengubah string menjadi nilai ascii. Contoh:

Dim X As Integer

X=Asc(“A”) „ X=65

Chr(int)

Mengubah nilai ascii menjadi string. Contoh:

Dim X As String

X=Chr(65) „ X=A

Intstr

Mencari posisi suatu substring dalam string. Contoh:

Intstr bentuk 1 (case sensitive)

Print Instr(“abcd ABCD”,”ABC”) „ 6

Page 16: Belajar Sendiri VB 6

15

Intstr bentuk 2 (bisa diset non-case sensitive)

Print Instr(3,“abcd ABCD”,”ABC”) „ 4

Intstr bentuk 3 (dengan start index)

Print Instr(1,“abcd ABCD”,”ABC”,

vbTextCompare) „ 1

Lcase(str)

Mengubah semua karakter menjadi huruf kecil. Contoh:

Dim X As String

X=Lcase(“ABCD”) „ X=abcd

Left(str,int) Mengambil n karakter dari kiri pada string. Contoh:

Print Left(“Alamat”,4) „ Alam

Len(str) Mengetahui panjang suatu string. Contoh:

Print Len(“Text”) „ 4

Ltrim(str) Menghilangkan spasi di sebelah kiri string. Contoh:

Print LTrim(“ Halo”) „ Hanya dicetak Halo

Mid(str,start,len)

Mengambil sebanyak len karakter mulai dari start indeks pada str. Contoh:

Text = “Abcdefghij”

Print Mid(Text,3,4) „ cdef

Right(str,len)

Mengambil sebanyak len karakter dari kanan pada str.

Contoh: Text = “123456789” Print Right(Text, 3) „ 789

Rtrim(str) Menghilangkan spasi dikanan string. Contoh:

Print Rtrim(“Aku “) „ Tercetak Aku

Str(int)

Mengubah numerik menjadi string. Contoh:

Dim X As Integer, A As String

X=10 „ nilai x, 10

A=”Nilai X=” & Str(X) „ diubah ke string

Strreverse(str) Membalikkan string. Contoh:

Print Strreverse(“Dia”) „ tercetak aiD

Ucase(str) Mengubah semua karakter menjadi huruf kapital. Contoh:

Print Ucase(“abc”) „ Tercetak ABC

3. Tanggal & Waktu

Pada Visual basic terdapat beberapa cara untuk membuat dan mengekstrak tanggal dan waktu.

a. Memberikan nilai tanggal ke variabel Cara 1:

x= “03/31/2004” atau x=#03/31/2004#

Page 17: Belajar Sendiri VB 6

16

Perbedaan penggunaan tanda “ dan # adalah jika kita memberikan tanggal yang tidak valid ke suatu variabel menggunakan tanda #, maka pesan error akan muncul setelah kita selesai mengetik dan menekan enter. Bila dengan tanda “, maka error baru muncul saat program dijalankan sebagai runtime error.

Cara 2: DateSerial(yy,mm,dd)

Bila menggunakan fungsi DateSerial untuk memberikan tanggal pada variabel, maka bila anda memasukkan tanggal yang tidak valid maka fungsi ini akan mengkonversinya ke tanggal yang berikutnya. Contoh:

Assigment valid : x = DateSerial(2004,03,31)

Maka x=03/31/2004

Assigment tidak valid : x =DateSerial(2004,12,32)

Maka x menjadi 1 Januari 2004

b. Fungsi Day(), Month(), Year() Day(), Month() dan Year() digunakan untuk mengambil tanggal.

Contoh:

X = Day(“03/31/2004”) „ X=31

X = Month(“03/31/2004”) „ X=3

X = Year(“03/31/2004”) „ X=2004

c. Fungsi Weekday(Date) Untuk mengetahui hari keberapa dalam satu minggu. Fungsi ini

mengembalikan nilai integer sebagai berikut: 0 = Minggu 4 = Kamis 1 = Senin 5 = Jum‟at 2 = Selasa 6 = Sabtu 3 = Rabu

Contoh:

X = Weekday(“03/31/2004”) „ X= 3 (Rabu)

d. Fungsi DateAdd(interval, number, date) Untuk menambahkan suatu tanggal berdasarkan interval tertentu.

Interval Keterangan

D Tanggal

H Jam

M Bulan

N Menit

S Detik

W Hari dalam minggu

Ww Minggu

Y Hari dalam tahun

Yyyy Tahun

Page 18: Belajar Sendiri VB 6

17

Contoh :

Dim A, B As Date

A = “03/31/2004”

B = DateAdd(“m”,A,1) „ maka B = 04/31/2004

e. Fungsi DateDiff(interval, datestart, dateend)

Digunakan untuk menghitung interval antara dua tanggal. Contoh:

Dim beda As Integer

beda = DateDiff(“d”, “03/31/2004”, “04/31/2004”)

maka beda akan berisi selisih hari dari tanggal 31 Maret ke 31 April

f. Fungsi Date Formatting Format (now, “hh:mm:ss”) Format (now, “mm:dd:yy” atau “mm/dd/yy” atau “mm-dd-yy”) Format (now, “dddd-mmmm-yyyy”) Format (now, “hh:mm:ss ampm”)

g. Fungsi Now, Time, Date

Now dipakai untuk menampilkan jam dan tanggal saat ini. Time dipakai untuk menampilkan waktu saat ini. Date dipakai untuk menampilkan tanggal saat ini.

h. Fungsi DatePart(interval, date) Digunakan untuk mengambil bagian tertentu dari suatu tanggal. Interval sama dengan tabel pada fungsi DateAdd. Contoh

X = DatePart(“d”, “03/31/2004”)

Maka X akan bernilai 31

Page 19: Belajar Sendiri VB 6

18

BAB 6

VALIDASI & ERROR HANDLING

Di dalam Visual Basic kita dapat menangkap dan menangani error yang mungkin terjadi karena kesalahan program sehingga lebih user friendly. Sebagai contoh, coding berikut akan meng-generate sebuah error.

Di dalam Visual Basic kita dapat menangkap dan menangani error yang mungkin terjadi karena kesalahan program sehingga lebih user friendly. Sebagai contoh, coding berikut akan meng-generate sebuah error.

Private Sub Form_Load() Dim a As Byte

a = 300 „ tidak mungkin, sebab byte harus < 256

End Sub

Jika program tersebut dijalankan maka akan muncul pesan error. Untuk membuatnya lebih user friendly maka kita dapat menggunakan perintah On Error Goto (Label) Dengan demikian, jika terjadi error maka program akan langung membaca perintah setelah label yang dimaksud. Dapat juga digunakan perintah On Error Resume Next Contoh:

Private Sub Form_Load()

On Error goto ErrHandle

Dim a As Byte

a = 300 „ Karena error langsung tampilkan pesan error

Exit Sub

ErrHandle:

MsgBox “An Error Occured!”

End Sub

Private Sub Form_Load()

On Error Resume Next

Dim a As Byte

a = 300 „ Karena error langsung exit sub

Exit Sub

ErrHandle:

MsgBox Err.Number & Err.Description, , “Pesan Error”

End Sub

Jika kita malas untuk menangani kermungkinan error yang terjadi, maka kita dapat menulis On Error Goto 0. Dengan perintah ini segala error yang terjadi akan diabaikan oleh Visual Basic.

Page 20: Belajar Sendiri VB 6

19

Kita juga dapat menyimpan error yang terjadi pada program untuk dokumentasi dan informasi untuk perbaikan. Berikut adalah contoh sederhana untuk mencatat error ke dalam suatu file:

Public Sub CatatError(iNoErr As Integer, sDesc As _

String, sSource As String, sData As String, sPath _

As String)

Dim F As Integer

F = FreeFile

Open sPath For Append As #F

Print #F, "Error Number: " & iErrNum

Print #F, "Description: " & sDesc

Print #F, "Source: " & sSource

Print #F, "Date: " & Date

Print #F, ""

Close #F

End Sub

Prosedur diatas dapat kita panggil dengan cara berikut:

WriteError Err.Number, Err.Description, Err.Source, _

Now, App.path & "\Err.log"

Error dapat terjadi karena kesalahan program yang kita buat atau kesalahan input dari user. Untuk itu validasi juga diperlukan untuk mencegah input-input tertentu yang memungkinkan terjadinya error. Validasi juga beraneka ragam, misalnya kita membatasi range data, melakukan validasi input keyboard, dsb. Berikut contoh bagaimana melakukan validasi input keyboard.

„ Bila jumlah karakter harus 10, misalnya untuk NIM

Private Sub Textbox1_KeyPress (KeyAscii As Integer)

If Len(Textbox1.Text) > 10 And keyascii = 13 Then

......

End If

End Sub

„ Bila input hanya boleh angka

Private Sub Textbox1_KeyDown(KeyCode As Integer, _

Shift As Integer)

If Keycode>=48 And KeyCode<=57 Then Exit sub

End Sub

„ Cara lain untuk validasi input tertentu

Private Sub Textbox1_KeyPress (KeyAscii As Integer)

Select Case KeyAscii

Case 48 To 57 „ Untuk angka 0-9

Case 65 To 90 „ Untuk huruf besar A-Z

Case 8, 13, 32 „ Untuk Backspace, Enter, Spasi

Case Else

KeyAscii=0

End Select

End Sub

Page 21: Belajar Sendiri VB 6

20

BAB 7

WINDOWS APPLICATION PROGRAMMING INTERFACE (Win32 API)

Windows API adalah fungsi-fungsi untuk aplikasi windows. Digunakan untuk memanipulasi sistem Windows. Misalnya membuat form dalam bentuk ellips. Windows API merupakan library yang berisi fungsi-fungsi yang embedded dalam suatu Dynamic Link Library atau EXE antara lain:

1. GDI.exe atau GDI32.dll Berisi kumpulan fungsi untuk manipulasi grafik (Graphic Device Interface)

2. User.exe atau User32.dll Berisi kumpulan fungsi untuk User Interface, seperti mouse, kursor, dan icon

3. Kernel (Krnl286.exe, Krnl386.exe, atau Kernel32.dll) Berisi fungsi-fungsi untuk manajemen memori, resource control, multitasking, dll.

Page 22: Belajar Sendiri VB 6

21

Fungsi API dapat dideklarasikan dalam sebuah modul atau dalam code window form tapi umumnya dideklarasikan dalam sebuah modul dalam level public. Jika dalam form, maka harus dideklarasikan private. Berikut adalah bentuk pendeklarasian fungsi DLL:

[Public/Private] Declare Function nama_fungsi LIB “nama_file_dll” [Alias “nama_alias”] ([parameter]) As tipe_data Berikut adalah bentuk pendeklarasian prosedur DLL:

[Public/Private] Declare Sub nama_prodedur LIB “nama_file_dll” [Alias “nama_alias”] ([parameter])

Fungsi Windows API dapat kita lihat dengan API Viewer seperti pada gambar diatas setelah membuka file Win32api.txt. Disini kita tidak membahas terlalu jauh mengenai windows API. Berikut beberapa fungsi API yang umum antara lain:

Fungsi/Prosedur Keterangan

CloseWindow Minimize window

CreateEllipticRgn Membuat form ellips

CreateRoundRectRgn Membuat form dengan sudut bulat

FindWindow Mendapatkan handle window dari nama window

GetCursorPos Mengambil posisi mouse

GetDiskFreeSpace Mendapatkan sisa space pada harddisk

GetSystemDirectory Mendapatkan direktori sistem

GetSystemMenu Mendapatkan handle dari menu

GetSystemTime Setting waktu sistem

GetTempPath Mendapatkan direktori temp

GetWindowRect Mendapatkan batas window dalam segi empat

GetWindowsDirectory Mendapatkan direktori windows

ReleaseCapture Melepaskan capture mouse dari form

SendMessage Mengirim pesan ke window

SetCursorPos Mengatur posisi mouse

SetFocusAPI Memindahkan fokus

SetWindowPos Mengatur posisi order form

SetWindowRgn Menset nilai region window

SndPlaysound Memainkan suara sesuai file wav

SwapMouseButton Mengubah tombol mouse

Untuk pendeklarasiannya dapat dilihat pada API Viewer. Berikut contoh penggunaan API. Kita akan membuat form berbentuk ellips dan posisi form on top dimana form dapat dipindahkan tanpa titlebar.

Buka program VB anda dan pilih Standard EXE. Set properti

form seperti dibawah ini:

Borderstyle = none

ScaleMode = Pixel

Caption = Form Ellips

Page 23: Belajar Sendiri VB 6

22

StartupPosition = CenterScreen

ShowInTaskBar = True

Buka code window form dan tambahkan kode berikut.

Private Declare Function CreateEllipticRgn Lib "gdi32" _

(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, _

ByVal Y2 As Long) As Long

Private Declare Function SetWindowPos Lib "user32" _

(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _

ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _

ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function SetWindowRgn Lib "user32" _

(ByVal hwnd As Long, ByVal hRgn As Long, _

ByVal bRedraw As Boolean) As Long

Private Declare Function SendMessage Lib "user32" Alias _

"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _

ByVal wParam As Long, lParam As Any) As Long

Private Declare Function ReleaseCapture _

Lib "user32" () As Long

Private Const WM_NCLBUTTONDOWN = &HA1

Private Const HTCAPTION = 2

Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOMOVE = &H2

Private Const SWP_NOSIZE = &H1

Sub PindahForm(ObjForm As Form)

ReleaseCapture

SendMessage ObjForm.hwnd, WM_NCLBUTTONDOWN, _

HTCAPTION, 0

End Sub

Private Sub CmdExit_Click()

End

End Sub

Private Sub CmdNormal_Click()

Call SetWindowPos(Me.hwnd, HWND_NOTOPMOST, 0, 0, _

0, 0, SWP_NOMOVE + SWP_NOSIZE)

End Sub

Private Sub CmdOnTop_Click()

Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, _

0, 0, SWP_NOMOVE + SWP_NOSIZE)

End Sub

Page 24: Belajar Sendiri VB 6

23

Private Sub Form_Load()

Dim bForm As Long

bForm = CreateEllipticRgn(0, 0, _

Me.ScaleWidth, Me.ScaleHeight)

Call SetWindowRgn(Me.hwnd, bForm, True)

End Sub

Private Sub Form_MouseDown(Button As Integer, _

Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then PindahForm Me

End Sub

Contoh lain misalnya untuk mendapatkan direktori temp. Buka Notepad dan ketik kode berikut ini kemudian save dengan ekstensi namafile.bas Buka dengan VB. Set Properti startup menjadi sub main. Bila program dijalankan maka sebuah message box akan muncul menampilkan path direktori temp anda.

Attribute VB_Name = "Module1"

Declare Function GetTempPath Lib "kernel32" _

Alias "GetTempPathA" (ByVal nBufferLength As Long, _

ByVal lpBuffer As String) As Long

Function TempDir() As String

Dim sTemp As String * 255

TempDir = Left(sTemp, GetTempPath(255, sTemp))

End Function

Sub main()

MsgBox “Direktori Temp Anda: “ & TempDir, vbInformation

End Sub

Page 25: Belajar Sendiri VB 6

24

BAB 8

DIALOG CONTROL DAN MENU

Common Dialog Control

Common Dialog control adalah salah satu komponen eksternal VB yang berfungsi untuk menampilkan jendela color, font, printer, file open, file save dan menampilkan help file.

1. FileOpen window Dipanggil dengan method showopen, yaitu:

Commondialog1.showopen

Beberapa properti yang berhubungan dengan window ini adalah:

Initdir, Property yang ditunjuk saat fileopen dibuka, contoh:

Commondialog1.initdir = “C:\”

Filter, Property untuk menyaring daftar file yang ditampilkan, contoh:

Commondialog1.filter = “JPEG|*.jpg|All|*.*”

Flag, Properti ini contohnya:

Commondialog1.flags = cdlOFNAllowMultiSelect

Filename, properti yang berisi nama file yang dipilih user.

2. FileSave window Ditampilkan dengan perintah showsave, yaitu:

Commondialog1.showsave

Contoh: Commondialog1.dialogtitle = “Save File”

Commondialog1.filename = “*.txt”

Commondialog1.filter = “*.*”

Commondialog1.showsave

3. Color window Untuk membuka jendela color, yaitu:

Commondialog1.showcolor

Contoh:

Commondialog1.showcolor

LblLabel.Forecolor = Commondialog1.color

4. Font window

Menampilkan daftar font yang ada, yaitu dengan cara:

Commondialog1.showfont

Page 26: Belajar Sendiri VB 6

25

Contoh: Commondialog1.flags = cdlCFBoth

Commondialog1.showfont

Flag diisi cdlCFBoth agar semua font baik font true type, font layar, dan font printer ditampilkan. Penggunaannya adalah:

Label1.Font.Size = Commondialog1.FontSize

Label1.Font.Bold = Commondialog1.FontBold

Label1.Font.Name = Commondialog1.FontName

5. Printer

Digunakan untuk menampilkan kotak dialog printer.

Commondialog1.ShowPrinter

6. Help

Dengan method showhelp kita dapat menampilkan help dengan mudah. Contoh:

Commondialog1.helpfile = “C:\Windows\Help\win.hlp”

Commondialog1.showhelp

Berikut adalah lampiran nilai flag untuk masing-masing dialog:

Konstanta Flag untuk Dialog Help

Constant Value Description

cdlHelpCommandHelp &H102 Menampilkan Help untuk a perintah khusus

cdlHelpContents &H3 Menampilkan topik pada file Help

cdlHelpContext &H1 Menampilkan Help untuk topik tertentu

cdlHelpContextPopup &H8 Menampilkan topik yang diidentifikasi dengan nomor konteks

cdlHelpForceFile &H9 Membuat file Help yang menampilkan teks hanya dengan satu font

cdlHelpHelpOnHelp &H4 Menampilkan Help untuk memakai aplikasi Helpnya sendiri

cdlHelpIndex &H3 Menampilkan indeks dari file Help

cdlHelpKey &H101 Menampilkan Help sesuai keyword

cdlHelpPartialKey &H105 Memanggil search engine Help Windows

cdlHelpQuit &H2 Notifikasi aplikasi Help yang tak lagi dipakai file Help yang ditentukan

cdlHelpSetContents &H5 Menunjukkan topik specifik sebagai topik isi

cdlHelpSetIndex &H5 Set indeks sekarang untuk Help multi-index

Page 27: Belajar Sendiri VB 6

26

Konstanta Flag untuk Dialog Printer

Constant Value Description

cdlPDAllPages &H0 Mengembalikan atau menset option All Pages.

cdlPDCollate &H10 Mengembalikan atau menset check box Collate.

cdlPDDisablePrintToFile &H80000 Disable check box Print To File.

cdlPDHelpButton &H800 Menampilkan tombol help

cdlPDHidePrintToFile &H100000 Menyembunyikan check box Print To File.

cdlPDNoPageNums &H8 Disable option button Pages dan kontrol edit yang berhubungan.

cdlPDNoSelection &H4 Disable option button Selection.

cdlPDNoWarning &H80 Mencegah pesan peringatan saat tidak ada printer default.

cdlPDPageNums &H2 Mengembalikan atau menset option Pages.

cdlPDPrintSetup &H40 Menampilkan Print Setup dialog

cdlPDPrintToFile &H20 Mengembalikan atau menset check box Print To File.

cdlPDReturnDC &H100 Mengembalikan device context untuk seleksi printer dalam kotak dialog. Device context dikembalikan dalam properti hDC kotak dialog.

cdlPDReturnDefault &H400 Mengembalikan nama printer default.

cdlPDReturnIC &H200 Mengembalikan info konteks untuk seleksi printer dalam kotak dialog. Information konteks menyediakan cara yang cepat untuk mendapatkan info tentang device tanpa membuat device context. Information konteks dikembalikan dalam properti hDC kotak dialog.

cdlPDSelection &H1 Mengembalikan/menset option selection. Jika cdlPDPageNums dan cdlPDSelection ditentukan, semua option button akan dipilih.

cdlPDUseDevModeCopies &H40000 Jika driver printer tidak mendukung multiple copies, setting flag ini mendisable kontrol copies edit. Jika sebaliknya, maka

Page 28: Belajar Sendiri VB 6

27

setting flag ini mengindikasikan bahwa kotak dialog menyimpan jumlah copy dalam properti Copies.

Konstanta Flag untuk Dialog Font

Constant Value Description

cdlCFANSIOnly &H400 Menentukan bahwa kotak dialog hanya membolehkan pilihan font yang memakai set karakter Windows. Jika flag ini diset, user tidak dapat memilih font yang hanya berisi simbol.

cdlCFApply &H200 Enable tombol Apply pada dialog.

cdlCFBoth &H3 Menyebabkan kotak dialog untuk daftar font printer dan layar. Properti hDC mengidentifikasi device context yang berasosiasi dengan printer.

cdlCFEffects &H100 Enable efek strikethrough, underline, dan warna.

cdlCFFixedPitchOnly &H4000 Menentukan bahwa kotak dialog hanya memilih font fixed-pitch.

cdlCFForceFontExist &H10000 Memunculkan pesan error jika user mencoba memilih font atau style yang tidak ada.

cdlCFHelpButton &H4 Menampilkan tombol Help.

cdlCFLimitSize &H2000 Menentukan bahwa kotak dialog hanya memilih ukuran font dalam range yang ditentukan dalam properti Min dan Max.

cdlCFNoFaceSel &H80000 Tidak ada pilihan nama font.

cdlCFNoSimulations &H1000 Menentukan kotak dialog box agar tidak membolehkan simulasi font graphic device interface (GDI).

cdlCFNoSizeSel &H200000 Tidak ada pilihan ukuran font.

cdlCFNoStyleSel &H100000 Tidak ada pilihan style

cdlCFNoVectorFonts &H800 Menentukan bahwa kotak dialog tidak membolehkan pilihan vector-font.

cdlCFPrinterFonts &H2 Menyebabkan kotak dialog hanya mendaftar font yang didukung oleh printer, ditentukan dengan properti hDC.

cdlCFScalableOnly &H20000 Menentukan bahwa kotak dialog hanya membolehkan pilihan font yang dapat diskala.

cdlCFScreenFonts &H1 Menyebabkan kotak dialog box hanya mendaftar font layar yang didukung oleh

Page 29: Belajar Sendiri VB 6

28

sistem.

cdlCFTTOnly &H40000 Menentukan bahwa kotak dialog hanya membolehkan pilihan font TrueType.

cdlCFWYSIWYG &H8000 Menentukan bahwa kotak dialog hanya membolehkan pilihan font yang ada pada printer dan layar. Jika flag ini diset, flag cdlCFBoth dan cdlCFScalableOnly juga harus diset.

Konstanta Flag untuk Dialog Open dan Save

Constant Value Description

cdlOFNAllowMultiselect &H200 Menentukan bahwa list box File Name membolehkan seleksi yang banyak. User dapat memilih lebih dari satu file saat run time dengan menekan SHIFT dan PANAH ATAS atau BAWAH untuk memilih file yang diinginkan. Properti FileName mengembalikan string berisi nama semua file yang dipilih. Nama dalam string dipisahkan dengan spasi.

cdlOFNCreatePrompt &H2000 Menentukan bahwa kotak dialog menanyakan user untuk membuat file yang belum ada. Flag ini menset secara otomatis flag cdlOFNPathMustExist dan cdlOFNFileMustExist.

cdlOFNExplorer &H80000 Mengunakan template kotak dialog buka file yang mirip dengan Explorer. Common dialogs yang memakai flag ini tidak jalan dibawah Windows NT memakai shell Windows 95.

CdlOFNExtensionDifferent &H400 Indikasi bahwa ekstensi dari nama file yang dikembalikan berbeda dengan ekstensiyang ditentukan dalam properti DefaultExt. Flag ini tak diset jika properti DefaultExt kosong, jika ekstensi sesuai, atau jika file tidak berekstensi. Flag ini dapat dipilih saat menutup kotak dialog.

cdlOFNFileMustExist &H1000 User hanya dapat menginput nama file yang sudah ada dalam

Page 30: Belajar Sendiri VB 6

29

text box File Name. Jika flag ini diset dan user menginput nama file yang tak valid, pesan peringatan akan tampil. Flag ini menset secara otomatis flag cdlOFNPathMustExist.

cdlOFNHelpButton &H10 Menampilkan tombol Help.

cdlOFNHideReadOnly &H4 Menyembunyikan check box Read Only.

cdlOFNLongNames &H200000 Use long filenames.

cdlOFNNoChangeDir &H8 Menset directori saat ini sebagaimana ketika kotak dialog dibuka.

CdlOFNNoDereferenceLinks &H100000 Tidak boleh dereferensi link shell (dikenal sebagai shortcuts). Secara default, memilih link shell menyebabkan dereferensi oleh shell.

cdlOFNNoLongNames &H40000 Disable penggunaan nama file panjang.

CdlOFNNoReadOnlyReturn &H8000 Menentukan bahwa file kembalian tidak memiliki atribut Read Only dan tidak pada direktori yang bersifat write-protected.

cdlOFNNoValidate &H100 Menentukan bahwa common dialog box memperbolehkan karakter yang tak valid dalam nilai kembalian nama file.

cdlOFNOverwritePrompt &H2 Menampilkan pesan konfirmasi bila file sudah ada apakah harus ditulis ulang.

cdlOFNPathMustExist &H800 Hanya bisa menginput path yang paths. Jika flag ini diset dan user memasukkan path yang tidak valid, maka akan muncul pesan peringatan.

cdlOFNReadOnly &H1 Menentukan agar check box Read Only dipilih saat kotak dialog dibuat. Flag ini juga mengindikasi kondisi check box Read Only saat kotak dialog ditutup.

CdlOFNShareAware &H4000 Mengabaikan error pelanggaran sharing.

Konstanta untuk Dialog Color

Page 31: Belajar Sendiri VB 6

30

Constant Value Description

cdlCCFullOpen &H2 Menampilkan kotak dialog secara lengkap

cdlCCShowHelp &H8 Menampilkan tombol Help pada dialog

cdlCCPreventFullOpen &H4 Disable tombol Define Custom Colors dan mencegah user menentukan warna sendiri

cdlCCRGBInit &H1 Set warna inisial untuk kotak dialog

Menu

Menu adalah suatu interface yang memudahkan user untuk mengakses

fungsi / form dalam aplikasi secara mudah. Menu ada dua yaitu Popup dan biasa. Dalam Visual Basic, menu dapat dibuat dengan mudah dengan tools

menu editor yang disediakan didalamnya. Properti pada menu editor

Nama Keterangan

Caption Teks yang terlihat

Name Nama dalam kode

Checked Tanda check pada bagian kiri menu

Visible Menu terlihat atau tidak

Enabled Jika FALSE, menu tidak dapat dipilih.

Index Jika menu bagian dari control array.

Shortcut Key untuk mengakses menu

HelpContextID Topil dalam file help

NegotiatePosition Dengan OLE untuk menentukan menu yang tampil.

WindowList Menu control menyimpan daftar window MDI Child.

Cara membuat menu.

Page 32: Belajar Sendiri VB 6

31

Untuk membuat menu Popup cukup hilangkan visible pada menu dan gunakan syntax : Popupmenu <Nama menu>

Misalnya saat klik kanan maka: Private sub Form_MouseDown(Button As Integer, Shift As

Integer, X As Single, Y As Single)

If Button = vbRightButton Then „ vbRightButton = 2

PopupMenu mnuMenu

End if

End Sub

Page 33: Belajar Sendiri VB 6

32

BAB 9

COMPONENT (OCX) DAN CLASS MODULE

Component

Visual Basic juga menyediakan fitur untuk membuat komponen sendiri. Komponen dalam VB dikenal dengan istilah ActiveX Control / Component yang biasanya berekstensi OCX atau DLL. Caranya adalah saat pertama kali VB dijalankan pilih ActiveX Control. Misalnya kita akan membuat sebuah komponen yang dapat menampilkan tanggal dan waktu saat ini.

Jalankan VB anda, pilih ActiveX control. Masukkan sebuah label dan sebuah timer pada usercontrol anda. Set properti seperti berikut:

Timer

Properti Nilai

Name TmrDate

Interval 1000

Label

Properti Nilai

Name LblDate

Alignment Center

Caption (kosongkan)

Autosize True

Samakan ukuran label dengan usercontrol. Kemudian buka code window dan tambahkan kode berikut:

Private dtTipe As TipeDateTime

Public Enum TipeDateTime

Waktu = 0

Tanggal = 1

Keduanya = 2

End Enum

Public Property Get WarnaTulisan() As OLE_COLOR

WarnaTulisan = lblDate.ForeColor

End Property

Public Property Let WarnaTulisan(ColorVal As OLE_COLOR)

lblDate.ForeColor = ColorVal

End Property

Page 34: Belajar Sendiri VB 6

33

Public Property Get Tipe() As TipeDateTime

Tipe = dtTipe

End Property

Public Property Let Tipe(TdtTipe As TipeDateTime)

dtTipe = TdtTipe

End Property

Private Sub Tmrdate_Timer()

Select Case dtTipe

Case Keduanya

lblDate.Caption = Format(Now, "dd mmmm yyyy, _

hh:mm:ss")

Case Waktu

lblDate.Caption = Format(Now, "hh:mm:ss")

Case Tanggal

lblDate.Caption = Format(Now, "dd mmmm yyyy")

End Select

End Sub

Private Sub UserControl_Resize()

lblDate.Top = (UserControl.Height - lblDate.Height) / 2

lblDate.Left = (UserControl.Width - lblDate.Width) / 2

End Sub

Private Sub UserControl_InitProperties()

Tipe = Keduanya

End Sub

Private Sub UserControl_ReadProperties _

(PropBag As PropertyBag)

With PropBag

lblDate.ForeColor = .ReadProperty("WarnaTulisan")

dtTipe = .ReadProperty("Tipe")

End With

End Sub

Private Sub UserControl_WriteProperties _

(PropBag As PropertyBag)

With PropBag

.WriteProperty "Tipe", dtTipe

.WriteProperty "WarnaTulisan", WarnaTulisan

End With

End Sub

Untuk mentest komponen ini, buat project baru standard exe. Tambahkan komponen ini. Dan drag ke form. Anda bisa menemukan telah muncul 2 properti yang kita buat yaitu WarnaTulisan dan Tipe. Perintah Get dan Let adalah sepasang dan digunakan untuk mendefenisikan property yang akan kita buat, demikian juga dengan WriteProperties dan ReadProperties. Keduanya juga sepasang digunakan untuk menangani property yang kita buat.

Page 35: Belajar Sendiri VB 6

34

Kita juga dapat menambahkan event pada kontrol kita dengan mendeklarasikan nama event dengan kata kunci Event dan RaiseEvent. Contoh: Event Click() „ Letakkan di bagian deklarasi general

RaiseEvent Click „ Diletakkan ditempat dimana event akan

„ di-generate misalnya saat tombol diklik

Class Module

Memang Visual Basic bukan bahasa pemograman berorientasi object murni, karena tidak mendukung Inheritance. Namun, dengan class kita dapat mengorganisasikan kode program kita terutama untuk reusability. Kita akan mencoba untuk membuat sebuah class sederhana. Bukalah menu project dan pilih add class module. Secara default, class module yang pertama akan diberi nama Class1. Kita harus menggantinya agar sesuai dengan class yang akan kita buat. Misalnya kita ingin membuat suatu objek orang. Kita namakan COrang. Ketikkan baris kode berikut dalam class module.

Option Explicit

Public Nama As String

Public Umur As String

Kemudian pada modul form, ketikkan kode berikut.

Private Sub Form_Load()

Dim Orang As COrang „ Deklarasi Object

Set Orang = New COrang „ Create Object

Orang.Nama = inputbox(“Masukkan Nama:”) „ Assign

Orang.Umur = inputbox(“Masukkan Umur:”) „ properti

Print Orang.Nama & “ berumur “ & Orang.Umur

End Sub

Create Object

Dengan class kita tak dapat menggunakan variabel secara langsung setelah deklarasi. Kita harus mengalokasi sendiri sebuah objek ke memory sebelum kita dapat menggunakan method atau memberi nilai pada propertinya. Jika bagian Set Orang = New COrang kita hilangkan maka akan muncul pesan error yang berbunyi : „Object variable or With Block variable not set”. Kita dapat menghilangkan error ini dengan menggunakan is nothing.

If not (Orang Is Nothing) then

Print Orang.Nama & “berumur “ & Orang.Umur

End if

Untuk membuat objek ada 2 cara yaitu: seperti contoh diatas atau dengan auto instancing.

Dim Orang As New COrang

Page 36: Belajar Sendiri VB 6

35

Property Procedure

Sekarang kita akan ubah contoh diatas dan melakukan enkapsulasi terhadap data. Ketikkan baris berikut pada class modul.

Option Explicit

Private m_Nama As String „ Public diubah menjadi Private

Private m_Umur As String

„ Property Prosedure secara default adalah Public

Property Get Nama() As String

Nama = m_Nama

End Property

Property Let Nama(ByVal Str As String)

If Str = “” then Error.Raise 5

„ Error 5 = Invalid Procedure Argument

m_Nama = Str

End Property

Property Get Umur() As String

Umur = m_Umur

End Property

Property Let Umur(ByVal Str As String)

If Str = “” then Error.Raise 5

„ Error 5 = Invalid Procedure Argument

m_Umur = Str

End Property

Sekarang kita tak dapat langsung mengassign Orang.m_Nama = “...” tetapi kita harus melakukannya melalui property prosedure. Jika kita tidak mengisi maka akan muncul pesan error saat dijalankan. Method

Class module juga dapat berisi sub atau function yan dikenal dengan nama method.Misalnya untuk contoh diatas. Tambahkan kode berikut dalam class module.

Function Data() As String

Data = m_Nama & “ berumur “ & m_Umur

End Function

Pada modul form,

Private Sub Form_Load()

Dim Orang As New COrang

Orang.Nama = Inputbox(“Masukkan Nama:”) „ Assign

Orang.Umur = Inputbox(“Masukkan Umur:”) „ properti

Print Orang.Data

End Sub

Page 37: Belajar Sendiri VB 6

36

BAB 10

DATA ACCESS INTERFACE

Dalam Visual basic terdapat 3 jenis Data Access Inteface (Fasilitas mengakses data), yaitu:

Data Access Objects (DAO)

DAO menyediakan dua cara dasar untuk mengakses data : 1. Microsoft Joint Engine Technology (Jet) yang dapat mengakses data source

seperti Microsoft Access, Foxpro, Paradox atau Lotus 1-2-3. 2. ODBCDirect yang dapat langsung mengakses remote database server

tanpa Microsoft Jet database engine. ODBCDirect ini mempunyai kinerja yang lebih bagus dan juga memerlukan memori yang lebih kecil.

ODBCDirect adalah bagian dari DAO 3.5 object library, dan merupakan perluasan dari DAO. Keterbatasan terbesar DAO adalah kenyataan bahwa DAO tidak memiliki fasilitas untuk dihubungkan ke remote database, seperti pada sistem client/server. Sedangkan ODBCDirect secara fungsional menyediakan fasilitas ini, namun kurang efisien. DAO dirancang hanya untuk berhubungan dengan databases dan tidak dapat mengakses data lainnya, seperti pada sistem email.

Remote Data Objects (RDO)

Model pemrograman RDO hampir mirip dengan model DAO. RDO dirancang untuk beroperasi dengan database client/server. RDO memanfaatkan kemampuan database servers menggunakan query engines yang rumit, seperti SQL server dan Oracle. Keterbatasan RDO yaitu tidak dapat mengakses desktop database secara efisien.

ActiveX Data Objects (ADO)

ADO adalah teknologi akses data terbaru Microsoft dan adalah interface dari OLE DB. OLE DB adalah interface strategi tingkat rendah Microsoft terhadap segala jenis data yang dikenal dengan konsep Universal Data Access (UDA). Sebagai contoh, OLE DB dan ADO menyediakan interface yang sama bagi developer tetapi tidak hanya mengakses data dari database yang berhubungan maupun tidak, tetapi juga data sources lainnya, seperti email, sistem file, tools project management, dan spreadsheets. OLE DB dirancang untuk membangun ODBC dengan menyediakan standar terbuka dalam mengakses segala jenis data. OLE DB tidak menggunakan maupun memerlukan ODBC.

Page 38: Belajar Sendiri VB 6

37

OLEDB dan ADO OLE DB adalah set interface yang menyediakan aplikasi seragam dalam mengakses data yang disimpan di sumber informasi yang berlainan tanpa tergantung pada lokasi maupun tipe. Umumnya, OLE DB cenderung mempermudah aplikasi-aplikasi dalam mengakses data yang tersimpan pada DBMS (Database Management System) dan sumber-sumber informasi lainnya. Sumber-sumber DBMS antara lain: 1. Mainframe Database seperti IMS dan DB2 2. Server Database seperti Oracle dan SQL Server 3. Desktop Database seperti Access, Paradox dan Foxpro Sumber-sumber lain antara lain:

Informasi yang tersimpan pada file system untuk Windows NT atau UNIX File Indexed-sequential, Sistem Email seperti Exchange, Spreadsheets, tool project management, dan sumber-sumber lainnya.

Biasanya aplikasi yang berbasis ADO menggunakan operasi-operasi untuk mengakses data sourcenya dengan cara sebagai berikut :

1. Create the Connection Object, Menggunakan connection string tertentu yang mengandung informasi seperti nama data source, identifikasi user dan passwordnya.

2. Open the Connection, Membuka connection ADO ke data sourcenya. 3. Execute an SQL statement, Begitu connectionnya terhubung, maka

selanjutnya adalah menjalankan suatu query, yaitu tabel(-tabel) yang akan dibuka.

4. Use the records returned from the query, Sekarang record-recordnya siap untuk dibrowse maupun diupdate. Kita dapat menambahkan, mengupdate, menghapus data pada recordset tergantung dari tipe cursornya. Cursor adalah tabel temporari pada memori yang mengandung hasil dari query kita sebelumnya.

5. Terminate the connection, Koneksi ke data source diputuskan. Berikut adalah perbedaan connection string untuk setiap jenis OLEDB Provider:

OLEDB Provider Connection String

Microsoft Jet (Access)

“Provider = Microsoft.Jet.Oledb.4.0; Data Source = namadb.mdb”

Ms ODBC Driver “Provider=MSDASQL.1;UID=admin; Extended Properties=”DBQ=c:\Program files\Microsoft Visual Studio\VB98\NWIND.MDB;FIL=MS Access;”

Oracle “Provider = MSDAORA; Data Source = NmServer;UserID = Stefan; Password = 123456”

SQL Server “Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Proyek;Data Source=Stefan”

Page 39: Belajar Sendiri VB 6

38

Tabel di bawah ini menggambarkan event-event yang berhubungan dengan objek connection:

Event Keterangan

AbortTransaction Terjadi setelah method RollbackTrans dipanggil.

BeginTransaction Terjadi setelah method BeginTrans dipanggil.

CommitTransaction Terjadi setelah method CommitTrans dipanggil.

ConnectComplete Terjadi saat koneksi yang dicoba berhasil, gagal, atau timed out.

Disconnect Terjadi saat sebuah koneksi yang aktif ditutup.

ExecuteComplex Terjadi setelah method Execute dipanggil.

Info Message Terjadi saat message dikembalikan dari OLE DB atau data source.

WillConnect Terjadi setelah method Open dipanggil, tetapi sebelum koneksi dibuat.

WillExecute Terjadi setelah method Execute dipanggil, tetapi sebelum perintah selesai.

Untuk menggunakan teknologi ini maka seseorang harus melakukan setting terlebih dahulu. Berikut ini adalah aturan penggunaan dari ADO. 1. Pilih menu Project 2. Pilih References 3. Pilih Microsoft ActiveX Data Objects 2.x Library Kita juga bisa menggunakan ADO Control, caranya adalah: 1. Pilih menu Project 2. Pilih Component 3. Pilih Microsoft ADO Data Control 6.0 (OLE DB)

Secara umum, setiap database dibuka dengan method Open:

Object.Open Source, ActiveConnection, CursorType, LockType,

Options

Source berisi perintah untuk mengakses data dalam database. ActiveConnection berisi sumber data dari source. Yaitu koneksi ke file database.

Argument Description

Data Source

Argumen ini menentukan nama data source untuk koneksi. Bersifat optional saat dipakai dengan OLE DB Provider untuk AS/400 & VSAM atau OLE Provider untuk DB2.

File Name Argumen ini menentukan nama file provider specifik yang berisi info preset koneksi. Argument ini tak bisa dipakai jika argumen Provider dilewati. Tak didukung oleh OLE DB Provider untuk AS/400 & VSAM.

Location Argumen ini menentukan nama Remote Database yang digunakan untuk koneksi ke sistem OS/400. Parameter ini

Page 40: Belajar Sendiri VB 6

39

bersifat optional untuk koneksi ke sistem mainframe.

Password Argumen ini menentukan validitas password mainframe atau AS/400 saat membuka koneksi. Password ini dipakai oleh Microsoft® SNA Server untuk validasi user yang log on ke sistem host tujuan dan memiliki hak akses file yang sesuai.

Provider Argument ini menentukan nama provider yang dipakai koneksi. Pada OLE DB Provider untuk AS/400 & VSAM, string Provider harus di set "SNAOLEDB". Pada OLE DB Provider untuk DB2, string Provider harus di set menjadi "DB2OLEDB". Pada ODBC Driver untuk DB2, Provider di set "MSDASQL" atau tak dipakai sebagai bagian dari ConnectionString sejak nilai ini di default untuk ADO.

Remote Provider

Argumen ini menentukan nama provider untuk dipakai saat membuka koneksi client-side (hanya untuk layanan Remote data). Tidak didukung oleh OLE DB Provider untuk AS/400 & VSAM maupun OLE DB Provider untuk DB2.

Remote Server

Argumen ini menentukan nama path server yang dipakai saat membuka koneksi client-side (hanya untuk layanan Remote Data). Tidak didukung oleh OLE DB Provider untuk AS/400 & VSAM maupun OLE DB Provider untuk DB2.

User ID Argumen ini menentukan nama user yang valid pada mainframe atau AS/400 saat membuka koneksi. Nama user ini dipakai oleh SNA Server untuk validasi user apakah dapat log on ke sistem tujuan dan memiliki hak akses file.

CursorType menset nilai CursorTypeEnum yang menenetukan tipe kursor yang digunakan saat membuka Recordset.

Enumeration Value Description

adOpenUnspecified -1 Mengindikasikan nilai unspecified untuk CursorType. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

adOpenForwardOnly 0 Bila nilai ini diset maka kursor / pointer record hanya bisa maju dan tidak dapat kembali ke record sebelumnya. Pada OLE DB Provider untuk AS/400 & VSAM cursor ini dipetakan ke adOpenDynamic.

adOpenKeyset 1 Membuka database dengan pemberian lock pada user. Jika seorang user sedang mengupdate maka user lain tidak dapat mengupdate dan harus menunggu sampai user itu selesai. User dapat melihat perubahan data tapi tidak dapat melihat penambahan data. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

Page 41: Belajar Sendiri VB 6

40

adOpenDynamic 2 Dengan cursor ini, penambahan, perubahan, dan penghapusan data oleh user lain akan terlihat oleh user lain, dan semua tipe pergerakan yang melalui recordset diperbolehkan, kecuali bookmark jika providernya tak mendukung. User juga dapat melakukan perubahan terhadap data pada waktu yang bersamaan. Ini adalah CursorType satu-satunya yag didukung oleh OLE DB Provider untuk AS/400 & VSAM.

adOpenStatic 3 Jika ada user yang mengupdate data maka user lain tidak dapat melihat perubahan data. User lain juga tak dapat mengubah data tersebut pada waktu yang sama. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

LockType menset nilai LockTypeEnum untuk mengatur concurrency saat membuka recordset. Secara default di set adLockReadOnly

Enumeration Value Description

adLockUnspecified -1 Set nilai unspecified untuk LockType. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

adLockReadOnly 1 Membuka Recordset object dengan atribut read-only dan data tak dapat diubah.

adLockPessimistic 2 Membuka recordset dengan pessimistic locking. Record-by-record, OLE DB Provider melakukan apa yang penting untuk memastikan berhasilnya editing pada records, biasanya dengan mengunci records pada data source dengan segera ketika editing.

adLockOptimistic 3 Membuka recordset dengan optimistic locking. Record-by-record, OLE DB Provider hanya mengunci records saat Update dilakukan.

adLockBatchOptimistic 4 Membuka Recordset dengan batch optimistic locking. Data yang diupdate disimpan dalam bentuk batch kemudian diupdate sekaligus dengan perintah UpdateBatch.

Page 42: Belajar Sendiri VB 6

41

Options menset nilai CommandTypeEnum yang mengindikasi bagaimana provider mengevaluasi parameter Source.

Enumeration Value Description

adCmdUnspecified -1 Mengindikasikan bahwa properti CommandText tak ditentukan. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

adCmdText 1 Evaluasi properti CommandText sebagai defenisi tekstual dari perintah atau stored procedure call.

adCmdTable 2 Evaluasi properti CommandText sebagai nama tabel. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

adCmdStoredProc 4 Evaluasi properti CommandText sebagai nama stored procedure. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

adCmdUnknown 8 Mengindikasikan bahwa tipe perintah dalam properti CommandText tidak diketahui. Ini adalah nilai default. Nilai ini tak didukung pada OLE DB Provider untuk AS/400 & VSAM.

Berikut adalah contoh sederhana koneksi ke database access. Buka Vb anda dan pilih Standard exe. Tambahkan komponen Microsoft DataGrid Control 6.0 (Ole DB) dan reference ke Microsoft ActiveX Data Objects 2.x Library. Kemudian pada code window ketikkan kode berikut:

Private Sub Form_Load()

Dim db As Connection, rsProduct As Recordset

Set db = New Connection

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data " & _

"Source = C:\Program Files\Microsoft Visual" & _

" Studio\VB98\NWIND.MDB;"

Set rsProduct = New Recordset

rsProduct.Open "SELECT ProductName,QuantityPerUnit," & _

"UnitPrice from Products", db, 1, 3

Set DataGrid1.DataSource = rsProduct

End Sub

Untuk manipulasi dapat digunakan method .AddNew, .Delete, .Update, dll Sedangkan untuk menggeser pointer record, kita menggunakan method-method seperti .MoveFirst, .Move Last, .MoveNext, dan MovePrevious.