![]() |
![]() |
Soal :
Lengkapi program diatas dengan fasilitas Find, dimana jika tombol Find ditekan akan muncul suatu InputBox yang menanyakan nama yang dicari, jika ketemu, akan ditampilkan, dan jika tidak ketemu akan muncul message box data tidak ada.
Private Sub cmdFind_Click() Dim nama As String nama = InputBox("Masukkan nama :", "Pencarian") If nama <> "" Then 'lengkapi bagian ini End If End Sub
Jawab :
Dalam hal ini kita akan menggunakan metode Linier Search karena data yang tersimpan tidak berurut, sehingga pencarian harus dilakukan dari awal s/d record terakhir untuk memastikan data yang dicari tidak ada.
Variabel lokal yang digunakan adalah :
Private Sub cmdFind_Click() Dim nama As String Dim posisicari As Integer nama = InputBox("Masukkan nama :", "Pencarian") If nama <> "" Then posisicari = 1 'Mulai dari record 1Do While posisicari <= JlhRec 'Sampai record terakhirGet #1, posisicari, DatPemakai 'Baca record bersangkutan If RTrim(DatPemakai.nama) = nama Then 'Jika nama di record sama Exit Do 'dengan nama dicari maka End If 'keluar dari looping posisicari = posisicari + 1 'ke posisi record berikutnyaLoop If posisicari <= JlhRec Then 'jika looping selesai dengan Posisi = posisicari 'nilai posisi lebih kecil atau Call Tampil 'sama dengan jlhrec, maka ketemu 'set posisi sama dengan hasil 'pencarian dan data ditampilkan Else MsgBox "Pemakai dengan nama tersebut tidak ada", vbOKOnly + vbInformation, "Pencarian" End If End If End Sub