101 Tip & Trik Visual Basic 6.0 Buku Kedua

32
v ~ Penulis persembahkan buku ini sebagai hadiah ulang tahun kep onakan kecil Nadin Melani Savit ri ~

Transcript of 101 Tip & Trik Visual Basic 6.0 Buku Kedua

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 1/32

~ Penulis persembahkan buku ini sebagai hadiahulang tahun �keponakan kecil� Nadin Melani Savitri ~

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 2/32

vi

 Kata Pengantar 

Kiranya tidak ada kata yang pantas terucap dari penulis, selainrasa syukur kepada Allah SWT, atas segala petunjuk,kekuatan, dan kejernihan pikiran dalam menyusun buku inihingga bisa hadir di hadapan pembaca yang budiman.

Buku ini adalah buku kedua dari buku 101 Tip & Trik VisualBasic 6.0 yang sudah diterbitkan. Tidak seperti seri sebelum-nya, buku ini berupaya menyajikan pembahasan yang lebihluas dan berbobot. Ini semua tentu tidak akan terwujud tanpamotivasi serta saran dari pembaca yang budiman.

Walaupun penulis sudah berupaya semaksimal mungkin untuk mempersembahkan yang terbaik, namun penulis menyadari

 bahwa buku ini masih jauh dari kata sempurna. Oleh karenaitu, segala saran dan kritik yang membangun sangatlah

  penulis harapkan, dan bisa dikirimkan ke [email protected]. Selain itu, penulis jugamenyediakan kode program buku ini di alamathttp://groups.yahoo.com/group/didik_directory (menuFile) atau http://didik.indodesain.com.

Akhir kata, terima kasih kepada pembaca yang budiman,dan semoga hari ini jauh lebih baik dari hari-hari sebe-lumnya.

Bojonegoro, November 2006

Penulis

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 3/32

vii

Daftar Isi

Kata Pengantar ............................ ............................... ............ v

Daftar Isi...............................................................................vii

Bab 1 Visual Basic Dasar ............................................... 1

1 Teknik Dasar Visual Basic .................................... 12 Operasi String........................................................ 73 Konversi................................................................. 94 Validasi String dan Angka................................... 105 Operasi Array.......................................................126 Date dan Time......................................................14

7 Timer dan Alternatifnya.......................................168 Mengirim Keystroke............................................ 179 Argumen Command Line .................................... 1910 Error Handling..................................................... 2011 API Win32...........................................................2112 Menangguhkan Eksekusi .....................................2313 Mengatur Project Visual Basic ............................ 24

Bab 2 Form dan Kontrol..............................................27

14 Tip Dasar Form.................................................... 2715 Kontrol ListBox...................................................2916 ComboBox AutoComplete .................................. 3017 Menggunakan ListView.......................................3218 Efek CommandButton ......................................... 3519 Scrolling ToolTip.................................................3620 Editor Menu.........................................................3721 Ikon di Menu ....................................................... 39

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 4/32

viii

22 Menu PopUp Atraktif .......................................... 4123 Menggunakan ToolBar ........................................4324 Taskbar di MDI....................................................4725 Membagi Window MDI....................................... 4926 ProgressBar di Statusbar...................................... 5227 Docking dan Resizing Kontrol ............................ 5328 Memindah Kontrol saat Run-time ....................... 5429 Validasi Data ....................................................... 55

30 Kontrol Masked Edit............................................ 5731 Menghubungkan Aplikasi ke Help ...................... 5832 Membuat What�s This Help.................................5933 Ikon di System Tray.............................................61

Bab 3 Akses dan Manipulasi Data ..............................65

34 Objek Connection dan Recordset.........................6535 Membuat String Koneksi .....................................6736 Teknik Dasar Akses dan Manipulasi Data...........6937 Menciptakan Objek Database .............................. 7238 Meng-copy Tabel................................................. 7339 Modifikasi Praktis................................................7540 Mengolah Data BLOB......................................... 78

41 Data Environment................................................7942 Relasi Antartabel ................................................. 8143 Ekspor/Impor Data............................................... 8344 Konversi Recordset.............................................. 8545 Stored Procedure..................................................8746 Konkurensi dan Penguncian ................................8847 Manajemen Transaksi..........................................9048 Recordset Bersarang ............................................9249 Data Report Tanpa Data Environment.................94

Bab 4 Office dan VBA.................................................. 97

50 Otomasi MS Word............................................... 9751 Konversi File Teks ke Word..............................10052 Konversi File Word ........................................... 10153 Otomasi MS Excel.............................................10354 Evaluasi Ekspresi dengan MS Excel..................105

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 5/32

ix

