Kamis, 29 Mei 2014

BERMAIN DENGAN FUNCTION PADA VISUAL BASIC 2010

 

MENJELASKAN APLIKASI YANG MERETURN VALUE BERUPA ARRAY

Pada awalnya kami diberikan sebuah coding sebagai berikut:

Public Class Form1

    Private Function fstat(ByVal ParamArray Args() As Object) As Single()
        Dim hasil(3) As Single
        Dim i As Integer

        For i = 0 To UBound(Args)
            hasil(0) = hasil(0) + Args(i)
            If i = 0 Then
                hasil(1) = Args(i)
                hasil(2) = Args(i)
            End If
            If hasil(1) > Args(i) Then hasil(1) = Args(i)
            If hasil(2) < Args(i) Then hasil(2) = Args(i)
        Next i
        Return hasil
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim statistik As Single() = fstat(1, 6, 2, 7, 3, 9, 4, 10, 8, 5)
        TextBox1.Text = statistik(0)
        TextBox2.Text = statistik(1)
        TextBox3.Text = statistik(2)
    End Sub
End Class

Selain itu kita harus membuat sebuah form dengan tampilan sebagai berikut:

Dari situ dapat dijelaskan bahwa textbox paling atas bernama TextBox1 dan Textbox paling bawah bernama TextBox2 sementara tombol bernama Button1.


Sebelumnya saya jelaskan dulu kegunaan dari aplikasi ini, aplikasi ini bergguna untuk melakukan penjumlahan dari kumpulan angka yang terdapat pada fungsi bernama fstat() tersebut. Angka-angka tersebut dilewatkan dalam parameter array bernama Args(). Selain untuk melakukan penjumlahan, aplikasi ini digunakan untuk menampilkan nilai terbesar dan terkecil pada textbox yang tersedia.


Kalau kita langsung menggunaka sintasks di atas justru kita akan mendapatkan hasil yang tidak kita harapkan, TextBox1 menampilkan nilai terkecil yaitu 1 dan TextBox2 menampilkan nilai terbesar yaitu 10, padahal kita menginginkan yang sebaliknya yaitu TextBox1 menampilkan nilai terbesar dan TextBox2 menampilkan nilai terkecil. maka dari itu kita harus memperbaiki fungsi fstat(), khususnya pada bagian

            If hasil(1) > Args(i) Then hasil(1) = Args(i)
            If hasil(2) < Args(i) Then hasil(2) = Args(i)

pada tanda yang saya cetak dengan warna merah, kita balik menjadi

            If hasil(1) < Args(i) Then hasil(1) = Args(i)
            If hasil(2) > Args(i) Then hasil(2) = Args(i)

Jika kita jalankan lagi maka aplikasi tersebut akan memberikan hasil yang kita inginkan yaitu TextBox1 menamplkan penjumlahan dari 1, 6, 2, 7, 3, 9, 4, 10, 8, 5 ; TextBox2 menampilkan nilai terbesar dari 1, 6, 2, 7, 3, 9, 4, 10, 8, 5 ; TextBox3 menampilkan nilai terkecil dari 1, 6, 2, 7, 3, 9, 4, 10, 8, 5.

Ternyata trik dari aplikasi ini adalah penggunaan array bernam hasil() untuk menggantikan variable "total", "nilaiTerbesar" dan "nilaiTerkecil" yang biasanya digunkan untuk meyelesaikan aplikasi seperti ini.
hasil(0) digunakan untuk menggantikan variable total
hasil(1) digunakan untuk menggantikan variable nilaiTerbesar
hasil(2) digunakan untuk menggantikan variable nilaiTerkecil

nilai dari array hasil() ini nantinya akan diisikan kepada array bernama statistik()


selain itu pada function fstat()
sintaks

For i = 0 To UBound(Args)
            hasil(0) = hasil(0) + Args(i)
            If i = 0 Then
                hasil(1) = Args(i)
                hasil(2) = Args(i)
            End If
            If hasil(1) < Args(i) Then hasil(1) = Args(i)
            If hasil(2) > Args(i) Then hasil(2) = Args(i)
        Next i

digunakan untuk melakukan penjumlahan sekaligus melakukan pengecekan bilangan terbesar, terkecil pada angka-angka yang dilewatkan pada parameter fstat().



MENJELASKAN CONTOH OVERLOADING FUNCTION PADA CONTOH YANG SUDAH DIBERIKAN

Pada awalnya saya diberikan sintaks sebagai berikut:

Public Class Form1

    Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
        hitung = bil1 + bil2
    End Function

    Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
        hitung = bil1 + bil2 + bil3
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = hitung(1, 2, 3)
    End Sub
End Class

Dari sintaks tersebut kita tahu, bahwa sebelumnya kita harus membuat sebuah tombol dan textbox dahulu dengan nama masing masing Button1 dan TextBox1.
maka form yang saya buat menjadi tampilan seperti ini


dan jika aplikasi ini dijalankan dan kita menekan tombolnya maka textbox akan menghasilkan
Sebelumnya saya ulas kembali bahwa overloading adalah pembuatan suatu fungsi atau method dengan nama yang sama persis tetapi menggunkan daftar parameter yang berbeda, jika kita lihat sintaks di atas, terdapat 2 funsgi yang bernama sama persi yaitu "hitung", hanya saja "hitung" yang berada di atas hanya memiliki 2 parameter dan "hitung yang bawah meiliki 3 parameter. dan ternyata program malah mengeksekusi fungsi yang memiliki 3 parameter, mengapa demikian? mari kita telusuri cara kerja dari sebuah overloading.

