Anda di halaman 1dari 22

Menampilkan Teks Bolong di Form

'Deskripsi: Menampilkan teks dengan efek "bolong" di form Anda dengan


' bantuan PictureBox.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Rabu, 15 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Module,
' dan 1 PictureBox.
' 2. Copy-kan coding berikut ke editor form & module ybt.
---------------------------------------------------------------------
----

'--- Coding ini di Module...


Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long
Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long
Declare Function StrokePath Lib "gdi32" (ByVal hdc As Long) As Long
'--- Akhir coding di Module...

'--- Coding ini di Form...


Private Sub Form_Load()
'Ganti "Masino Sinaga" dengan teks yang ingin Anda tampilkan
Const TXT = "Masino Sinaga"
Dim i As Long
Dim hRgn As Long
Picture1.AutoRedraw = True

'Pilih huruf. Sesuaikan dengan keinginan Anda...


Picture1.Font.Name = "Times New Roman"
Picture1.Font.Bold = True
Picture1.Font.Size = 50

'Buat ukuran Picture1 cukup besar


Picture1.Width = Picture1.TextWidth(TXT)
Picture1.Height = Picture1.TextHeight(TXT)

'Untuk letak Picture1


BeginPath Picture1.hdc
Picture1.CurrentX = 0
Picture1.CurrentY = 0
Picture1.Print TXT
EndPath Picture1.hdc

'Gambar teks...
StrokePath Picture1.hdc
End Sub

Memeriksa Apakah Printer Terinstall di PC Anda


'Deskripsi: Memeriksa apakah printer terinstall di PC Anda.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form.
' 2. Copy-kan coding ini ke editor form yang bertalian.
'-------------------------------------------------------------------

Public Function IsPrinterInstalled() As Boolean


'coding ini shrsnya jika error lanjut saja, sengaja dihilangkan spy
dapat diupload ke brinkster
Dim strDummy As String
strDummy = Printer.DeviceName
If Err.Number Then
PrinterInstalled = False
Else
PrinterInstalled = True
End If
End Function

Private Sub Form_Load()


If IsPrinterInstalled Then
MsgBox "Printer terinstall di PC Anda!", vbInformation,
"Terinstall"
Else
MsgBox "Printer belum terinstall di PC Anda!", vbCritical, "Belum
Terinstall"
End If
End Sub

Menampilkan Printer yang Terinstall


'Deskripsi: Menampilkan daftar nama printer yang terinstall di suatu
komputer
' ke dalam combobox dan menampilkan nama printer default-
nya.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Jumat, 10 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 1 ComboBox.
' 2. Set property Style ComboBox menjadi "2 - Dropdown
List".
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
--------

Dim Ptr As Printer 'Deklarasi objek printer

Private Sub Form_Load()


If cboPrinter.ListCount = 0 Then
For Each Ptr In Printers
cboPrinter.AddItem Ptr.DeviceName
Next
End If
cboPrinter.Text = Printer.DeviceName 'Tampilkan printer
defaultnya.
End Sub

Menentukan Font Printer


'Deskripsi: Menentukan utilitas font printer
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 1 Commandbutton.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

Private Sub Command1_Click()


Printer.FontName = "Arial"
Printer.FontUnderline = False
Printer.FontBold = False
Printer.FontItalic = True
Printer.FontSize = "30"
Printer.Print "hello"
'Gunakan perintah EndDoc jika teks ini adalah yang
'terakhir yang dicetak ke dalam kertas.
Printer.EndDoc
End Sub

Mencoba Printer
'Deskripsi: Mencoba printer dengan men-test cetak halaman (print test
page).
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
-------

'Panggil fungsi print-test-page milik Windows.


Private Sub Form_Load()
Shell "rundll32 msprint2.dll,RUNDLL_PrintTestPage"
End Sub

Mengambil Nama & Organisasi Pemilik Windows


'Deskripsi: Mengambil nama dan organisasi atau perusahaan pemilik
sistem
' operasi Windows yang terinstall di suatu PC. Informasi
ini
' tersimpan di dalam registry komputer tersebut. Dalam tips
ini
' Anda juga dapat mempelajari bagaimana cara mengambil
setting
' dari registry selain menggunakan GetSetting yang hanya
terbatas
' pada "HKEY_CURRENT_USER\Software\VB and VBA Program
Setting".
' Sedangkan jika Anda ingin mengambil setting dari lokasi
lainnya,
' Anda bisa menggunakan tips di bawah ini. Misalnya Anda
ingin
' memunculkan nama pemilik dan organisasi OS Windows ybt:
' "Program ini telah diregistrasikan
kepada: .................."
' Sebagian besar source code ini saya ambil dari template
form-nya
' About di Visual Basic. Yang ditambahkan di sini hanya
mengambil
' setting nama dan organisasi pemilik Windows, serta
deskripsi
' program dari Project Properties->Make->Version
Information->Desc.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru.
' 2. Tambahkan form About dari Project->Add Form->About
Dialog.
' 3. Sesuaikan beberapa object yang terdapat di source code
ini,
' seperti label/textbox yang belum ada di About Dialog
tsb.
' Lihat di source code tersebut selengkapnya.
' 4. Copy-kan coding berikut ke dalam editor form yang
bertalian.
' (replace semua source code yang ada dengan source code
ini).
'--------------------------------------------------------------------
------

