Prosedur Fungsi (Visual Basic)

Prosedur Function adalah serangkaian pernyataan Visual Basic yang diapit oleh pernyataan Function dan End Function. Prosedur Function melakukan tugas lalu mengembalikan kontrol ke kode panggilan. Saat mengembalikan kontrol, prosedur tersebut juga mengembalikan nilai ke kode panggilan.

Setiap kali prosedur dipanggil, pernyataannya berjalan, dimulai dengan pernyataan pertama yang dapat dieksekusi setelah pernyataan Function dan berakhir dengan pernyataan End Function, Exit Function, atau Return pertama yang ditemui.

Anda dapat menentukan prosedur Function dalam modul, kelas, atau struktur. Prosedur ini Public secara default, yang berarti Anda dapat memanggilnya dari mana saja di aplikasi Anda yang memiliki akses ke modul, kelas, atau struktur tempat Anda mendefinisikannya.

Prosedur Function dapat mengambil argumen, seperti konstanta, variabel, atau ekspresi, yang diteruskan ke dalamnya oleh kode panggilan.

Sintaks deklarasi

Sintaks untuk mendeklarasikan prosedurFunction adalah sebagai berikut:

[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
    [Statements]
End Function

Pengubah dapat menentukan tingkat akses dan informasi mengenai kelebihan beban, penimpaan, berbagi, dan pemberian bayangan. Untuk informasi selengkapnya, lihat Pernyataan Fungsi.

Anda menyatakan setiap parameter dengan cara yang sama seperti yang Anda lakukan untuk Sub Prosedur.

Jenis Data

Setiap prosedur Function memiliki jenis data, sama seperti setiap variabel. Jenis data ini ditentukan oleh klausul As dalam pernyataan Function, dan menentukan jenis data nilai yang dikembalikan fungsi ke kode panggilan. Deklarasi berikut menggambarkan hal ini.

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

Untuk informasi lebih lanjut, lihat "Perilaku" di Pernyataan Fungsi.

Mengembalikan nilai

Nilai yang dikirim prosedur Function kembali ke kode panggilan disebut nilai pengembaliannya. Prosedur mengembalikan nilai ini dengan salah satu dari dua cara:

  • Prosedur ini menggunakan pernyataan Return untuk menentukan nilai pengembalian, dan segera mengembalikan kontrol ke program panggilan. Contoh berikut mengilustrasikan langkah-langkah ini:

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement immediately transfers control back
        ' to the calling code and returns the value of Expression.
        Return Expression
    End Function
    
  • Prosedur ini menetapkan nilai ke nama fungsinya sendiri dalam satu atau beberapa pernyataan prosedur. Kontrol tidak kembali ke program panggilan hingga pernyataan Exit Function atau End Function dijalankan. Contoh berikut mengilustrasikan langkah-langkah ini:

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement does not transfer control back to the calling code.
        FunctionName = Expression
        ' When control returns to the calling code, Expression is the return value.
    End Function
    

Keuntungan menetapkan nilai kembali ke nama fungsi adalah kontrol tidak kembali dari prosedur sampai menemukan pernyataan Exit Function atau End Function. Anda dimungkinkan untuk menetapkan nilai awal dan menyesuaikannya nanti jika perlu.

Untuk informasi selengkapnya tentang mengembalikan nilai, lihat Pernyataan Fungsi. Untuk informasi tentang menampilkan array, lihat Array.

Sintaks Panggilan

Anda memanggil prosedur Function dengan menyertakan nama dan argumennya baik di sisi kanan pernyataan penugasan atau dalam ekspresi. Anda harus menyediakan nilai untuk semua argumen yang tidak opsional, dan Anda harus mengapit daftar argumen dalam tanda kurung. Jika tidak ada argumen disediakan, Anda dapat menghilangkan tanda kurung secara opsional.

Sintaks untuk mendeklarasikan prosedurFunction adalah sebagai berikut:

lvalue=functionname[(argumentlist)]

If ((functionname[(argumentlist)] / 3) <=Ekspresi) Then

Saat Anda memanggil prosedur Function, Anda tidak perlu menggunakan nilai pengembaliannya. Jika tidak, semua tindakan fungsi dilakukan, tetapi nilai yang dikembalikan akan diabaikan. MsgBox sering disebut dengan cara ini.

Ilustrasi Deklarasi dan Panggilan

Prosedur Function berikut menghitung sisi terpanjang, atau hipotenus, dari segitiga kanan, mengingat nilai untuk dua sisi lainnya.

Function Hypotenuse(side1 As Double, side2 As Double) As Double
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

Contoh berikut ini memperlihatkan panggilan khusus kehypotenuse.

Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)

Lihat juga