55 Konversi Database Access.................................10656 Membuka Form Access ..................................... 10757 Otomasi PowerPoint .......................................... 10958 Membuka Slide PowerPoint di Form................. 11059 Kotak Dialog Built-in ........................................11260 Asisten Office ....................................................11361 Konversi File PDF .............................................11562 Otomasi OLE.....................................................116

Bab 5 Grafik dan Multimedia ...................................119

63 Informasi Dukungan Warna...............................11964 Menggunakan PictureBox .................................12065 Scroll di PictureBox...........................................12266 Membuat Ikon....................................................12367 Menyisipkan Teks di Gambar............................12468 Manipulasi Warna..............................................12669 Animasi Teks .....................................................12870 Efek-Efek Penutupan Form ...............................12971 Membuka File GIF ............................................13172 Animasi Gambar................................................ 13273 Membuat Grafik dengan MSChart.....................133

74 Menyimpan Grafik ke File................................. 13475 Menangkap Gambar...........................................13576 Menangkap Gambar di Sekitar Kursor .............. 13777 Mencetak Gambar..............................................13978 Multimedia Player .............................................14179 Resource File Multimedia.................................. 142

Bab 6 File dan Direktori ............................................145

80 Memilih File ...................................................... 14581 Informasi File ....................................................14982 Operasi File........................................................15083 Membuka dan Menyimpan File......................... 15284 Operasi File Biner.............................................. 15385 Kotak Dialog Browse for Folder........................ 15586 Operasi Folder/Direktori.................................... 15787 Window Search Results.....................................160

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 6/32

x

88 Atribut File dan Direktori .................................. 16189 Mengasosiasikan File ke Aplikasi ..................... 16390 Menulis dan Membaca File .ini .........................16491 File System Object.............................................16692 Informasi Folder/Direktori dengan FSO............16893 Informasi File dengan FSO................................ 169

Bab 7 Jaringan dan Internet......................................171

94 Memeriksa Koneksi Internet..............................17195 Informasi IP Address dan Host ..........................17396 Link ke Halaman Web dan Email Client ........... 17497 Membuat Shortcut Web..................................... 17598 Aplikasi DHTML............................................... 17699 Dokumen ActiveX.............................................178100 Web Classes....................................................... 179101 Mengambil Isi Web ........................................... 180102 Membuat Web Browser.....................................181103 Remote Data Recordset ..................................... 183104 Koneksi dan Transfer Data ................................184105 MSComm............. .............................................. 186106 Intranet Messenger............................................. 187

Bab 8 Interaksi dengan Sistem.................................. 191

107 Informasi Sistem................................................ 191108 Informasi User dan Nama Komputer.................194109 Informasi Memori ..............................................196110 Informasi Sistem dengan WMI.......................... 197111 Informasi CPU ...................................................199112 Informasi User dan Sistem dengan ADSI..........201113 Variabel Environment........................................202114 Operasi Control Panel........................................ 204115 Menangani Aksi Mouse.....................................205116 Menangani Aksi Keyboard ................................207117 Blocking Input ...................................................209118 Menyembunyikan Program dari Task 

Manager ....................................................... ...... 211119 Memantau Proses...............................................211

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 7/32

xi

120 Mengontrol Aplikasi.......................................... 214121 Manajemen Proses .............................................218122 Mengontrol Servis Windows ............................. 221123 Restart/Shutdown Windows .............................. 223124 Akses Registry...................................................226125 Akses Registry Spesifik.....................................228126 Menjalankan Aplikasi Saat Startup....................229127 Logging Event ...................................................231

Bab 9 Sekuriti ............................................................. 233

128 Memproteksi Form ............................................233129 Password Generator ........................................... 235130 Enkripsi/Dekripsi............................................... 236131 Kombinasi Enkripsi/Dekripsi dan Password......238132 Memproteksi File/Folder ...................................240133 Enkripsi dengan API Win32.............................. 243134 Modifikasi Account Sistem ...............................245135 Men-disable Editor Registry..............................247136 Men-disable Ctrl+Alt+Del................................. 249137 Memproteksi Aplikasi Trial...............................251138 Registrasi Aplikasi............................................. 253

Bab 10 Pemrograman Lanjut ...................................... 255

139 Membuat Add-in................................................ 255140 Callback............................................................. 258141 Subclassing ........................................................ 259142 Menggunakan HotKey....................................... 261143 ActiveX DLL .....................................................262144 Membuat Kontrol ActiveX................................264145 Regular Expression............................................266146 Integrasi MS Agent ............................................267147 Modifikasi Caption Window .............................269148 Regional/Localization........................................271149 Jam Analog ........................................................ 274150 Membuat Alarm/Scheduler................................ 276

Daftar Penamaan .................................................... ...... 279

Daftar Pustaka............................ ................................... 283

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 8/32

