'smooth crue: Visual Basic 6.0 Lanjut...

Senin, Oktober 11

Visual Basic 6.0 Lanjut...

Fungsi String

Adakalanya didalam pembuatan sebuah program kita perlu memanipulasi string. Manipulasi ini dapat dilakukan dengan cara menggunakan fungsi-fungsi bawaan Visual Basic yang memang diperuntukkan untuk memanipulasi string. Berikut diberikan beberapa fungsi yang sering dipakai. (Catatan: dalam program, penulisan string diapit dengan tanda kutip ganda).

1. Val(string)
Fungsi Val menerima sebuah argumen berupa string dan merubahnya menjadi numerik. Contoh: Val("1990") akan menghasilkan angka 1990. Val("1990 AD") akan menghasilkan angka 1990. Val("Th 1990") akan menghasilkan angka 0.
2. Left(string, length)
Fungsi Left yang menerima 2 buah argumen yaitu string dan length, akan menghasilkan string sepanjang length karakter. Contoh: Left(“Global”,3) akan menghasilkan “Glo”
3. Right(string,length)
Jika fungsi Left mengambil karakter dari kiri, maka fungsi Right akan mengambil karakter dari kanan string sebanyak length karakter. 
Contoh: Right(“Global”,3) akan menghasilkan “bal”
4. Mid(string,start,length)
Fungsi Mid akan mengambil karakter dari string dimulai pada posisi start sepanjang length karakter. 
Contoh: Mid(“Global”,3,3) akan menghasilkan “oba”
5. Ltrim(string)
Fungsi Ltrim akan membuang semua spasi yang berada disebelah kiri string.
Contoh: Ltrim(“ Global”) akan menghasilkan “Global”
6. Rtrim(string)
RTrim akan membuang semua spasi yang berada disebelah kanan string.
Contoh: Nama = Ltrim(“Global ”) akan menghasilkan “Global”
7. Trim(string)
Fungsi Trim akan membuang semua spasi yang berada disebelah kanan dan di sebelah kiri string.
Contoh: Trim(“ Global ”) akan menghasilkan “Global”
8. Len(string)
Fungsi Len akan menghitung jumlah karakter yang terdapat pada string.
Contoh: Len(“Global”) akan menghasilkan 6
9. UCase(string)
Fungsi UCase akan merubah semua huruf pada string menjadi huruf besar/huruf kapital.
Contoh: UCase(“Global”) akan menghasilkan “GLOBAL”
10. LCase(string)
Kebalikannya dari UCase, LCase akan merubah semua huruf pada string menjadi huruf kecil.
Contoh: LCase(“GlobAL”) akan menghasilkan “global”

Percabangan Bersyarat

If..Then
IF THEN 
hanya akan dijalankan bila benar

Contoh:
If Text1.Text = "Hallo" Then MsgBox "Hallo Juga!"

If..Then..Else
IF THEN

ELSE

END IF
Jika benar, jalankan , jika tidak jalankan 

Contoh:
If Val(Text1.Text) > 65 Then
MsgBox "Selamat! Anda Lulus"
Else
MsgBox "Maaf! Anda Tidak Lulus"
End If

Penggunaan IF..THEN..ELSE dapat saling berkait (nested):
IF THEN

ELSE
IF THEN

ELSE

END IF
END IF

Contoh:
If Val(Text1.Text) > 80 then
MsgBox "Nilai = A"
Else
If Val(Text1.Text) > 60 then
MsgBox "Nilai = B"
Else
MsgBox "Nilai = C"
End If
End If


Baris kode diatas dapat disederhanakan menjadi:
IF THEN

ELSEIF THEN

ELSE

END IF

Contoh:
If Val(Text1.Text) > 80 then
MsgBox "Nilai = A"
ElseIf Val(Text1.Text) > 60 then
MsgBox "Nilai = B"
Else
MsgBox "Nilai = C"
End If