Option Explicit 'Semua variabel yang digunakan harus dideklarasikan.

'Pilihan Reg Key Security ...


Const READ_CONTROL = &H20000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = _
KEY_QUERY_VALUE + KEY_SET_VALUE + _
KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

'Tipe Reg Key ROOT ...


Const HKEY_LOCAL_MACHINE = &H80000002
Const ERROR_SUCCESS = 0
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_DWORD = 4 ' 32-bit number

Const gREGKEYSYSINFOLOC = _
"SOFTWARE\Microsoft\Shared Tools Location"
Const gREGVALSYSINFOLOC = "MSINFO"
Const gREGKEYSYSINFO = _
"SOFTWARE\Microsoft\Shared Tools\MSINFO"
Const gREGVALSYSINFO = "PATH"

'Konstanta untuk mengambil data pemilik & organisasi OS Windows di PC


Const gRegKeyLokasi1 = _
"SOFTWARE\Microsoft\Windows\CurrentVersion"
Const gRegKeyOwner = "RegisteredOwner"
Const gRegKeyLokasi2 = _
"SOFTWARE\Microsoft\Windows\CurrentVersion"
Const gRegKeyOrganization = "RegisteredOrganization"

Private Declare Function RegOpenKeyEx Lib _


"advapi32" Alias "RegOpenKeyExA" _
(ByVal hKey As Long, ByVal lpSubKey As String, _
ByVal ulOptions As Long, ByVal samDesired As Long, _
ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib _
"advapi32" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal lpReserved As Long, ByRef lpType As Long, _
ByVal lpData As String, ByRef lpcbData As Long) _
As Long
Private Declare Function RegCloseKey Lib _
"advapi32" (ByVal hKey As Long) As Long

Private Sub cmdSysInfo_Click()


Call StartSysInfo
End Sub

Private Sub cmdOK_Click()


Unload Me
End Sub

Private Sub Form_Load()


Me.Caption = "About " & App.Title
lblVersion.Caption = "Versi " & App.Major & "." & App.Minor & "."
& App.Revision
lblTitle.Caption = App.Title
txtDeskripsi.Text = App.FileDescription
StartOwner 'Ambil dan tampilkan nilai pemilik OS Windows
End Sub

Public Sub StartOwner()


On Error GoTo SysInfoErr
Dim rc As Long
Dim Pemilik As String
Dim Organisasi As String
Dim lReturn As Long
'Tampung nama pemilik OS Windows
lReturn = GetKeyValue(HKEY_LOCAL_MACHINE, _
gRegKeyLokasi1, gRegKeyOwner, Pemilik)
lblOwner.Caption = Pemilik
'Tampung nama organisasi OS Windows
lReturn = GetKeyValue(HKEY_LOCAL_MACHINE, _
gRegKeyLokasi2, gRegKeyOrganization, Organisasi)
lblOrganization.Caption = Organisasi
Exit Sub
SysInfoErr:
MsgBox "Tidak ada informasi pemilik Windows", _
vbInformation, "NIHIL"
End Sub

Public Sub StartSysInfo()


On Error GoTo SysInfoErr
Dim rc As Long
Dim SysInfoPath As String
' Ambil System Info Program Path\Name dari Registry...
If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, _
gREGVALSYSINFO, SysInfoPath) Then
' Ambil hanya path System Info Program dari Registry...
ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, _
gREGVALSYSINFOLOC, SysInfoPath) Then
' Validasi keberadaan versi file 32 Bit
If (Dir(SysInfoPath & "\MSINFO32.EXE") <> "") Then
SysInfoPath = SysInfoPath & "\MSINFO32.EXE"
' Error - File tidak dapat ditemukan...
Else
GoTo SysInfoErr
End If
' Error - Registry Entry tidak dapat ditemukan...
Else
GoTo SysInfoErr
End If
Call Shell(SysInfoPath, vbNormalFocus)
Exit Sub
SysInfoErr:
MsgBox "System Information Is Unavailable At This Time", _
vbOKOnly
End Sub