1

Visual Basic Dasar 

Bagian pertama ini akan menguraikan hal-hal yang sifatnyaesensial dalam pemrograman Visual Basic. Meskipundikatakan esensial, namun kita tidak boleh menyepelekanbegitu saja. Pada kenyataannya, teknik-teknik dasar yangmungkin dianggap sepele seringkali mampu menyelesaikan

berbagai persoalan pelik. Oleh karena itu, untuk memu-dahkan pembuatan program tingkat lanjut, akan lebih baik jika kita sudah memiliki bekal dasar.

Teknik Dasar Visual Basic

Jika kita membahas teknik dasar Visual Basic, sebenarnyatidak cukup hanya dengan satu bab, apalagi satu subbab.Namun, di sini akan dibatasi agar uraiannya tidak terlalu

umum ataupun khusus. Artinya, bagian ini mencobamenguraikan hal-hal ringan yang dianggap penting dansering diperlukan.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 9/32

2

N Awalan Penamaan Variabel

Konsistensi sering dikaitkan dengan penulisan kode program  yang standar. Ini tentu cukup beralasan karena penulisankode yang konsisten menjadikan kode program lebih mudahdibaca dan dipahami.

Sebagai contoh, dalam penamaan variabel, sangat dianjurkan

agar Anda mengacu pada standar yang telah ditetapkan.Contohnya seperti berikut:

' Jika hanya ada satu variabel String di satu

' ruang lingkup

Dim str As String

' Jika terdapat lebih dari satu

Dim strNama As StringDim strAlamat As String

Daftar standar penamaan selengkapnya untuk variabel yangmerepresentasikan suatu tipe data, kontrol-kontrol built-in

dan ActiveX, serta objek-objek ADO bisa Anda lihat dilampiran.

N Hindari Tipe Variant

Tipe data Variant secara otomatis akan ditetapkan padasuatu variabel manakala Anda tidak menetapkan tipe datanyasecara eksplisit.

' Variabel intX bertipe Variant

Dim intX, intY As Integer

' intA dan intB bertipe Integer 

Dim intA As Integer, intB As Integer

Alasan utama untuk menghindari tipe data Variant adalahkarena eksekusinya yang cenderung lebih lambat danmengonsumsi memori lebih besar.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 10/32

3

N Ruang Lingkup Variabel

Apabila variabel-variabel Anda hanya diperlukan oleh sebuahmethod (prosedur/fungsi), sebaiknya deklarasikan di levellokal. Teknik ini terkait erat dengan performa aplikasi, dimana variabel lokal akan lebih cepat dieksekusi dibandingvariabel global.

N

Konkatenasi dan MultilinePada saat Anda ingin menghubungkan string, gunakanoperator konkatenasi (&). Adapun jika konkatenasi meli-batkan baris baru, sebaiknya manfaatkan karakter garisbawah (underscore).

' Hello Indonesia adalah satu bagian

strData = "Hello " & _"Indonesia"

' strA dan strB adalah dua bagian

Dim strA As String, _strB As String

N

Definisi Tipe DataAnda pasti pernah menemui kode program Visual Basic yangmendefinisikan suatu tipe data menggunakan akhirankarakter tertentu, seperti $, %, dan sebagainya. Pendekatan

  yang juga disebut definisi tipe data secara implisit iniumumnya dilakukan untuk mempercepat eksekusi kode.Berikut ini simbol (karakter) yang dapat digunakan sebagaiakhiran nama variabel untuk merepresentasikan tipe data.

Akhiran Tipe Data Contoh

% Integer intUsia%

& Long lng&

! Single sng!

# Double dbl#@ Currency cur@

$ String str$

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 11/32

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 12/32

5

ElseintResult = 0

End IfPrint intResult

' Pendekatan IIf 

intResult = IIf(bStatus, 1, 0)Print intResult

Namun perlu diperhatikan, eksekusi method IIf cenderunglebih lambat dibanding pernyataan kondisional If.

N Keyword Step

Disamping menyederhanakan penulisan kode programpengulangan, keyword Step   juga mampu mempercepateksekusi kode. Sebagai contoh, kedua program berikut akanmenghasilkan keluaran sama.

Dim i As Integer

' Mencetak bilangan ganjil 1-10

For i = 0 To 9i = i + 1Print i

Next i

' Menggunakan pendekatan Step

For i = 1 To 10 Step 2Print i

Next i

N Keyword Optional

Apabila Anda ingin mendeklarasikan suatu argumen yangsifatnya opsional (tidak wajib), gunakan keyword Optional.

' Deklarasi argumen lng sebagai opsi

Private Sub Test(str As String, _Optional lng As Long = 1)

' ...

