PROCEDURE, FUNCTION dan MODULE
1. Procedure
Sub procedure merupakan blokkode yang mempunyai nama
dan berisi perintah yang dapat dipanggil suatu waktu. Artinya, hanya sekali
dibuat yang kemudian di panggil berkali-kali sesuai dengan kebutuhan.
Bentuk umum:
[public|private]Sub(||)
…..
Statment
…..
End Sub
Sub Procedure dapat dipanggil dengan
perintah :
[call] subname[(argumentlist)]
Keterangan
:
Sub procedure (Procedure) sebaiknya menggunakan kata
kerja (verb). Pemanggilan procedure yang masih dalam satu kelas (class)
atau modul (module) dapat dilakukan dengan kata kunci Me. Procedure dapat
menerima argument melalui nilai (by value) atau juga reference (by reference).
Jika menggunakan by value, nilai pada argument tidak berubah.Sedangkan jika
menggunakan by reference, nilai argument yang digunakan dapat berubah sesuai
dengan perintah dalam procedure. Secara default, argument dimasukkan
melalui nilai (by value) dapat menggunakan kata kunci ByVal dan ByRef untuk By
Reference.
Syntaks
argument :
[ByVal|ByRef]
variabelname as type
Contoh :
1. Procedure dengan argument di passing
sebagai value
Sub HitungVal(byVal as Decimal)
A+=1
textAkhir.text=a
end sub
textAkhir.text=a
end sub
2. Procedure dengan argument di passing
sebagai value
Sub HitungRef(byRef as Decimal)
A+=1
textAkhir.text=a
end sub
textAkhir.text=a
end sub
3. pemanggilan procedure
HitungVal(textAwal.Text)
Mari
kita buat source code pada procedure:
1. Buatlah
desain form seperti gambar dibawah ini:
2. Aturlah pengaturan Properties seperti pada table berikut:
NO
|
OBJEK
|
PROPERTIES
|
PENGATURAN
|
1
|
Label1
|
Text
|
Kode
Barang
|
2
|
Label2
|
Text
|
Nama
Barang
|
3
|
Label3
|
Text
|
Satuan
|
4
|
Label4
|
Text
|
Harga
|
5
|
Label5
|
Text
|
Jumlah
|
6
|
Label6
|
Text
|
Total
Harga
|
7
|
TextBox1
|
Name
|
TextboxKB
|
8
|
TextBox2
|
Name
|
TextboxNB
|
9
|
TextBox3
|
Name
|
TextboxS
|
10
|
TextBox4
|
Name
|
TextboxH
|
11
|
TextBox5
|
Name
|
TextboxJ
|
12
|
TextBox6
|
Name
|
TextboxTH
|
13
|
Button1
|
Name
|
ButtonHITUNG
|
Text
|
Hitung
|
||
14
|
Button2
|
Name
|
ButtonCLEAR
|
Text
|
Clear
|
||
15
|
Button3
|
Name
|
ButtonEXIT
|
Text
|
Exit
|
3. Kode program
Double
klik pada form, kemudian buatlah sub procedure bersih berikut ini:
Panggil procedure yang anda buat diatas dengan cara, kik
ganda pada form load ketik kode program berikut ini:
Panggil procedure yang anda buat diatas pada ButtonCLEAR
dengan cara, klik ganda pada button CLEAR kenudian ketik kode program berikut
ini;
Klik
ganda pada Button EXIT, kemudian ketik kode program berikut ini:
Jalankan
aplikasi dengan menekan tombol F5 (di keyboard), atau melalui icon Start
Debugging di toolbar, atau melalui menu Debug > Start Debuging. Jika
berhasil maka tampilan program akan seperti pada gambar dibawah ini
Berikut adalah contoh program procedure:
Public Class Form1
Sub Bersih()
txtkode.Text = ""
txtnama.Text = ""
txtsatuan.Text = ""
txthrgsatuan.Text = ""
txtjumlah.Text = " "
txttotal.Text = ""
txtkode.Focus()
txttotal.Enabled = False
End Sub
Private Sub Barang_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Call Bersih()
End Sub
Private Sub btnclear_Click(sender As Object, e As EventArgs) Handles btnclear.Click
Call Bersih()
End Sub
Private Function Hitung()
Dim jumlah, hrgsatuan,
total As Integer
jumlah =
txtjumlah.Text
hrgsatuan
= txthrgsatuan.Text
total =
jumlah * hrgsatuan
txttotal.Text = total
Return total
End Function
Sub CekDataKosong()
If txtkode.Text = "" Then
MessageBox.Show("Kode Barang Harus
diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtkode.Focus()
ElseIf txtnama.Text = " " Then
MessageBox.Show("Nama Barang harus
diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtnama.Focus()
ElseIf txtsatuan.Text = "" Then
MessageBox.Show("Satuan Barang yang
harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtsatuan.Focus()
ElseIf txthrgsatuan.Text = "" Then
MessageBox.Show("Harga Satuan yang
harus diisi", "konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txthrgsatuan.Focus()
ElseIf txtjumlah.Text = "" Then
MessageBox.Show("Jumlah barang yang
harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtjumlah.Focus()
Else
Call Hitung()
End If
End Sub
Private Sub btnhitung_Click(sender
As Object, e As EventArgs) Handles btnhitung.Click
Call CekDataKosong()
End Sub
Private Sub btnexit_Click(sender As Object, e As EventArgs) Handles btnexit.Click
Dim tutup As String
tutup = MessageBox.Show("yakin tutup form
ini ?", "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If tutup = MsgBoxResult.Yes Then
End
Else
Exit Sub
End If
End Sub
End Class
|
Hasil run:
Function
yaitu Sebuah kumpulan Statement yang akan mengembalikan sebuah nilai balik pada
pemanggilnya. Nilai yang dihasilkan Function harus ditampung kedalam sebuah
variabel.
Bentuk Umum :
[public|private]Function(||)
As
…..
…..
End Function
Keterangan :
Perbedaan antara fungsi dengan
procedure hanyalah pada pengembalian nilai saja (return value). Sebagai contoh
: Menggunakan argument berupa nilai (by value) dan reference (by reference)
Pengembalian nilai dapat dilakukan
dengan menggunakan operator assignment “=” pada fungsi atau biasanya dengan
perintah return.
Contoh :
Private Function cekData()
as Boolean
if Is Numeric(TextAwal.text) then
return true
else
return false
end if
end function
|
Pemanggilan fungsi:
if cek Data()=true then
Hitung Ref(textAwal.text)
else
messageBox.Show(“Data yang di masukkan bukan
angka”,”Kesalahan
data”,MessageBoxButtons.OK,MessageBoxIcons.Error)
end if.
|
Berikut ini merupakan beberapa
perbedaan Fungtion dan procedure:
Procedure
|
Function
|
|
Definisi
|
Sebuah
kumpulan perintah (Statement) yang tidak mengembalikan nilai balik terhadap
pemanggilnya
|
Sebuah
kumpulan Statement yang akan mengembalikan sebuah nilai balik pada
pemanggilnya. Nilai yang dihasilkan Function harus ditampung kedalam sebuah
variabel.
|
Parameter
|
Bisa
menggunakan parameter dan bisa juga tidak menggunakan parameter (Optional).
|
Bisa
menggunakan parameter dan bisa juga tidak menggunakan parameter (Optional).
|
Deklarasi
|
Menggunakan
keyword “Sub”.
|
Menggunakan
keyword “Function”:
untuk
mengembalikan nilai hasil dari Statement menggunakan keyword “return” atau
menggunakan nama dari function tersebut.
|
Keuntungan menggunakan procedure dan
function adalah:
1. Mengurangi duplikasi kode program.
2. Mengatasi masalah yang kompleks
menjadi potongan-potongan yang lebih sederhana.
3. Meningkatkan kejelasan kode.
4. Kode yang mudah dibaca.
5. Informasi kode bersembunyi.
6. Dapat dipakai berulang kali.
Agar lebih paham , mari kita lihat contoh kasus function di
bawah ini:
1.
Buatlah
desain form seperti gambar di bawah ini.
2. Aturlah pengaturan properties seperti pada table
berikut:
Object
|
Properties
|
Nilai
|
Form1
|
Name
|
Form1
|
Text
|
Function
|
|
TexBox1
|
Name
|
TxtVar1
|
TexBox2
|
Name
|
TxtVar2
|
TexBox3
|
Name
|
TxtHasil
|
GroupBox1
|
Text
|
Operasi
|
RadioButton1
|
Name
|
RdbAkar
|
Text
|
Akar Kuadrat
|
|
RadioButton2
|
Name
|
RdbPangkat
|
Text
|
Pangkat
|
|
RadioButton3
|
Name
|
RdbPembagian
|
Text
|
Pembagian
|
|
RadioButton4
|
Name
|
RdbPerkalian
|
Text
|
Perkalian
|
|
RadioButton5
|
Name
|
RdbPenjumlahan
|
Text
|
Penjumlahan
|
|
RadioButton6
|
Name
|
RdbPengurangan
|
Text
|
Pengurangan
|
|
Button1
|
Name
|
BtnHitung
|
Text
|
Hitung
|
|
Button2
|
Name
|
BtnExit
|
Text
|
Exit
|
3. Kode program
Klik kanan pada form, kemudian pilih
view code , kemudian ketik deklarasi masing-masing fungsi sebagai berikut.
Klik ganda pada button hituung, kemudian ketik kode program berikut ini:
Klik ganda pada buton exit, kemudian ketik kode program berikut ini:
Berikut adalah contoh programnya:
5. berikut ini adalah hassil run
dari program di atas
Public Class Form1
Function akar(ByVal a As Decimal) As String
Return Math.Sqrt(a)
End Function
Function pangkat(ByVal a As Decimal, ByVal b As Decimal) As String
Return a ^ b
End Function
Function pembagian(ByVal a As Decimal, ByVal b As Decimal) As String
Return a / b
End Function
Function perkalian(ByVal a As Decimal, ByVal b As Decimal) As String
Return a * b
End Function
Function penjumlahan(ByVal a As Decimal, ByVal b As Decimal) As String
Return a + b
End Function
Function pengurangan(ByVal a As Decimal, ByVal b As Decimal) As String
Return a - b
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub btnhitung_Click(sender
As Object, e As EventArgs) Handles btnhitung.Click
If rdbakar.Checked = True Then
txthasil.Text = akar(txtvar1.Text)
ElseIf rdbpangkat.Checked = True Then
txthasil.Text = pangkat(txtvar1.Text, txtvar2.Text)
ElseIf rdbpembagian.Checked =
True Then
txthasil.Text = pembagian(txtvar1.Text, txtvar2.Text)
ElseIf rdbperkalian.Checked =
True Then
txthasil.Text = perkalian(txtvar1.Text, txtvar2.Text)
ElseIf rdbpenjumlahn.Checked
= True Then
txthasil.Text = penjumlahan(txtvar1.Text, txtvar2.Text)
ElseIf rdbpengurangan.Checked
= True Then
txthasil.Text = pengurangan(txtvar1.Text, txtvar2.Text)
End If
End Sub
Private Sub btnexit_Click(sender As Object, e As EventArgs) Handles btnexit.Click
Dim tutup As String
tutup = MessageBox.Show("Yakin tuup form
ini?", "Konfirmasi", MessageBoxButtons.YesNo)
If tutup = MsgBoxResult.Yes Then
End
Else
Exit Sub
End If
End Sub
End Class
|
3. Module
Modul merupakan bagian yang sengaja dipisahkan untuk memudahkan pemrograman.Dalam module dapat dimasukkan procedure dan fungsi dan kemudian digunakan oleh beberapa form.
- Umumnya modul dideklarasikan secara public (public) agar dapat digunakan di dalam kode dimanapun
- Modul dapat diisi dengan main procedure yang akan dijalankan pertama kali saat program dimulai.
- Modul merupakan salah satu argumentasi code reuse yang bertujuan agar program lebih efesien.
Sintaks pembuatan modul sebagai
berikut:
Module moduleName
Statement
End module
Contoh:
Module Module
Public intResponce, RoleId,
Msg As Integer
Public Username, Password,
Nama As String
End Module
Agar lebih paham, mari kita lihat
contoh kasus modulo di bawah ini:
- Pertama-tama kita harus menambahkan module ke dalam project dengan cara klik PROJECT – ADD module, lalu ketik nama file yang ingin anda simpan kemudian klik ok. Lalu ketikan program seperti gambar berikut:
- Kemudian buatlah desain form seperti gambar dibawah ini:
3. Aturlah pengaturan properties seperti pada table
berikut:
NO
|
OBJEK
|
PROPERTIES
|
PENGATURAN
|
1
|
Label1
|
Text
|
Alas
|
2
|
Label2
|
Text
|
Tinggi
|
3
|
Label3
|
Text
|
Hasil
|
4
|
TexBox1
|
Name
|
TextboxAlas
|
5
|
TexBox2
|
Name
|
TextboxTinggi
|
6
|
TexBox3
|
Name
|
TextboxHasil
|
7
|
Button1
|
Name
|
ButtonHitung
|
Text
|
Hitung
|
||
8
|
Button2
|
Name
|
ButtonExit
|
Text
|
Exit
|
4. Klik ganda pada button hitung,
kemudian ketik kode program berikut in
- Jalanan aplikasi dengan menekan tombol F5 pada keyboard.
- Berikut adalah contoh program module:
Module Module1
Public alas As Integer
Public tinggi As Integer
Public Function luas_segitiga(ByVal a As Integer, ByVal b As Integer)
Return (alas * tinggi) / 2
End Function
End Module
Public Class Form1
Private Sub btnhitung_Click(sender As Object, e As EventArgs) Handles btnhitung.Click
Try
alas = Me.txtalas.Text
tinggi = Me.txttinggi.Text
Me.txthasil.Text = luas_segitiga(alas,
tinggi)
Catch ex As Exception
MsgBox(ex.Message)
MsgBox("Error dalam menghitung, Harap
masukan nilai", vbInformation)
End Try
End Sub
Private Sub btnexit_Click(sender As Object, e As EventArgs) Handles btnexit.Click
Dim tutup As String
tutup = MessageBox.Show(" Yakin anda tutup
form ini?", "konfirmasi", MessageBoxButtons.YesNo)
If tutup = MsgBoxResult.Yes Then
End
Else
Exit Sub
End If
End Sub
End Class
|
- Berikut adalah hasil run:
Tidak ada komentar:
Posting Komentar