Subscribe:

Pages

Labels

Advertisement (468 x 60px )

Ads 468x60px

Search Box

Selasa, 03 Juli 2012

Pencarian Dengan Metode Find, Move dan SQL Pada ADO Menggunakan Visual Basic 6.0

Akhirnya bisa posting artikel lagi setelah beberapa lama tertunda karena menyelesaikan pembuatan skripsi saya. ^_^ Pada Artikel kali ini saya akan membahas tentang proses dan metode pencarian data apa saja yang bisa digunakan pada ADO.
Pada pemprograman database, proses pencarian data umumnya sangat dibutuhkan agar data/record yang akan dimanipulasi sesuai dengan yang diinginkan. Berikut beberapa metode pencarian data yang akan kita bahas.
1. Metode Find
    Metode Find digunakan untuk menentukan lokasi record yang memenuhi syarat atau kriteria tertentu. krtiteria yang dimaksudkan adalah nilai pembanding dari field kunci. Pada ADO hanya mengenal satu metode Find, tidak seperti pada DAO yang metodenya terdiri dari FindFirst, FindLast, FindNext, dan FindPrevious.
Untuk lebih jelasnya coba buat desain program pencarian seperti dibawah ini :
komponen tambahan dalam program ini adalah :
a. Microsoft Ado data Control 6
b. Microsoft DataGrid Control 6


Setelah mendesain form seperti diatas, lalu buat database dengan microsoft access seperti dibawah ini lalu isikan beberapa record untuk pencarian nanti :
Nama database : Latihan.mdb
Nama Tabel      : MHS

FIELD
DATA TYPE
SIZE
NRP
TEXT
10
NAMA
TEXT
35
JURUSAN
TEXT
25
NILAI
TEXT
3

Kemudian buat modul baru untuk koneksi database, klik Menu Project > Add Modul > Open,,
setelah muncul jendela kode modul,,isikan kode berikut untuk koneksinya :

Public conn As New ADODB.Connection

Sub koneksi()
Set conn = New ADODB.Connection

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/latihan.mdb;Persist Security Info=False"
End Sub

Jika kode koneksi sudah diisikan pada modul, langkah berikutnya tutup jendela modulnya lalu pada pada jendela kode form_active isikan kode berikut untuk memanggil modul koneksi dan untuk mengisi connection string pada Adodc.

Call koneksi
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/latihan.mdb;Persist Security Info=False"
Adodc1.RecordSource = "MHS"
Adodc1.RecordSource = "select * from MHS"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
txtcari.SetFocus

Kemudian klik dua kali pada tombol Cari Dengan Find atau cmdfind hingga muncul jendela kode untuk cmdfind, lalu tuliskan kode pencarian find seperti dibawah ini :

Private Sub cmdfind_Click()
Dim cari As String
cari = "NRP = '" & txtcari & "'"
Adodc1.Refresh
With Adodc1.Recordset
.Find cari
If Not .EOF Then
    MsgBox .Fields(0) & "-" & .Fields(1), vbExclamation, "Pencarian Data Find"
    Else
    MsgBox "Data Mahasiswa Dengan NRP " & txtcari & " tidak ada", vbCritical, "Perhatian"
    txtcari = ""
    Text1.SetFocus
    End If
End With
End Sub

Jika sudah, coba jalankan programnya, lalu inputkan NRP pada Text Box Cari NRP kemudian klik tombol Cari Dengan Find yang sudah kita isikan kode perintah pencarian dengan metode find. 
Jika data ditemukan maka akan muncul pesan yang berisi data NRP dan Nama seperti gambar dibawah ini :


2. Metode Move
    Pencarian dengan metode move arah pencariannya dilakukan secara berurutan, bisa dari awal record ke akhir record atau sebaliknya. Prinsip kerja dari move adalah dengan membandingkan data yang dicari dengan data yang sudah tersimpan secara satu per satu.
Sekarang kita buat contoh pencarian dengan menggunakan metode move,,
Klik dua kali pada tombol Cari Dengan Move sampai muncul jendela kode, lalu isikan dengan kode perintah berikut :

Private Sub cmdmove_Click()
Adodc1.Refresh
With Adodc1.Recordset
.MoveFirst
Do While Not .EOF
    If txtcari = .Fields("NRP") Then
    MsgBox "Data Mahasiswa yang dicari adalah " & vbCrLf & .Fields("NRP") & " " & .Fields("NAMA"), vbExclamation, "Pencarian Data Move"
    Exit Do
    End If
    .MoveNext
