VB.NET: Sub Procedure dan Function


Pengalaman pertama kali kerja di luar lingkungan kampus sebagai seorang coder, Rani dapet pertanyaan dari atasan. "Apa perbedaan Sub dengan Function?"

Sebagai coder pemula pastinya bingung jawabnya, soalnya biasa cuma pakai event yang ada dalam control aja. Usut-punya usut ternyata jawaban nya simple sekali:

"Pada function ada nilai yang dikembalikan sementara pada sub tidak".

Lalu bagaimana dengan event? Event merupakan sub procedure yang dijalankan dengan trigger/aksi yang dilakukan pada control seperti Click, TextChanged, dan lain sebagainya.

# Sub Procedure #

Mari kita bahas mulai dari Sub Procedure. Sub procedure intinya merupakan kumpulan code yang diawali dengan Sub dan diakhiri dengan End Sub.
Sintaks:
[accessibility] Sub nama_prosedur ( parameter )
    statement
End Sub


Keterangan:
Accessibility bisa berupa Public, Protected, Friend, Protected Friend, atau Private yang menentukan dari bagian mana saja sub tersebut dapat diakses.

nama_prosedur merupakan nama sub procedure yang penamaan nya harus sesuai dengan aturan penamaan dalam Visual Basic dan harus diawali dengan huruf atau underscore ( _ ).

parameter dideklarasikan sebagaimana kita mendeklarasikan variable. Sebuah sub procedure bisa memiliki parameter ataupun tidak. Parameter sub prosedur ada dua jenis yaitu ByVal dan ByRef. Pada parameter ByVal nilai hanya berubah pada prosedur tersebut sedangkan diluar prosedur nilai tersebut tidak akan berubah. Sebaliknya nilai ByRef akan ikut berubah di luar sub procedure.

Contoh Penulisan:
Sub Procedure dengan 1 parameter:
Private Sub GantiTeks(ByVal TeksBaru As String)
    TextBox1.Text = TeksBaru
End Sub


Sub Procedure dengan 2 parameter:
Public Sub TampilkanPeringatan(ByVal Pesan As String, _
                              
ByVal Judul As String)

    MessageBox.Show(Pesan, Judul, MessageBoxButtons.OK, _
                    MessageBoxIcon.Exclamation)
End Sub


Sub Procedure dengan parameter opsional (boleh diisi boleh tidak tetapi memiliki nilai default):
Private Sub UbahPesan(Optional ByVal Pesan As String = "")
    If Pesan = "" Then
        MsgBox("Tidak ada pesan")
    Else
        MsgBox(Pesan)
    End If
End Sub


Contoh Pemanggilan Sub Procedure:
Sub Procedure dengan 1 parameter:
UI:
Code:
Private Sub Form1_Load(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles MyBase.Load
    Button1.Text = "Choose..."
End Sub

 Private Sub Button1_Click(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles Button1.Click

    GantiTeks("Rani")

End Sub


Runtime:

Sub Procedure dengan 2 parameter:
Code:
Private Sub Form1_Load(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles MyBase.Load
    Button1.Text = "Choose..."
End Sub

 Private Sub Button1_Click(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles Button1.Click

    TampilkanPeringatan("Isi data sesuai format.", "Peringatan")

End Sub


Runtime:

Sub Procedure dengan parameter opsional:
Call UbahPesan()
UbahPesan("Selamat Datang!")

# Function #

Definisi fungsi adalah kumpulan code yang diawali dengan Function dan diakhiri dengan End Function. Function menjalankan kode diantaranya dan mengembalikan sebuah nilai. Artinya sama seperti sub procedure tetapi function mengembalikan nilai.
Sintaks:
[ accessibility ] Function nama_function [ paramater ] [As tipe_nilai ]
    statement
End Function


Keterangan:
Accessibility bisa berupa Public, Protected, Friend, Protected Friend, atau Private yang menentukan dari bagian mana saja function tersebut dapat diakses.

nama_function merupakan nama function yang penamaan nya harus sesuai dengan aturan penamaan dalam Visual Basic dan harus diawali dengan huruf atau underscore ( _ ).

parameter dideklarasikan sebagaimana kita mendeklarasikan variable. Sebuah function bisa memiliki parameter ataupun tidak. Parameter sub prosedur ada dua jenis yaitu ByVal dan ByRef. Pada parameter ByVal nilai hanya berubah pada prosedur tersebut sedangkan diluar prosedur nilai tersebut tidak akan berubah. Sebaliknya nilai ByRef akan ikut berubah di luar function.

Contoh Penulisan:
Function dengan 1 parameter:
Function BagiDua(ByVal sNilai As Single) As Single
    Return sNilai / 2
End Function


Function dengan 2 parameter:
Private Function HasilBagi(ByVal sNilai As Single, ByVal sBagi As Single) As Single
     Return sNilai / sBagi
End Function


Function dengan parameter opsional (boleh diisi boleh tidak tetapi memiliki nilai default):
Public Function TampilkanPesan(Optional ByVal IsiPesan As String = "") As String
    If IsiPesan = "" Then
       
Return "Tidak ada pesan"
    Else
       
Return "Isi Pesan adalah " & IsiPesan
   End If

End Function

Contoh Pemanggilan Function:
Function dengan 1 parameter:
Private Sub Button1_Click(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles Button1.Click

    TextBox1.Text = BagiDua(5)

End Sub


Function dengan 2 parameter:
Private Sub Button1_Click(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles Button1.Click

    TextBox1.Text = HasilBagi(7, 2)

End Sub

 Function dengan parameter opsional:
Private Sub Button1_Click(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles Button1.Click

    TextBox1.Text = TampilkanPesan()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _
           
ByVal e As System.EventArgs) Handles Button1.Click

    TextBox1.Text = TampilkanPesan("Selamat Datang!")

End Sub




Click here if you like this article.


Post a Comment

1 Comments

Unknown said…
kak mau tanya, kalau exit sub tapi perintah dari sub/function lain bagaimana caranya?