End Sub

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 13/32

6

Walaupun Anda diperkenankan untuk tidak menetapkannilai default dari suatu argumen opsional, namun sebaiknyaAnda menetapkannya. Langkah ini bertujuan untuk me-mudahkan penulisan tubuh method dan meningkatkankompatibilitas terhadap versi Visual Basic yang baru(VB.NET).

N Array Argumen

Kasus lain yang mungkin ditemui saat mendeklarasikanmethod adalah kemampuan untuk menerima sejumlahargumen. Kasus semacam ini bisa Anda selesaikan denganmemanfaatkan keywordParamArray.

Private Function Sum(ParamArray args() _As Variant) As Double

Dim i As Integer' array argumen adalah array berbasis 0

For i = 0 To UBound(args)Sum = Sum + args(i)

Next iEnd Function' Ekspresi berikut valid semua

Debug.Print Sum(2, 3)

Debug.Print Sum(2, 3, 4, 5)

Perlu diingat, ParamArray harus dideklarasikan sebagaiarray Variant, tidak boleh dengan tipe data lainnya. Selainitu, suatu method hanya boleh memiliki sebuah array argumen, dan harus berada di bagian paling akhir. Aturanterakhir, Anda tidak boleh meletakkan argumen opsional didepan array argumen.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 14/32

7

Operasi String

Sudah bukan rahasia lagi, frekuensi penggunaan tipe dataString sangat tinggi sekali. Ini tentu tidak lepas dari sifat

dasarnya yang ì sederhanaî dan memiliki sejumlah operasi yang sangat bermanfaat. Oleh karena itu, tidak ada salahnya jika kita mengenal operasi-operasi string lebih lanjut.

N Mencetak Spasi/Karakter

Bagaimana mencetak 10 karakter kosong dengan cepat? JikaAnda sudah mengenal method Space, tentu tidak akankesulitan melakukannya.

' Mencetak 10 spasi antara a dan b

Print "a" & Space$(10) & "b"

Sebagai alternatif, Anda juga bisa memanfaatkan methodString untuk tujuan serupa. Selain itu, method ini lebih

luas fungsionalitasnya.

' Mencetak 10 spasi antara a dan b

Print "a" & String$(10, " ") & "b"' Sama, 32 adalah kode ASCII spasi

Print "a" & String$(10, 32) & "b"

' Mencetak karakter * sebanyak 10

Print String$(10, "*")

N Mencari Substring

Mencari bagian-bagian string merupakan operasi sederhana yang implementasinya terkadang tidak sesederhana bayangankita. Berikut tip-tip ringan untuk menemukan substring di

suatu string.strText = "abcdefg"

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 15/32

8

Print Left$(strText, 3) ' Output: abc

Print Right$(strText, 2) ' Output: fg 

' Mengambil 4 karakter, dimulai dari karakter ke 3

Print Mid$(strText, 3, 4) ' Output: cdef 

Anda juga bisa memanfaatkan method Mid untuk memo-difikasi karakter di dalam string.

' Replace strText mulai karakter ke 3

Mid$(strText, 3) = "123"Print strText' Output: ab123fg 

N Pemformatan String

Pemformatan string seringkali diperlukan guna menda-patkan format nilai yang sesuai. Bergantung pada kebutuhan,ada beberapa pendekatan yang bisa kita lakukan.

Dim str As Stringstr = "nadin savitri"

' Format huruf besar dan kecil

Print UCase$(str)

Print LCase$(str)

' Konversi ke huruf semestinya

Print StrConv(str, vbProperCase)' Output: Nadin Savitri

Selain mengatur format huruf, Anda juga bisa menetapkanformat angka.

Dim sng As Single: sng = 2.246

' Pembulatan dan pemformatan

Print Format$(sng, "0.00") ' Output: 2,25

Print FormatNumber$(sng, 2) ' Output: 2,25

' Pembulatan dan Format currency Print FormatCurrency$(sng, 2) ' Output: Rp2,25

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 16/32

9

!

Konversi

Dalam pembuatan aplikasi perangkat lunak, seringkali kitaperlu melakukan konversi, baik itu konversi tipe data

maupun konversi nilai. Untuk beberapa tujuan, operasi inidapat kita lakukan dengan mudah melalui method-methodbuilt-in yang disediakan oleh class Conversion.

Tabel berikut ini memperlihatkan keyword dan methoduntuk konversi berdasarkan kegunaannya.

Aksi Konversi Keyword/Method

 Nilai ANSI ke string Chr, ChrW

String ke huruf kecil/besar 

Format, LCase, UCase

Angka ke string Format, Str  

Satu tipe data ke tipedata lain

CBool, CByte, CDate, CDbl,CDec, CInt, CLng, CSng,

