Translate

12 February 2009

Hitung jumlah data sesuai kriteria terntentu seperti COUNTIF() pada Ms. Excel mengguankan VB 6

Mencari jumlah data dengan nilai tertentu dalam sebuah larik atau tabel tanpa menggunakan perintah SQL. Bagai mana caranya? 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.

No comments:

Post a Comment

Silahkan memberikan komentar, saran, pertanyaan atau apapun yang penting sesuai dengan etika.

Posting Popular