Friday, 3 August 2018

PROCEDURE, FUNCTION DAN MODULE

1. Procedure


Sejauh 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 suatu waktu. Artinya, hanya sekali dibuat yang kemudian di panggil berkali-kali sesuai dengan kebutuhan.


Bentuk Umum :

[Private|Public] Sub subname[(argumentlist)]
      Statements
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 :
a.      Procedure dengan argument di passing sebagai value
Sub HitungVal(byVal as Decimal)
        A+=1
        textAkhir.text=a
end sub

b.      Procedure dengan argument di passing sebagai value
Sub HitungRef(byRef as Decimal)
        A+=1
        textAkhir.text=a
end sub
c.      pemanggilan procedure
HitungVal(textAwal.Text)

2. Function (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 :
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 IsNumeric(TextAwal.text) then
                return true
        else
                return false
        endif
end function

Pemanggilan fungsi
if cekData()=true then
    HitungRef(textAwal.text)
else
    messageBox.Show(“Data yang dimasukkan bukan angka”,”Kesalahan data”,
    MessageBoxButtons.OK,MessageBoxIcons.Error)
endif
3. Module (Modul)

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






CONTOH PROGRAM  PROCEDURE

langkah-langkahnya ;
1. Buat project baru.
2. Desain form seperti pada gambar dibawah ini :


3. Tambahkan kontrol ke form seperti pada gambar diatas dan atur propertinya seperti tabel berikut:


Object
Properties
Nilai
Form1
Name
Text
Form1
Barang
Label1
Text
Kode Barang
Label2
Text
Nama Barang
Label3
Text
Satuan
Label4
Text
Harga Satuan
Label5
Text
Jumlah
Label6
Text
Total Harga
TexBox1
Name
TxtKodeBrg
TexBox2
Name
TxtNamaBrg
TexBox3
Name
TxtSatuan
TexBox4
Name
TxtHrgSatuan
TexBox5
Name
TxtJumlah
TexBox6
Name
TxtTot
Button1
Name
Text
BtnHitung
Hitung
Button2
Name
Text
BtnClear
Clear
Button3
Name
Text
BtnExit
Exit



4. Klik ganda pada Form, kemudian buatlah sub procedure Bersih berikut ini :


        Sub Bersih()
            TxtKodeBrg.Text = ""
            TxtNamaBrg.Text = ""
            TxtSatuan.Text = ""
            TxtJumlah.Text = ""
            TxtHrgSatuan.Text = ""
            TxtTot.Text = ""
            TxtKodeBrg.Focus()
            TxtTot.Enabled = False
        End Sub      

5.  Panggil procedure yang anda buat diatas dengan cara, klik ganda pada form load ketikkan kode
    program berikut ini :


        Call Bersih()

6. Panggil procedure yang anda buat diatas pada BtnClear dengan cara, klik ganda pada BtnClear
    kemudian ketikkan kode program berikut ini :


        Call Bersih()

7.   Buatlah Function Hitung, berikut ini :

    Private Function Hitung()
        Dim Jumlah, HrgSatuan, Total As Integer
        Jumlah = TxtJumlah.Text
        HrgSatuan = TxtHrgSatuan.Text
        Total = Jumlah * HrgSatuan
        TxtTot.Text = Total
        Return Total
    End Function

8.  Buatlah Procedure CekDataKosong dan sekaligus memanggil function Hitung, berikut   ini :


Sub CekDataKosong()
If TxtKodeBrg.Text = "" Then
MessageBox.Show("Kode Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtKodeBrg.Focus()
ElseIf TxtNamaBrg.Text = "" Then
MessageBox.Show("Nama Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtNamaBrg.Focus()
ElseIf TxtSatuan.Text = "" Then
MessageBox.Show("Satua Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtSatuan.Focus()
ElseIf TxtJumlah.Text = "" Then
MessageBox.Show("Jumlah Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtJumlah.Focus()
ElseIf TxtHrgSatuan.Text = "" Then
MessageBox.Show("Harga Satuan Barang harus diisi", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Warning)
TxtHrgSatuan.Focus()
Else
   Call Hitung()
End If
End Sub

9. Memanggil procedure CekDataKosong dengan cara, klik ganda pada tombol BtnHitung:

Call CekDataKosong()

10.  Klik ganda pada tombol BtnExit, Kemudian ketikkan kode program berikut ini :


Private Sub CmbExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbExit.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

11. Jalankan aplikasi dengan menekan tombol F5 (di keyboard), atau melalui icon Start Debugging di
      toolbar, atau melalui menu Debug > Start Debuging.
12. Simpan project anda.

hasilnya dapat dilihat pada gambar di bawah ini :




2. Function

1.      TambahkanForm baru, dengannamaForm2.
2.      DesainTampilan form sepertigambarberikutini :



3.      Tambahkankontrolke form sepertipadagambardiatasdanaturpropertinyasepertitabelberikut:
Object
Properties
Nilai
Form1
Name
Text
Form1
Function
TexBox1
Name
TxtVar1
TexBox2
Name
TxtVar2
TexBox3
Name
TxtHasil
GroupBox1
Text
Operasi
RadioButton1
Name
Text
RdbAkar
AkarKuadrad
RadioButton2
Name
Text
RdbPangkat
Pangkat
RadioButton3
Name
Text
RdbPembagian
Pembagian
RadioButton4
Name
Text
RdbPerkalian
Perkalian
RadioButton5
Name
Text
RdbPenjumlahan
Penjumlahan
RadioButton6
Name
Text
RdbPengurangan
Pengurangan
Button1
Name
Text
BtnHitung
Hitung
Button2
Name
Text
BtnExit
Exit

4.      Klikkananpada form, kemudianpilih menu view, kemudianketikdeklarasimasing-masingfungsisebagaiberikutini :


    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 Pemjumlahan(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

5.      KlikgandapadaTombolHitung, kemudianketikkode program berikutini :

        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 RdbPenjumlahan.Checked = True Then
            TxtHasil.Text = Pemjumlahan(TxtVar1.Text, TxtVar2.Text)
        ElseIf RdbPengurangan.Checked = True Then
            TxtHasil.Text = Pengurangan(TxtVar1.Text, TxtVar2.Text)
        End If

6.      JalankanaplikasidenganmenekantombolF5 (di keyboard), ataumelalui icon Start Debugging di toolbar, ataumelalui menu Debug > Start Debuging.
7.      SimpanaplikasiAnda

 3.MODULE
Module biasanya digunakan untuk mengurangi kode yang dimasukkan pada form, module juga digunakan sebagai koneksi database untuk mempermudah coding sebagai contoh akan menampilkan msgbox yang ditulis pada text1 form namun kodenya berada pada module lihat untuk penggunaan module:

Kemudian masukkan kode dibawah ini dihalaman module:

Sub buka()
MsgBox (Form1.Text1)
End Sub









Pada Form1 buatlah 1 text dan 1 Command dan klik 2 kali Command dan masukkan kode dibawah ini

module1.buka

Maka ketika dirun dan diklik Command1 akan keluar msgbox sesuai dengan yang diketikkan di text1


3. Module

Membuat module rumusmencariluassegitiga.
1.  Menambahkan module kedalam project
           
Berinama module tersebutsesuaidengan yang diinginkan.





2.  Mengisi module dengan variable ataufungsi

3.  Tambahkan form dandesainseperticontohberikutini

Keterangan :
Alas = txt_alas
Tinggi = txt_tinggi
HASIL = txt_hasil
HITUNG = hitung









4.  Tambahkankodepada button “HITUNG”

5. JalankanaplikasidenganmenekantombolF5 (di keyboard), ataumelalui icon Start Debugging di toolbar, ataumelalui menu Debug > Start Debuging.
6.  SimpanaplikasiAnda





Module Module1
Sub Main()
‘BagianJudul
Console.WriteLine(“MenghitungLuas_Segitiga”)
Console.WriteLine(“————————“)
‘BagianKamus
Dim A As Integer
Dim T As Integer
Dim luas As Double
‘BagianDeskripsi
Console.Write(“Masukan A = “)
A = Console.ReadLine
Console.Write(“Masukan T = “)
T = Console.ReadLine
luas = (1 / 2 * A * T)
Console.WriteLine(“luas:” &luas)
Console.ReadLine()
End Sub
End Module

No comments:

Post a Comment