Senin, 23 Januari 2012

Cara Menampilkan Data Secara Acak


Sering saya menerima banyak pertanyaan seputar menampilkan suatu data dari record secara random pada database. Entah itu digunakan untuk membuat game teka-teki kata, undian, atau sekedar menampilkan kata-kata bijak yang dikeluarkan secara random. Tapi, apakah ini bisa dilakukan dengan Visual Basic (VB)?

Ya, VB dapat melakukannya, ini dikarenakan terdapat fungsi internal VB yaitu RND(). Fungsi ini akan menghasilkan nilai acak dari 0 sampai 1. Agar range nilai acaknya tidak terbatas antara 0 sampai 1, maka kita perlu mengkalkulasikan fungsi tersebut misalkan dengan melihat baris kode berikut.

Kode::
nilai_acak = rnd() * 16



Dari kode di atas variabel nilai acak akan berisi nilai 0 sampai 15. Kamu dapat mengubah nilai 16 dengan maximal range nilai acak yg kamu inginkan ditambah 1 (selalu ditambah 1 karena range dimulai dari 0).

Selanjutnya, bagaimana kita menghubungkan fungsi tersebut untuk mengambil data yang acak? Sebenarnya sederhana sekali. Yang jelas, yang pertama kita harus ketahui adalah total record dari suatu tabel yang ingin kita proses. Gunanya adalah agar kita mengetahui maksimal range dari total record yang kita acak.

Untuk lebih memahami apa yang saya sudah disebutkan diatas. Baiknya kita langsung ke prakteknya saja. Untuk itu buatlah suatu database dengan nama "sekolah.mdb", selanjutnya buatkan tabel dalam database dengan 2 kolom yang bernama "nis", "nama", "alamat" dng type "text" lalu namakan dengan tabel "siswa". Isikan dengan beberapa record. Perlu diingat kolom "nis" merupakan nomor induk siswa yang nilainya harus unik dari nilai nis record lainnya. Jika langkah yang sebutkan sudah baik dilakukan, maka kita ke tahap design form.

Dalam jendela design form VB (form1). Buatlah 3 buah label, 3 buah textbox, 1 kontrol data dan 1 CommandButton. Setting Property-nya sebagai berikut:

Kutipan::

1. Text1, Text2, dan Text3
Text = ""
2. Label1
Caption = "NIS"
3. Label2
Caption = "NAMA"
4. Label3
Caption = "ALAMAT"
5. Data1
Databasename => sesuaikan dengan lokasi database "sekolah.mdb" disimpan.
Visible = "False"
Recordsource = "siswa"
6. Command1
Caption = "RANDOM"

Aturlah posisi masing2 kontrol agar terlihat menarik terutama hubungan antara kontrol label dengan textbox. Selanjutnya masukkan code berikut dalam form (form1).

Kode::
Private Sub Command1_Click()
    Command1.Enabled = False

    Dim TotRec As Long 'Total Record
    Dim RandomPos As Long 'Posisi Record Random Yang Diambil
   
    'Ambil Total Record
    TotRec = (Data1.Recordset.RecordCount - 1)
       
    'Ambil Nomor Posisi Acak Record
    RandomPos = (Rnd() * TotRec)

    KE POSISI AWAL DULU
    Data1.Refresh
    Data1.Recordset.MoveFirst

    'PINDAHKAN POSISI RECORD DI POSISI ACAK
    Data1.Refresh
    Data1.Recordset.Move RandomPos
    'TAMPILKAN DATA RECORD
    Text1.Text = Data1.Recordset.Fields('nis')
    Text2.Text = Data1.Recordset.Fields('nama')
    Text3.Text = Data1.Recordset.Fields('alamat')
    Command1.Enabled = True
End Sub

Sekarang kamu sudah bisa mencobanya. Silahkan test programnya. Lalu tekan tombol "RANDOM". Kamu dapat melihat setiap kali tombol "RANDOM" ditekan maka data yang ditampilkan secara acak.

Sederhana bukan? Sebelum saya mengakhiri artikel ini. Saya mau memberikan sedikit PR buat temen-temen agar lebih diasah lagi pengetahuannya mengenai proses menampilkan data secara acak ini. Untuk itu coba kembangkan code tersebut agar program tidak menampilkan data secara acak untuk 1 record saja melainkan buatlah agar semua record tampil dengan urutan yang acak.

Akhir kata, bukanlah akhir sebuah karya dari saya. Ini adalah sebuah awal yang akan terus berlanjut. Untuk itu, tunggu artikel saya selanjutnya. Jangan lupa! ditunggu gosip dari Anda mengenai artikel ini.

Author's By : Indro Dwi Saputro,

0 komentar:

Posting Komentar

:a: :b: :c: :d: :e: :f: :g:
:h: :i: :j: :k: :l: :m: :n: :o: :p:

 
Design by Puskom Corporation Software | Bloggerized by Author's By : Indro Dwi Saputro - Copyright 2012