Thursday, May 29, 2014

Prosedur dan Fungsi pada Visual Basic


Prosedur dan fungsi merupkana blok program yang dapat dipanggil dalam sebuah program aplikasi. Untuk penggunaan prosedur dapat dilakukan hanya dengan memanggil nama prosedur tersebut. Dengan prosedur penulisan program menjadi lebih modular dan terstruktur. Prosedur tidak mengembalikan nilai sedangkan fungsi mengembalikan nilai. Secara garis besar ada tiga jenis prosedur yaitu : Sub prosedur, Function prosedur dan event prosedur.

4.1  Sub Prosedur
Pada Sub prosedur dapat memiliki parameter ataupun tidak. Parameter tersebut bisa berjumlah lebih dari satu. Pernyataan yang ada didalam prosedur akan dieksekusi ketika prosedur tersbut dipanggil. Sebuah prosedur didefinisikan dengan kata kunci Sub dan End Sub. Prosedur dapat ditulis pada module, class atau structure. Penentu akses dari prosedur adalah private, protected, Friend, dan Public. Secara default penentu akses prosedur adalah public artinya prosedur dapat dipanggil dari mana saja di dalam proyek tersebut. Parameter pada prosedur ada dua jenis yaitu : ByVal dan ByRef. Parameter ByVal nilai yang dimasukkan dalam prosedur hanya berubah pada prosedur tersebut sedangkan diluar prosedur nilai tersebut tidak akan berubah.

Cara memanggil prosedur :
              Call [nama_prosedur] ([parameter])

Format penulisan Sub prosedur adalah sebagai berikut :
Sub procedure-name(parameter-list)
declarations and statements
       End Sub

Contoh penggunaan prosedur :
 



4.2 Function Prosedur
Hampir sama dengan sub prosedur, namun pada fungsi terdapat nilai kembalian. Fungsi dapat dibuat sendiri ataupun menggunakan fungsi yang sudah disediakan oleh VB.NET.

Cara memanggil Fungsi
Cara pemanggilan fungsi yang dibuat sendiri atau fungsi yang sudah disediakan oleh VB.NET sama saja yaitu :
[nama_variabel_penampung] = [nama_fungsi] ( parameter)