Public Function GetKeyValue(KeyRoot As Long, _


KeyName As String, _
SubKeyRef As String, _
ByRef KeyVal As String) _
As Boolean
Dim i As Long ' Counter untuk looping
Dim rc As Long ' Code pengembalian
Dim hKey As Long ' Penanganan membuka Registry Key
Dim hDepth As Long '
Dim KeyValType As Long ' Tipe Data sebuah Registry Key
Dim tmpVal As String ' Penyimpanan sementara nilai Registry
Key
Dim KeyValSize As Long ' Ukuran variabel Registry Key
'------------------------------------------------------------
' Buka RegKey di bawah KeyRoot {HKEY_LOCAL_MACHINE...}
'------------------------------------------------------------
' Buka Registry Key
rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey)
' Penanganan Error...
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError
' Alokasi Variable Space
tmpVal = String$(1024, 0)
' Penanda Variable Size
KeyValSize = 1024
'------------------------------------------------------------
' Ambil Nilai Registry Key ...
'------------------------------------------------------------
' Ambil/Buat nilai Key
rc = RegQueryValueEx(hKey, SubKeyRef, 0, _
KeyValType, tmpVal, KeyValSize)
' Penanganan Errors
If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError
' Win95 Adds Null Terminated String...
If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then
' Null ditemukan, Extract dari String
tmpVal = Left(tmpVal, KeyValSize - 1)
Else ' WinNT tidak bernilai Null Terminate String...
' Null tidak ditemukan, Extract String saja
tmpVal = Left(tmpVal, KeyValSize)
End If
'------------------------------------------------------------
' Memeriksa nilai tipe Key untuk konversi ...
'------------------------------------------------------------
Select Case KeyValType ' Cari tipe data...
Case REG_SZ ' Tipe data string Registry Key
KeyVal = tmpVal ' Copy nilai String
Case REG_DWORD ' Tipe data Double Word Registry Key
' Konversikan setiap bit
For i = Len(tmpVal) To 1 Step -1
' Bangun nilai Char. Dengan Char.
KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1)))
Next
' Konversi Double Word ke String
KeyVal = Format$("&h" + KeyVal)
End Select
GetKeyValue = True ' Pengembalian sukses
rc = RegCloseKey(hKey) ' Tutup Registry Key
Exit Function ' Keluar dari fungsi
GetKeyError: ' Bersihkan memori jika terjadi error...
KeyVal = "" ' Set Return Val ke string kosong
GetKeyValue = False ' Pengembalian gagal
rc = RegCloseKey(hKey) ' Tutup Registry Key
End Function

Mengganti Nama/Organisasi Pemilik Windows


'Deskripsi: Mengganti nama pemilik Windows yang terdaftar di komputer
Anda
' beserta perusahaan/organisasinya.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Jumat, 10 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Module, 2
Textbox,
' dan 1 Commandbutton
' 2. Copy-kan coding berikut ke dalam editor form & module
ybt.
'--------------------------------------------------------------------
--------

'Masukkan nama pemilik Windows yang baru di Text1, masukkan nama


perusahaan
'pemilik tersebut di Text2, lalu klik tombol Command1. Jika Anda
mengosongkan
'kedua texbox tsb lalu mengklik Command1, maka tidak ada perubahan yg
terjadi.
'Lihat perubahannya dari menu Start | Settings | Control Panel |
System
'(tab General), atau klik kanan icon "My Computer" di desktop lalu
pilih
'"Properties".

'Coding ini di Module...


Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long)
As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias
"RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As
_
Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As
Long) As Long
Declare Function RegFlushKey Lib "advapi32.dll" (ByVal hKey As Long)
As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long)
As Long

Public Const HKEY_LOCAL_MACHINE = &H80000002


'--- Akhir coding di Module...

'--- Coding ini di Form...


Sub WriteRegistry(ByVal Group As Long, ByVal Section As String, ByVal
Key As _
String, NewVal As String)
Dim lResult As Long, lKeyValue As Long
Dim InLen As Long
'coding ini shrsnya jika error lanjut saja, sengaja dihilangkan spy
dapat diupload ke brinkster
lResult = RegOpenKey(Group, Section, lKeyValue)
InLen = Len(NewVal)
lResult = RegSetValueEx(lKeyValue, Key, 0&, 1&, NewVal, InLen)
lResult = RegFlushKey(lKeyValue)
lResult = RegCloseKey(lKeyValue)
End Sub

Private Sub Command1_Click()


WriteRegistry HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows\CurrentVersion", "RegisteredOwner",
Text1
WriteRegistry HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows\CurrentVersion",
"RegisteredOrganization", Text2
MsgBox "Registered Name = " & Text1.Text & "" & Chr(13) & _
"Registered Organization = " & Text2.Text & "",
vbInformation, _
"Berhasil Diganti!"
End Sub

Menampilkan Tulisan Berjalan di StatusBar


'Deskripsi: Menampilkan tulisan berjalan di StatusBar (bagian bawah
form)
' dengan bantuan control Timer.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Senin, 22 Juli 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 1 StatusBar.
StatusBar
' dapat Anda peroleh dari component yang bernama:
' ""Microsoft Windows Common Controls 5.0 (SP2)"
' dari Add->Components...
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

Dim Counter As Integer

Private Sub Form_Load()


Counter = 0
Timer1.Interval = 50 '<-- Atur kecepatannya di sini
With StatusBar1
.Panels(1).Width = 4000
.Panels(1).Alignment = sbrRight
End With
End Sub

Private Sub Timer1_Timer()


