Anda di halaman 1dari 44

Bab 1 Pengenalan Visual Basic .

NET
Microsoft .NET framework adalah teknologi yang dikembangkan oleh Microsoft yang saat ini sangat populer dan banyak digunakan di lapangan kerja. .NET memiliki keunggulan dari tool IDEnya yang sangat powerful dan class library yang sangat lengkap. Struktur .NET Framework

Web Forms Web Pages ( ASP.NET ) Web Services

Windows Forms Desktop Application Windows Services

.NET Class Library


Data (ADO.NET) Security XML Net IO Drawing Math Others

Common Language Runtime


Memory Management Common Type System Garbage Collector Others

Operating System Windows 98 / Me / 2000 / XP and in the future

Teknologi .NET muncul karena adanya beberapa alas an pada teknologi aplikasi Microsoft yang lama. Standar yang lama berbasiskan pada COM di mana memiliki berbagai macam keterbatasan, antara lain : 1. DLL Hell Istilah ini sering kali dipakai oleh programmer untuk menyatakan masalah versi yang terjadi pada COM. Ketika COM mengalami perubahan atau pembaharuan seluruh aplikasi yang memakai component tersebut harus di compile ulang jika tidak sering terjadi Runtime Error.

2. Tidak cocok dengan platform lain Standar COM tidak bisa diterapkan untuk platform atau mesin yan lain. Ketergantungannya terhadap system Win32 sangat tinggi. Sehingga untuk diterapkan pada mesin seperti PDA, Handphone sangat susah sekali. 3. Tidak mendukung inheritance Komponen dalam COM tidak dapat diinheritance sehingga sangat sulit bagi programmer untuk mengembangkan lebih lanjut komponen yang sudah ada. Dalam teknologi .NET teknik kompilasi yang terjadi pada source code program memiliki sedikit keunikan.

Source Code (VB)