Format penulisan Fungsi :
Function procedure-name(parameter-listAs return-type
declarations and statements
Return expression
End Function

Contoh Penggunaan Fungsi :
 




Beberapa fungsi yang telah tersedia pada VB.NET


4.3 Option Strict
Visual basic menyediakan beberapa cara untuk mengendalikan data type. Pilihan pertama adalah pada saat Option Explicit On maka pendeklarasian semua variabel sebelum digunakan didalam program harus dilakukan untuk menghindari kesalahan. Pilihan kedua adalah : mengubah nilai default option sctric yang biasanya adalah off. Option strict berfungsi untuk mengurangi waktu debugging dan meningkatkan clarity dari program.

Pada saat option strict di set menjadi on maka compiler akan memeriksa semua konversi, sehingga programmer harus melakukan conversi secara ekspilisit untuk menghidari hilangnya data (misalnya konversi dari double menjadi integer) atau program tiba-tiba akan berhenti bila terjadi conversi data dari string “hello” menjadi integer.

Contohnya adalah penggunaan method Convert yang mensyaratkan agar perubahan tipe data dilakukan secara eksplisit. Misalnya untuk menyimpan input bertipe string kedalam sebuah variabel angka yang bertipe interger( yang direpresentasikan dalam VB.NET sebagai TYPE Int32, 32-bit integer). Pada saat option explicit di set menjadi ON maka kita gunakan perintah sebagai berikut :
             
              number = convert.ToInt32(textbox1.text)

namun pada saat option explicit di set menjadi off maka VB akan melakukan conversi tersebut secara implisit.  Jika data yang dikonversikan tidak sesuai dengan tipe data yang baru maka, akan terjadi kesalahan runtime.

Untuk mengaktifkan Option Strict  adalah sebagai berikut :  
Programmer juga dapa membuat option strict on hanya untuk sebagian file, pembuatannya diletakkan pada bagian code program , dengan mengetikkan :

Option strict on

Lalu letakkan kata tersebut di bagian paling atas dari program, sebelum deklarasi atau statement imports.

4.4. ByVal dan ByRef
ByVal adalah default keyword yang baru untuk method parameter. Visual Studio akan menambahkannya secara otomatis ketika anda membuat method parameter. Jika parameter pada method di deklarasikan ByVal berarti nilai dari parameter tersebut adalah kopian dari nilai parameter method pemanggil. Jadi ketika parameter pada method diubah maka tidak berpengaruh ke parameter method pemanggil.

Lain halnya jika anda menggunakan keyword ByRef, dengan ByRef maka parameter pada method mereferensi ke object yang sama dengan parameter pada method pemanggil, maka jika parameter pada method berubah ini juga berpengaruh ke parameter di method pemanggil.




Perbedaan ByVal dan ByRef


Text Box: Public Class ConValRef
  Function LuasLingkaran(ByRef panjang As Double,ByRef lebar As Double) As Double
        panjang += 2
        lebar += 2
        Return panjang * lebar
    End Function
 
    Function Segitiga(ByVal alas As Double, _
                      ByVal tinggi As Double) As Double
        alas += 2
        tinggi += 2
        Return 0.5 * alas * tinggi
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, _
                         ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim alas As Double = 12
        Dim tinggi As Double = 14
        'ByVal = nilai dari method pemanggil dicopy ke method
        Dim luas As Double = Segitiga(alas, tinggi)
        ListBox1.Items.Add(luas.ToString)
        'tetap bernilai 12 walaupun pada method ditambah 2
        ListBox1.Items.Add(alas.ToString)
        'tetap bernilai 14 walaupun pada method ditambah 2
        ListBox1.Items.Add(tinggi.ToString)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, _
                         ByVal e As System.EventArgs) Handles Button2.Click
 
        Dim panjang As Double = 12
        Dim lebar As Double = 14
        'karena menggunakan ByRef maka parameter pada
        'method pemanggil mempunyai referensi yang
        'sama dengan parameter pada function, jika
        'nilai parameter pada function dirubah maka
        'nilai variabel pada method pemanggil juga berubah
        Dim luas As Double = LuasLingkaran(panjang, lebar)
        ListBox2.Items.Add(luas.ToString)
        'menjadi 14 karena ditambah 2 pada function
        ListBox2.Items.Add(panjang.ToString)
        'menjadi 16 karena ditambah 2 pada function
        ListBox2.Items.Add(lebar.ToString)
    End Sub
End Class




























  
4.5 Bilangan Random
Fungsi Rnd menghasilkan angka random
Fungsi Rnd menghasilkan angka desimal dalam range 0 hingga 1, akan menghasilkan angka 0 tapi tidak sampai 1.

Contoh :  label1.text = rnd()

                  dst...      

Akan menghasilkan angka desimal yang lebih besar atau sama dengan 0,... tapi kurang dari 1

Atau dapat digunakan batas atas dan batas bawah untuk menentukan range angka desimal yang ingin dihasilkan

 (upperbound – lower bound + 1) * Rnd + lower bound

range integer random bisa dihasilkan dengan menambahkan fungsi integer

Int(upperbound-lowerbound + 1) * Rnd + 1

Formula
Angka Yang dihasilkan
(10-1 +1)*Rnd +1
angka desimal dari 1-10.999
(25-5+1) * Rnd + 5
angka desimal 5-25,999
Int ((10-1+1)*Rnd + 1)
Integers dari 1 – 10

Latihan:
1. Prediksikan output dari program berikut :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim intrnd1 As Integer, intrnd2 As Integer
        Randomize()
        Do While PictureBox1.Top > 0  And  PictureBox2.Top > 0
            intrnd1 = Int((50 - 10 + 1) * Rnd() + 10)
            intrnd2 = Int((50 - 10 + 1) * Rnd() + 10)
            PictureBox1.Top = PictureBox1.Top - intrnd1
            PictureBox2.Top = PictureBox2.Top - intrnd2
        Loop
        If PictureBox1.Top <= 0 And PictureBox2.Top <= 0 Then    MsgBox("seri")
        Else
            If PictureBox1.Top <= 0 Then  MsgBox("kucing menang")
            Else
                MsgBox("ikan menang")
            End If
        End If
        PictureBox1.Top = 4200
        PictureBox2.Top = 4200
    End Sub
2. Buat source code untuk menghasilkan interface berikut :

 

0 comments:

Post a Comment

Followers

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified


  © Blogger template 'A Click Apart' by Ourblogtemplates.com 2008

Back to TOP