Dim Kalimat As String
Dim pnlX1 As Panel
Set pnlX1 = StatusBar1.Panels(1)
Kalimat = "Testing tulisan berjalan"
Counter = Counter + 1
DoEvents
pnlX1.Text = TulisJalan(Counter, Kalimat, 150)
End Sub

Public Function TulisJalan(Hitung As Integer, _


strKalimat As String, _
Panjang As Integer)
If Hitung = Len(strKalimat) + Panjang Then
Hitung = 0
ElseIf Hitung > Len(strKalimat) Then
TulisJalan = strKalimat & Space(Hitung - Len(strKalimat))
Else
TulisJalan = Mid(strKalimat, 1, Hitung)
End If
End Function

Membalikkan Tulisan di Suatu Kata/Kalimat


'Deskripsi: Membalikkan tulisan di suatu kata atau kalimat.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Minggu, 1 September 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form
' 2. Tambahkan 1 TextBox dan 1 CommandButton.
' 3. Copy-kan coding berikut ke dalam editor form yang
bertalian
'--------------------------------------------------------------------
-----

Private Sub Command1_Click()


Text1.Text = BalikkanString(Text1.Text)
End Sub

Function BalikkanString(strKalimat As String) As String


Dim i As Integer, Panjang As Integer
Dim strTampung As String
Panjang = Len(strKalimat)
For i = Panjang To 1 Step -1
strTampung = strTampung & Mid(strKalimat, i, 1)
Next i
BalikkanString = strTampung
End Function

Private Sub Form_Load()


Text1.Text = "Masino Sinaga"
End Sub

Menghitung Jumlah Digit dalam Suatu Bilangan


'Deskripsi: Menghitung jumlah digit dalam suatu bilangan tertentu.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form.
' 2. Copy-kan coding berikut ke dalam editor form ybt.
'-------------------------------------------------------------------

Private Function GetDigitCount(inValue As Double) As Double


GetDigitCount = Int(Log(inValue) / Log(10)) + 1
End Function
Private Sub Form_Load()
'Ganti '123456789' dengan bilangan yang Anda ingikan untuk
'dihitung jumlah digitnya.
MsgBox GetDigitCount(123456789)
End Sub

Memformat Angka Menjadi Style Indonesia


'Deskripsi: Memformat angka menjadi style Indonesia, yaitu antara
' kelipatan ribuan dipisahkan dengan karakter titik, dan
' menambahkan dua digit bilangan nol di belakang koma.
' Jika Regional Setting di PC menggunakan setting US atau
' English atau default Internasional, maka jika menggunakan
' fungsi Format(50000, "#,#") atau jika menggunakan
' fungsi FormatNumber(50000, 2) hasilnya bisa menjadi:
' 50,000.00 atau jika setting PC Indonesia maka menjadi
' 50.000,00.
' Fungsi buatan di bawah ini mengubahnya secara fix menjadi
' setting Indonesia, yaitu: 50.000,00 dan tidak terpengaruh
' dengan Regional Settings, apakah Internasional atau
' setting Indonesia.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Kamis, 29 Agustus 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Commandbutton,
dan
' 1 TextBox
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

'Masukkan bilangan di Text1, lalu tekan Enter untuk


'menampilkan angka dalam format Indonesia
Private Sub Command1_Click()
MsgBox FormatAngka(Text1.Text)
Text1.SetFocus
SendKeys "{Home}+{End}"
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)


Command1.Default = True
End Sub

'Parameter Angka bertipe Variant, untuk mengatasi


'apakah input dalam tipe data apapun
Public Function FormatAngka(Angka) As String

'Variabel yang digunakan di fungsi


Dim Jumlah As Integer, Jumlah1 As Integer
Dim i As Integer, j As Integer, k As Integer
Dim strAngka As String, strAngka1 As String
Dim strAngkaFull As String
Dim strTemp As String, strTemp1 As String

'Tampung nilai angka ke dalam variabel string


strAngka = CStr(Trim(Angka))

'Karena parameternya bertipe angka bulat, maka tidak boleh


'ada karakter lainnya (termasuk titik dan koma)
'selain karakter angka saja...
If InStr(1, strAngka, ".") > 0 Or _
InStr(1, strAngka, ",") > 0 Or _
Not IsNumeric(Angka) Then
MsgBox "Harus bilangan bulat dan tidak" & vbCrLf & _
"boleh mengandung karakter" & vbCrLf & _
"titik atau koma.", _
vbCritical, "Bukan Bilangan Bulat"
Exit Function
End If

'Tambahkan dua angka nol di belakang string strAngka


strAngkaFull = strAngka & "00"

'Tampung jumlah digit


Jumlah = Len(Trim(strAngkaFull))

'Inisialisasi untuk counter menghitung per karakter


j = 0
strTemp = ""

'Ulangi setiap karakter mulai dari kanan ke kiri


For i = Jumlah To 1 Step -1 'Step -1 = berkurang 1

j = j + 1 'Counter untuk semua karakter


k = k + 1 'Counter untuk letak tanda titik

'Tampung setiap satu karakter ke strTemp


