Minggu, 29 November 2009

Mengurutkan Data (Ascending)

Terdapat banyak metode atau cara mengurutkan data, disini akan dibuat fungsi untuk pengurutan sederhana (kalau tidak salah biasanya disebut buble sort). Kode fungsinya adalah sebagai berikut:

---------------------------------------------------------------------------------
Function SortAsc(Data())
     Dim Tmp, i, j, N As Integer
     N = UBound(Data)
            For i = 1 To N + 1
                 For j = (i + 1) To N
                        If Data(j) <= Data(i) Then
                             Tmp = Data(i)
                             Data(i) = Data(j)
                             Data(j) = Tmp
                        End If
                Next j
            Next i
End Function
---------------------------------------------------------------------------------
Fungsi tersebut digunakan untuk mengurutkan data dari bilangan terkecil ke yang terbesar
Contoh penggunaaan:

Dim Data()
Data=Array(8,3,5,5,6,7,9,3,8,9)

Call SortAsc(Data)

Hasilnya isi array Data() sudah terurutkan. Cara menampilkan, cukup sederhana, contohnya:

Dim i as Integer
For i=1 to ubound(Data)
           Debug.Print Data(i)
Next i

Bagaimana kalau kita ingin mengurutkan secara Descending (terurut dari nilai yang terbesar)?
Anda bisa merubah nama fungsinya menjadi SortDesc(Data())
Kemudian ubahlah tanda operator "<=" menjadi ">=" hanya itu saja, dan siap dipakai.

Mudahkan,.... Selamat mencoba :)

3 komentar:

  1. itu codingnya di tarok dmn?
    di datagridnya atau di form active nya? mksih

    BalasHapus
    Balasan
    1. bisa diantara prosedur/event dalam form atau dibuatkan sebuah modul atau class modul.

      Hapus
    2. prasyarat yang harus diketahui yaitu cara membuat array menggunakan dim namavarArray() untuk input data, dan menampilkan data dari array itu sendiri.
      cara menampilkan data bisa menggunakan Grid (dan teman-temannya) atau menggunakan form saja.

      Hapus