Selasa, 13 Oktober 2009

Hitung nilai data sesuai kriteria

Sering kita dihadapkan pada masalah mencari jumlah nilai data pada suatu tabel atau array.

Misalnya dalam satu tabel terdapat 20 data berupa angka acak dalam rentang [1,10). Jika ada pertanyaan berapa jumlah angka 9 yang ada dalam tabel tersebut?



Pada ilustrasi 1. menggambarkan bilangan acak dalam rentang [1,10). Kita diminta mencari jumlah angka 9 yang muncul.

Untuk menyelesaikan masalah tersebut dalam Visual Basic 6.0 dapat dibuat satu fungsi berikut;
------------------------------------------------------------------------------------------------
Function COUNTIF(Data(), strOperator As String, Nilai As Integer)
    Dim i, j, N As Integer
    N = UBound(Data)
    i = 0
    For j = 1 To N
        Select Case strOperator
            Case "<" If Data(j) < i =" i">"
                If Data(j) > Nilai Then
                    i = i + 1
                End If
           Case "<=" If Data(j) <= Nilai Then i = i + 1 End If Case ">="
                If Data(j) >= Nilai Then
                    i = i + 1
                End If
           Case "="
                If Data(j) = Nilai Then
                    i = i + 1
                End If
           Case "<>"
                If Data(j) <> Nilai Then
                    i = i + 1
                End If
           Case Else
                MsgBox "Invalid operator"
                Exit Function
           End Select
    Next j
    COUNTIF = i
End Function
------------------------------------------------------------------------------------------------

Function COUNTIF diatas dibuat lebih flexible, misalkan kita diminta untuk mencari data seperti kasus diatas cara penyelesainnya adalah:

Masukkan Data pada Ilustrasi 1 kedalam ARRAY, atau kita bisa membuat array sendiri dengan data acak.
Membuat array untuk 20 data dengan nilai data dalam rentang [1,10)
-----------------------------------------------------------------------------------------------
Dim Data()
Dim Hasil as Integer

Redim Data(20)
For i=1 to 20
    Data(i)=Round(Rnd()*10),0)
next i

'Panggil Fungsi
Hasil=COUNTIF(Data, "=", 9) 'artinya mencari jumlah data yang nilainya sama dengan 9
-----------------------------------------------------------------------------------------------
Operatornya dapat kita sesuaikan dengan kebutuhan, misalnya mencari data yang kurang dari 9 (COUNTIF(DATA, "<",9)), lebih besar dari 9 (COUNTIF(DATA, ">",9)), dst.

mudahkan,... selamat mencoba.

1 komentar:

  1. wahhh ini yang saya cari,
    tapi saya masi kurang jelas , bisa ngga menampilkan gambar form nya di vb, jadi bisa tau cara kerjanya, trimakasih :)
    salam kenal yaaa

    BalasHapus