strTemp = strTemp & Mid(strAngkaFull, i, 1)

'Jika counter = 2 (untuk letak tanda koma desimal)


If j = 2 Then

'Tambahkan karakter koma


strTemp = strTemp & ","

'Inisialisasi kembali counter untuk titik


k = 0
End If

'Jika counter utk titik = 3 dan


'belum mencapai digit akhir paling kiri (awal).
'Hal ini untuk menghindari karakter titik di akhir...
If k = 3 And i <> 1 Then

'Tambahkan karakter titik


strTemp = strTemp & "."

'Inisialisasi kembali counter untuk


'menentukan posisi titik
k = 0

End If
Next i 'Maju ke karakter berikutnya

'Tampung jumlah karakter strTemp yang berasal


'dari iterasi di atas ini
Jumlah1 = Len(Trim(strTemp))

'Iterasi berikut untuk membalikkan posisi bilangan


For i = Jumlah1 To 1 Step -1
strTemp1 = strTemp1 & Mid(strTemp, i, 1)
Next i

'Kembalikan nilai string yg fix ke fungsi FormatAngka


FormatAngka = strTemp1

End Function

Hilangkan Spasi di Suatu String


'Deskripsi: Menghilangkan spasi yang terdapat di tengah-tengah suatu
string.
' Jika Anda ingin menghilangkan spasi di sebelah kiri dan
sebelah
' kanan suatu string, Anda bisa menggunakan fungsi
Trim(str).
' Sedangkan menghilangkan spasi di sebelah kiri
menggunakan:
' LTrim(str), dan sebelah kanan menggunakan: RTrim(str).
' Sebenarnya, tanpa menggunakan fungsi HilangkanSpasi di
bawah ini
' Anda bisa menghilangkan spasi di tengah-tengah suatu
string
' dengan menggunakan fungsi Replace(...). Tapi, dengan
adanya
' fungsi buatan ini, Anda bisa mempelajari logika dalam
mengolah
' karakter demi karakter dalam suatu string, dan bisa Anda
' kembangkan untuk memecahkan persoalan yang lain.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 2 Commandbutton.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

Private Sub Command1_Click()


'Menggunakan fungsi buatan...
MsgBox HilangkanSpasi("Situs Visual Basic Bersama Masino Sinaga")
End Sub

Private Sub Command2_Click()


Dim Hilangkan As String
'Menggunakan fungsi Replace miliknya VB...
Hilangkan = Replace("Situs Visual Basic Bersama Masino Sinaga", "
", "")
MsgBox Hilangkan
End Sub

Public Function HilangkanSpasi(strKalimat As String) As String


Dim i As Integer 'Deklarasi untuk counter
Dim Temp As String 'Deklarasi untuk menampung karakter
Dim Huruf As String * 1 'Deklarasi untuk memeriksa karakter
Temp$ = "": Huruf = "" 'Inisialisasi awal variabel
For i% = 1 To Len(strKalimat) 'Proses sebanyak karakter
'Tampung setiap satu karakter
Huruf = Chr(Asc(Mid(strKalimat, i%, 1)))
'Periksa jika terdapat spasi...
If Len(Trim(Huruf)) < 1 Then
'Tidak usah ditampung (tidak usah diproses)
Else 'Jika tidak terdapat spasi...
'Tampung seperti biasa setiap satu karakter
Temp$ = Temp$ + Chr(Asc(Mid(strKalimat, i%, 1)))
End If 'Akhir pemeriksaan spasi
Next i 'Ke karakter berikutnya
'Tampung string yang sudah hilang spasi-nya...
HilangkanSpasi = Temp$
End Function

Menghitung Jumlah Substring dalam String


'Deskripsi: Menghitung jumlah/banyaknya substring dalam suatu string
tertentu.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form.
' 2. Copy-kan coding berikut ke dalam editor ybt.
'--------------------------------------------------------------------
---------

'Contoh ini akan menunjukkan bahwa string 'is' muncul 2 kali dalam
string 'this is my string'.
'Coding ini menggunakan fungsi 'split' yang hanya terdapat mulai
Visual Basic 6.0 ke atas.
Private Sub Form_Load()
myString = "this is my string"
tempString = Split(myString, "is")
MsgBox "'is' muncul dalam '" & myString & "' sebanyak " &
UBound(tempString) & " kali."
End Sub

Menghitung Jumlah Baris di TextBox


'Deskripsi: Menghitung jumlah baris yang ada di suatu TextBox ketika
' Anda memasukkan data pada textbox dengan MultiLine=True.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Module, 1 Form, 1 Label,
' dan 1 Textbox.
' 2. Set properti MultiLine pada textbox menjadi True.
' 3. Copy-kan coding berikut ke dalam Module dan Form ybt.
'--------------------------------------------------------------------
----

'--- Coding ini di Module Anda...


Declare Function SendMessageLong Lib "user32" Alias "SendMessageA"
(ByVal hwnd _
As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As
Long) As Long
Public Const EM_GETLINECOUNT = &HBA
'--- Batas coding di Module...

'--- Coding ini di Form Anda...


Private Sub Text1_Change()
Dim lineCount As Long
On Local Error Resume Next
lineCount = SendMessageLong(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
Label1 = Format$(lineCount, "##,###")
End Sub

Hanya Huruf Besar Boleh Dientri ke TextBox


'Deskripsi: Hanya huruf besar yang ditampilkan/dientri ke textbox.
' Ada dua cara untuk menampilkan input data dengan huruf
' besar di suatu textbox.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 2 Textbox.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

Private Sub Text1_Change() 'Text1 menggunakan event Change


Dim posisi As Integer
posisi = Text1.SelStart
Text1.Text = UCase(Text1.Text)
Text1.SelStart = posisi
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer) 'Text2 menggunakan


KeyPress
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Hanya Huruf Kecil Boleh Dientri ke TextBox


'Deskripsi: Hanya huruf kecil yang boleh dientri ke textbox.
' Ada dua cara untuk menampilkan input data dengan huruf
kecil
' ke dalam suatu textbox.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 2 Textbox.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

Private Sub Text1_Change() 'Text1 menggunakan event Change


Dim posisi As Integer
posisi = Text1.SelStart
Text1.Text = LCase(Text1.Text)
Text1.SelStart = posisi
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer) 'Text2 menggunakan