Step 1

Overloading akan mengecek terlebih dahulu jumlah parameter ketika memanggil funsi yang dioverload dalam kasus ini fungsi hitung,

TextBox1.Text = hitung(1, 2, 3)

ternyata banyaknya parameter yang digunakan adalah sebanyak 3 parameter yaitu 1,2, dan 3,

maka program akan mencari fungsi "hitung" yang mana yang memiliki jumlah parameter 3, ternyata fungsi "hitung" yang di bawah.

Step 2

Setelah melakukan pengecekan banyaknya parameter maka program akan mencocokkan tipe data dari parameter yang dilewatkan, apakah sesuai dengan parameter yang ditentukan atau tidak, jika tidak sesuai maka program akan berusaha untuk mengkonversinya menjadi tipe data yang sudah disyaratkan dalam hal ini parameter sudah ditentukan harus bertipe  Integer,
perhatikan
(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer)

Step 3

Setelah dirasa semua syarat terpenuhi maka program akan menjalankan fungsi yang paling mendekati dengan fungsi yang dipanggil dalam kasus ini

Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
        hitung = bil1 + bil2 + bil3
    End Function

maka sudah pasti textbox akan menampilkan  angka 6

tetpi jika fungsi yang dipanggil anda rubah menjadi

TextBox1.Text = hitung(1,2 )

maka yang akan tampil adalah
 Hal ini terjadi karena yang dipanggil adalah fungsi

Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
        hitung = bil1 + bil2
    End Function
karena fungsi itulah yang paling memenuhi syarat pemanggil.


MENYEBUTKAN FUNCTION BAWAAN VISUAL BASIC 2010

Di dalam visual basic 2010 sebenarnya banyak sekali function-function yang sudah terpadu dalam bahasa pemrograman ini, dan contohnya adalah sebagai berikut :

Asc()
Mengembalikan nilai integer dari parameter yang berupa karakter, bisa dibilang akan menghasilkan kode ASCII dari karakter yang dijadikan parameter

AscW()
sama seperti Asc() hanya saja parameter yang dgunakan adalah bertipe string

BeginInvoke()
Mengeksekusi sebuah thread secara spesifik

CallByName()
Mengeksekusi sebuah method dalam sebauah objek, atau mengeset atau mengembalikan sebuah property dari sebuah objek

CBool()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe boolean

CByte()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data byte

CChar()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data character

CDate()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data date

CDbl()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data double

CDec()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data decimal

Choose()
Memilih dan mengembalikan sebuah nilai dari sekumpulan argument

Chr()
Mengembalikan sebuah karakter dari kode/parameter yang digunakan

ChrW()
sama seperti Chr

CInt()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data integer

cLng()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data long

CObj()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe objek

Contains()
Mengembalikan sebuah nilai apakah control yang dimaksud adalah anak/turunan dari sebuah control

CreateGraphics()
Membuat System,Drawing.Graphics pada sebuah control

CSByte()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data SByte

CShort()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data short

CSng()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data Single

CStr()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data String

CUInt()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data UInteger

CULng()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data ULong

CurDir()
Mnegembalikan sebuah string yang menggambarkan sebuah path

CUShort()
Mengkonversi sebuah ekspresi/parameternya menjadi tipe data UShort

DoDragDrop()
Memulai aksi drag and drop

Environ()
Mengembalikan string yang menunjukan operasi sitem yang bekerja

EOF()
Mengembalikan niai true jika akhir dari file sudah tercapai

Err()
Memuat informasi tentang Run Time Error

ErrorToString()
Mengembalikan pesan error yang terkoresponden dengan nomer error

FreeFile()
Mengembalikan sebuah nilai integer yang menggambarkan nomer urut dari file berikutnya yang tersedia untukdigunakan untuk fungsi FileOpen

GetChar()
Mengembalikan nilai char dari suatu index sebuah string

GetTopLevel()
Mengembalikan nilai true jika sebuah control berada pada level tertinggi

GetType()
Mendapatkan System.Type dari instance yang aktif

Hex()
Mengembalikan sebuah string yang menampilkan nilai heksadesimal dari parameter yang digunkan

Hour()
Mengembalika sebuah angka dari 0 hingga 23 yang menandakan jam dalam 1 hari

Int()
Mengembalikan senuah porsi integer dari sebuah angka

IsArray()
Mengembalikan sebuah pernyataan apakah parameter merupakan array atau bukan

IsDate()
Mengembalikan sebuah pernyataan apakah parameter merupakan date atau bukan

LBound()
Mengembalikan indeks dari batas terbawah sebuah array

LCase()
Mengembalikan string ataupun character yang sudah diubah ke lowercase

Len()
Mengembalikan sebuah angka yang menunjukkan panjangnya sebuah string

Mid()
Mengembalikan string yang berada di tengah kata

Minute()
Mengembalikan angka dari 1 sampai 59 dalam satu jam

Month()
Mengembalikan angka dari 1 sampai 12 dalam satu tahun

MsgBox()
Mengembalikan sebuah objek berupa message box

Oct()
Mengembalikan sebuah string yang menampilkan nilai octal dari parameter yang digunkan

QBColor()
Mengembalikan kode warna RGB dari angka pada parameter yang digunakan

Rnd()
Mengembalikan sebuah angka bertipe single yang telah diacak

Tidak ada komentar: