Siapa yang enggak tahu sih tentang absensi ?, sekolah bahkan perusahan
tak terlepas dari yang anamanya absensi ini , kalau biasanya absensi
hanya menggunakan secarik kertas tapi kali ini kita coba aplikasikan
dengan program komputer , ya …biar lebih keren lah,,,,he….he…
.
Sebenernya Aplikasi ini bisa dibuat menggunakan banyak program
misalnya Accses, Foxfro, Mysql, SQl ,VB, C++, bahkan MS.Excel.,.
Kalau
pake Acses bukan kurang bagus Cuma sedikit kurang apdol sebab program
ini enggak bisa standlone (berdiri sendiri) so kalau komputer kita
enggak punya program accses maka program aplikasi enggak bisa jalan ,
makanya saya mau coba buat pake program Vb, kali ini sya menggukan Vb
6.0.
Letsgo kita mulai…
Dalam palikasi ini kita membutuhkan beberapa Form (tampilan ).
1. Form Input Data Yang akan diabsesn
2. Form Absesni
3. Dan hasil Absensi
Dalam Form input kita membutuhkan beberapa data masukan seperti : No., Nama, Bagian/kelas, tanggal/jam, jenis kelamin .
Data
masukan tersebut hanya seabagai contoh , tentunya Anda bisa juga
menambahkan yang lainnya sesuai dengan kebutuhan anda . nih dia gambar
form input data .
Sederhana bukan…..?.
Pada bagian form ini ada bebrapa tool untuk mengolah data ada Datasiswa , Save data, Delete (hapus) data, .
Cara
form ini adalah ketika kita memasukan data kemudian di klik Save maka
data akan tersimpan ke Dalam data Base untuk menyimpan data , untuk
menghubugkan ke DataBase kita gunakan jembatan Yaitu tool DataGrid (data
siswa).
Jadi yang perlu anda lakukan adalah membuat database sebagai tempat menyimpan data tersebut , caranya cukup mudah .
Pada menu bar Visual basik Pilih menu AddIns-Visula data Manager, sampai muncul jendela berikut:
Dan
lakukan seperti pada gambar , coba buat data base dengan Acsess versi
7.0 kemudian simpan dalam folder yang sama dengan project Aplikasi yang
kita buat.
Misal E://Rahmat/AplikasiAbsesi. Langkah selanjutnya kita masukan beberapa fields dalam database tersebut.
Disinilah
kita akan memasukan data fieldsnya , gamar diatas hnaya contoh aja,
pada database ini .tentunya untuk membuat Rcordnya tidaklah terlalu
susah, anda cukup Klik Add Fields, sampai muncul Jendela baru,
Masukan
nama record yang akan kita gunakan tentukan type , sesuai dengan data
yang akan kita masukan sialahkan pilih pada bagian type.jika data yang
kita masukan sudah pas sesuai dengan kebutuhan , kemudian klik Add index
(Field Kunci/primary key) diharapakan sama dengan nama fields yang anda
buat. Kalau hal ini sudah lakukan anda tinggal Klik Build The Table
(jika data untuk absensi sekolah baiknya gunakan kelas sebagai primary
key dan unique jangan dicheklist biar bisa di duplicate dan field no
boleh dihilangkan), menunjukan bahawa tabel ini yakin akan kita buat .
Untuk
melihat berhasil atau tidaknya data base yang kita buat , tutp Program
vb Kita kemudian kita coba buaka database yang baru aja kita buat
caranya sama seperti waktu kita membuat database AddIns-Visula data
Manager-muncul jendela-klik Open database – Cari database yang baru aja
kita buat
Nah itulah hasilnya , kebetulan saya sudah mengisi data-nya , anda cukup klik kanan pada salah satu table kemudian klik Open .
Ok
sekarang kita kembali Ke Form Input data.,seperti yang telah di
jelaskan pada bagian ini kita akan memasukan data kedalam database yang
terdiri dari No, Nip/nis/Nim, Nama, Jenis kelamin, Tanggal ,
Kelas/bagian saja .Sementara Alpa, izin, sakit,masuk dan total kita
masukan pada form interface Input absensi yang nanti akan kita buat.
Dengan menggunakan data base yang telah kita buat . Sebelumnya kita
keluarkan dulu tool-tool yang kita butuhkan dalam membuat aplikasi ini
,pada toolbox -klik kanan -lalu pada tab Control pilih komponen berikut
ini:
1. Microsoft Data Grid Control 6.0
2. Microsoft FlexGrid Control 6.0
Cukup memberi tanda checklist kemudian klik Apply sampai muncul pada Toolbox component seperti gambar berikut ini:
Pada bagian sebelah kiri ada beberapa Icon , dan icon-icon itulah yang akan kita gunakan dalam membuat aplikasi ini.
Selanjutnya
kita desain Form terlebih dahulu cara nya gampang untk membuat Form
baru anda cukup mengklik Menu Project -Add From -Open sampai muncul form
seperti gambar berikut ini:
Pada
form ini terlihat nama form dengan nama Form 3 , tentunya kita bisa
menggantinya sesuai kehendak kita misal Aplikasi Absensi , caranya Pada
Menu View -klik Properties Windows hingga muncul gambar:
Pada
bagian alphabetic -caption , kita bisa mengganti Form3 menjadi nama
yang lain sedangkan pada bagian (name ) boleh diganti /tidak , karena
akan berpengaruh pada saat memasukan script sebaiknya kita biarkan aja ,
kecuali program yang akan kita sangat Kompleks kita bisa menggantinya
untuk membedakan form-from tersebut.
Go nex t (bukan goblok
nakat ya!… but is terus…..,…….he….he…J, sekarang kita Buat fields
interface menggunakan Label dan text, label sebagai penanda, dan text
sebagai tempat menuliskan data input caranya cukup mudah , kita cukup
mengklik icon label dengan tanda huruf A:
Kemudain klik diarea form tahan untuk menentukan ukurannya , kemudian beri nama baru pada bagian caption dengan nama yang lain :
Kemudian
untuk text sama seperti pembutan label klik icon textbox-kemudian drag
diarea form3, selanjutnya pada bagian name anda boleh mengganti /biarkan
saja , kira hasilnya seperti berikut:
Ulangi
langkah diatas sesuai dengan banyaknya fields yang kita buat, jika
sudah selanjutnya kita akan membuat jembatan DataBase , yaitu menggunkan
DataGrid caranya sama saja seperti membuat label dan text hanya saja
kita perlu sedikit memodifikasinya di bagian Properties Windows ,letsgo
bro….!
Perhatikan
gambar diatas!, disitu ada Data1 dan inilah yang akan kita gunakan
sebagai jembatan Koneksi Ke database kita, Pada bagian Properties
windows di bagian DatabaseName , masukan nama Database yang sebelumnya
kita buat, diamana akan diminta memasukan Path lokasi tempat kita
menyimpan Data tersebut, selanjutya pada bagian Recordsource di
properties windows , anda pilih nama tabel yang ada dalam database yang
pernah kita buat, misalnya saya memiliki tabel2 dengan nama DataBase
tabel1 , kemudian pada Reecordset Type ganti 1-Dynashet menjadi 0-table .
Selanjutnya
kita buat command Button sebagai intruksi Perintah terhadap suatu data ,
kita buat saja sebanyak Dua buah commad , caranya sama sewaktu kita
membuat label ,text, dan DataGrid, pada bagian Caption di Proerties
windows ganti namanya, umtuk Command 1=Save New Data dan Command2
=Delete/Hapus.,
Selanjutnya klik Icon jam kemudian letakan di From3 pada properties windows di bagianInterval masukan angka 10
secara keseluruhan Form input data akan kira -kira seperti ini :
Giamana
bisa kan?, oh ya untuk warna silahkan aja klik-klik di bagian
Properties windows mungkin lain kali saya jealaskan …..he….he….
Selanjutnya
kita masukan script yang akan menjalankan instruksi untuk menyimpan
Fields-fields kedalam database sewaktu kit mengklik Save New Data,
Adapun caranya , pada bagian Save New Data -klik Kanan-View Code atau Double Klik padaCommand1= Save New Data
Selanjutnya
masukan Script berikut ini diantara Private Sub Command1_Click() Dan
End Sub, Perlu di perhatikan command1 bisa beruBah jika anda mengubahnya
dengan nama lain pada bagian Properties Windows di bagian Name ,
misalnya Save maka ktika di lihat di double Klik maka yang tampil bukan
Command1 melainkan Save.
Oke ini dia scrip yang harus anda masukan pada bagian ini:
————————————————————————————————————
If Text2.Text = “” And Text7.Text = “” Then
x = MsgBox(“Mohon Isi Data Dengan benar!”, vbOKOnly + vbCritical, “Warning!”)
If x = vbOK Then
End If
Else
x = MsgBox(“Anda yakin Ingin Menyimpan Data ini?”, vbYesNo + vbInformation, “Information”)
If x = vbYes Then
Data1.Recordset.AddNew
Data1.Recordset!no = Text1.Text
Data1.Recordset!nip = Text2.Text
Data1.Recordset!nama = Text3.Text
Data1.Recordset!jk = Text7.Text
Data1.Recordset!tgl = Text4.Text
Data1.Recordset!bagian = Text8.Text
Data1.Recordset!masuk = “”
Data1.Recordset!sakit = “”
Data1.Recordset!izin = “”
Data1.Recordset!alpa = “”
Data1.Recordset!total = “”
Data1.Recordset.Update
Data1.Recordset.MoveLast
Else
bersih
End If
End If
Bersih
—————————————————————–
mungkin
sedikit ada pertanyaan koq banyak banget ya scriptnya ?, sebenernya
script yang pokonya hanya pada bagian yang warna biru , sedangkan warna
hijau hanya modifikasi saya aja .
fungsi IF ini memerintahkan
agar si user tidak sembarang mengklik , ketika si user mengklik save
New data dalam keadaan Tidak mengisi fields-fieldsnya maka akan keluar
Informasi “Mohon Isi data dengan Benar”. Tapi jika Nip dan jenis kelamin
di isi maka Data akan disimpan di data Base.
Selanjutnya ada :
Data1.Recordset!no = Text1.Text
Data1.Recordset!nip = Text2.Text
Data1.Recordset!nama = Text3.Text
Data1.Recordset!jk = Text7.Text
Data1.Recordset!tgl = Text4.Text
Data1.Recordset!bagian = Text8.Text
Sementara
records alpa dan seterusnya saya biarkan kosong ?, pada Tabel1 dalam
data base yang kita buat fileds yang kita buat tidak hanya ,
no,nip,nama, jenis kelamin, tgl dan bagian tapi alpa, izin, sakit,
masuk, sementara pada form input hanya menampilkanno,nip,nama, jenis
kelamin, tgl, jika hanya ini saja yang akan kita masukan ke database
maka akan terjadi error karena tidak dikenal tabel dengan records
seperti itu, makanya tetap saya isi tapi isi data tetap dalam keadan
kosong, gitu dech cerintanya…
Lanjut , sakarang Double Klik Command2=delete/hapus kemudian masukan script ini:
Private Sub Command2_Click()
If Text10.Text = “” Then
info
Else
info2
End If
End Sub
Untuk
script delete sedikit ya?, he….he…J, sebenernya lumayan juga cuama saya
simpan dalam bentuk variable (procedure), tapi boleh kok di buat
langsung !, .scrip info kayak gini:
Private Sub info()
x = MsgBox(“Tidak Ada Object Untuk di Hapus”, vbOKOnly + vbCritical, “Warning!”)
If x = vbOK Then
End If
End Sub
———————————————————–
Untuk info2 :
————————————————————————————————————
Private Sub info2()
x = MsgBox(“Anda Yakin Untuk Menghapus data Ini?”, vbYesNo + vbInformation, “Informasi”)
If x = vbYes Then
If Data1.Recordset(“nip”) = Text10.Text Then
Data1.Recordset.Delete
Data1.UpdateRecord
Else
Data1.Recordset.Cancel
End If
Else
Text10.SetFocus
End If
End Sub
Kemudian
hal yang terpenting adalah Menampilkan Tanggal atau jam ketika Form Ini
sedang Di Runing,(dijalankan), tanggal sifatnya Update sesuai dengan
jam di system komputer sekarang Doubleklik Icon Jam Yang ada di Form3
kemudian masukan script berikut:
————————————————————————————————————
Private Sub Timer1_Timer()
Text4.Text = Format(Date, “dd/mm/yyyy”)
End Sub
—————————————————————–
Mungkin
sampai disini udah pada ngerti kan?, untuk melangkah ke sesi lainya
yaitu membuat form input Absensi , kita coba di bagian ke II ya?,………..
Untuk lebih jelasnya kira-kira script keseluruhannya adalah Sbb:
————————————————————————————————————
Private Sub Command1_Click()
If Text2.Text = “” And Text7.Text = “” Then
x = MsgBox(“Mohon Isi Data Dengan benar!”, vbOKOnly + vbCritical, “Warning!”)
If x = vbOK Then
End If
Else
x = MsgBox(“Anda yakin Ingin Menyimpan Data ini?”, vbYesNo + vbInformation, “Information”)
If x = vbYes Then
Data1.Recordset.AddNew
Data1.Recordset!no = Text1.Text
Data1.Recordset!nip = Text2.Text
Data1.Recordset!nama = Text3.Text
Data1.Recordset!jk = Text7.Text
Data1.Recordset!tgl = Text4.Text
Data1.Recordset!bagian = Text8.Text
Data1.Recordset!masuk = “”
Data1.Recordset!sakit = “”
Data1.Recordset!izin = “”
Data1.Recordset!alpa = “”
Data1.Recordset!total = “”
Data1.Recordset.Update
Data1.Recordset.MoveLast
Else
bersih
End If
End If
bersih
End Sub
Private Sub bersih()
Text1.SetFocus
Text1.Text = “Isi Data!”
Text2.Text = “”
Text3.Text = “”
Text7.Text = “”
Text8.Text = “”
End Sub
Private Sub Command2_Click()
If Text10.Text = “” Then
info
Else
info2
End If
End Sub
Private Sub Form_Load()
Text2.Text = “”
Text3.Text = “”
Text3.Text = “”
Text4.Text = “”
Text1.Text = “silahkan Isi Data!”
Text7.Text = “”
Text8.Text = “”
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.SetFocus
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text3.SetFocus
End If
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text7.SetFocus
End If
End Sub
Private Sub Text7_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text8.SetFocus
End If
End Sub
Private Sub Text8_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command1.SetFocus
End If
End Sub
Private Sub Timer1_Timer()
Text4.Text = Format(Date, “dd/mm/yyyy”)
End Sub
Private Sub info()
x = MsgBox(“Tidak Ada Object Untuk di Hapus”, vbOKOnly + vbCritical, “Warning!”)
If x = vbOK Then
End If
End Sub
Private Sub info2()
x = MsgBox(“Anda Yakin Untuk Menhapus data Ini?”, vbYesNo + vbInformation, “Informasi”)
If x = vbYes Then
If Data1.Recordset(“nip”) = Text10.Text Then
Data1.Recordset.Delete
Data1.UpdateRecord
Else
Data1.Recordset.Cancel
End If
Else
Text10.SetFocus
End If
End Sub
Sekarang
kita jalankan Form yang telah kita buat caranya kllik aja Run – Start
untuk menghentikan tinggal Klik Run -Stop kira kira hasilnya kayak gini
nih:
Saya
coba tanpa mengisi data apapun begitu saya klik SAVE NEW DATA, Maka
muncul Peringatan . “JYuhuy……..berhasil euy,” kira -kira seperti itu loh
Mas….he…..he…..
Yups ..sekarang kita
tentunkan skanario dari form yang kita sebuat sebagai interface input
absensi , pada form ini kita akan melakukan absensi pada tanggal hari
ini ( Updating) sesuai jam di system computer, Pada pembahasan sebelumya
kita sudah membuat record, No, Nip/nis/Nim, Nama, Jenis kelamin,
kelas/bagian,Tanggal , alpa, izin, masuk, sakit serta total .
Dalam
form Proses absesnsi dimana kelas /bagian akan kita buat sebagai locked
(pengunci) kenapa ya?, ketiak saya ingin mengabsen kelas XI-A , maka ,
database hanya akan menampilkan data yang ada pada kelas XI-A saja
smentara yang lain dihiden dulu . So, kita butuh script SQL untuk
menjlankan perintah ini , BTW dalam membuat laporan pun nantinya kita
perlu Dengan SQL Pastinya hal ini untuk mengelompokan data tersebut
berdasarkan kelas, tentunya saya tidak membahas banyak tentang SQL ,
tapi pembahasan lain insya Allah saya kasih tahu bgaimana penggunaan SQl
pada VB 6.0 ditunggu aja ya?.
Ok tugas kita adalah mendesaign Form seperti ini nih:
Nah buat formnya seperti ini form ini belum saya running jika sudah di running, maka hasilnya:
Pada bagian form ini kita perlu beberapa komponen
DataGrid (sebagai jembatan)
Dbgrid
(Sebagai penampil hasil), seperti pada gamabar kedua tersebut jika anda
melihat ada DataGrid yang lain anda tidak perlu membuatnya anda hanya
perlu satu DataGrid Saja OK!,.
DataGrid 1 pada bagian properties ubah menjadi :
Name=Data1
Caption=(Terserah anda)
DataBaseName=Path tempat anda menyimpaan data basenya contoh : (D:\LTIHAN . VB\Absensi\tabel1.mdb).
Recordsource=Tabel yang dibuat oleh Data Input sebelumnya missal : Tabel2,
recordsetType=1-type DynaSet
Untuk DbGrid1 di bagian properties:
Name=DbGrid1
Caption=terserah anda
DataSource=Data1.
Type
dynaset ini berpengaruh terhadap pengurutan fileds pada DbGrid, karena
dengan properties ini field tidak diurut berdasrakan kunci, tapi jika
menggunkan 0-Table, maka akan diurut berdasar Index.
Kemudain untuk nama=>text3 misalnya prpertiesnya:
DataSource=Data1
dataField=nama,
lajutkan
dengan text=nip ,tex=tanggal, text=kelas ,pada frame sebelum absensi
(text=alpa, text=izin ,text=sakit ,text=masuk ,text=total) lakukan sama
halnya pada text3.
Makanya pada saat gambar dua di running alpa dll masih dalm keadan kosong karena memang belum saya isi.
Pada
option 1=>Alpa ubah Caption=Alpa
Option2=>Masuk ubah Caption=Masuk
Option3=>Izin ubah Caption=Izin
Option4=>Sakit ubah Caption=Sakit
Nah sekarang kita buat script di masing-masing Option untuk
Option1=>Alpa:
Private Sub Option1_Click()
If Option1.Value = True Then
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Text10.Text = Val(Text6.Text) + 1
Else
Text10.Text = Val(Text6.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text10.Text) + Val(Text11.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Perlu
di perhatikan saya tidak mengubah text -text yang saya buat memang
sengaja tidak saya ubah, Karena inti dari sebuah program adalah hanya si
programerlah yang tahu dari maksud kode yang dia buat..he…he…
Pada
text11.text=text7.text, maksudnya ketika option1. diberikan titik maka
text11.text akan disi oleh data yang ada pada text7.text.
Text11.text=>izin
akan tetap berisi satu pada text7.text=>setelah basen , begitu pula
pada saat option2 .value =true, maka text10.text=text6.text (seudah
absent).
Untuk text10.text jika Option1.value=True maka
text10.text(sebelum absent)=text6.text(sesudah absent) akan ditambah
satu, sehingga menjadi=val(text6.text)+1, dan anda jangan berpikir jika
data ini akan langsung disimpan tapi Cuma di input hanya saja kita
menambahkan command button1=Save, dari pada pusing-pusing terusin
scriptnya untuk
Option2=>Izin:
Private Sub Option2_Click()
If Option2.Value = True Then
Text11.Text = Val(Text7.Text) + 1
Text10.Text = Text6.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Else
Text11.Text = Val(Text7.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Option3=>Sakit:
Private Sub Option3_Click()
If Option3.Value = True Then
Text12.Text = Val(Text8.Text) + 1
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text14.Text = Text2.Text
Else
Text12.Text = Val(Text8.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text12.Text) + Val(Text11.Text) + Val(Text10.Text) + Val(Text14.Text)
End Sub
Option4=>Masuk:
Private Sub Option4_Click()
If Option4.Value = True Then
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Val(Text2.Text) + 1
Else
Text14.Text = Val(Text2.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Nah
kalau anda melihat text13, itu bermaksud untuk mencari jumlah seluruh
absensi baik sakit, izin,masuk dan alpa akan di jumlah menjadi satu.
Sebenernya anda juga bisa membuat model seperti tanpa bantuan text
sedudah absent tapi cukup mennggunkan database buffer yang sifatnya
menyimpan dta smentara dan ketika di klik save maka Database akan
dikosongkan kembali, nah metodhe ini saya terapkan pada koreksi soal ,
untuk yang ini silahkan coba dicari sendiri ya?…he…he.. .
Ok karena
database kita bersifat global , dan aplikasi ini kita gunakan untuk
absensi siswa , maka kita tidak mungkin mengabsen secara acak berdasar
Nim siswa , dan biasanay mengabsen berdasarkan Kelas oleh karena itu
kita perlu pengunci untuk mengunci, misalnya saya mau absent kelas XI-A
maka data yang akan tampil hanya Kelas XI-A nah sekarang kita ketik pada
command4=> Lock :
Private Sub Command4_Click()
Data1.RecordSource = “select*FROM tabel2 WHERE bagian LIKE ‘*” & Text1.Text & “*’”
Data1.Refresh
DBGrid1.Refresh
Text1.SetFocus
End Sub
Oke
sakarang kita coba Run tapi sebelumnya kita klik-> Project->
ProjectProperties-> jika muncul jendela kayak gini tentukan mana dulu
yang akan kita jalankan kayak gini nih,
Kalau udah klik Ok.
Nah sekarang ketikin XI-A kayak yang saya contohkan terus clik Lock.
Pada
bagian Dbgrid1, ditampilkan hanya data kelas XI-A aja, nah sekarang
silahkan klik Option1=>Alpa, dan perahtikan pada bagian frame sesudah
absent jika muncul angka 1 pada bagian Alpa maka scrip telah berjalan
dengan benar, selanjutnya apakah kita akan menyimpan hasil absensi
tersebut ?, pasti dong yaiyalah kan emang itu yang kita maksud daripada
pusing mendingan ketikin scripnya di command=>save:
Private Sub Command1_Click()
If Text16.Text = “” Or Text3.Text = “” Or Text5.Text = “” Then
MsgBox (“Absensi Telah Selesai / Tidak Ada Object Yang akan di Simpan”)
ElseIf
Text16.Text = Data1.Recordset.Fields(“nip”) And Option1.Value = True Or
Option2.Value = True Or Option3.Value = True Or Option4.Value = True
Then
x=MsgBox (“Thank’s you “, vbOKOnly + vbInformation, “Aplication For Master”)
Data1.Recordset.Edit
Data1.Recordset.Fields(“alpa”) = Text10.Text
Data1.Recordset.Fields(“izin”) = Text11.Text
Data1.Recordset.Fields(“sakit”) = Text12.Text
Data1.Recordset.Fields(“masuk”) = Text14.Text
Data1.Recordset.Fields(“total”) = Text13.Text
Data1.Recordset.Fields(“tgl”) = Label16.Caption
Data1.Recordset.Update
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
DBGrid1.Refresh
Data1.Recordset.MoveNext
Else
Z = MsgBox(“Anda Belum Memilih Keterangan Absesnsi!”, vbOKOnly + vbInformation, “Informasi”)
End If
End Sub
Untuk
mencegah kesalahan ,seperti menyimpan data kosong ,object yang
diabsensi sudah salah,Tanpa memilih option, jika hal ini dilakukan maka
program akan memeberikan peringatan seperti: “Absensi Telah Selesai /
Tidak Ada Object Yang akan di Simpan” atau “Anda Belum Memilih
Keterangan Absesnsi!” tapi jika data diisi dengan benar maka akan muncul
pesan “Thanks You”, nah ternyata yang seperti ini jutru lebih penting
dan ribet loh ,saya aja udah berakali me-Run supaya berjalan Normal,
tapi tenang ada kemaun pasti ada jalan….setuju…he… .
Itulah scrip
yang terpenting dalam proses ini tapi kalau penegen tahu semua scripnya
boleh asal jangan muntah ya…he…ini dya jreng”:
Private Sub Command1_Click()
‘untuk menyimpan hasil absesnsi kedalam database
If Text16.Text = “” Or Text3.Text = “” Or Text5.Text = “” Then
MsgBox (“Absensi Telah Selesai Tidak Ada Object Yang akan di Simpan”)
ElseIf
Text16.Text = Data1.Recordset.Fields(“nip”) And Option1.Value = True Or
Option2.Value = True Or Option3.Value = True Or Option4.Value = True
Then
X = MsgBox(“Thank’s you “, vbOKOnly + vbInformation, “Aplication For Master”)
Data1.Recordset.Edit
Data1.Recordset.Fields(“alpa”) = Text10.Text
Data1.Recordset.Fields(“izin”) = Text11.Text
Data1.Recordset.Fields(“sakit”) = Text12.Text
Data1.Recordset.Fields(“masuk”) = Text14.Text
Data1.Recordset.Fields(“total”) = Text13.Text
Data1.Recordset.Fields(“tgl”) = Label16.Caption
Data1.Recordset.Update
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
DBGrid1.Refresh
Data1.Recordset.MoveNext ‘setalah di save maka akan menuju record selanjutnya
Else
Z = MsgBox(“Anda Belum Memilih Keterangan Absesnsi!”, vbOKOnly + vbInformation, “Informasi”)
End If
End Sub
Private Sub Command2_Click()
‘hanya refresh doang
Data1.Refresh
Data3.Refresh
End Sub
Private Sub Command3_Click()
‘keluar dari form proses absensi
X = MsgBox(“Apa ada yakin untuk Mengakhiri Pengisian Absensi ini ? “, vbYesNo + vbQuestion, “Aplication For Master”)
If X = vbYes Then
subDepan.Show
Form_Input_absensi.Hide
Else
End If
End Sub
Private Sub Command4_Click()
‘menseleksi berdasarkan kelas
Data1.RecordSource = “select*FROM tabel2 WHERE bagian LIKE ‘*” & Text1.Text & “*’”
Data1.Refresh
DBGrid1.Refresh
Text1.SetFocus
End Sub
Private Sub Command5_Click()
‘ ini untuk find menu berdasarkan nip/nim/nis
Data1.Recordset.FindFirst “nip=’” & Text15.Text & “‘”
If Not Data1.Recordset.NoMatch Then
Text15.Text = “”
Text15.SetFocus
Else
X = Text15.Text
X = MsgBox(“Mohon Periksa kembali Data yang anda Cari!”, vbyesonly + vbinformasi, “Aplication For Master”)
Text15.SetFocus
End If
End Sub
Private Sub Form_Load()
‘Posisikan Form ini ketengah
Me.Move (Screen.Width – Me.Width) / 2, (Screen.Height – Me.Height) / 2
Text10.Text = “”
Text11.Text = “”
Text12.Text = “”
Text13.Text = “”
Text14.Text = “”
Text1.Text = “”
r = “Silahkan Input Nip/Nim/Nis!”
Text15.Text = r
End Sub
Private Sub Option1_Click()
‘jika di klik maka jumlah alpa akan bertambah satu
If Option1.Value = True Then
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Text10.Text = Val(Text6.Text) + 1
Else
Text10.Text = Val(Text6.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text10.Text) + Val(Text11.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Private Sub Option2_Click()
‘jika diklik maka jumlah izin akan bertambah satu
If Option2.Value = True Then
Text11.Text = Val(Text7.Text) + 1
Text10.Text = Text6.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Else
Text11.Text = Val(Text7.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Private Sub Option3_Click()
jika diklik maka jumlah sakit akan bertambah satu
If Option3.Value = True Then
Text12.Text = Val(Text8.Text) + 1
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text14.Text = Text2.Text
Else
Text12.Text = Val(Text8.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text12.Text) + Val(Text11.Text) + Val(Text10.Text) + Val(Text14.Text)
End Sub
Private Sub Option4_Click()
jika diklik maka jumlah izin akan bertambah satu
If Option4.Value = True Then
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Val(Text2.Text) + 1
Else
Text14.Text = Val(Text2.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
‘ini hanya untuk di Enter supaya pidah ke field berikutnya
If KeyAscii = 13 Then
Command4.SetFocus
End If
End Sub
Private Sub Text15_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command5.SetFocus
End If
End Sub
Private Sub Timer1_Timer()
Label14.Caption = Format(Time, “hh:mm:ss:am/pm”)’cuma format jam doang
Label16.Caption = Format(Date, “dd/mmmm/yyyy”)
End Sub
Sekarang kita coba input absensi dan lihat hasilnya missal saya mw absent kelas XI-B,
Hasilnya
udah langsung bisa dilihat , ketika saya klik option(keterangan) masuk
maka pada frame sesudah absent bagian masuk= 1(bertambah satu yang
mulanya Nol) dan jika kita memilih absen masuk lagi maka akan bertambah
menjadi dua , dan tanggalnya bersifat update pada field pertama dengan
nama Lina Marlina tertera tgl 11/02/2009, sedangkan yang lainya tgl
07/02/2009.jangan heran dan aneh kalau ada yang nanya diamana saya
menyimpan tanggalnya seperti pada Input data?, Coba anda perhatikan di
bagian kanan ats form disitu tertera hari ini tanggal: dan itulah yang
saya masukan kedatabase …he……he.. ,
Oke dech kalau emang kurang
jelas dan belum ngerti dari aplikasi yang saya buat ini , entar dech
saya kasih aplikasi udah jadinya
Salah
satu yang terpenting dalam membuat suatu Program adalah output program
itu sendiri . ada report yang bersifat tampil dan adapula report yang
bersifat cetak misalnya saja ingin membuat report dengan menampilkan
field -field tertentu , Mungkin untuk Program Acses anda sudah tidak
pusing-pusing lagi karena ada fasilitas Parameter dan filter .Tapi
bagaimana data report Pada Vb ?, ya inilah persolaan yang akan kita
bahas kali ini. Ternyata masih banyak orang yang belum tahu bahkan baru
tahu misalnya saja saya,….he……he…….
Dalam sebuah program
tentunya harus bersifat efiesien dan efektif , begitu pula dengan data
report misalnya dari database transaksi kita hanya ingin melihat
(mencetak ) data transaksi pada taggal tertentu dengan kode tertentu,
maka pada tabel transaksi tersebut diperlukan sebuah parameter bukan ?,.
Yup
kita mulai saj kali ya , tai sebelumnya kita buat dulu database
misalnya saya punya database + Form yang udah jadi , maka saya tinggal
membuat reportnya dengan cara padaAdd Data Enviorenment ,
Kalau
muncul kotak kayak gini -klik kanan pilih properties-pada bagian
-conection buat Command dengan nama ParameterTanggal connection.-klik
OK.
Oh ya. Pada bagian DataEnvioronment ganti jadi=Dta_sql,
Terus pada connection=SQLkonection
Pada Command1=Parameter tanggal.
Pada
bagian ini kita akan menhubungkan kedatabase kita, caranya Klik kanan
pada SQlKonection-pilih Properties- setelah munculkotak dialog kaya
diatas pilih Microsoft jet 4.0 OLE DB Provider, sebagai mesin
penghubung, dan tentunya anda juga bisa menggunakan Sql mialnya asal
database yang kita buat menggunkan SQL.
Sekarang klik Next-
pada bagian Select Or to Enter a dtatabase name:, lkamu pilih database
yang sudah kamu buat, dengan cara mengklik pada bagian:
Untuk
mencoba apakah telah terkoneksi coba ada klik Test Connection, jika
berhasil maka ada pesan yang menyatakan Bahwa telah berhasil terhubung.
Sekarang klik Ok Untuk menyetujuinya.
Selanjutnya kita pilih-ParameterTanggal-klik Kanan-pilih Properties-sampai muncul kotak dialog:
Pilih aja database Object :table,
Object
Name: (Sesuaikan dengan table yang telah kita buat), sbenernya kita
tidak akan menggunakan ini, hanya saja untuk mempermudah sewaktu kita
membuat sytak sql-nya. Sekarang kita klik sqlStatement ,
Pilih parameter tanggal -klik kanan-build SQL terus masukan Sintaknya :
SELECT *
FROM data_hasil
WHERE pelajaran = ?
Pada
sintak ini kita hanya mennggunakan satu parameter saja jika anda ingin
mennggunkan lebih dari satu , maka cukup menmabahkan Penghubung AND
kayak contoh ini nih:
SELECT *
FROM data_hasil
WHERE kelas = ? AND pelajaran = ?
Cukup mudah bukan , kalau udah kita simpan atau klik OK,
Selanjutnya
kita buat laporannya pada data Envioronment klik kanan-terus pilih add
data Report – beri nama=datareport2-selanjutnya klik pada bagian
Properties -pada setingan Data source = Dta_sql, dan data membernya
Parameter tanggal, kemudian desaign laporan yang anda inginkan ,
selanjutnya kita buat form untuk menginput data yang akan kita cetak.
Saya akan kasih contoh Form yang saya buat pada kasus ini saya hanya
ingin mencetak data_hasil berdasarkan kelas dan Pelajaran, mungkin kayak
gini nih, oh ya mungkin anda sedikit bertanya-tanya, mengapa saya
menjelaskan berbeda. Pada saat pembuatan conection dan command saya
menjelaskan menngunkan kasus data transaksi tapi pada saat pembuatan
datarepot saya gunakan kasus data Hasil ujian siswa.Maklum saya lagi
males mesti design DataRepot yag baru sory ya , tapi tenang hasilnya
pasti sama and yang pastinya kalau emang enggak mudeng Tanya aja ya… J.
Oke ini dia formnya:
Buat aja yang simple :
Kelas/bagian: Text3
Pelajaran: Text2 , untuk name biarkan =command1 aja biar gak ribet.
Klik dua kali pada bagian command 1.=cetak dan masukan listing berikut ini:
Private Sub command1_klik()
X=msgBox(“Apakah anda akan memcetak Hasil ini”, vbYesNO+VbQuestion,”Informasi”)
If x=vbYes then
Dim DE As Dt_sql
Set DE = New Dt_sql
DE.Command1 Text2.Text, Text3.Text
Text3.SetFocus
DataReport2.Show
Else
Exit sub
Text3.text=” “
Text2.text=” “
End If
End Sub
Kalau
udah sekarang kita jalankan Form input yang telah kita buat ,
selanjutnya anda coba masukan kelas=”XI-A” dan Pelajaran =”Biologi”
siswa, Klik Print dan pilih Yes untuk menyetujui nya