KeyPress
KeyAscii = Asc(LCase(Chr(KeyAscii)))
End Sub

Hanya Data Numerik Boleh Dientri ke TextBox


'Deskripsi: Hanya tipe data number/numeric yang boleh dientri ke
dalam textbox.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 2 TextBox.
' 2. Copy-kan coding berikut ke dalam editor yang
bertalian.
'--------------------------------------------------------------------
--

'Hanya karakter 0 sampai dengan 9 saja.


Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 47 Or KeyAscii > 57 Then KeyAscii = 0
End Sub

'Cara di atas hanya menerima karakter 0 sampai dengan 9 saja.


'Agar tombol lainnya seperti Delete, BackSpace, dan SpaceBar
'juga bisa diterima, Anda bisa menggunakan tips di bawah ini:
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Not (KeyAscii >= Asc("0") & Chr(13) _
And KeyAscii <= Asc("9") & Chr(13) _
Or KeyAscii = vbKeyBack _
Or KeyAscii = vbKeyDelete _
Or KeyAscii = vbKeySpace) Then
Beep
KeyAscii = 0
End If
End Sub

Menghapus Isi Semua TextBox


'Deskripsi: Menghapus isi semua texbox yang ada dalam suatu form
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Commandbutton,
dan beberapa textbox.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
-------------------

Private Sub Command1_Click()


Dim Contrl As Control
For Each Contrl In Form1.Controls
If (TypeOf Contrl Is TextBox) Then Contrl.Text = ""
Next Contrl
End Sub

Memeriksa Password Ketika Login


'Deskripsi: Memeriksa password yang dimasukkan user ke dalam textbox
' ketika login ke suatu aplikasi. Jika kesalahan mencapai
' tiga kali, login ditolak.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Textbox, dan 2
Commandbutton.
' 2. Beri nama masing-masing commandbutton dengan cmdOK dan
cmdCancel.
' 3. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
-----------

Dim Hitung As Integer 'Deklarasi variabel global


Dim Jawab As String 'Deklarasi variabel global
Private Sub Form_Load()
Hitung = 0 'Saat form diload, Hitung mula-mula masih 0
End Sub

Private Sub cmdOK_Click()


'Ulangi selama text1 tdk sama dengan "masino"
Do While Text1.Text <> "masino"
Jawab = Text1.Text = "masino" 'Inisialisasi Jawab
'Jika Jawab tdk sama dengan "masino"
If Jawab <> "masino" Then
Hitung = Hitung + 1 'Counter bertambah satu
Tampung (Hitung) 'Hitung ke fungsi Tampung
If Hitung = 3 Then 'Jika Hitung = 3, maka...
'Tampilkan pesan
Print "Password Blocked!"
Text1.Enabled = False 'Text1 tdk bisa diakses
cmdOK.Enabled = False 'cmdOK tdk bisa diakses
cmdCancel.Default = True 'Hanya cmdCancel yg bisa diakses
End If
Exit Sub 'Keluar dari prosedur
Else 'Jika Jawab = "masino"
Exit Do 'Keluar dari Loop
End If
Loop
Print "Welcome" 'Tampilkan pesan sukses
'terserah Anda.. setelah ini akan apa...?
End Sub

Function Tampung(Hitung)
Dim Hasil As Integer
Hasil = 0 'Inisialisasi variabel Hasil
Hasil = Hasil + Hitung
Text1.SetFocus 'Fokuskan kursor ke text1 kembali
SendKeys "{Home}+{End}" 'Highlight text1
Print "Kesempatan ke-" & Hasil 'Tampilkan sudah berapa kali
salah password
End Function

Private Sub cmdCancel_Click()