CShort, CStr, CVar, Fix, Int,Hex, Oct

Tipe Date ke tanggal, bulan, atau tahun

Day, Month, Year 

Tipe Time ke jam,menit, atau detik 

Hour, Minute, Second

String ke nilai ASCII Asc, AscW

String ke angka Val

Sebagai contoh, untuk mengkonversi nilai string ke angka,gunakan method Val. Sebaliknya, manfaatkan method Str

untuk mengembalikan representasi string dari angka.

Print Val("12A") ' Output: 12

Print Str$("12") ' Output: 12

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 17/32

10

Apabila Anda ingin mendapatkan nilai ANSI dari suatu kodekarakter, gunakan method Chr atau ChrW. Adapun jika inginmendapatkan nilai ASCII, manfaatkan method Asc atauAscW.

Print ChrW$(65) ' Output: A 

Print AscW("A") ' Output: 65

Begitu pula halnya ketika Anda ingin mendapatkan nilaiheksadesimal dari tipe data desimal atau sebaliknya, gunakanmethod Hex dan Val.

' Konversi Hexadecimal ke Decimal

Me.txtDec.Text = Val("&H" & Me.txtHex.Text)

' Konversi Decimal ke Hexadecimal

Me.txtHex.Text = Hex$(Me.txtDec.Text)

"

Validasi String dan Angka

Pada prinsipnya, string mampu menampung berbagai jeniskarakter sehingga fleksibel dalam penggunaannya. Namundibalik itu, diperlukan pekerjaan ekstra guna memperolehdata seperti yang diharapkan. Sebagai contoh, bagaimanamemastikan bahwa user hanya mengisi huruf, angka, ataukombinasi keduanya?

Sebagai tindakan lanjut, diperlukan langkah efektif, yaituvalidasi data. Dalam implementasinya, validasi data bisa kitalakukan melalui berbagai pendekatan.

N Validasi Input Huruf 

Untuk memastikan bahwa string masukan yang diberikan

oleh user sudah valid, kita bisa memanfaatkan operatorLike. Operator ini berfungsi mengevaluasi string yang

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 18/32

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 19/32

12

iLen = Len(str)If iLen > 0 ThenFor iCount = 1 To iLen

strChar = Mid$(str, iCount, 1)If Not strChar Like "[0-9]" Then _Exit Function

Next iCount

IsAngka = TrueEnd If

End Function

N Kombinasi Huruf dan Angka

Mengacu pada dua contoh validasi sebelumnya, tentu sangatmudah bagi Anda untuk mendapatkan nilai berupa kom-binasi huruf dan angka. Lebih jelasnya, Anda tinggal mene-tapkan pola huruf dan angka, yaitu [0-9A-Za-z].

#

Operasi Array

Array merupakan tipe data agregat yang mampu me-nampung sejumlah variabel. Karakteristiknya yang fleksibelsangat membantu kita dalam mengelola koleksi item(elemen). Terkait hal ini, ada banyak operasi penting yanglazimnya dilakukan terhadap koleksi item di dalam array.

N Split dan Join

Disamping mengisi elemen array satu per satu (berbasisindex), Anda bisa memecah bagian-bagian string kemudianmemasukkannya ke dalam array. Untuk melakukan hal ini,manfaatkan fungsionalitas method Split. Adapun seba-liknya, untuk menggabung elemen array gunakan methodJoin.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 20/32

13

Dim str As Stringstr = "Satu Dua Tiga"

Dim strArr() As String' Memisah string, assign ke array 

strArr = Split(str)

' Gabung elemen array, delimeter = spasi

Print Join$(strArr, " ")

N Iterasi Elemen

Iterasi merupakan salah satu operasi dasar yang seringdilakukan untuk mendapatkan elemen-elemen array. Walau-pun Anda dapat menggunakan pendekatan For...Next,namun akan lebih praktis jika memanfaatkan pernyataanFor Each...Next.

Dim i As IntegerDim intMax As Integer

' Mendapatkan index maksimum

intMax = UBound(strArr)For i = 0 To intMaxPrint strArr(i)

Next i

Dim vnt As VariantFor Each vnt In strArrPrint vnt

Next vnt

N Pencarian Elemen

Pada saat Anda ingin mencari suatu elemen di dalam array,Anda bisa menggunakan method Filter. Method ini sebe-narnya berfungsi menyaring elemen, namun juga sangatmemungkinkan untuk digunakan dalam mencari elemen.

Dim strRes() As String

' Penyaringan case-insensitivestrRes = Filter(strArr, "dua", True, _vbTextCompare)

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 21/32

14

Dim vnt As Variant' Ekstrak elemen yang sesuai penyaringan

For Each vnt In strResPrint vnt

