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.
----------------------------------------------------------------------------------
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.
selain sepeti yang di atas ada lg g bro cara yang lebih simple. misalnya menggunakan fungsi bawaan vb itu sendiri
BalasHapussebenarnya banyak cara, tergantung kepentingannya. Tapi kalau aku sih lebih suka menterjemahkan fungsi dari excel ke VB.
BalasHapus