Select Case
Digunakan untuk memilih dari beberapa pilihan bergantung pada nilai yang akan diuji. Pengujian dilakukan dari blok case teratas sampai terbawah, dan hanya ada satu blok case yang akan dijalankan.
SELECT CASE 
CASE 

CASE 

CASE ELSE

END SELECT

Contoh:
Select Case Text1.Text
Case "A"
MsgBox "Nilai = 4"
Case "B"
MsgBox "Nilai = 3"
Case "C"
MsgBox "Nilai = 2"
Case "D"
MsgBox "Nilai = 1"
End Select

Pemindahan Fokus pada Textbox
Pemindahan fokus untuk textbox dapat dilakukan dengan 3 cara. Cara pertama ialah dengan menggunakan mouse, klik textbox yang ingin kita isi. Cara kedua ialah dengan menggunakan tombol “Tab” pada keyboard. Cara yang ketiga ialah dengan menggunakan kode pada event “keypress”.
Dengan cara pertama, kita cukup meng-klik textbox yang kita mau dengan mouse. Dengan cara ini pemindahan fokus textbox agak sulit dilakukan karena tangan kita harus meraih mouse dan menekan tombol kiri pada textbox yang ingin diisi terlebih dahulu.
Dengan cara kedua, pemindahan menjadi lebih mudah karena kita hanya cukup menekan tombol tab. Pada cara ini perpindahan fokus tergantung dari property TabIndex masing-masing textbox. Dimana nilai terkecil akan menerima fokus terlebih dahulu.
Cara ketiga lebih mudah lagi, karena perpindahan tidak tergantung pada property TabIndex tersebut. Cukup tekan enter dan kita set textbox mana yang akan menerima fokus berikutnya.

‘Kode dibawah ini akan memindahkan fokus ke Text2 setelah kita menekan Enter pada Text1
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn then
Text2.SetFocus
End If
End Sub

Penggunaan event Change pada textbox
Event Change pada textbox terjadi bila kita merubah isi dari textbox melalui pengisian langsung pada textbox yang bersangkutan atau melalui perubahan setting pada property Text-nya pada saat running-time.

‘Kode dibawah ini akan menambahkan “a” dengan isi dari Text1 dan menyimpannya ke Text2
Private Sub Text1_Change()
Text2.Text = “a” & Text1.Text
End Sub

Tipe-Tipe Data dalam Visual Basic

Tipe Data Range Karakter
Integer -32768 s/d 32767 %
Long -2147483648 s/d 2147483647 &
Single Negatif: -3,402823E38 s/d -1,401298E-45
Positif: 1,401298E-45 s/d 3,402823E38 !
Double Negatif: -1,79769313486232E308 s/d 
-4,94065645841247E-324
Positif: 4,94065645841247E-324 s/d
1,79769313486232E308 #
Currency -922337203685477,5808 s/d
922337203685477,5807 @
String 0 s/d 2 milyar karakter (win32)
0 s/d 65535 karakter (win16) $
Byte 0 s/d 255 
Boolean True (Benar) dan False (Salah) 
Date 1 Januari 100 s/d 31 Desember 9999 
Object Referensi Object 
Variant Null, Error, dan seluruh tipe data lain diatas 


Database Programming Dengan VB6

Membuat Database
Pembuatan database yang dibahas pada modul ini mencakup pembuatan database Microsoft Access (*.mdb) dengan menggunakan Visual Basic Add-Ins yaitu Visual Data Manager.
Untuk menjalankan Visual Data Manager, pilih menu Add-Ins  Visual Data Manager pada menu utama VB 6.0. Setelah itu akan muncul tampilan seperti dibawah ini.

Untuk membuat sebuah database, pilih menu File  New  Microsoft Access  Version 7.0 MDB.

Setelah itu akan muncul tampilan yang meminta kita untuk memasukkan nama file database dan lokasinya.

Setelah menentukan lokasi dan nama databasenya, tekan tombol Save hingga muncul tampilan berikut.

