Visual Basic 2008 for Pemula Banget

Embed Size (px)

Citation preview

PEMROGRAMAN VISUAL BASIC

Setelah memahami bahasa Visual Basic dasar untuk menuliskan kode program, langkah selanjutnya adalah mempelajari pemrograman VB itu sendiri.

6.1 Sub ProcedureSejauh ini, Anda telah menuliskan sub procedure yang dibuat secara otomatis pada saat menggunakan event. Sub procedure merupakan blok kode yang mempunyai nama dan berisi perintah yang dapat dipanggil sewaktu-waktu. Artinya, Anda dapat membuat beberapa baris kode perintah yang kemudian dipanggil berkali-kali sesuai kebutuhan. Berikut sintaks untuk menuliskan sub procedure:[Private|Public] Sub subname[(argumentlist)] statements End Sub

Selanjutnya, Anda dapat memanggil sub procedure sewaktu-waktu dengan sintaks berikut:[Call] subname[(argumentlist)]

81

Keterangan mengenai sub prosedur: Sub prosedur (procedure) sebaiknya menggunakan nama dengan kata kerja (verb). Pemanggilan prosedur yang masih dalam satu kelas (class) ataupun modul (module) dapat dilakukan dengan kata kunci Me.

Prosedur dapat menerima argumen melalui nilai (by value) atau juga referensi (by reference). Jika menggunakan by value, nilai pada argumen tidak akan berubah. Sedangkan jika menggunakan by reference, nilai argumen dapat berubah sesuai dengan perintah dalam prosedur. Secara default, argumen dimasukkan melalui nilai (by value). Anda dapat menambahkan kata kunci ByVal untuk by value dan ByRef untuk by reference. Sintaks argumen yang digunakan seperti berikut:[ByVal|ByRef] variablename As type

Sebagai contoh kasus, lakukan praktek berikut untuk membuat prosedur dengan parameter nilai dan referensi. 1. Buat projek baru lalu buat interface seperti gambar berikut.

Gunakan teks dan nama seperti tabel di bawah ini. Kontrol Form Label Label Button Button Nama Form1 Label1 Label2 Button1 Button2 Teks TambahSatu Nilaiawal Nilaiakhir ByVal ByRef

82

2. Terdapat dua tombol pada form. Tombol ByVal akan menjalankan prosedur dengan argumen di-passing sebagai value.Sub HitungVal(ByVal a As Decimal) a += 1 txtAkhir.Text = a End Sub

Sedangkan tombol ByRef akan menjalankan prosedur yang mirip namun dengan argumen di-passing sebagai referensi.Sub HitungRef(ByRef a As Decimal) a += 1 txtAkhir.Text = a End Sub

3. Klik ganda pada tombol ByVal dan ketikkan kode untuk memanggil prosedur HitungVal:HitungVal(txtAwal.Text)

4. Klik ganda pada tombol ByRef dan ketikkan kode untuk memanggil prosedur HitungRef:HitungRef(txtAwal.Text)

5. Jalankan program dengan menekan tombol F5 keyboard. Tes untuk penghitungan menggunakan ByVal. Nilai pada argumen (txtAwal.Text) tetap, sedangkan nilai akhir (a) bertambah satu.

6. Tes untuk penghitungan menggunakan ByRef. Maka nilai pada argumen (txtAwal.Text) dan nilai akhir (a) akan bertambah satu.

83

7. Di bawah ini kode lengkap program:Public Class Form1 Sub HitungVal(ByVal a As Decimal) a += 1 txtAkhir.Text = a End Sub Sub HitungRef(ByRef a As Decimal) a += 1 txtAkhir.Text = a End Sub Private Sub Button1_Click(ByVal sender As System.Object _ , ByVal e As System.EventArgs) Handles Button1.Click HitungVal(txtAwal.Text) End Sub Private Sub Button2_Click(ByVal sender As System.Object _ , ByVal e As System.EventArgs) Handles Button2.Click HitungRef(txtAwal.Text) End Sub End Class

6.2 Function Procedure (Fungsi)Fungsi mempunyai banyak kemiripan dengan sub procedure. Bedanya, fungsi selalu mengembalikan nilai (return value). Sintaks fungsi dituliskan sebagai berikut:[Private|Public] Function functionname[(argumentlist)] [As type] statements { functionname = expression} | {Return expression} End Function

Keterangan mengenai Fungsi: Perbedaan antara fungsi dan prosedur hanyalah pada pengembalian nilai saja (return value). Sebagai contoh, fungsi dapat

84

menggunakan argumen berupa nilai (by value) dan referensi (by reference). Pengembalian nilai dapat dilakukan menggunakan operator assignment = pada fungsi atau bisa dengan perintah Return.

Akan lebih jelas lagi jika Anda melakukan praktek menggunakan fungsi. Untuk itu, kembangkan lagi aplikasi Tambah Satu dengan cara berikut: 1. Jalankan kembali aplikasi Tambah Satu. Jika Anda memasukkan karakter bukan angka pada textbox txtAwal lalu tombol diklik, program akan error.