Unload Me 'Keluar dari program
End Sub

'Jika di text1 telah diisi, tombol OK siap dienter


Private Sub Text1_KeyPress(KeyAscii As Integer)
cmdOK.Default = True
End Sub

Memeriksa Apakah Soundcard Ada


'Deskripsi: Memeriksa apakah soundcard ada terinstall di PC Anda.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Jumat, 10 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form dan 1 Module.
' 2. Copy-kan coding berikut ke dalam editor form & module
ybt.
'--------------------------------------------------------------------
--------

'--- Coding ini di Module...


Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long
'--- Akhir coding di Module...

'--- Coding ini di Form Anda...


Private Sub Form_Load()
Dim I As Integer
I = waveOutGetNumDevs()
If I > 0 Then
MsgBox "PC Anda dapat memainkan file suara", _
vbInformation, "Soundcard Oke"
Else
MsgBox "PC Anda tidak dapat memainkan file suara!", _
vbCritical, "Tidak Terpasang"
End If
End Sub

Mempause Program (1)


'Deskripsi: Mempause program selama selang waktu tertentu dan
memberikan
' kepada proses lainnya untuk melakukan prosesnya selama
program
' ini dipause dengan menggunakan fungsi Timer dan DoEvents.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Rabu, 15 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Commanbutton, & 1
Label.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
--------

'Jika Anda ingin agar program melakukan pause selama selang waktu
'yang ditentukan di bawah tetapi tidak mengizinkan proses lainnya
'berlangsung, tutup statement DoEvents yang ada di dalam prosedur
'di bawah ini...

Private Sub Command1_Click()


Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Klik Yes untuk mempause 5 detik", _
4 + vbQuestion)) = vbYes Then
PauseTime = 5 'Set durasi pause/interval
Start = Timer 'Set waktu mulai.
Do While Timer < Start + PauseTime
Label1.Caption = Format(Timer, "#,#")
DoEvents 'Berikan ke proses lainnya.
'Jika tidak ingin memberikan ke proses lain,
'tutup statement DoEvents ini.
Loop
Finish = Timer 'Set waktu selesai.
TotalTime = Finish - Start 'Hitung total waktu pause.
'Tampilkan pesan
MsgBox "Telah dipause selama " & TotalTime & " detik", _
vbInformation, "Pause"
Else
End
End If
End Sub

Mempause Program (2)


'Deskripsi: Mempause program selama selang waktu tertentu tanpa
memberikan
' kesempatan kepada proses lain untuk melaksanakan
kegiatannya.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Rabu, 15 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 Module, 1
Commanbutton,
' dan 1 TextBox.
' 2. Copy-kan coding berikut ke dalam editor module & form
ybt.
'--------------------------------------------------------------------
--------

'--- Coding ini di Module...


Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As
Long)
'--- Akhir coding di Module...

'--- Coding ini di Form...


Private Sub Command1_Click()
'Ganti 5000 dengan jumlah milidetik untuk mempause program...
'(1000 milidetik = 1 detik)
Sleep 5000
'Untuk melihat efek pause tanpa memberikan kesempatan kepada proses
lain,
'coba klik Text1 yang ada. Text1 tersebut tidak dapat diklik karena
'harus menunggu 5 detik terlebih dulu...
End Sub

Tentang SendKeys
'Deskripsi: SendKeys merupakan cara untuk mengirimkan nilai penekanan
suatu
' tombol/tuts pada keyboard ke suatu objek tertentu atau ke
' dalam program.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Rabu, 15 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form, 1 TextBox, dan
' 1 Commandbutton.
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
------

'Klik tiga kali Command1, dan amati setiap perubahan yang terjadi.

Private Sub Command1_Click()


If Command1.Caption = "Masukkan Data" Then 'Klik pertama
Command1.Caption = "Sorot Data"
Text1.SetFocus 'Ini harus ada agar diisi ke textbox
SendKeys "M" 'Ketik "M"
SendKeys "a" 'Ketik "a"
SendKeys "s" 'Ketik "s"
SendKeys "i" 'Ketik "i"
SendKeys "n" 'Ketik "n"
SendKeys "o" 'Ketik "o"
SendKeys " " 'Ketik spasi
SendKeys "S" 'Ketik "S"
SendKeys "i" 'Ketik "i"
SendKeys "n" 'Ketik "n"
SendKeys "a" 'Ketik "a"
SendKeys "g" 'Ketik "g"
SendKeys "a" 'Ketik "a"
ElseIf Command1.Caption = "Sorot Data" Then 'Klik kedua
Command1.Caption = "Hapus Data"
Text1.SetFocus 'Ini harus ada
SendKeys "{Home}+{End}" 'Sorot data di textbox
ElseIf Command1.Caption = "Hapus Data" Then 'Klik ketiga
Command1.Caption = "Masukkan Data"
Text1.SetFocus 'Ini harus ada
SendKeys "{Delete}" 'Tekan tombol "Delete"
End If
End Sub

Private Sub Form_Load()