Klik kanan pada Database Window dan pilih New Table, sehingga tampil window Table Structure.

Ketikkan TbBarang pada Table Name lalu tekan Add Field yang akan menampilkan form berikut

Ketikkan KodeBarang pada Name sebagai nama dari field yang pertama. Pilih Text pada Type untuk menentukan tipe data dari field Kode Barang. Isikan 8 pada Size untuk menentukan lebar data yang dapat disimpan pada field tersebut. Klik OK. 
Untuk menambahkan field-field yang lain, isi lagi Name, pilih Type dan isi Size. Jika semua field sudah dimasukkan, tekan Close untuk menutup window Add Field.
Penambahan Index dilakukan dengan cara yang hampir sama dengan penambahan Field. Klik Add Index hingga muncul tampilan

Ketikkan IdxKodeBarang pada Name sebagai nama dari index. Setelah itu pilih field yang ingin di-index pada Available Fields. Field yang di-Index akan tampil pada Indexed Fields. Dengan menggunakan Index, maka record-record akan diurutkan berdasarkan field yang diindex. Selain itu dengan adanya Index, kita dapat menggunakan metode Seek untuk mencari record. Dengan cara ini pencarian record lebih cepat daripada dengan cara sequential dengan metode Find.

Bound Control
Di dalam Visual Basic, terdapat sebuah control yang disebut Data Control. Dengan Data Control ini dan beberapa control yang dapat dihubungkan dengan Data Control (disebut juga Data-Bound Control), kita dapat membuat sebuah program database sederhana dengan mudah. 
Walaupun demikian, tidak semua database di support oleh Visual Basic Data Control. Access dan dBase adalah beberapa contoh yang telah disupport oleh Visual Basic. Untuk lebih jelasnya letakkan sebuah Data Control pada form, lihat property Connect pada Data Control. Disana dapat dilihat list yang disupport oleh Visual Basic.
Untuk pemakaian, letakkan sebuah Data Control pada form. Set property DatabaseName dengan nama database Access beserta path-nya. Set property RecordSource dengan nama table yang ingin digunakan. Visual Basic juga memungkinkan penggunaan statement SQL SELECT dan query yang disimpan pada database Access.
Selain menghubungkan form dengan database, Data Control juga dapat digunakan untuk navigasi record-record.

Kasus I : Browsing Database dengan Bound Control
Buat sebuah project dengan nama prjBound.vbp. Selanjutnya lihat tabel di bawah :
Object Property Setting
Form Name frmBarang
Caption Pemeliharaan Data Barang
Data Name datBarang
Caption Barang
DatabaseName c:\vb\data.mdb
RecordSource tbBarang
Text Name txtKodeBarang
DataField KodeBarang
DataSource datBarang
Text

Name txtNama
DataField Nama
DataSource datBarang
Text Name txtHargaSatuan
DataField HargaSatuan
DataSource datBarang
Object Property Setting
Text Name txtStok
DataField Stok
DataSource datBarang

Gunakan Visual Basic Menu Editor untuk membuat menu sbb:
Caption Name
&File mnuFile
----E&xit mnuFileExit

Pada event click untuk mnuFileExit ketikkan perintah:

Private Sub mnuFileExit_Click()
Unload Me
End Sub

Jalankan program, perhatikan bahwa textbox langsung terisi dengan data record pertama dalam tabel tbBarang. Coba juga melakukan navigasi record-record dengan mengklik First Record, Previous Record, Next Record, Last Record. Perhatikan juga bahwa isi text akan otomatis di-update berdasarkan navigasi yang kita lakukan. 
Selain itu, jika kita melakukan perubahan pada data yang aktif, perubahan akan otomatis disimpan apabila kita berpindah record. Dengan demikian kita sudah dapat membuat sebuah aplikasi database sederhana tanpa kode sedikitpun. Pada contoh diatas, kode program hanya untuk menu keluar aplikasi.
Namun demikian, aplikasi ini tidak / belum dapat melakukan validasi pemasukan data, menambah data ataupun menghapus data. Untuk itu kita perlu memodifikasi aplikasi tersebut diatas.

