Minggu, 29 November 2009

Ranking Data Terbesar

Kita sering dihadapkan dengan persoalan mencari posisi data berdasarkan ranking dari urutan terbesar. Misalkan terdapat 10 data acak dengan nilai antara 1 sampai dengan 10 atau [1,10), diminta untuk menentukan siapakah yang menempati ranking ke 3?


----------------------------------------------------------------------------------
Berikut jawaban fungsi Ranking menggunakan VB 60;
Function LargeData(Data(), TertinggiKe As Integer)
     Dim Konter, N As Integer
     Dim Tmp()

     Call SortDesc(Data()) 'Digunakan untuk mengurutkan berdasarkan data terbesar

     N = UBound(Data)
     If TertinggiKe = 0 Then TertinggiKe = 1

     ReDim Tmp(LBound(Data) To N)
     Konter = 0
     Do While Konter < TertinggiKe
          Konter = Konter + 1
          Tmp(Konter) = Data(Konter)
     Loop
     LargeData = Tmp(Konter)
End Function
----------------------------------------------------------------------------------

cara penggunaanya;
Dim Ranking3 as Integer
Dim Data()
Data = Array(7,8,9,6,5,3,4,2,5,8)

Ranking3 = LargeData(Data, 3)

Debug.Print Ranking3

Hasil data terbesar pada urutan ke 3, pada jendela Debug akan tampil angka 8, karena kalau kita urutkan hasilnya adalah
(9,8,8,7,6,5,5,4,3,2) .

Tips: Jika ingin mengganti berdasarkan data terkecil, ubahlah fungsi SortDesc menjadi SortAsc seperti yang pernah ditulis sebelumnya.

Selamat mencoba,.... Semoga bermanfaat.

2 komentar:

  1. selain sepeti yang di atas ada lg g bro cara yang lebih simple. misalnya menggunakan fungsi bawaan vb itu sendiri

    BalasHapus
  2. sebenarnya banyak cara, tergantung kepentingannya. Tapi kalau aku sih lebih suka menterjemahkan fungsi dari excel ke VB.

    BalasHapus