Next vnt

$

Date dan Time

Operasi tanggal dan waktu tidak hanya sebatas mendapatkantanggal dan waktu saat ini (current date/time). Anda mungkin

  juga perlu melakukan operasi-operasi lanjut, sepertimengembalikan tanggal/waktu, kalkulasi tanggal/waktu, dansebagainya. Untuk lebih jelasnya, berikut tip dalam menye-lesaikan operasi-operasi seputar tanggal dan waktu.

N Mendapatkan Tanggal dan Waktu

Untuk mendapatkan informasi mengenai tanggal dan waktu

saat ini, lazimnya kita menggunakan method Now. Sebagaialternatif, Anda bisa memanfaatkan properti Date dan Time

untuk mendapatkan tanggal dan waktu.

' Mendapatkan current date dan time

Print Now ' Tanggal dan waktu

Print Date ' Tanggal

Print Time ' Waktu

N Pembentukan dan Ekstraksi

Apabila Anda tidak ingin mendapatkan tanggal yang lengkapdari pendekatan sebelumnya, Anda bisa membentuk sendirikomponen-komponen tanggal/waktu.

' Mendapatkan bagian (DateTime) tertentu

Print Day(Now) & "-" & Month(Now) & "-" & _Year(Now)Print Hour(Now) & ":" & Minute(Now)

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 22/32

15

Seperti halnya ketika membentuk komponen-komponentanggal/waktu, ada beberapa pendekatan untuk mengekstraktanggal dan waktu.

' Mendapatkan bagian (DateTime) tertentu

Print Day(Now) & "-" & Month(Now) & "-" & _Year(Now)Print Hour(Now) & ":" & Minute(Now)

Print DatePart("d", Now) ' d= Day Print DatePart("m", Now) ' m= Month

Print DatePart("yyyy", Now) ' yyyy= Year 

N Kalkulasi Tanggal dan Waktu

Bergantung pada kebutuhan Anda, ada beberapa pendekatanuntuk mengalkulasi tanggal dan waktu. Sebagai contoh,untuk menambah atau mengurangi tanggal/waktu, gunakanmethod DateAdd.

' 3 hari kemudian dan yang lalu

Print DateAdd("d", 3, Now)Print DateAdd("d", -3, Now)' Untuk bulan=m, tahun=yyyy 

' 3 jam kemudian

Print DateAdd("h", 3, Now)' Untuk menit= n, detik= s

Jika Anda ingin mendapatkan informasi mengenai selisihtanggal/waktu, gunakan methodDateDiff.

' Jumlah hari sejak 20 September 2006 

