Anda di halaman 1dari 5

WORKSHOP SESSION I

Materi Workshop kali ini adalah membuat program untuk mengelola data kontak (contact person) menggunakan database. Format database yang digunakan adalah Microsoft Access 2000, sedangkan koneksi yang digunakan adalah menggunakan objek ADO Data Control (ADODC). Untuk program Kontak ini membutuhkan database Access yang bernama Workshop.mdb sedangkan nama table-nya adalah Contact dengan struktur table sebagai berikut : ID (Autonumber, Nama (Text/50), TempatLahir (Text/30), TglLahir (Date/Time), Alamat (Text/100), Phone(Text/30), HP (Text/30) dan Email (Text/50). Database diatas dapat didownload disini. Sedangkan form layout yang akan dibuat seperti gambar dibawah ini :

Form diatas terdiri dari 23 objek yaitu 7 Label, 6 Textbox, 7 Command, 1 Adodc, 1 DataGrid dan DTPicker (untuk tanggal). Tombol dalam form berjumlah 7 yang mempunyai fungsi tertentu, yaitu : Tombol New, untuk menambah data baru dan sekaligus sebagai tombol simpan; Tombol Update, akan aktif jika kita meng-klik dobel (2 kali) data pada daftar DataGrid, untuk menyimpan perubahan data. Tombol Hapus, akan aktif jika kita meng-klik dobel (2 kali) data pada daftar DataGrid, untuk menghapus data. Tombol Batal, aktif pada posisi Edit dan menambah data baru, untuk membatalkan proses tambah data atau edit data. Tombol Print, untuk mencetak seluruh data kontak ke printer (tidak dilayar). Tombol Refresh untuk memperbaharui daftar record dalam DataGrid. Tombol Keluar, untuk keluar dari program.

Alur Kerja Program Bila program dijalankan maka form akan kosong, tombol yang aktif adalah tombol New, Print, Refresh dan Keluar, sedangkan tabel akan menampilkan isi table kontak. Jika tombol New diklik maka tombol New berubah menjadi tombol Simpan dan tombol Batal akan aktif sedangkan tombol Print akan non aktif.

Untuk mengedit atau menghapus data yang sudah dimasukkan, klik 2 kali data yang akan diedit/hapus pada tabel di DataGrid. Penjelasan Kode Program Prosedur Form Aktif
Private Sub Form_Activate() 1. Pasif 2. DG.AllowUpdate = False 3. cmdUpdate.Enabled = False 4. cmdBatal.Enabled = False 5. cmdHapus.Enabled = False 6. cmdPrint.Enabled = True 7. cmdNew.Enabled = True 8. cmdNew.SetFocus End Sub

Prosedur diatas merupakan bagian program yang akan dijalankan pada saat form aktif. Prosedur ini berisi rutin yang paling pertama dijalankan, yaitu memanggil subrutin Pasif (1), mematikan edit data melalui datagrid (2), mematikan tombol-tombol (2, 3, 4, 5) dan mengaktifkan tombol (5, 6) serta menempatkan pointer awal di tombol New (8). Prosedur New_Click
Private Sub cmdNew_Click() 1. If cmdNew.Caption = "New" Then a. cmdNew.Caption = "Simpan" b. Aktif c. Kosong d. txtNama.SetFocus e. cmdBatal.Enabled = True f. cmdPrint.Enabled = False 2. Else a. cmdNew.Caption = "New" b. Simpan c. Kosong d. Pasif e. cmdBatal.Enabled = False f. cmdPrint.Enabled = True 3. End If End Sub

Prosedur diatas akan dijalankan jika tombol New diklik. Kondisi no.1 jika tombol ditekan dan caption-nya New maka akan diubah menjadi Simpan (1.a). Memanggil subrutin Aktif (1.b), memanggil subrutin Kosong (1.c), menempatkan pointer/kursor di kolom Nama (1.d), mengaktifkan tombol Batal (1.e) dan mematikan tombol Print (1.f) Kondisi no.2 (proses sebaliknya dari kondisi no.1). mengubah caption tombol New menjadi New (2.a), memanggil subrutin Simpan (2.b), memanggil subrutin Kosong (2.c), memanggil subrutin Pasif (2.d) serta mematikan tombol Batal (2.e) dan mengaktifkan kembali tombol Print (2.f). Prosedur cmdBatal_Click
Private Sub cmdBatal_Click() 1. Kosong 2. Pasif 3. cmdUpdate.Enabled = False 4. cmdBatal.Enabled = False 5. cmdPrint.Enabled = True 6. cmdNew.Enabled = True 7. cmdHapus.Enabled = False End Sub

Prosedur diatas adalah untuk membatalkan proses penambahan data dan pengeditan data jika diklik. Proses dimulai dengan memanggil subrrutin Kosong (1), memanggil subrutin Pasif (2), mematikan tombol Update (3), tombol Batal (4), tombol Hapus (7) dan mengaktifkan tombol Print (5), tombol New (6). Prosedur cmdHapus_Click
Private Sub cmdHapus_Click() 1. If MsgBox("Benar Mau di Hapus?", vbYesNo + vbQuestion, "Hapus") = vbYes Then a. AdoK.Recordset.Delete b. AdoK.Refresh c. DG.ReBind 2. End If 3. cmdBatal_Click 4. cmdRefresh_Click

End Sub

Prosedur diatas untuk menghapus data dari table setelah di memilih data dari daftar DataGrid. Dimulai dengan pertanyaan untuk menyakinkan apakah data benar mau dihapus (1). Jika yakin makan lakukan proses penghapusan (1.a) dan memperbaharui data ( 1.b, 1.c). Kemudian menekan tombol Batal (3) dan tombol Refresh (4). Prosedur cmdPrint_Click
Private Sub cmdPrint_Click() 1. If MsgBox("Printer sudah siap ?", vbYesNo + vbQuestion, "Cetak") Then a. Cetak 2. End If End Sub

Prosedur diatas untuk mencetak data kontak. No.1 pertanyaan untuk meyakinkan apakah printer sudah siap. Jika siap maka panggil subrutin Cetak (laksanakan cetak) nomor 1.a. Prosedur cmdRefresh_Click
Private Sub cmdRefresh_Click() 1. AdoK.Refresh 2. DG.Refresh 3. DG.ReBind End Sub

No.1,2 dan 3 memperbaharui data dalam table Prosedur cmdUpdate_Click


Private Sub cmdUpdate_Click() 1. With AdoK.Recordset a. !Nama = txtNama b. !TempatLahir = txtTempat c. !TglLahir = Format(tgl, "dd/mm/yyyy") d. !Alamat = txtAlamat e. !Phone = txtPhone f. !HP = txtHP g. !Email = txtEmail h. .Update 2. End With 3. Kosong 4. Pasif 5. cmdRefresh_Click 6. cmdBatal_Click End Sub

Prosedur ini digunakan untuk menyimpan perubahan data setelah melakukan pengeditan.. No. 1a s.d 1g adalah proses menyalin data dari form ke table dan diakhiri dengan mengupdate (1h). No. 3, 4 berturutturut memanggil subrutin Kosong dan Pasif. Kemudian menekan tombol Refresh (5) dan Batal (6). Prosedur Keluar
Private Sub cmdKeluar_Click() Unload Me End Sub

Untuk keluar dari Program Prosedur DG_DblClick


Private Sub DG_DblClick() 1. Aktif 2. Kosong 3. txtNama = DG.Columns(1).Value 4. txtTempat = DG.Columns(2).Value 5. tgl = DG.Columns(3).Value 6. txtAlamat = DG.Columns(4).Value 7. txtPhone = DG.Columns(5).Value 8. txtHP = DG.Columns(6).Value 9. txtEmail = DG.Columns(7).Value 10. txtNama.SetFocus 11. cmdUpdate.Enabled = True 12. cmdNew.Enabled = False 13. cmdBatal.Enabled = True 14. cmdHapus.Enabled = True 15. cmdPrint.Enabled = False End Sub

Prosedur ini adalah menyalin data dari daftar DataGrid ke form setelah pada DataGrid dilakukan dobel klik. No. 1 dan 2 memanggil subrutin Aktif dan Kosong. Sedangkan no. 3 s.d 9 adalah menyalin record yang dipilih ke form kemudian kursor diarahkan textbox Nama (10). Selanjutnya mengaktifkan tombol Update (11), tombol Batal (13), tombol Hapus (14) dan mematikan tombol New (12), tombol Print (15). Subrutin Aktif
Sub Aktif() txtNama.Enabled = True txtTempat.Enabled = True tgl.Enabled = True txtAlamat.Enabled = True txtPhone.Enabled = True txtHP.Enabled = True txtEmail.Enabled = True End Sub

Untuk membuat form bisa diisi yaitu dengan meng-enabled objek form dengan memberi nilai TRUE. Subrutin Pasif
Sub Pasif() txtNama.Enabled = False txtTempat.Enabled = False tgl.Enabled = False txtAlamat.Enabled = False txtPhone.Enabled = False txtHP.Enabled = False txtEmail.Enabled = False End Sub

Untuk membuat form tidak bisa diisi yaitu dengan meng-enabled objek form dengan memberi nilai FALSE. Subrutin Kosong
Sub Kosong() txtNama = "" txtTempat = "" tgl = Now txtAlamat = "" txtPhone = "" txtHP = "" txtEmail = "" End Sub

Untuk mengosong form dengan memberi nilai kosong () Subrutin Simpan


Sub Simpan() 1. With AdoK.Recordset a. .AddNew b. !Nama = txtNama c. !TempatLahir = txtTempat d. !TglLahir = Format(tgl, "dd/mm/yyyy") e. !Alamat = txtAlamat f. !Phone = txtPhone g. !HP = txtHP h. !Email = txtEmail i. .Update 2. End With 3. AdoK.Refresh 4. DG.Refresh End Sub

Untuk menyimpan data yang diisikan dengan menambah satu record (1.a) dan menyalin isi form ke table (1.b s.d 1.h) kemudian disimpan (1.i). Diakhiri dengan memperbaharui table (3, 4). Subrutin Cetak
Sub Cetak() 1. Dim no As Integer 2. Printer.Print 3. Printer.Print 4. Printer.Font = "Courier New" 5. Printer.Font.Size = 9 6. Printer.Print Tab(5); "DAFTAR CONTACT PERSON" 7. Printer.Print 8. Printer.Print Tab(5); String(120, "-")

9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

Printer.Print Printer.Print Printer.Print Printer.Print Printer.Print

Tab(7); "NO"; Tab(12); "NAMA KONTAK"; Tab(45); "TEMPAT LAHIR"; Tab(65); "ALAMAT"; Tab(105); "TELEPON"

Printer.Print Tab(45); "TGL.LAHIR"; Printer.Print Tab(65); "EMAIL"; Printer.Print Tab(105); "PONSEL" Printer.Print Tab(5); String(120, "-") no = 1 With AdoK.Recordset a. .MoveFirst b. Do While Not .EOF i. Printer.Print Tab(7); Format(no, "###"); ii. Printer.Print Tab(12); !Nama; iii. Printer.Print Tab(45); !TempatLahir; iv. Printer.Print Tab(65); !Alamat; v. Printer.Print Tab(105); !Phone

vi. Printer.Print Tab(45); !TglLahir; vii. Printer.Print Tab(65); !Email; viii. Printer.Print Tab(105); !HP ix. no = no + 1 x. .MoveNext c. Loop 20. End With 21. Printer.Print Tab(5); String(120, "-") 22. Printer.EndDoc End Sub

Untuk mencetak data kontak. Diawali dengan mendefinisikan variable no untuk nomor urut (1), Kemudian mencetak judul serta judul kolom (2 s.d 17). Mulailah mencetak isi table dengan membawa pointer ke record pertama (19.a) dengan menggunakan pengulangan dengan kondisi jika belum akhir dari file (19.b). Dilanjutkan dengan mencetak record (i s.d viii) dan menambahkan no urut (ix) serta membawa pointer ke record selanjutnya (x). Diakhiri dengan mencetak garis tutup (21) maka proses mencetak berakhir (22).

Anda mungkin juga menyukai