Loop
If .EOF Then MsgBox "Data tidak Ada !", vbCritical, "Perhatian"
End With
End Sub
Kemudian jalankan program dengan mengklik tombol start atau menkan tombol F5 pada keyboard, isikan NRP pada text Cari NRP lalu klik tombol Cari Dengan Move, seperti gambar berikut ini :

 
3. Metode SQL
    Sebenarnya pencarian dengan metode SQL lebih tepat dikatakan sebagai penyaringan data (Filter), karena data yang tampil merupakan hasil dari penyaringan data sesuai dengan kriteria yang ditampilkan. Jadi dengan metode tertentu, data yang ditampilkan bukan hanya satu data, tetapi bisa banyak data asal kuncinya hampir sama dengan kriteria yang dimaksudkan.
Untuk contoh penggunaan SQL sebagai pencarian, sebagai berikut :
Klik dua kali pada txtcarisql atau text Cari NRP Dengan SQL kemudian isikan kode pencarian seperti dibawah ini :

Private Sub txtcarisql_Change()
If txtcarisql.Text = Empty Then
    Adodc1.RecordSource = "select * from MHS"
Else
    Adodc1.RecordSource = "select * from MHS where NRP like '%" & txtcarisql.Text & "%'"
End If
Adodc1.Refresh
If Not Adodc1.Recordset.EOF Then
    If txtcarisql.Text = Empty Then
    lblnama.Caption = ""
    lbljurusan.Caption = ""
    lblnilai.Caption = ""
    Else
With Adodc1.Recordset
lblnama.Caption = .Fields("NAMA")
lbljurusan.Caption = .Fields("JURUSAN")
lblnilai.Caption = .Fields("NILAI")
    End With
End If
    Else
    lblnama.Caption = ""
    lbljurusan.Caption = ""
    lblnilai.Caption = ""
End If
End Sub    

Sekarang jalankan programnya lalu inputkan NRP dengan 2 digit dulu, misalkan "01" lalu perhatikan perubahan data yang terjadi pada datagrid. Jika ditampilkan secara lengkap maka tampilan data dalam datagrid seperti gambar berikut ini :


Sampai disini dulu pembahasan tentang metode pencarian ADO,,untuk pencarian dengan metode Find dan Move bisa dikembangkan lagi, misalnya dengan menempatkannya pada even Change dari textbox seperti pada metode SQL., jadi bisa disesuaikan dengan kebutuhan teman-teman. ^_^

Contoh Program Bisa di Download disini

10 komentar:

  1. Adodc1.Refresh yang ada Private Sub txtcarisql_Change()kenapa debug ya,

    kira2 apa yg harus dibetulkan,
    kalo boleh, kirim ke email saya
    adiprimanto@yahoo.com

    terima kasih banyak mas, djajakumulloh.,

    BalasHapus
  2. mungkin itu masalah pada koneksi awalnya mas,,di form activate,,
    apa sudah benar adodc1.recordsource = "select * from MHS"
    kemungkinan salahnya ada disana :)

    BalasHapus
  3. kakak, mau belajar visual basic.
    bisa tanya jawab ga? email saya venyus28@yahoo.com

    BalasHapus
  4. maaf baru balas,,saya baru pulang dr luar kota :)
    iya bisa aja kok,, mudahan aku bisa jawab :)

    BalasHapus
    Balasan
    1. mf gan sebelumnya,,
      saya ingin nanya,,
      tw ga gan sintak tentang,, menginputkn kodebuku tpi no buku ny otomatis keluar saat kode buku diinputkn,,
      ?? mksih y ggn sblmny

      Hapus
  5. Mautanya mas.
    misal saya punya record "Tani,Bawang,Sawah,Air,Aku,Siswa,Semua"
    trus saya ingin menampilkan hanya record "Sawah, saya, dan semua" saja
    bagaimana bentuk filternya?
    saya pernah coba "Where Fld = 'sa'" tp tdk berhasil, mohon solusinya

    BalasHapus
  6. online gak dil, jenggot...!!!

    BalasHapus
  7. mw tanya mas ttg vb6....
    misal : q pengen cari data nama propinsi kalimantan selatan dr tabel nm_propinsi, pd text box q ckp ketik "tan sel" mk semua isi tabel dengan kata yg mengandung unsur kata "tan sel" muncul semua...
    blh dong share codingx ke pamuji_csap@yahoo.com
    trims pencerahnx.

    BalasHapus
  8. mantap mas bro...kunjungan balik ya..........

    BalasHapus