Source Code (C#) IL Compiler

MSIL ( Microsoft Intermediate Language CLR Native Code Kita akan mempelajari lebih lanjut dalam Windows Form untuk pembuatan aplikasi desktop dan menggabungkannya dengan komponen-komponen visual yang ada. Untuk memulai .NET kita harus menginstalasi tool yang kita gunakan terlebih dahulu yaitu Microsoft Visual Studio .NET 2003. Teknologi .NET dapat dimanfaatkan untuk menciptakan berbagai jenis aplikasi, yaitu: 1. Windows Application 2. Windows Service 3. Web Application ( ASP.NET ) 4. Web Service 5. Smart Device Application System Requirements 1. Operating System : a. Windows 2000 with Service Pack 3 b. Windows XP with Service Pack 1 2. Minimum 256 MB RAM ( Recommended ) 3. Pentium 4 1.7GHz Processor or higher. 4. 4 GB Free Space Hard Drive

Untuk masuk ke Visual Studio .NET 2003 dapat memilih lewat Start Menu atau langsung klik Start > Run ketik devenv, kemudian klik Ok.

Pada bagian kiri bawah ada tombol New Project, klik di sana untuk memulai Project Baru.

Pilihlah yang Visual Basic Project di sebelah kiri, dan Windows Application di sebelah kanan. Masukkan Name misalkan Latihan1 pada field isian Name. Location untuk mensetting letak folder. Jika sudah ketik OK.

Pertama kita akan merancang form sederhana. Gunakanlah label, textbox dan button dari toolbox disamping. Berikut ini adalah properties dari beberapa control dasar. Label
Properties Backcolor BorderStyle Enabled Font ForeColor Text TextAlign Visible Keterangan Untuk mengatur warna background dari label. Untuk mengatur jenis border untuk labelnya. Terdapat tiga buah pilihan, yaitu None, FixedSingle, dan Fixed3D. Untuk mengeset apakah control dalam keadaan aktif. Untuk mengatur jenis, ukuran, dan style dari Font. Untuk mengatur warna teks. Untuk mengatur teks pada control. Untuk mengatur letak teks pada control. Untuk mengatur apakah control tampil di layer atau tidak.

Textbox
Properties Backcolor BorderStyle Enabled Font ForeColor MaxLength MultiLine PasswordChar ReadOnly Keterangan Untuk mengatur warna background dari label. Untuk mengatur jenis border untuk labelnya. Terdapat tiga buah pilihan, yaitu None, FixedSingle, dan Fixed3D. Untuk mengeset apakah control dalam keadaan aktif. Untuk mengatur jenis, ukuran, dan style dari Font. Untuk mengatur warna teks. Untuk menentukan jumlah karakter maksimum yang dapat diinput. Nilainya adalah Boolean ( true / false ), untuk menentukan apakah suatu textbox dapat multiline ( lebih dari satu baris ). Untuk menentukan karakter yang muncul pada saat input, biasa digunakan untuk penginputan password menggunakan mask. Menentukan apakah textbox boleh diedit atau tidak.

ScrollBars Text TextAlign Visible WordWrap

Menentukan scroll bar yang muncul, berlaku jika textbox multilinenya true. ScrollBars yang Horizontal akan muncul ika nilai WordWrapnya false. Untuk mengatur teks pada control. Untuk mengatur letak teks pada control. Untuk mengatur apakah control tampil di layer atau tidak. Menentukan apakah kursor akan pindah baris jika paa saat input kursor suah mencapai ujung textbox.

Button
Properties Backcolor Enabled Font ForeColor Text TextAlign Visible Keterangan Untuk mengatur Untuk mengeset Untuk mengatur Untuk mengatur Untuk mengatur Untuk mengatur Untuk mengatur warna background dari label. apakah control dalam keadaan aktif. jenis, ukuran, dan style dari Font. warna teks. teks pada control. letak teks pada control. apakah control tampil di layer atau tidak.

Rancanglah formnya sebagai berikut, dan berilah penamaan pada masing-masing controlnya.

User akan diminta untuk memasukkan nilainya, yaitu TM, Mid, dan Final kemudian Nilai Akhirnya dihitung dari 20% TM, 30% Mid dan 50% Final. Untuk Grade menggunakan tabel berikut. Nilai Akhir >= 85 >= 75 >= 65 Lain-lain Grade A B C D

Buatlah pula validasi inputnya.

Deklarasi Variabel
Dim namavariable as tipedata

Contoh :
Dim tm as Integer Dim mid as Integer Dim final as Integer Dim NA as Single

Tipe Data Macam-macam tipe data dalam Visual Basic .NET


Tipe Data Byte Short .NET Class System.Byte (Structure) System.Int16 (Structure) Keterangan Tipe data ini berkisar antara 0-255. Berukuran 1 byte. Tipe data ini dapat menampung bilangan bulat antara -32,768 hingga 32,767. Tipe data ini berukuran 2 byte. Tipe data ini dapat menampung bilangan bulat antara -2,147,483,648 hingga 2,147,483,647. TIpe data ini berukuran 4 byte. Tipe data ini dapat menampung bilangan bulat antara 9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807 Tipe data ini dapat menampung bilangan real antara -3.4028235E+38 hingga -1.401298E-45 untuk nilai negative, sedangkan untuk nilai positif antara 1.401298E-45 hingga 3.4028235E+38 Tipe data ini dapat menampung bilangan real antara -1.79769313486231570E+308 hingga -4.94065645841246544E-324 sedangkan untuk nilai positif antara 4.94065645841246544E-324 hingga 1.79769313486231570E+308 Tipe data ini dapat menampung bilangan decimal dengan jumlah digit 0 sampai 28. Tipe data ini hanya dapat menampung 2 jenis nilai, yaitu true dan false. Jika direpresentasikan dengan angka nilai false dinyatakan dengan 0 dan nilai true dinyatakan dengan nilai selain 0. Tipe data ini dikhususkan untuk menampung nilai yang berupa tanggal dan waktu. Dengan memanfaatkan tipe data ini kita dapat mengolah data tanggal dengan memakai fungsi-fungsi tertentu. Tipe data ini hanya dapat menampung satu buah karakter. Jika diisi lebih dari satu karakter maka secara otomatis akan dipotong menjadi satu.

Integer

System.Int32 (Structure)

Long

System.Int64 (Structure)

Single

System.Single (Structure)

Double

Systm.Double (Structure)

Decimal

System.Decimal (Structure) System.Boolean (Structure)

Boolean

Date

System.DateTime (Structure)

Char

System.Char (Structure)

String

System.String ( Class )

Tipe data ini digunakan untuk menampung rangkaian karakter atau kata. Jumlah memory yang dipakai sesuai dengan jumlah karakter.

Konversi Implisit dan Eksplisit

Pada program di atas terjadi konversi antar tipe data secara implisit. Kita juga dapat melakukan konversi secara eksplisit.

Fungsi-fungsi konversi antar tipe data


Nama Fungsi CBool() CDbl() CObj() CByte() CDec() CShort() CChar() CInt() CSng() CDate() CLng() CStr() Keterangan Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi Untuk mengkonversi suatu suatu suatu suatu suatu suatu suatu suatu suatu suatu suatu suatu nilai nilai nilai nilai nilai nilai nilai nilai nilai nilai nilai nilai menjadi menjadi menjadi menjadi menjadi menjadi menjadi menjadi menjadi menjadi menjadi menjadi tipe tipe tipe tipe tipe tipe tipe tipe tipe tipe tipe tipe Boolean Double Object Byte Decimal Short Char Integer Single Date Long String

Selain dari fungsi-fungsi di atas mengkonversi ke tipe data apa saja.


Dim n As Integer = 10 Dim s As String s = CType(n,String)

kita

dapat

menggunakan

CType()

untuk

Konversi eksplisit juga bisa dilakukan dengan menggunakan fungsi Convert.


Dim n As Single = 2.54 Dim s As String s = Covert.ToString(n)

Meskipun konversi implisit bisa dilakukan compiler usahakan tetap menggunakan fungi-fnugsi type casting untuk mempercepar kinerja dari aplikasi.

Kemudian untuk membuat validasi kita bisa menggunakan Event KeyPress

Dengan coding di atas maka txtTM sudah divalidasi, sedangkan untuk txtMid dan txtFinal dapat dengan cara menambahkan pada header function di bagian belakangnya dengan menggunakan event-eventnya yaitu txtMid.KeyPress an txtfinal.KeyPress.

Bagian ini dapat ditemukan di bagian belakang subnya.

Bab 2 Control Flow


Struktur Pemilihan Struktur If
If kondisi Then . . End If

If kondisi Then . . Else . . End If

If kondisi Then . . ElseIf kondisi Then . . End If

Struktur Select Case Select Case Case 0 .. Case 1,3 .. Case 5 to 10 .. Case Is > 10 .. Case Else .. End Select

Struktur Perulangan Dim i As Integer For i = 1 to 10 STEP 1 .. Next Perintah di atas akan melakukan perulangan sebanyak 10 kali. Pada perintah perulangan di atas STEP bersifat optional dan dapat dihilangkan. Dim i As Integer For i = 1 to 10 .. Next Step menunjukkan pertambahan yang dilakukan di mana defaultnya adalah 1. Untuk nilai dari besar ke kecil gunakan nilai step yang negatif. Dim i As Integer For i = 10 to 1 STEP -1 .. Next

Struktur perulangan lainnya adalah sebagai berikut

i=0 Do

i=i+1 Loop While i <= 10 i=0 Do

i=i+1 Loop Until i = 10 i=0 Do While i <= 10 i=i+1 Loop

i=0 Do Until i = 10 i=i+1 Loop i=0 While i <= 10 i=i+1 Wend Struktur perulangan bermacam-macam dan dapat digunakan sesuai kebutuhan.

Bab 3 Sub dan Function


Dalam pemrograman kita dapat memecah perintah-perintah program dalam prosedur dan fungsi tertentu. Hal ini memudahkan dalam pemrograman karena lebih terstruktur, dan prosedur-prosedur yang ada dapat dipakai berulang kali, memudahkan untuk maintenance program, lebih mudah untuk mengidentifikasi bug.
Sub NamaSub() End Sub

Untuk membuat sub dapat menggunakan format di atas, untuk nama sub nya boleh bebas. Di dalam sub tersebut kita dapat memasukkan coding-coding yang diinginkan. Untuk memanggil sub tersebut dapat langsung seperti di bawah ini.
NamaSub()

Selain Sub kita juga dapat membuat function di mana dapat memberikan nilai balik sesuai dengan tipe data yang diinginkan. Misalkan di bawah ini diberikan contoh fungsi yang mengembalikan nilai Boolean di mana fungsi ini mengecek apakah sebuah angka itu genap, jika ya maka mengembalikan nilai true sebaliknya mengembalikan nilai false.
Function IsGenap( N As Integer ) As Boolean If N Mod 2 = 0 Then Return True Else Return False End If End Function

Untuk menggunakan fungsi tersebut dapat langsung dipanggil seperti berikut ini.
If IsGenap(10) Then MessageBox.Show(Genap) Else MessageBox.Show(Ganjil) End If

Menggunakan ComboBox

Buatlah program yang menggunakan ComboBox seperti di atas. ComboBox


Properties DropDownStyle Enabled Items MaxDropDownItem MaxLength Sorted Text Keterangan Mengatur tampilan dan fungsi dari combobox. Untuk mengeset apakah control dalam keadaan aktif. Item-item yang ada di dalam combobox. Untuk mengatur berapa jumlah yang ditampilkan pada saat drop down. Untuk menentukan jumlah karakter maksimum yang dapat diinput. Nilainya adalah Boolean ( true / false ), untuk menentukan apakah item di dalam combobox ingin diurutkan. Adalah teks yang tercantum pada combobox. Merupakan teks yang dipilih.

Menambahkan item ke ComboBox Kita dapat menggunakan code di bawah ini.


ComboBox1.Items.Add(Hello)

Membuang item tertentu dari ComboBox


ComboBox1.Items.Remove(Hello)

Atau
ComboBox1.Items.RemoveAt(2)

Jika menggunakan RemoveAt maka parameternya berupa integer yang menyatakan indeks item yang mau dibuang. Dalam combobox item pertama dimulai dari indeks nol, kemudian satu, dua, dan seterusnya.

Membuang semua item dari ComboBox


ComboBox1.Items.Clear()

Mendapatkan jumlah item dalam ComboBox


Dim jumlah As Integer = ComboBox1.Items.Count

Mengecek apakah suatu item ada di dalam ComboBox


If comboBox1.Items.Contains(A) Then MessageBox.Show(Ada A) Else MessageBox.Show(Ada B) End If

Mencari indeks dari item yang ditentukan


Dim indeks As Integer = ComboBox1.FindString(A) If indeks <> -1 Then MessageBox.Show(A ada di indeks & indeks) Else MessageBox.Show(A tidak ada di dalam combobox) End If

Jika fungsi FindString mengembalikan nilai -1 berarti item tersebut tidak ada di dalam combobox. Mendapatkan indeks item yang dipilih
Dim indeks As Integer = ComboBox1.SelectedIndex If indeks <> -1 Then MessageBox.Show(Pilihan anda di indeks & indeks) Else MessageBox.Show(Anda belum memilih) End If

Jika SelectedIndex mengembalikan nilai -1 maka berarti combobox tersebut belum ada item yang dipilih.

Menggunakan ListBox

Buatlah program menggunakan Listbox seperti di atas. Kemudian randomlah sepuluh angka dan add ke dalam listbox. Tidak boleh ada angka yang berulang. Cara merandom angka
Dim rand As New Random Dim n As Integer = rand.Next(1,101)

Code di atas merandom angka yang bekisar dari 1-100 kemudian dimasukkan ke dalam n. Method dan Property dar ComboBox sebagian besar sama dengan ListBox. Jadi untuk mengecek apakah suatu item sudah ada dalam combobox bisa menggunakan fungsi Items.Contains
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim rand As New Random Do Dim n As Integer = rand.Next(1, 101) If Not ListBox1.Items.Contains(n) Then ListBox1.Items.Add(n) End If Loop Until ListBox1.Items.Count = 10 End Sub

Pada saat tombol ditekan maka semua item dari listbox1 akan berpindah ke listbox2. Codenya dapat kita buat seperti di bawah ini.
For i As Integer = 0 To ListBox1.Items.Count - 1 ListBox2.Items.Add(ListBox1.Items(i)) Next ListBox1.Items.Clear()

Atau lebih singkatnya dapat menggunakan code sebagai berikut.


ListBox2.Items.AddRange(ListBox1.Items) ListBox1.Items.Clear()

ditekan maka item yang dipilih pada listbox1 akan Pada saat tombol berpindah ke listbox2. Kta dapat buat code sebagai berikut.
If ListBox1.SelectedIndex <> -1 Then ListBox2.Items.Add(ListBox1.Items(ListBox1.SelectedIndex)) ListBox1.Items.RemoveAt(ListBox1.SelectedIndex) End If

Pada saat awal kita harus cek dulu memastikan item pada listbox1 sudah ada yang terpilih ( nilai selectedindex tidak sama dengan -1 ), kemudian baru menambahkannya ke listbox2 dan menghapusnya dari listbox1.

Bab 4 Menggunakan Control Lanjutan


PictureBox PictureBox digunakan untuk menampilkan gambar. Tambahkan ke form anda sebuah PictureBox, kemudian untuk menambahkan gambar pada propertiesnya cari yang namanya Image kemudian pilih gambarnya.

PictureBox
Properties BorderStyle Image SizeMode Keterangan Untuk mengatur jenis border dari picturebox. Untuk mengeset gambar yang akan ditampilkan. Untuk mengatur tampilan pada gambar. StretchImage gambar akan menyesuaikan dengan ukuran PictureBox CenterImage gambar akan diletakkan di tengah-tengah PictureBox AutoSize picturebox akan menyesuaikan dengan ukuran gambar

CheckBox dan RadioButton

CheckBox
Properties Appereance CheckAlign Checked CheckState Text TextAlign ThreeState Keterangan Untuk mengatur tampilan dari checkbox. Untuk menentukan letak check dari tulisannya. Untuk menentukan apakah di check atau tidak. Untuk menentukan status check. Ada UnCheck, Checked, Indeterminate. Teks yang tercantum pada textbox. Mengatur letak teks. Bernilai Boolean untuk menentukan apakah menggunakan mode tiga status check seperti yang ada di CheckState.

RadioButton
Properties Appereance CheckAlign Checked Text TextAlign Keterangan Untuk mengatur tampilan dari checkbox. Untuk mengatur letak checknya. Untuk menentukan apakah di check atau tidak. Teks yang tercantum pada textbox. Mengatur letak teks.

Bab 5 Array dan Structure Array


Dalam bab ini akan menelusuri lebih jauh array dalam Visual Basic. Cara pendeklarasian dari array adalah sebagai berikut.
Dim arr(3) As Integer

Statement di atas menunjukkan bahwa kita membuat array dengan nama arr di mana masing-masing berupa integer dan terdiri dari 4 buah elemen.

Masing-masing elemen dapat diisi dengan sebuah integer. Misalkan kita ingin memasukkan sebuah integer ke dalam elemen pertama.
arr(0) = 5

Untuk mengubah ukuran array kita dapat menggunakan redim.


redim arr(9)

statement di atas akan mengubah ukuran elemen dari arr menjadi 10 elemen. Tetapi semua data yang ada dalam array akan hilang. Untuk tetap mempertahankan data yang lama agar tak hilang kita gunakan redim preserve.
redim preserve arr(9)

Statement di atas digunakan untuk mengubah ukuran dari array tanpa harus menghilangkan nilai-nilai yang telah ada sebelumnya.

Structure
Kita dapat menggunakan Structure. Contohnya sebagai berikut.
Structure Mahasiswa Dim Nim As String Dim Nama As String End Structure

Dengan membuat code di atas berarti kita sudah membuat tipe data Mahasiswa, sehingga kita bias deklarasikan variabelnya.
Dim a As Mahasiswa a.Nim = 0600612545 a.Nama = Andi Rahardja

Kita juga dapat mendeklarasikan dalam bentuk array seperti yang kita telah pelajari sebelumnya.
Dim arr(1) As Mahasiswa arr(0).Nim = 0600612545 arr(0).Nama = Andi Rahardja arr(1).Nim = 0600613447 arr(1).Nama = Beni Tulks

Bab 6 String dan Timer


Dalam bab ini kita akan membahas class String termasuk fungsi-fnugsi String yang ada. String sangat banyak digunakan. Dalam code di bawah ini akan diberikan contoh penggunan String.
Dim str As String = ABCDE

Kita akan membahas beberapa Property dan Method dari class string.
Properties Chars Length Keterangan Mendapatkan karakter pada indeks yang ditentukan. Mendapatkan jumlah karakter pada string.

Method Clone Compare Concat Copy Equals Format IndexOf

IndexOfAny

Insert Join LastIndex LastIndexOfAny PadLeft PadRight Remove Replace Split StartsWith SubString ToCharArray ToLower ToString ToUpper Trim TrimEnd TrimStart

Keterangan Mengembalikan reference ke instance ini. Membandingkan dua buah string. Untuk menggabungkan string. Membuat instance yang baru yang nilainya sama dengan instance. Mengecek apakah dua buah instance String memiliki nilai yang sama. Untuk menampilkan dalam format tertentu. Mengembalikan indeks untuk string yang pertama kali ditemukan di dalam string, jika ditemukan akan mengembalikan nilai indeks, jika tidak ketemu akan mengembalikan nilai -1. Untuk mengecek apakah masing-masing string dalam suatu array string ada di dalam string, jika ada akan mengembalikan nilai indeksnya, jika tidak ditemukan maka akan bernilai -1. Untuk menyisipkan suatu string ke dalam string pada indeks yang ditentukan Menggabungkan separator String di antara semua String yang ada di dalam array String. Sama seperti IndexOf hanya dicek mulai dari belakang. Sama seperti IndexOfAny hanya dicek mulai dari belakang. Menambahkan karakter pada bagian kiri string, sesuai dengan widthnya dan diisi dengan spasi atau karakter yang ditentukan. Menambahkan karakter pada bagian kanan string, sesuai dengan widthnya dan diisi dengan spasi atau karakter yang ditentukan. Menghapus beberapa karakter mulai dari indeks yang ditentukan sebanyak jumlah karakter yang ditentukan. Mengganti string yang lama dengan string yang baru. Mengembalikan array yang merupakan hasil pecahan dari string awal sesuai dengan separator yang ditentukan. Bernilai Boolean. Untuk mengecek apakah suatu string diawali oleh suatu string yang diberikan. Untuk mengambil sebagai string dari string keseluruhan. Untuk mengkonversi ke dalam bentuk array dari karakter. Untuk mengubah semua karakter menjadi huruf kecil. Untuk mengkonversi instance ini ke dalam String. Untuk mengubah semua karakter menjadi huruf besar. Membuang sekumpulan karakter pada awal dan akhir. Membuang sekumpulan karakter pada bagian akhir. Membuang sekumpulan karakter pada bagian awal.

Timer

Tempatkan timer dalam project.

Timer akan diletakkan pada bagian bawah. Kemudian kita dapat mengubah propertiesnya.
Properties Enabled Interval Keterangan Untuk menentukan apakah timer aktif atau tidak. Untuk menentukan jeda waktu dalam milidetik untuk melakukan event Tick.

Untuk memberikan coding pada Timer kliklah dua kali pada Timernya maka akan masuk ke layar coding yaitu event Tick.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = Now.ToString("hh:mm:ss tt") End Sub

Jika kita memberikan nilai True pada property Enabled kemudian dengan interval 1000, maka setiap 1000 milidetik (1 detik) coding pada Sub di atas akan dijalankan dan akan berlangsung terus menerus dengan jeda 1 detik. Pada bagian Form_Load juga jangan lupa untuk menambahkan code yang sama untuk menampilkan jam pada awal pada saat form ditampilkan.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label1.Text = Now.ToString("hh:mm:ss tt") End Sub

Bab 7 Control Array


Kita dapat membuat suatu control melalui coding (tanpa menggunakan form design). Sebagai contoh kita perhatikan form di bawah ini.

Kita dapat membuat Button-Button tersebut dengan cara sebagai berikut.


Dim arr(2, 2) As Button Dim btn As New Button Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i As Integer = 0 To 2 For j As Integer = 0 To 2 arr(i, j) = New Button arr(i, j).Location = New Point(j * 60, i * 60) arr(i, j).Size = New Size(50, 50) Me.Controls.Add(arr(i, j)) Next Next btn.Location = New Point(10, 200) btn.Size = New Size(50, 50) btn.BackColor = Color.Red Me.Controls.Add(btn) AddHandler btn.Click, AddressOf btnClick End Sub Sub btnClick(ByVal sender As Object, ByVal e As EventArgs) For Each c As Control In Me.Controls If Not c Is btn Then c.BackColor = btn.BackColor End If Next Dim rand As New Random btn.BackColor = Color.FromArgb(rand.Next(0, 256), _ rand.Next(0, 256), rand.Next(0, 256)) End Sub

Untuk menambahkan event handler untuk control yang kita buat dengan coding dapat dengan AddHandler. Untuk warna selain menggunakan konstanta warna kita dapat membuat objek warna dengan menentukan RGBnya seperti contoh di atas yaitu menggunakan fungsi fromArgb.
btn.Location = New Point(10, 200) btn.Size = New Size(50, 50) btn.BackColor = Color.Red Me.Controls.Add(btn) AddHandler btn.Click, AddressOf btnClick

Location untuk menentukan letak pada form. Size digunakan untuk mengatur width dan heightnya. BackColor untuk menentukan warna buttonnya. Me.Controls adalah array yang merupakan semua control yang ada di dalam form, jadi Button yang kita buat harus kita add ke dalam form. Kemudian untuk membuat event handler pada saat button tersebut click kita harus menyiapkan terlebih dahulu sub handlernya kemudian ditambahkan dengan menggunakan AddHandler.
Sub btnClick(ByVal sender As Object, ByVal e As EventArgs) . . Code untuk menangani kejadian button Click, dipakai pada saat AddHandler End Sub

Bab 8 MDI
MDI singkatan dari Multiple Document Interface. Di mana terdapat form yang berperan sebagai parent form di mana dapat memiliki beberapa child form di dalamnya. Untuk membuat MDI buatlah sebuah project baru dan beri nama UsingMDI. Pada Form1 ubah Properties IsMdiContainer menjadi true. Sehingga menghasilkan tampilan sebagai berikut.

Kemudian Ubahlah properties WindowState menjadi Maximized agar pada saat pertama kali form ditampilkan dalam keadaan maximized. Kemudian kita tambahkan main menu.

Kemudian buat struktur menu yang diinginkan. Setelah itu kita atur properties untuk menu-menu yang ada.

Kemudian kita menambahkan form pada project kita yang akan dibuat sebagai child formnya. Pada Solution Explorer > Klik kanan pada project > pilih Add > Add Windows Form. Kemudian pada saat New di klik kita tambahkan coding berikut ini.
Private Sub mnuNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNew.Click Dim f As New Form2 f.MdiParent = Me f.Show() End Sub

Untuk Arrange kita menggunakan method LayoutMdi.


Private Sub mnuCascade_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCascade.Click Me.LayoutMdi(MdiLayout.Cascade) End Sub Private Sub mnuHoriz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuHoriz.Click Me.LayoutMdi(MdiLayout.TileHorizontal) End Sub Private Sub mnuVert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVert.Click Me.LayoutMdi(MdiLayout.TileVertical) End Sub

Setelah itu coba tambahkan menu Forms di sebelah kanan menu Window, setelah itu ubah property MdiList menjadi True. Lihat hasilnya. Pada saat menu childnya dibuat maka akan muncul daftar form-formnya.

Toolbar Toolbar adalah sebuah control yang terdiri dari tombol-tombol yang memiliki fungsi tertentu. Tombol-tombol pada toolbar biasanya diberi icon / gambar sebagai simbol. Tambah Toolbar pada Form pertama kemudian masuk ke properties Button.

Pada bagian ini kita dapat mengatur tampilan button yang diinginkan. Untuk menggunakan gambar kita harus menambahkan ImageList ke form dan masuk ke property Images kemudian kita add satu-satu semua gambar yang ingin digunakan. Gambar-gambar pada toolbar harus diambil dari ImageList. Tambahkanlah ImageList pada form.
Properties ColorDepth ImageSize Images Keterangan Untuk menentukan ColorDepth, semakin besar bits nya maka kualitas gambar aka semakin bagus. Untuk menentukan width dan height dari gambar. Merupakan Collection dari image-image yang ada di dalam ImageList.

Pada layer ini kita dapat menambahkan gambar-gambar yang diinginkan. Kemudian pada Toolbar cari properties ImageList ubah menjadi ImageList1. Dengan begitu gambar-gambarnya yang ada pada ImageList1 dapat digunakan pada Toolbar.

Context Menu Context menu dapat dimuncul diberbagai tempat. Misalkan kita ingin membuat context menu yang akan muncul pada saat kita meng-klik dropdown button pada toolbar. Siapkan ContextMenu dan codingnya masing-masing terlebih dahulu.

Private Sub mnuConCascade_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuConCascade.Click mnuCascade.PerformClick() End Sub Private Sub mnuConHoriz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuConHoriz.Click mnuHoriz.PerformClick() End Sub Private Sub mnuConVert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuConVert.Click mnuVert.PerformClick() End Sub

Kemudian setelah context menu siap kita bisa masukkan ke button pada toolbar. Pada bagian Buttons, pada dialog propertiesnya set nilai dropdownMenu menjadi ContextMenu1.

StatusBar Tambahkan StatusBar pada form. Kemudian ubah properties ShowPanels menjadi True. Kemudian masuk ke properties Panels untuk masuk ke kotak dialog.

Jika kita ingin mengubah teks pada salah satu panel statusbar dapat langsung dari code kita ketik sebagai berikut.
StatusBarPanel1.Text = Message

Properties Alignment AutoSize BorderStyle Icon Text ToolTipText Width

Keterangan Untuk mengatur alignment terdapat pilihan Left, Right, Center. Untuk menentukan apakah ukuran panel akan secara otomatis berubah. Bentuk borderstyle untuk panel, terdapat dua macam Raisen dan Sunken. Icon untuk ditampilkan pada panel. Teks yang ingin ditampilkan pada panel. Teks keterangan ( tooltip ) yang akan muncul pada saat mouse berada pada control. Mengatur lebar panel.

Bab 9 File Operation


Kita dapat menyimpan data ke dalam file. Data yang disimpan ini bersifat permanent tidak seperti memory yang hanya bersifat sementara. Untuk operasi baca dan tulis ke file kita dapat menggunakan class yang sudah disediakan oleh .NET yaitu berada dalam Namespace System.IO Jadi pastikan pada layar coding tambahkan pada bagian paling atas.
Imports System.IO

Untuk baca file teks Membaca semua teks secara langsung dan menampung hasilnya yang berupa string ke dalam variable.
Dim f As New FileStream(namafile.txt, FileMode.Open) Dim rd As New StreamReader(f) Dim hasil As String = rd.readToEnd() rd.close() f.close()

Jika kita ingin membaca baris per baris pun bisa yaitu dengan cara sebagai berikut.
Dim f As New FileStream(namafile.txt, FileMode.Open) Dim rd As New StreamReader(f) Dim hasil As String = rd.readLine() While hasil <> Then hasil = rd.readLine() End While rd.close() f.close()

Untuk tulis ke file berupa teks Jika kita ingin membuat file baru gunakan Mode CreateNew, atau Create jika ingin replace file yang sudah ada.
Dim f As New FileStream(namafile.txt, FileMode.CreateNew) Dim wr As New StreamWriter(f) wr.write(text to write to file) wr.close() f.close()

Untuk menambahkan teks ke file Untuk menambahkan teks pada file kita gunakan mode Append.
Dim f As New FileStream(namafile.txt, FileMode.Append) Dim wr As New StreamWriter(f) wr.write(text to write to file) wr.close() f.close()

Untuk membaca file binary kita gunakan class BinaryReader dan BinaryWriter. Sedangkan untuk file teks kita bisa menggunakan class TextReader dan TextWriter. Menggunakan CommonDialog

FontDialog FontDialog digunakan untuk memilih jenis font. Untuk menampilkan kotak dialognya dapat menggunakan fungsi showDialog.
FontDialog1.showDialog()

Atau biasa kita buat seperti ini.


If FontDialog1.showDialog()=DialogResult.OK Then . . End If

Coding ini akan mengecek terlebih dahulu apakah user pada saat pemilihan Font memilih tombol OK atau Cancel. Coding di dalam statement If hanya dijalankan bila user menjawab OK bukan Cancel. Font yang dipilih akan disimpan ke Font.
FontDialog1.Font

ColorDialog Digunakan untuk memilih warna. Penggunaannya mirip dengan FontDialog.


ColorDialog1.showDialog()

Atau
If ColorDialog1.showDialog()=DialogResult.OK Then . . End If

Hasil pilihan warnanya akan ditampung di properties Color.


ColorDialog1.Color

OpenFileDialog Digunakan untuk menampilkan kotak dialog untuk pemilihan file untuk Open.

Untuk menampilkan masih sama yaitu menggunakan fungsi showDialog. File yang dipilih disimpan di properties FileName.
If OpenFileDialog1.showDialog() = DialogResult.OK Then End If

Kita dapat menambahkan filter pada dialog tersebut.


OpenFileDialog1.Filter = Text files|*.txt|HTML files|*.htm;*.html|All files|*.* If OpenFileDialog1.showDialog() = DialogResult.OK Then End If

Nama file yang dipilih disimpan di properties FileName.


OpenFileDialog1.FileName

SaveFileDialog Penggunaan SaveFileDialog sama dengan OpenFileDialog hanya digunakan untuk tujuan save file bukan untuk open file.

Bab 10 Windows Control Library

Dalam Windows Control Library kita dapat membuat component sendiri dengan menggabungkan component-component yang sudah ada.

Kemudian kita bisa menambahkan coding-coding tertentu yang akan tersimpan dalam control tersebut nanti. Selanjutnya waktu di compile file yang akan dhasilkan bukanlah application tetapi dll ( Dynamic Link Libraries ). File dll ini merupakan komponen yang dapat kita add pada project kita selanjutnya. Kita tinggal menggunakan komponen tersebut dan mengintegrasikannya dengan komponen-komponen lainnya. Kita dapat tambahkan beberapa properti.
Public Property FileName() As String Get Return TextBox1.Text End Get Set(ByVal Value As String) TextBox1.Text = Value End Set End Property Public Property ButtonText() As String Get Return Button1.Text End Get Set(ByVal Value As String) Button1.Text = Value End Set End Property

Kemudian compilelah UserControl tersebut.

Akan muncul mengeluarkan komponennya. menambahkan

kotak dialog seperti di atas. UserControl tidak dapat langsung output. Kita harus membuat project baru dan menambahkan Buatlah project baru dan pada bagian toolbox sebelah kiri, kita dapat komponen baru dengan klik kanan pilih Add/Remove Item.

Pilihlah Browse kemudian pilih file .dll hasil kompilasinya.

Kemudian drag drop-lah FileField pada form. Kemudian perhatikan pada bagian Propertiesnya akan muncul Properties yang kita buat FileName dan ButtonText. Pada bagian Properties akan muncul Properties standar dari UserControl. Ditambah dengan properties yang kita tambahkan dari coding yaitu FileName dan ButtonText. Property FileName akan berhubungan dengan teks yang ada pada Textbox sedangkan ButtonText akan berhubungan pada teks dari Button. Seharusnya Textbox1 dan Button1 kita set properties Modifiernya private sehingga tidak dapat diakses dari FileField. Selain properties kita dapat menambahkan variabel, sub, dan function dalam UserControl.

Bab 11 Windows Class Library

Berbeda dengan Windows Control Library yang ditujukan untuk membuat Control sendiri dengan menggabungkan control-control yang sudah ada menjadi suatu control baru, Class Library ini tidak mengarah ke komponen yang visual. Class Library adalah membuat class yang dapat kita gunakan fungsi-fungsi di dalamnya dan kita juga dapat melakukan inheritance dari class lain. Misalkan kita membuat class baru sebagai turunan dari class lain, maka semua fitur dari class induknya akan diturunkan ke class anaknya. Kemudian kita tinggal menambahkan fitur baru tambahannya. Ini berguna jika seorang programmer ingin mengembangkan class buatan programmer lain, dia dapat meng-nheritance kemudian ditambahkan codenya. Kita coba membuat class bernama Encryption kemudian kita buat beberapa fungsi enkripsi sederhana. Kemudian kita akan mengcompile menjadi dll dan menggunakannya dalam project lain.

Class CaesarChiper
Public Class CaesarChiper Private plain As String Public Enum ProcessMode Encrypt Decrypt End Enum Public Property PlainText() As String Get Return plain End Get Set(ByVal Value As String) plain = Value End Set End Property Public Function Process(ByVal Steps As Integer, ByVal mode As ProcessMode) As String Dim result As String = "" Dim temp As String If mode = ProcessMode.Encrypt Then ''encrypt For i As Integer = 0 To plain.Length - 1 temp = Chr(Asc(plain.Chars(i)) + Steps) result &= temp Next Else ''decrypt For i As Integer = 0 To plain.Length - 1 temp = Chr(Asc(plain.Chars(i)) - Steps) result &= temp Next End If Return result End Function End Class

Setelah dicompile akan menghasilkan dll yang dapat kita gunakan di project kita yang lain. Buatlah sebuah project dengan nama TesEncrypt. Untuk menambahkan dll yang telah kita buat ke project baru kita ini kliklah pada menu Project > Add Reference. Kemudian klik browse dan pilihlah file dll hasil kompilasi yang telah dibuat yaitu Encryption.dll. Setelah itu pada layar coding pada bagian paling atas tambahkan Imports Encryption

Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncrypt.Click Dim c As New CaesarChiper c.PlainText = TextBox1.Text TextBox2.Text = c.Process(1, CaesarChiper.ProcessMode.Encrypt) End Sub Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecrypt.Click Dim c As New CaesarChiper c.PlainText = TextBox2.Text TextBox1.Text = c.Process(1, CaesarChiper.ProcessMode.Decrypt) End Sub