Buku ini membahas tentang pembuatan program Windows Form dengan bahasa
pemrograman Visual Basic .Net, dan ditujukan kepada siapa saja yang serius untuk
mempelajari pembuatan form dan control dengan VB.NET secara koding (tanpa
menggunakan fasilitas designer pada Visual Studio .NET). Bagi anda yang belum
mengenal bahasa pemrograman VB.NET sebaiknya memulai proses belajar dengan buku
Bahasa Pemrograman VB.NET.
Untuk mempelajari buku ini anda tidak perlu menginstalasi Visual Studio .NET, tetapi
anda cukup menginstalasi .Net Framework yang dapat didownload secara gratis dari
website Microsoft.
Semua contoh dan latihan dibuku ini dapat dikompilasi langsung dari Dos prompt dengan
menggunakan kompiler Visual Basic yang langsung tersedia setelah anda menginstalasi
.Net Framework.
Dibandingkan dengan Visual Basic 6.0, maka VB.NET adalah benar-benar bahasa
pemrograman, dimana pembuatan form dan control dapat dilakukan secara koding 100%,
sedangkan pada Visual Basic 6.0 hal tersebut tidak dimungkinkan.
INDOPROG 1
Pemrograman Form pada VB.NET Hendra, S.T.
Catatan :
Pada VB.NET, kita dapat melakukan pemrograman form tanpa menggunakan fasilitas
designer sama sekali dan tentu saja cara ini cukup menyulitkan bagi programmer VB
yang sudah terbiasa menggunakan IDE.
Sebenarnya fasilitas IDE berbasis .NET dapat diperoleh dengan menginstalasi Visual
Studio.NET, dan tentu saja membutuhkan suatu investasi yang besar untuk mempelajari
bahasa pemrograman ini bagi mahasiswa maupun kalangan perguruan tinggi.
Tutorial ini menggunakan pendekatan koding langsung yang dapat dilakukan dengan
notepad maupun edit, dan hasil koding dapat dikompilasi dengan compiler Visual Basic
yang tersedia begitu kita menginstalasi Microsoft .NET Framework yang dapat
didownload gratis di situs Microsoft.
Penulis yakin proses pembelajaran dengan pendekatan koding merupakan langkah yang
sangat tepat untuk membawa anda menjadi professional yang menguasai VB.NET secara
mendalam dan mengendalikan secara penuh program aplikasi anda.
Adapun program aplikasi Windows yang berbasis pada form yang paling sederhana
adalah :
Option Explicit On
Imports System
INDOPROG 2
Pemrograman Form pada VB.NET Hendra, S.T.
Sub Main()
Form1.Text = "Belajar Buat Form" 'untuk title form
Form1.ShowDialog() 'form modal
End Sub
End Module
Proses Kompilasi
Kemudian simpan dengan nama form.vb anda dapat melakukan kompilasi dengan
perintah :
Contoh :
Sub Main()
Form1.Text = "Form ini senantiasa diatas form lainnya"
Form1.TopMost = True
Form1.ShowDialog()
End Sub
End Module
INDOPROG 3
Pemrograman Form pada VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports System.Threading
Sub Main()
Form1.Text = "Form ini akan semakin transparan"
Form1.Show()
For I As Double = 1 To 0 Step -0.01
Form1.Opacity = I
Form1.Refresh() 'refresh form dengan setting baru
Thread.Sleep(100) 'memperlambat program 100 millidetik
Next I
End Sub
End Module
Untuk form Modal dapat digunakan metoda ShowDialog(), sedangkan untuk form
Modeless dapat digunakan metoda Show().
Setting Description
None Tidak ada border, biasanya digunakan untuk splash screen
Fixed3D Menggunakan efek tiga dimensi. Ukuran form tidak dapat diubah. Dapat diikuti oleh
tombol control-menu box, title bar, Maximize dan Minimize pada title bar.
FixedDialog Digunakan untuk fixedDialog
FixedSingle Tidak dapat diubah ukurannya
FixedToolWindow Digunakan untuk tool windows, dan form tidak ditampilkan pada task bar
Sizable Form default
SizableToolWindow Tools windows yang dapat diubah ukurannya
Option Explicit On
Imports System
INDOPROG 4
Pemrograman Form pada VB.NET Hendra, S.T.
Sub Main()
Form1.Text = "Form ini menggunakan border fixed 3D"
Form1.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.FixedDialog
Form1.ShowDialog()
End Sub
End Module
Kita dapat juga mengatur keberadaan button maximize dan minimize, dengan properti
MinimizeBox dan MaximizeBox, contoh :
Option Explicit On
Imports System
Sub Main()
Form1.Text = "Form ini tanpa tombol Maximize dan Minimize"
Form1.MinimizeBox = False
Form1.MaximizeBox = False
Form1.ShowDialog()
End Sub
End Module
Option Explicit On
Imports System
Sub Main()
Form1.Text = "Form ini berukuran 500 x 500 pixel"
Form1.Width = 500
Form1.Height = 500
Form1.ShowDialog()
End Sub
End Module
Catatan :
Jika kita tidak menentukan ukuran form, maka default suatu form adalah 300 x 300 pixel
INDOPROG 5
Pemrograman Form pada VB.NET Hendra, S.T.
Ukuran form juga tergantung pada setting properti WindowState, yang mana dapat diset
dengan enumerasi dari FormWindowState berikut :
Option Explicit On
Imports System
Sub Main()
Form1.Text = "Form ini dalam state Maximize"
Form1.WindowState =
System.Windows.Forms.FormWindowState.Maximized
Form1.ShowDialog()
End Sub
End Module
Sub Main()
Form1.Text = "Form ini berada di posisi 0,0"
Form1.Top = 0
Form1.Left = 0
Form1.ShowDialog()
End Sub
End Module
INDOPROG 6
Pemrograman Form pada VB.NET Hendra, S.T.
Contoh :
Option Explicit On
Imports System
Sub Main()
Form1.Text = "Form ini berada ditengah layar"
Form1.StartPosition =
System.Windows.Forms.FormStartPosition.CenterScreen
Form1.ShowDialog()
End Sub
End Module
Latihan :
Buatlah program aplikasi windows yang dapatkan menampilkan form dengan ketentuan
sebagai berikut :
1. Judul Form : Form saya yang pertama
2. Ukuran : 450 x 450 pixel
3. Berada diposisi : 200,200
4. Bingkai : Fixed Single
5. Opacity : 0.5
INDOPROG 7
Pemrograman Form pada VB.NET Hendra, S.T.
Option Explicit On
Imports System
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
Catatan :
Inheritance adalah salah satu ciri-ciri dari pemrograman berorientasi objek. Sebagaimana
kita ketahui bahwa Class Form telah tersedia pada .NET terdefinisi pada namespace
System.Windows.Forms.
Selanjutnya jika kita membuat class baru dengan melakukan inherit dari class Form,
maka secara otomatis akan mewarisi semua property, metoda, dan event yang sifatnya
protected dan public pada class Form.
Jadi kita tidak perlu perlu menulis ulang semua prilaku pada class baru, melainkan cukup
melakukan inherit dari parent class yang secara otomatis akan mewariskan semua
prilakunya ke child class.
Inheritance
Salah satu keunggulan dari OOP adalah isu pemanfaatan kembali. Dengan inheritance
INDOPROG 8
Pemrograman Form pada VB.NET Hendra, S.T.
tugas pemrograman dapat dipemudah. Suatu class yang telah dikembangkan dapat
diperbaharui dengan mengembangkan child class (sub class) yang merupakan inheritance
dari parent class (super class).
Untuk pengaturan setting Form, kita dapat membuat suatu Constructor bagi Class
MyForm. Constructor adalah metoda khusus suatu Class yang akan otomatis dijalankan
begitu instance dari Class dibuat dimemori komputer.
Catatan :
Perintah New MyForm adalah membuat instance dari Class MyForm. Dalam OOP istilah
Class sering dicampuradukan dengan Objek, pada hal sebenarnya Class merupakan cetak
biru dari Objek.
Object merupakan instance dari Class, beberapa object dapat berasal dari Class yang
sama, tetapi memiliki properti yang berbeda-beda (dengan bahasa yang lebih sederhana
dapat dikatakan bahwa class merupakan blue print dari objek-objek).
Misalnya dalam membangun rumah, maka sebelumnya dilakukan rancangan awal dengan
mengambarkan detail dari rumah serta ukuran-ukurannya, kemudian oleh pengembang
akan dibangun rumah-rumah yang nyata berdasarkan blue print tersebut.
Pada pembuatan program OOP, dimulai dengan pembuatan Class, dan pada saat runtime
akan dibuat instance dari Class sebagai Objek, jadi program tersebut berjalan sebagai
objek-objek dimemori komputer.
Pada Visual Basic, constructor untuk suatu Class ciptaan dapat menggunakan Public Sub
New. Contoh :
Option Explicit On
Imports System
INDOPROG 9
Pemrograman Form pada VB.NET Hendra, S.T.
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
Catatan :
Konstruktor merupakan metode khusus pada class, dimana metoda ini otomatis akan
dijalankan oleh computer sesaat instance dari class dibuat, misalnya (New MyForm):
System.Windows.Forms.Application.Run(New MyForm)
Pada dunia nyata, setiap objek mengalami kelahiran dan kematian, contoh sebuah rumah
mengalai tahap pembuatan (pembangunan) dan akhirnya akan diruntuhkan demikian juga
manusia juga mengalami kelahiran dan kematian, pada saat seorang bagi dilahirkan,
maka akan membawa property seperti jenis kelamin, berat badan, dan panjang.
Sebagaimana objek pada dunia nyata, objek dikomputer pada saat dibuat, tentu saja ada
property-properti tertentu yang perlu disetting nilai awalnya, dan hal tersebut dapat
dilakukan dengan membuat konstruktor untuk class tersebut.
INDOPROG 10
Pemrograman Form pada VB.NET Hendra, S.T.
Catatan :
Penanganan Event menjadi salah satu permasalahan yang dihadapi pemrograman yang
mengembangkan aplikasi mereka di lingkungan Windows, sebagaimana kita ketahui
bahwa Windows merupakan system operasi multitasking yang mana komunikasi antara
program aplikasi dengan system operasi dilakukan berdasarkan message.
Pada lingkungan multitasking, berbagai aksi yang dilakukan oleh pemakai pada system
operasi dapat mempengaruhi proses pada program kita, seperti klik pada mouse,
penekanan pada tombol.
Jika anda berasal dari pemrograman lingkungan DOS yang mana proses program berjalan
berdasarkan alur yang kita buat dari baris awal sampai baris terakhir, tentu saja akan
mengalami kesulitan untuk beralih ke pemrograman Windows dengan cepat, sebab
program di Windows berjalan berdasarkan Event. Tetapi saya yakin dengan latihan yang
intensif anda dapat dengan segera menyesuaikan diri.
System.EventHandle
Adapun tata cara penulisan event procedure untuk event yang menggunakan EventHandle
adalahs sebagai berikut :
INDOPROG 11
Pemrograman Form pada VB.NET Hendra, S.T.
System.ComponentModel.CancelEventArgs
Private Sub Form_Closing(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Pada CancelEventArgs tersedia properti Cancel yang dapat diset ke nilai True/False
dengan tujuan proses Closing dilanjutkan atau dibatalkan.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
INDOPROG 12
Pemrograman Form pada VB.NET Hendra, S.T.
Dimana kalau program dijalankan dan kemudian ditutup akan menampilkan kotak pesan
yang berisi urutan event yang terjadi pada form mulai dari program dijalankan sampai
ditutup.
Dalam tata cara penulisan event procedure untuk event mouse terbagi atas dua jenis
argumen yang dikirim ke procedure, yaitu EventHandle, dan MouseEventHandle.
INDOPROG 13
Pemrograman Form pada VB.NET Hendra, S.T.
System.EventHandle
Adapun tata cara penulisan event procedure untuk event yang menggunakan EventHandle
adalahs sebagai berikut :
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.EnableVisualStyles()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
System.Windows.Forms.Form.MouseEventHandle
Adapun tata cara penulisan event procedure untuk event yang menggunakan
MouseEventHandle adalah sebagai berikut :
Private Sub NamaKontrol_NamaEvent(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.NamaEvent
Property Description
Button Mendapatkan tombol mouse yang ditekan (None, Left, Middle, Right, Xbutton1, Xbutton2)
Clicks Mendapatkan jumlah klik
Delta Mendapatkan jumlah rotasi roda mouse
X Mendapatkan koordinat X mouse
Y Mendapatkan koordinat Y mouse
Contoh :
INDOPROG 14
Pemrograman Form pada VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.EnableVisualStyles()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
Kalau kita menekan button mouse diatas MyForm, maka msgbox berikut akan
ditampilkan.
Event pada keyboard terjadi pada saat pemakaian melakukan aksi penekanan tombol
terhadap form, dan urutan event keyboard adalah sebagai berikut :
System.Windows.Forms.KeyEventHandle
Adapun tata cara penulisan event procedure untuk event yang menggunakan
KeyEventHandle adalah sebagai berikut :
INDOPROG 15
Pemrograman Form pada VB.NET Hendra, S.T.
Property Description
Alt Mendapatkan apakah tombol ALT ada ditekan atau tidak
Control Mendapatkan apakah tombol CTRL ada ditekan atau tidak
Handled Mendapatkan apakah event telah terhandle
KeyCode Mendapatkan key code
KeyData Mendapatkan key data
KeyValue Mendapatkan keybiard value
Modifiers Medapatkan flag modifier apakah event mouse disertai dengan kombinasi tombol (CTRL,
SHIFT, and ALT)
Shift Mendapatkan apakah tombol shift ditekan
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
INDOPROG 16
Pemrograman Form pada VB.NET Hendra, S.T.
System.Windows.Forms.KeyPressEventHandle
Adapun tata cara penulisan event procedure untuk event yang menggunakan
KeyPressEventHandle adalah sebagai berikut :
Property Description
Handled Mendapatkan apakah event telah dihandle
KeyChar Mendapatkan karakter yang ditekan
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
INDOPROG 17
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 18
Pemrograman Form pada VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
Membuat Textbox
Berikut ini adalah koding untuk menempatkan sebuah textbox diatas form
INDOPROG 19
Pemrograman Form pada VB.NET Hendra, S.T.
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
Untuk melakukan validasi terhadap input yang dilakukan oleh pemakai pada textbox kita
dapat menggunakan event validating.
INDOPROG 20
Pemrograman Form pada VB.NET Hendra, S.T.
Untuk menggunakan event pada kontrol, kita perlu mendeklarasikan variabel kontrol
beserta WithEvents.
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.EnableVisualStyles()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
Membuat button
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New MyForm)
End Sub
INDOPROG 21
Pemrograman Form pada VB.NET Hendra, S.T.
End Class
Contoh :
Option Explicit On
Imports System
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.EnableVisualStyles()
INDOPROG 22
Pemrograman Form pada VB.NET Hendra, S.T.
System.Windows.Forms.Application.Run(New MyForm)
End Sub
End Class
Yang kalau dijalankan, dan dilakukan klik pada button akan menampilkan pesan sebagai
berikut :
Latihan :
Buatlah program Windows Form untuk menghitung luas persegi panjang !
INDOPROG 23
Pemrograman Form pada VB.NET Hendra, S.T.
<System.STAThread()> _
Public Shared Sub Main()
Application.Run(New MyMDI)
End Sub
End Class
MDI Child
Pada dasarnya form MDI Child adalah sama dengan form biasanya, yang kemudian akan
ditamplkan oleh MDI Form.
End Class
Untuk menampilkan MDI Child pada MDI Form kita, adalah dengan :
INDOPROG 24
Pemrograman Form pada VB.NET Hendra, S.T.
Contoh :
Option Explicit On
Imports System
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
Application.Run(New MyMDI)
End Sub
End Class
End Class
Pengaturan susunan MDI Child pada MDI Form dapat dilakukan dengan menggunakan
metoda LayoutMDI(MDI layout).
Contoh :
INDOPROG 25
Pemrograman Form pada VB.NET Hendra, S.T.
Me.LayoutMDI(System.Windows.Forms.MDILayout.Cascade)
INDOPROG 26
Pemrograman Form pada VB.NET Hendra, S.T.
Membuat Menu
Untuk membuat menu pada form, anda dapat menggunakan langkah-langkah berikut ini :
1. Membuat instance dari komponen MainMenu, dan set sebagai menu untuk form
2. Membuat MenuItem untuk MainMenu, dan tambahkan pada collection object dari
MainMenu
3. Membuat SubMenuItem untuk MenuItem, dan tambahkan pada collection
masing-masing object MenuItem.
Contoh :
Option Explicit On
Imports System
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
<System.STAThread()> _
Public Shared Sub Main()
Application.Run(New MyMDI)
End Sub
'membuat menuitem
Dim mnuFile As new MenuItem("&File")
Dim mnuWindow As new MenuItem("&Window")
INDOPROG 27
Pemrograman Form pada VB.NET Hendra, S.T.
mnuFile.MenuItems.Add(mnuFileExit)
End Sub
End Class
End Class
Men-disable menuitem
Untuk mendisable menuitem, kita dapat menggunakan property Enabled pada menuitem
yang akan diatur keaktifannya.
Contoh :
mnuFileClose.Enabled = False
atau
Me.Menu.MenuItems(0).MenuItems(2).Enabled = False
INDOPROG 28
Pemrograman Form pada VB.NET Hendra, S.T.
Menyembunyikan menuitem
Contoh :
mnuFileClose.Visible = False
INDOPROG 29
Pemrograman Form pada VB.NET Hendra, S.T.
Untuk menbuat garis pembatas dan dapat membuat tanda – sebagai text untuk menu.
Contoh :
Untuk menbuat tanda check pada menuitem dapat dilakukan dengan property Checked.
Contoh :
mnuFileNew.Checked = True
INDOPROG 30
Pemrograman Form pada VB.NET Hendra, S.T.
Untuk menbuat tanda check pada menuitem dapat dilakukan dengan property Shortcut.
Contoh :
mnuFileNew.Shortcut = System.Windows.Forms.Shortcut.F2
INDOPROG 31
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 32
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 33
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 34
Pemrograman Form pada VB.NET Hendra, S.T.
Lampiran
INDOPROG 35
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 36
Pemrograman Form pada VB.NET Hendra, S.T.
Keys Enumeration
Members
Member name Description Value
A The A key. 65
INDOPROG 37
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 38
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 39
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 40
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 41
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 42
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 43
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 44
Pemrograman Form pada VB.NET Hendra, S.T.
INDOPROG 45
Pemrograman Form pada VB.NET Hendra, S.T.
Q The Q key. 81
INDOPROG 46
Pemrograman Form pada VB.NET Hendra, S.T.
Framework.
ShiftKey The SHIFT key. 16
INDOPROG 47
Pemrograman Form pada VB.NET Hendra, S.T.
Y The Y key. 89
INDOPROG 48
Pemrograman Form pada VB.NET Hendra, S.T.
Daftar Pustaka
INDOPROG 49