Command1.Caption = "Masukkan Data"
End Sub

Tentang WithEvents
'Deskripsi: 'WithEvents' adalah sebuah cara memberitahukan ke program
untuk
' mengatasi seluruh event yang berhubungan dengan suatu
control.
' Dalam contoh ini, kita menghubungkan dengan Commandbutton
pada
' event 'Click'.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Jumat, 10 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form saja!
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
-----------
Option Explicit 'Semua variabel yang digunakan harus
dideklarasikan
Private WithEvents cmdButton As CommandButton 'hubungkan ke
Commandbutton

Private Sub Form_Load() 'Mula-mula belum ada commandbutton di form


'Tambahkan commandbutton yang baru...
Set cmdButton = Controls.Add("VB.CommandButton", "Button")
With cmdButton 'Setting untuk cmdButton...
.Visible = True
.Width = 3000
.Caption = "Ini tombol baru..."
.Top = 1000
.Left = 1000
End With
End Sub

Private Sub cmdButton_Click()


cmdButton.Caption = "Oke, Anda berhasil mengkliknya!"
End Sub

Tentang WithEvents
'Deskripsi: 'WithEvents' adalah sebuah cara memberitahukan ke program
untuk
' mengatasi seluruh event yang berhubungan dengan suatu
control.
' Dalam contoh ini, kita menghubungkan dengan Commandbutton
pada
' event 'Click'.
'Pembuat : Masino Sinaga (masino_sinaga@posindonesia.co.id)
'Diupload : Jumat, 10 Mei 2002
'Persiapan: 1. Buat 1 Project baru dengan 1 Form saja!
' 2. Copy-kan coding berikut ke dalam editor form yang
bertalian.
'--------------------------------------------------------------------
-----------
Option Explicit 'Semua variabel yang digunakan harus
dideklarasikan
Private WithEvents cmdButton As CommandButton 'hubungkan ke
Commandbutton

Private Sub Form_Load() 'Mula-mula belum ada commandbutton di form


'Tambahkan commandbutton yang baru...
Set cmdButton = Controls.Add("VB.CommandButton", "Button")
With cmdButton 'Setting untuk cmdButton...
.Visible = True
.Width = 3000
.Caption = "Ini tombol baru..."
.Top = 1000
.Left = 1000
End With
End Sub

Private Sub cmdButton_Click()


cmdButton.Caption = "Oke, Anda berhasil mengkliknya!"
End Sub

Tipe Data di Visual Basic

Berikut adalah tipe data di Visual Basic, termasuk ukuran penyimpanan dan range (batas bawah dan
batas atas) dari setiap tipe data tersebut:

---------------------------------------------------------------------
---
Data type Storage size Range
---------------------------------------------------------------------
---
Byte 1 byte 0 to 255
Boolean 2 bytes True or False

Integer 2 bytes -32,768 to 32,767

Long
(long integer) 4 bytes -2,147,483,648 to 2,147,483,647

Single
(single-
precision
floating-point) 4 bytes -3.402823E38 to -1.401298E-45
for negative values;
1.401298E-45 to 3.402823E38
for positive values

Double
(double-
precision
floating-point) 8 bytes -1.79769313486231E308 to
-4.94065645841247E-324
for negative values;
4.94065645841247E-324 to
1.79769313486232E308
for positive values
Currency
(scaled
integer) 8 bytes -922,337,203,685,477.5808 to
922,337,203,685,477.5807

Decimal 14 bytes 79,228,162,514,264,337,


593,543,950,335
with no decimal point;
7.9228162514264337593543950335
with 28 places to the right
of the decimal;
smallest non-zero number is
0.0000000000000000000000000001

Date 8 bytes January 1, 100 to December 31, 9999

Object 4 bytes Any Object reference

String
(variable-
length) 10 bytes 0 to approximately 2 billion
string length

String
(fixed-
length) Length of 1 to approximately 65,400
string

Variant
(with
numbers) 16 bytes Any numeric value up to
the range of a Double

Variant
(with
characters) 22 bytes
string length Same range as for variable-length
String

User-defined
(using Type) Number required
by elements The range of each element is the same
as the range of its data type.

Catatan: Arrays dengan tipe data apapun membutuhkan 20 bytes di memori ditambah 4 bytes untuk
setiap array dimension ditambah dengan jumlah byte yang ditempati oleh data array itu sendiri.
Memory yang ditempati oleh data dapat dihitung dengan memperbanyak jumlah elemen data dari
ukuran setiap elemennya. Sebagai contoh, data dalam array berdimensi tunggal terdiri dari 4 elemen
data Integer yang setiap datanya menggunakan 2 bytes dan secara keseluruhan menempati 8 bytes
di memori. Jumlah 8 bytes yang dibutuhkan untuk data ditambah 24 bytes berikutnya mengakibatkan
total memori yang dibutuhkan untuk array ini menjadi 32 bytes.

Gunakan fungsi StrConv untuk mengkonversi data tipe string ke tipe data lainnya.

Anda mungkin juga menyukai