terdapat di dalam sebuah function biasanya harus sama jumlahnya dengan parameter yang
digunakan saat pemanggilan function tersebut. Contoh: Function DateSerial(Year As Integer,
Month As Integer, Day As Integer) yang memiliki tiga parameter masing-masing Year, Month,
dan Day (masing-masing bertipe Integer), dan ketika function ini dipanggil atau digunakan,
maka jumlah parameternya juga harus 3, misalnya: DateSerial(2008, 11, 20) yang akan
mengembalikan sebuah tanggal 20 November 2008. Pertanyaan selanjutnya adalah: Bisakah di
VB6 membuat function buatan yang meskipun jumlah parameter function sudah ditetapkan tapi
saat pemanggilan function tersebut jumlah parameternya bisa lebih banyak dari jumlah
parameter yang sebenarnya atau tergantung kepada jumlah data tertentu? Penasaran? Segera
temukan jawabannya di sini!
Kode::
'Deskripsi: Membuat fungsi yang salah satu jumlah parameternya
' bersifat dinamis. Fungsi ini bermanfaat jika Anda ingin
' memproses/mengolah data atau record yang jumlahnya
' tidak selalu sama dalam setiap kesempatan. Dalam hal ini
' Anda bisa menggunakan key ParamArray di parameter
' yang jumlahnya dinamis tadi, dan menggunakan variabel
' array dinamis; dalam contoh = arrData(). Dengan cara ini,
' maka jumlah parameter yang Anda gunakan bisa lebih
' banyak dari jumlah parameter awal function tersebut.
'Pembuat : Masino Sinaga (admin@masinosinaga.com)
'Tanggal : Kamis, 20 November 2008
'Persiapan: 1. Buat satu project standard exe dengan satu form
' 2. Tambahkan di atas form satu control CommandButton
' 3. Copy paste code berikut ke editor form yang bertalian
'-------------------------------------------------------------------
'Ketika Command1 diklik, maka fungsi ParamDinamis akan menghitung
'jumlah semua data yang berada di parameter kedua dan seterusnya
'Bandingkan antara jumlah parameter di awal function yang hanya 2
'dan ketika function ParamDinamis digunakan, maka jumlah parameter
'bisa lebih dari 2.
Private Sub Command1_Click()
MsgBox ParamDinamis("Hitung1", 1, 2, 3) '<-- Jlh param = 4
MsgBox ParamDinamis("Hitung2", 1, 2, 3, 4, 5, 6) '<-- Jlh param = 7
MsgBox ParamDinamis("Hitung3", 5, 3) '<-- Jlh param = 3
End Sub
Private Function ParamDinamis(strA As String, ParamArray arrData()) As String
Dim i As Integer
Dim intHasil As Integer
'Parameter strA hanya untuk membedakan saja bahwa parameter pertama
'bersifat tetap, sedangkan parameter kedua (arrData()) bersifat
'dinamis saat function digunakan. Bandingkan dengan jumlah parameter
'yang sebenarnya yang terdapat di dalam function ParamDinas yang hanya 2
ParamDinamis = strA
'Perhatikan bahwa untuk mengambil data satu per satu dari parameter arrData,
'kita melakukan loop mulai dari elemen terbawah sampai elemen teratas.
For i = LBound(arrData) To UBound(arrData)
'Dalam contoh ini, semua data diproses dengan cara dijumlahkan
intHasil = intHasil + arrData(i)
Next i
ParamDinamis = ParamDinamis & " = " & intHasil