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
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
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:
Posting Komentar