Kasus II : Validasi Data

Agar aplikasi kita dapat melakukan validasi data, maka kita harus memodifikasi aplikasi sebelummnya. Tehnik yang dilakukan ialah dengan menggunakan event Validate dari Data Control.
Setiap navigasi - merubah posisi record / pindah ke record lain, Visual Basic akan menjalankan event Validate dari Data Control tersebut. Di dalam event inilah kita akan menulis kode yang nantinya dapat memvalidasi data yang akan disimpan ke dalam database.
Perubahan posisi record dengan data control dinyatakan dengan konstanta Visual Basic : vbDataActionMoveFirst – pindah ke record pertama, vbDataActionMovePrevious – pindah ke record sebelumnya, vbDataActionMoveNext – pindah 1 record ke depan, dan vbDataActionMoveLast – pindah ke record terakhir. Jadi di dalam event ini kita akan mengecek berdasarkan konstanta di atas. 
Selanjutnya kita cek apakah pengisian data sudah sesuai dengan peraturan yang kita buat, misalnya textbox KodeBarang harus diisi. Jika setelah kita cek KodeBarang tidak diisi, maka keluarkan pesan dan set Action menjadi dbDataActionCancel (konstanta built-in Visual Basic yang akan membatalkan).
Buka project diatas, lalu ketikkan kode dibawah ini sebagai Validate event dari data control :

Private Sub datBarang_Validate (Action As Integer, Save As Integer)
If Action = vbDataActionMoveFirst or Action = vbDataActionMovePrevious or Action = vbDataActionMoveNext or Action = vbDataActionMoveLast then
If txtKodeBarang.Text = “” then
Msgbox “Kode Barang harus diisi”, vbExclamation
txtKodeBarang.SetFocus
Action = vbDataActionCancel
End If
End If
End Sub

Jika user melakukan perpindahan record, maka cek property text pada txtKodeBarang. Jika textbox tersebut kosong, keluarkan pesan error, lalu set focus pada textbox tersebut dan batalkan perpindahan pointer record.

Catatan:
Konstanta Visual Basic Nilai Pengganti
vbDataActionCancel 0
vbDataActionMoveFirst 1
vbDataActionMovePrevious 2
vbDataAvtionMoveNext 3
vbDataActionMoveLast 4

Kasus III : Menyediakan Fitur Undo pada Aplikasi

Situasi : setelah user melakukan perubahan pada bound control tetapi sebelum melakukan perpindahan pointer record untuk menyimpan perubahan, user ingin membatalkan perubahan yang ia buat. Untuk itu Visual Basic telah menyediakan UpdateControls Method dari Data Control. Dengan mengeksekusi method ini, maka Visual Basic akan membaca ulang database dan mengisi bound control dengan data asli dari database.
Modifikasi project diatas dengan merubah sistem menu menjadi :

Caption Name
&File mnuFile
----E&xit mnuFileExit
&Edit mnuEdit
----&Undo mnuEditUndo

Ketikkan kode berikut :

Private Sub mnuEditUndo_Click()
datBarang.UpdateControls
End Sub

Dengan adanya kode diatas, maka jika user memilih menu Edit  Undo, semua textbox akan terisi dengan data asli sebelum user melakukan perubahan.


Kasus IV : Menambah Record
Penambahan record pada bound controls dapat dilakukan dengan 2 cara : dengan merubah property data control atau dengan bantuan kode.
Property yang harus dirubah agar kita dapat menambah record baru ialah property EOFAction. Set property tersebut dengan 2 – AddNew. Dengan demikian jika pointer record telah berada pada record terakhir, penekanan tombol Move Next akan menyebabkan Visual Basic menambahkan record baru dan mengisi semua bound control dengan nilai default dari database (biasanya kosong / tidak diisi). Setelah entry data selesai, penyimpanan dilakukan oleh Visual Basic jika kita berpindah pointer ke record lain atau menambah record baru.
Cara lain yaitu dengan menggunakan kode. Buka project sebelumnya, kembalikan setting property EOFAction pada keadaan semula 0 – Move Last dan rubah sistem menu menjadi :

Caption Name
&File mnuFile
----E&xit mnuFileExit
&Edit mnuEdit
----&Undo mnuEditUndo
&Data mnuData
----&Add Record mnuDataAdd
----&Save Record mnuDataSave

Ketikkan kode dibawah ini :
Private Sub Form_Load()
mnuDataSave.Enabled = False
End Sub

Private Sub mnuDataAdd_Click()
datBarang.Recordset.AddNew
mnuDataSave.Enabled = True
mnuDataAdd.Enabled = False
txtKodeBarang.SetFocus
End Sub

Private Sub mnuDataSave_Click()
datBarang.Recordset.Update
mnuDataSave.Enabled = False
mnuDataAdd.Enabled = True
End Sub

Ketika user memilih menu Data  Add, metode AddNew dari data control akan mereset textbox menjadi nilai defaultnya (kosong / tidak diisi) dan menyiapkan tempat untuk record baru nantinya. Selanjutnya menu Save akan di-enable dan menu Add akan di-disable dan merubah focus ke txtKodeBarang.
Ketika user memiih menu Data  Save, metode Update akan mengkopi isi dari textbox ke dalam database dan mengupdate table sebagai langkah akhir penyimpanan. Selanjutnya menu Save akan di-disable dan menu Add akan di-enable.

Kasus V : Menghapus Data

Kadang diperlukan juga suatu fitur aplikasi yaitu untuk menghapus data. Penghapusan ini biasanya dilakukan apabila, misalnya, penjualan suatu barang tertentu dihapuskan atau dengan kata lain kita tidak menjual barang tersebut lagi untuk seterusnya.
Untuk itu buka kembali project diatas. Rubah sistem menu menjadi :

Caption Name
&File mnuFile
----E&xit mnuFileExit
&Edit mnuEdit
----&Undo mnuEditUndo
&Data mnuData
----&Add Record mnuDataAdd
----&Save Record mnuDataSave
----&Delete Record mnuDataDelete

Lalu ketikkan kode berikut :
Private Sub mnuDataDelete_Click()
if MsgBox(“Hapus data ini ?”, vbQuestion + vbYesNo + vbDefaultButton2) = vbYes then
datBarang.Recordset.Delete
datBarang.Recordset.MoveFirst
End If
End Sub

Jika user memilih menu Data  Delete Record, maka akan keluar kotak pesan yang menanyakan konfirmasi penghapusan. Jika user benar-benar ingin menghapus data (user pilih Yes), maka record aktif akan dihapus. Selanjutnya pointer record akan berpindah ke record pertama. Ini untuk menghindari error sebab setelah record dihapus, pointer record tidak akan menuju ke suatu record yang valid.

Kasus VI : Browse Data dengan DBGrid

Untuk user yang biasa menggunakan aplikasi Spreadsheet (Lotus, Excel), mungkin membutuhkan suatu cara penyajian data dalam bentuk tabel. Untuk menyediakan fitur tersebut, kita dapat menggunakan control Data Bound Grid (DBGrid).
Buka kembali project diatas. Tambahkan sebuah CommandButton pada form tersebut :

Object Property Setting
CommandButton Name cmdBrowseBarang
Caption Browse Data Barang

Ketikkan kode berikut sebagai event klik dari tombol yang baru kita buat tersebut:

Private Sub cmdBrowseBarang_Click()
frmBrowseBarang.Show vbModal
End Sub