Print DateDiff("d", #9/20/2006#, Now)

N Pemformatan Tanggal dan Waktu

Jika diperlukan, informasi tanggal/waktu yang telah Andadapatkan bisa diformat sesuai dengan kebutuhan. Hal ini

diwujudkan dengan memanfaatkan method Format.

Print Format(Now, "dddd, dd mmm yyyy")

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 23/32

16

' Output: (misal) Sabtu, 29 September 2006 

Print Format(Now, "hh:mm:ss")' Output: 21:30:48

%

Timer dan Alternatifnya

Banyak contoh kasus yang memerlukan keberadaan kom-ponen Timer untuk mendapatkan nilai interval waktu.Disamping mampu menghasilkan nilai yang akurat, kom-ponen ini juga mudah sekali digunakan.

Sekadar contoh sederhana, jika Anda ingin melakukan suatuoperasi dalam rentang waktu lima detik setelah kodeprogram berjalan, tentu Timer menjadi pilihan gunamewujudkannya. Contoh kode programnya seperti berikut:

Private intBatas As Integer

Private Sub Command1_Click()' Misal batas waktu = 5 detik

intBatas = 5' Interval = 1000 milidetik (1 detik)

Me.tmr.Interval = 1000Me.tmr.Enabled = True

End Sub

Private Sub tmr_Timer()' Decrement batas waktu

intBatas = intBatas - 1If intBatas <= 0 Then

Me.tmr.Enabled = False' Unload form

Unload MeElse

' Menampilkan hitungan mundur 

Me.Caption = "TimeOut: " & intBatasEnd If

End Sub

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 24/32

17

Sebagai alternatif, untuk tujuan yang sama, Anda bisamemanfaatkan pendekatan method DateAdd dan peng-ulangan. Tekniknya, spesifikasikan batas waktu, kemudianlakukan pengulangan hingga waktu saat ini (current time)melewati batas waktu.

Private Sub Command2_Click()intBatas = 5Dim intTOut As IntegerDim dtm As Datedtm = DateAdd("s", intBatas, Now)

' Loop sampai batas terlewati

Do Until Now >= dtmDoEventsintTOut = Second(dtm) - Second(Now)' Hitungan mundur 

Me.Caption = "TimeOut: " & intTOutLoop

' Unload form

Unload MeEnd Sub

Alternatif lain yang bisa Anda gunakan adalah melalui

pendekatan method Timer. Method read-only  ini akanmengembalikan nilai (detik) Single   yang telah lewat sejakwaktu tengah malam.

&

Mengirim Keystroke

Dalam beberapa kasus spesifik, Anda mungkin ingin mengi-rim keystroke ke aplikasi. Sebagai contoh, secara otomatis

memindahkan fokus ke kontrol lain ketika batas pengisianTextBox sudah maksimal, mengubah perilaku key, dansebagainya.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 25/32

18

Untuk mendukung operasi-operasi di atas, manfaatkanmethod SendKeys. Method ini berfungsi mengirimkeystroke ke window yang saat itu sedang mendapatkanfokus.

Private Sub Form_Load()' Misal max panjang karakter =5

Me.txt1.MaxLength = 5End Sub

Private Sub txt1_Change()' Jika panjang karakter sudah terpenuhi

If Len(Me.txt1.Text) = Me.txt1.MaxLength Then

' Memindahkan fokus ke kontrol berikutnya

SendKeys ("{TAB}")End If

End Sub

Kunci utama dalam pengiriman keystroke adalah argumendari method SendKeys, yakni kode key (tombol). Secarakeseluruhan, kode key mengacu pada label yang ada dikeyboard, kecuali untuk key spesifik. Di mana kode untukkey  Shift adalah +, Ctrl adalah ^, dan Alt adalah %. Jadi,

ketika Anda ingin mengirim kombinasi key Alt+F4 (menu-tup window), gunakan key ì %{F4}î .

' Mengaktifkan window notepad 

' window sudah harus terbuka

Call AppActivate("Untitled - Notepad")

' Menutup window notepad 

SendKeys ("%{F4}")

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 26/32

19

'

Argumen Command Line

Jika Anda menghendaki, aplikasi Visual Basic yang Anda buatdapat memiliki kemampuan untuk menerima argumen dari

command line. Seperti halnya program-program berbasisteks, Anda tinggal mendefinisikan argumen di command linesetelah nama file executable program.

Kunci utama aplikasi semacam ini adalah bagaimana men-dapatkan informasi argumen, dan ini kita lakukan denganmemanfaatkan method Command. Setelah argumen berhasildidapatkan, Anda bisa menggunakannya untuk mengaturperilaku aplikasi atau untuk keperluan lainnya.

Private Sub Form_Load()Dim strCmd As String

' Mendapatkan argumen dari command line

strCmd = Command$()

If InStrB(strCmd, "-status MAX") > 0 Then' Jika argumen didapatkan,

' Misalkan men-set status window 

Me.WindowState = 2Me.Caption = "Argumen: " & strCmd

ElseMe.WindowState = 0

End If

End Sub

Untuk menjalankan kode program di atas, misalkan namafile executable adalah Project1.exe, buka command promptdan berikan perintah Project1.exe ñstatus MAX.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 27/32

20

Error Handling

Bagaimana implementasi penanganan kesalahan? Dan ba-gaimana mendapatkan informasi yang bermanfaat terkait

dengan kesalahan yang terjadi? Apabila Anda ingin men-dapatkan informasi detail mengenai kesalahan yang berhasilditangkap, gunakan method Err.

Dim dblRes As Double

On Error GoTo ErrHandler' Ini akan menimbulkan kesalahan

' sehingga perlu di-trap

dblRes = 10 / 0

' Jika error, ini tidak akan dieksekusi

MsgBox ("Hasil: " & dblRes)

' Jika sukses, keluar dari blok

Exit Sub

ErrHandler:' Misalkan kode kesalahan diketahui

If (Err.Number = 11) ThenMsgBox ("Pembagian dengan nol" & vbCrLf & _"Kode Kesalahan: " & Err.Number & vbCrLf & _"Deskripsi: " & Err.Description & vbCrLf & _"Sumber: " & Err.Source)

ElseMsgBox ("Kode Kesalahan: " & Err.Number & _"Deskripsi: " & Err.Description & vbCrLf & _"Sumber: " & Err.Source)

End If

Dalam menangani kesalahan, tentunya tidak semua bagiankode program harus diberi pernyataan On Error. Artinya,

ada saatnya kita bisa memanfaatkan fungsionalitas method.Sebagai contoh sederhana, ketika ingin melakukan verifikasiterhadap suatu array, akan lebih baik menggunakan method

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 28/32

21

IsArray dibanding mendefinisikan On Error sebelumkode verifikasi.

Bagaimanapun juga, mekanisme penanganan kesalahanmemerlukan tambahan alokasi memori. Artinya, peng-gunaan pernyataan On Error berbanding lurus terhadapwaktu eksekusi. Dengan kata lain, semakin banyak blok On

Error di suatu kode program, maka juga akan semakin

lambat eksekusinya.

API Win32

Bagian ini secara khusus akan menguraikan tip mengenal  Application Programming Interface (API) Windows, khu-susnya di platform 32-bit (Win32). Ini dimaksudkan untuklebih mendekatkan Anda dengan fungsionalitas API Win32dan juga terkait pembahasan-pembahasan selanjutnya.

Pada prinsipnya, API Win32 terdiri atas koleksi Dynamic-Link Library (DLL) yang disebut DLL standar. Cara kerjaDLL standar ini berbeda dengan Componen Object Model (COM). Idealnya, saat mengeksekusi method aplikasi ber-basis COM, kita menggunakan COM untuk pemanggilanprosedur yang tersedia. Di sisi lain, pada pendekatan DLLstandar, kita melakukan pemanggilan method secara lang-sung.

N Kelebihan API Win32

Sedikitnya ada dua kelebihan yang bisa didapatkan dari pen-dekatan API Windows. Pertama, kita dapat memperluas

fungsionalitas aplikasi, dan kedua adalah meningkatkanperforma aplikasi. Pada kenyataannya, DLL standar mampumenghasilkan kode yang lebih cepat dan efisien.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 29/32

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 30/32

23

Dokumentasi ini lebih detail karena menyertakan deskripsiserta beberapa informasi tambahan.

Gambar 1.1 Menggunakan API Viewer

Menangguhkan Eksekusi

Dalam kasus tertentu, kita perlu sekali untuk menangguhkaneksekusi kode, misalnya ketika melakukan sinkronisasi.Sayangnya, method yang memiliki fungsionalitas seperti initidak tersedia di Visual Basic.

Pada kenyataannya, Anda bisa memanfaatkan timer untukmenangguhkan eksekusi dan melanjutkan kembali dalaminterval waktu tertentu. Namun, jika Anda menginginkanpendekatan yang lebih praktis, gunakan API Win32.

' Untuk menangguhkan eksekusi

Private Declare Sub Sleep Lib "kernel32" ( _ByVal dwMilliseconds As Long)

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 31/32

24

Private Sub Pause(ByVal sngDetik As Single)' Menangguhkan eksekusi dalam (waktu) detik

Call Sleep(Int(sngDetik * 1000#))End Sub

Sebenarnya Anda bisa langsung menggunakan methodSleep, tetapi perlu diperhatikan, nilai argumennya adalahwaktu dalam satuan milidetik. Oleh karena itu, untuk lebih

memudahkan penggunaan method Sleep, kita membuatmethod Pause yang menerima argumen waktu dalam satuandetik.

Contoh penggunaan method Pause diperlihatkan sebagaiberikut:

Dim i As IntegerFor i = 1 To 200Me.Caption = i

If i = 100 Then' Tangguhkan eksekusi selama 5 detik

Me.Caption = "Berhenti 5 detik"Pause (5)

End If

Next i

!

Mengatur Project Visual Basic

Setiap kali kita membuat project, IDE akan menciptakan file.vbp yang berisi informasi-informasi penting. Adapun jika

diperlukan, Anda juga bisa melakukan pengaturan spesifikterhadap project, terlepas dari pengaturan default.

8/6/2019 101 Tip & Trik Visual Basic 6.0 Buku Kedua

http://slidepdf.com/reader/full/101-tip-trik-visual-basic-60-buku-kedua 32/32

25

N Mengatur Versi Aplikasi

Apabila Anda ingin mengubah ikon default yang ada di form,gunakan properti Icon. Untuk menghasilkan tampilan yangproporsional, sebaiknya ukuran ikon kurang lebih 14 x 14pixel ( picture element ).

N Mengatur Versi Aplikasi

Untuk menandai aplikasi, sebaiknya Anda memberikan versi  yang berbeda di setiap versi rilis. Adapun cara yang praktisadalah dengan memanfaatkan fitur IDE. Terlebih dahulubuka kotak dialog Project Properties dari menu Project.Setelah itu, aktifkan tab Make, kemudian beri tanda centangdi bagian Auto Increment.

N Informasi Versi

Sebelum Anda mendistribusikan aplikasi, akan lebih baik jikaAnda memberikan informasi detail mengenai aplikasi. Lang-kah ini bisa Anda lakukan dari tab Make di kotak dialogProject Properties. Pada bagian Version Information, pilih

Type informasi, kemudian isikan informasinya di bagianValue.

Gambar 1.2 Informasi aplikasi