2. Pesan kesalahan menunjukkan peristiwa InvalidCastException. Artinya, terjadi kegagalan casting saat mengubah karakter a menjadi bilangan (angka).

Untuk mengatasi masalah ini, dibutuhkan validasi data. Artinya, kevalidan data dicek terlebih dahulu baru kemudian diproses. Jika data tidak valid, proses tidak dilanjutkan. 3. Untuk mengakomodasi keperluan ini, buat fungsi baru dengan nama cekdata sebagai berikut.Private Function cekdata() As Boolean If IsNumeric(txtAwal.Text) Then Return True Else Return False

85

End If End Function Jika data adalah angka, maka fungsi akan mengembalikan nilai True. Jika tidak, maka fungsi mengembalikan nilai False.

4. Ubah kode untuk klik pada tombol ByVal menjadi sebagai berikut.If cekdata() = True Then HitungVal(txtAwal.Text) Else MessageBox.Show("Data yang dimasukkan bukan angka", _ "Kesalahan Data", MessageBoxButtons.OK, _ MessageBoxIcon.Error) End If

5. Ubah kode untuk klik pada tombol ByRef menjadi sebagai berikut.If cekdata() = True Then HitungRef(txtAwal.Text) Else MessageBox.Show("Data yang dimasukkan bukan angka", _ "Kesalahan Data", MessageBoxButtons.OK, _ MessageBoxIcon.Error) End If

6. Jalankan kembali program dengan menekan tombol F5 keyboard. Masukkan sembarang karakter bukan angka pada Nilai awal lalu tekan tombol ByVal/ByRef. Maka akan keluar kotak dialog kesalahan dan pengguna harus menginput ulang masukannya.

86

6.3 Modul (Module)Modul merupakan bagian yang sengaja dipisahkan untuk memudahkan pemrograman. Dalam modul dapat dimasukkan prosedur, fungsi, dan variabel yang kemudian digunakan oleh beberapa form. Umumnya modul dideklarasikan secara publik (public) agar dapat digunakan di dalam kode mana pun. Modul dapat diisi dengan main procedure yang akan dijalankan pertama kali saat program dimulai. Modul merupakan salah satu implementasi code reuse yang bertujuan agar program lebih efisien.

Pembuatan modul dapat dilakukan dengan sintaks berikut:Module modulename Statements End Module

Anda dapat membuat modul melalui aplikasi Visual Studio. Caranya, klik menu Project > Add Module. Anda juga dapat mengklik kanan nama Projek pada Solution Explorer. Pilih menu Add > Module.

Penggunaan prosedur, fungsi, variabel dalam modul dilakukan biasa, yaitu secara langsung. 87

6.4 ScopeScope dapat menentukan masa berlakunya suatu nama, terutama nama variabel dan konstanta. Variabel dan konstanta hanya berlaku dalam rentang tertentu dari kode program. Di luar areanya, variabel dan konstanta sudah tidak dikenali lagi oleh kompiler. Secara garis besar, terdapat empat buah scope dalam Visual Basic: prosedur (termasuk fungsi), blok kode program (block), modul (modules), dan namespace. Scope Procedure /Function Block Module Proyek/ Namespace Keterangan Variabeldidalamnyadisebutdenganlocalvariable.Hanya berlakudidalamprosedur/function Blokkodeartinyaberadadiantaraduakatakunci,seperti ForNext,DoLoop.Hanyaberlakudidalambloktersebut Variabel/konstantaberlakuhinggaclassyangmenaungi modultersebut Variabel/konstantadapatberlakupadaprojektersebut

Untuk memahami konsep scope dengan jelas, lakukan praktek pengolahan variabel sebagai berikut: 1. Buat projek baru lalu desain interface seperti di bawah ini.

Kontrol Form Label Label 88

Nama Form1 Label1 Label2

Teks AplikasiPengenalanScope Procedure Block

Label Label TextBox TextBox TextBox TextBox

Label3 Label4 txtProcedure txtBlock txtModule txtNamespace

Module Namespace

2. Masukkan kode dengan cara klik pada Form. Pada jendela Properties, klik tombol Events . 3. Klik ganda pada properti Load.

4. Edit kode hingga menjadi seperti di bawah ini.Module modulku Public b = "var modul" End Module Public Class Form1 Dim a As String = "var namespace" Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load prosedur1() prosedur2() End Sub Sub prosedur1() Dim a As String = "var prosedur" txtProcedure.Text = a End Sub Sub prosedur2() txtNamespace.Text = a If True Then Dim b As String = "var block" txtBlock.Text = b End If txtModule.Text = b End Sub End Class

Dalam kode di atas, variabel untuk berbagai scope akan ditampilkan ke dalam TextBox. 89

5. Jalankan aplikasi dengan menekan tombol F5 keyboard.

90