Maksudnya ialah agar menampilkan form frmBrowseBarang tersebut sebagai modal. Sebelum from frmBrowseBarang ditutup, user tidak akan bisa pindah ke form yang lain.
Setelah itu tambah 1 buah form, 1 buah data control, sebuah DBGrid dan CommandButton:

Object
Property Setting
Form Name frmBrowseBarang
Caption Browse Data Barang
Data Name datBarang
Caption Barang
DatabaseName c:\vb\data.mdb
RecordSource tbBarang
Visible False
DBGrid Name grdBrowseBarang
Align 1 - vbAlignTop
DataSource datBarang
CommandButton Name cmdExit
Caption Keluar



Ketikkan kode berikut sebagai event click dari cmdExit :

Private Sub cmdExit_Click()
Unload Me
End Sub

Jadi jika user klik tombol Keluar, form akan di-unload dan kembali ke form sebelumnya.
Untuk mengisi judul kolom-kolom DBGrid, klik kanan pada DBGrid tersebut dan pilih Retrieve Fields. Judul kolom tersebut akan terisi otomatis berdasarkan nama field dari table tbBarang.
Klik kanan DBGrid, pilih Properties…, pada tab General kita dapat memberikan judul untuk DBGrid tersebut dengan mengisi box Caption.
Jika ingin merubah judul kolom, pilih tab Columns dan rubah Caption dari kolom-kolom tersebut.
Agar user dapat menambahkan data baru langsung pada DBGrid, rubah property AllowAddNew menjadi True atau dengan membari tanda centang pada AllowAddNew pada tab General.
Agar user dapat menghapus data langsung pada DBGrid, rubah property AllowDelete menjadi True atau dengan memberi tanda centang pada AllowDelete pada tab General.
Setelah program dijalankan, DBGrid akan langsung terisi dengan data dari database. Selain itu user dapat menambah data baru, merubah data dan menghapus langsung pada DBGrid.

Data Access Object
Dengan Data Control, kita dapat dengan mudah membuat aplikasi database tanpa atau dengan sedikit kode. Walupun demikian Data Control membatasi akses kita terhadap database itu sendiri. Untuk dapat melakukan kontrol penuh terhadap database dengan fleksibilitas yang besar, Microsoft Jet database engine menyediakan metode lain yaitu dengan menggunakan Data Access Object (DAO) – walaupun dengan koding yang lebih banyak.

Deklarasikan variabel database dan recordset
Contoh:
Dim dbBarang As Database
Dim rsPemilik As Recordset

Set database dan recordset
Contoh:
Set dbBarang = OpenDatabase("c:\data.mdb")
Set rsPemilik = db.OpenRecordset("tbPemilik")
Catatan: tbPemilik adalah nama tabel.

Menambah record baru
Contoh:
rsPemilik.AddNew
rsPemilik!KodePemilik = txtKodePemilik.Text
rsPemilik!NamaPemilik = txtNamaPemilik.Text
rsPemilik.Update

Mencari data dengan index
Contoh:
rsPemilik.Index = "idxKodePemilik"
rsPemilik.Seek "=", txtCari.Text

Menghapus record
Contoh:
rsPemilik.Delete
rsPemilik.MoveFirst/MoveLast
Catatan: setelah penghapusan data, pointer record tidak menunjuk ke record yang valid. Oleh karena itu untuk menghindari masalah, pindahkan pointer record ke record pertama/terakhir.

Merubah data
Contoh:
rsPemilik.Edit
rsPemilik!KodePemilik = txtKodePemilik.Text
rsPemilik!NamaPemilik = txtNamaPemilik.Text
rsPemilik.Update
Catatan : Untuk menghapus atau merubah data, data yang ingin dirubah / dihapus harus dijadikan record aktif dengan terlebih dahulu melakukan pencarian terhadap record tersebut. Jika data yang dicari ada, baru dapat dilakukan penghapusan / perubahan.

Bacaan lain tentang :



Widget by smooth

Tidak ada komentar: