BAB 2 PEMBUATAN APLIKASI PERPUSTAKAAN SEKOLAH

dokumen-dokumen yang mirip
KONEKSI VB DENGAN MYSQL (Wajib, S.Pd.)

1. Kompetensi Memahami berbagai teknologi pemrograman basis data, khususnya MySQL, pada Visual Basic 6.0.

Pertemuan III MENYIMPAN REKAMAN (RECORD) KE DALAM BASIS DATA

Bahasa Pemrograman-1 (Visual Basic)

MODUL PRAKTIKUM PEMROGRAMAN VISUAL I. Disusun oleh : ATEP RUHIAT, M.KOM STMIK SUMEDANG

Koneksi dan Pembuatan Form Visual Basic MS Access. Arif Basofi PENS-ITS 2012

1. Kompetensi Memahami berbagai teknologi pemrograman basis data, khususnya MySQL, pada Visual Basic 6.0.

BAB 2. Login Aplikasi

Field Tipe Data Size Keterangan userid Text 12 Primary key namauser Text 30 - password Text 8 - akses Text 10 -

BAB 3 Simpan Data 3.1. Simpan Data Dengan Kode SQL Ms Access MS Access ( format) DbJenisBrg.mdb Tabel_Jenis_Brg 22 Atep Ruhiat

Pemrograman Database I. Danu Wira Pangestu 1. Konsep Dasar. Lisensi Dokumen:

MEMBACA RECORD DENGAN ADODC

BAB 4 Ubah Data 4.1. Ubah Data Dengan Kode SQL sqlsimpan sqlubah 36 Atep Ruhiat

Tutorial, Source code, Request Program Visual Basic

Pemrograman Database dengan perintah SQL

Gambar 1 Table Petugas. Gambar 2 Penambahan Komonen Pada Form

Basic Programing Visual Basic

Cepat Mahir Visual Basic 6.0. Cepat Mahir Visual Basic 6.0. Bab 10 Penggunaan Kontrol Array. Krisna D. Octovhiana

[Tutorial VB6] Bab 4 Penggunaan Data dan Variabel

BAB 8. Pencarian Data

Pada Visual Basic, anda dapat membuat database dengan menggunakan Visual Data Manager yang dapat diaktifkan dari menu Add Ins, Visual Data Manager

Modul Praktikum Ke-1

PEMROGRAMAN CLIENT. Latihan 1. Buka IDE Visual Basic dan buat project baru, simpan pada folder anda masingmasing.

Mengerti dan memahami pemrograman berbasis object Mengerti dan memahami pembuatan visualisasi untuk interface

Krisna D. Octovhiana

Koneksi Database BAB 1

Program Sekuensial VB 6 dan VB 2008

MEMBUAT LAPORAN (DATA REPORT)

4. Lalu klik Worksheet List Car dan buat kolom seperti ini :

PROGRAM RENTAL VCD DENGAN MICROSOFT VISUAL BASIC 6.0

Modul Database dan Pengaksesannya dari FORM #1

Pemrograman Database dengan Remote Data Control. Tessy Badriyah, SKom,MT

Membuat Form Input Barang (Untuk Server)

Sistem Informasi Royalti

Konsep Sistem Informasi B

Form dan Kontrol. 5.1 Form

DISUSUN OLEH : : Friska Rosalina NIM :

Membuat Proteksi File Excel Tingkat Tinggi dengan Kode VBA. By. Samsudin_Batolay

E-Trik Visual C++ 6.0

BAB 7 Kondisi Form 7.1. Pada Saat Form Load 68 Atep Ruhiat

MEMBUAT DATABASE DENGAN ADO

BAB 3 PEMBUATAN KARTU ANGGOTA DAN LAPORAN

Krisna D. Octovhiana. 1.1 Apa itu Array?

BAB I. 1 P e m r o g r a m a n V i s u a l B a s i c - J a t i L e s t a r i

MODUL 2 Variabel, Val, If tunggal dan If bersarang + case

Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.

Praktikum-19 AMIK-STMIK JAYANUSA Imam Gunawan, M. Kom FORM BARANG MASUK

Danu Wira Pangestu

Oracle dengan Visual Basic. Arif Basofi Politeknik Elektronika Negeri Surabaya ITS 2012

Buka Project Baru simpan dengan PUSTAKA Buat Form Baru untuk pengisian Data Anggota dan simpan dengan nama frmanggota

IMPLEMENTASI PEMROGRAMAN VISUAL BASIC DENGAN DATABASE ACCESS

Cepat Mahir Visual Basic 6.0. Cepat Mahir Visual Basic 6.0. Bab 13 Penanganan Keyboard. Krisna D. Octovhiana

PENGGUNAAN EVENT, PROPERTY DAN METHOD

Contoh Aplika Aplik si a VB dengan Database Oracle 1

Listing Program. 1. FrmUser.frm

Krisna D. Octovhiana. 1.1 Apa itu Operator?

BAB 3 TOOLBAR CUSTOMIZE DAN CONTROL TOOLBOX

Menggunakan DataGrid dengan ADODC 1. Tanamkan pada form sebuah ADODC dan DataGrid

LAMPIRAN. Source Code Program Untuk MDI Utama

Modul Database dan Pengaksesannya dari FORM #Lanjutan

Modul Praktikum Ke-2

Kode Program : Koneksi. Klik Kanan Adobrg Pilih ADODC Properties Maka akan muncul tampilan sbb: Instruktur : Nani Purwati

1. Rancangan Input Program Form Menu Utama Form Data Barang [ Input Barang ]

Modul 3 Pembuatan Form dengan Wizard dan Penambahan kode VBA

MODUL PRAKTIKUM 1 DASAR VISUAL BASIC 6.0

Krisna D. Octovhiana. 1.1 Membuat User Interface (UI)

1. MENGENAL VISUAL BASIC

Gambar 2.1. Komponen yang digunakan. Gunakan komponen-komponen seperti pada gambar 2.1 untuk membuat form pada gambar 2.2.

Modul Report Dan Form Report

E-Trick Visual Basic 6.0

Pertemuan V Menggabungkan Form dengan Menu daan Membuat Laporan Menggunakan Crystal Report

Copyright by : ipi-leppindo jambi all reserved 2014 (japikinfo.com)

Otodidak VBA MS Excel untuk Pemula

PERTEMUAN KE-6 STRUKTUR PERULANGAN (menggunakan Loop dan Timer)

PRAKTIKUM 1 INPUT - OUTPUT

KUPAS TUNTAS PEMROGRAMAN VISUAL BASIC 6.0. Dilengkapi penjelasan Coding. Oleh: Didin Muhidin. Copyright 2016 by DiesAlfatih.

L - 1. Tampilan Aplikasi ( Form Menu Utama ) Tampilan Form login

Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.

PRAKTIKUM 4 ARRAY DAN SUB ROUTINE

Jl. Majapahit 605 Semarang Membuat Laporan (Cetak ke kertas ) dengan menggunakan Data Report Designer

Spesifikasi: Ukuran: 14x21 cm Tebal: 159 hlm Harga: Rp Terbit pertama: Maret 2005 Sinopsis singkat:

Pertemuan-1 TIPE DATA STRUKTUR

Excel Sebagai Output VB 3.1 Excel Sebagai Output VB

Program absen dengan menggunakan visual basic 6.0

Krisna D. Octovhiana. 1.1 Mengenal Data dan Variabel.

BAB 1 PERANCANGAN DATABASE DAN TABEL

Bab I Pengenalan Visual BASIC

MODUL 2 SELECTION & LOOPING PADA FORM

Langkah-Langkah Membuat Macro Point of Sales

Sistem Distribusi Data Melalui COM+ Dengan Visual Basic

Praktikum 6 SubForm dan Kode VBA

TRIK SOAL VBA. Oleh AGUS BUDIANTO, S. Pd, M. Pd

DIALOGBOX, FUNGSI ERROR & PERCABANGAN SUBROUTINE

BAB IV PERANCANGAN. Gambar diatas adalah tampilang awal ketika ingin memulai project baru. Pilih Standart EXE untuk memulai project.

ADODC. Gambar 5.1. ADODC

Pembahasan Pada Asistensi Mengenai, Pada Bab: 1 Pengajuan Proposal

Tutorial Untuk Membuat Program Database Mahasiswa Teknik Industri Dengan Menggunakan Koneksi VB.NET Dengan Microsoft Access

HandleError: MsgBox "Proses tidak bisa dikerjakan.", vbinformation, "Perhatian" On Error GoTo 0 End Sub

Koneksi Visual Basic 6.0 dengan SQL SERVER 2000

BAB 3 Database dalam Form

Transkripsi:

BAB 2 PEMBUATAN APLIKASI PERPUSTAKAAN SEKOLAH 2.1 Persiapan Program Utama Pada bab ini kita akan membahas tentang pembuatan program utama yaitu Aplikasi Perpustakaan Sekolah dengan menggunakan program Microsoft. Langkah demi langkahnya akan dijelaskan pada bab ini dan nantinya bisa digunakan untuk pedoman membuat Aplikasi Perpustakaan lain ataupun aplikasi lainnya. 2.1.1 Membuat Proyek Baru Program yang digunakan dalam pembuatan aplikasi ini adalah menggunakan program Microsoft. Sebagai langkah awal dalam pembuatan aplikasi, kita harus membuat proyek baru pada program. Berikut adalah langkah-langkahnya : 1. Buku program Microsoft, dari Start All Programs Microsoft - Microsoft Visual Basic 6.0. Lihat tampilan di bawah ini. Gambar 2.1 Tampilan Langkah Membuka 16 Atep Ruhiat

2. Setelah muncul jendela New Project, pilih VB Enterprise Edition Controls supaya komponennya lengkap. Klik Open untuk membukanya. Gambar 2.2 Tampilan Pilihan Projek Visual Basic 3. Gunakan form pertama untuk membuat Menu Utama Aplikasi Perpustakaan. 4. Simpan project dari File Save Project. Lihat gambar di bawah ini. Gambar 2.3 Tampilan Langkah Penyimpanan Project Kerja 5. Penyimpanan pertama adalah penyimpanan untuk form, tentukan lokasi folder yang sebelumnya sudah kita buat yaitu Aplikasi Perpustakaan Sekolah/Form lalu beri nama 17 Atep Ruhiat

Form_Menu_Utama klik tombol Save. Untuk lebih jelasnya lihat pada gambar. Gambar 2.4 Tampilan Penyimpanan Form 6. Sedangkan penyimpanan kedua adalah project kerja, simpan ke dalam sub-folder Data. Beri nama Apl_Perpustakaan klik tombol Save. Lihat gambar di bawah ini. Gambar 2.5 Tampilan Penyimpanan Project 7. Kemudian akan muncul jendela Source Code Control untuk melanjutkan klik tombol No. Gambar 2.6 Tampilan Source Code Control 18 Atep Ruhiat

2.1.2 Mendesain Menu Utama Aplikasi Menu utama aplikasi merupakan tampilan awal aplikasi, di mana dalam menu utama ini terdapat fasilitas-fasilitas yang nantinya bisa kita gunakan dalam mengelola Aplikasi Perpustakaan Sekolah yang akan kita buat. Bentuk menu utama yang akan kita buat, untuk lebih jelasnya seperti tampilan di bawah ini. Gambar 2.7 Tampilan Menu Utama Aplikasi Perpustakaan Untuk membuat tampilan seperti di atas, coba ikuti langkahlangkah di bawah ini. 1. Buka Form_Menu_Utama yang telah kita buat tadi. 2. Kemudian aturlah properti form tersebut dengan ketentuan Form seperti di bawah ini. Komponen Properti Nilai Form_Menu_Utama BackColor BorderStyle ShowInTaskbar Windows-State 19 Atep Ruhiat &H00DCB470& 3 Fixed Dialog :: Menu Utama Aplikasi Perpustakaan Sekolah True 2-Maximized Tabel 2.1 Konfigurasi Form Menu Utama 3. Selanjutnya buatlah menu Pull Down dengan menggunakan Menu Editor dari Tools Menu Editor. Berikut contoh tampilannya.

Gambar 2.8 Tampilan Membuka Menu Editor 4. Lalu buatlah menu dan sub-menu pada jendela Menu Editor. Berikut ini tampilan gambarnya. Gambar 2.9 Tampilan Menu Editor 5. Untuk lebih jelas tentang pengaturannya bisa dilihat pada tabel di bawah ini. Level 1 Level 2 Sistem MnSistem Login SbMnLogin Logout SbMnLogout - Baris1 Keluar SbMnKeluar Data MnData Petugas SbMnPetugas Anggota SbMnAnggota - Baris2 Jenis Buku SbMnJenisBk Buku SbMnBuku 20 Atep Ruhiat

Transaksi Laporan Peminjaman Buku MnTransaksi SbMnPeminjamanBk - Baris3 Pengembalian Buku SbMnPengembalianBk Data Petugas Data Anggota MnLaporan - Baris4 Data Jenis Buku Data Buku Keseluruhan Data Buku Yang Tersedia Data Buku Yang Dipinjam - Baris5 Trans. Peminjaman Buku SbMnDtPetugas SbMnDtAnggota SbMnJenisBk SbMnDtBkKeseluruhan SbMnDtBkYgTersedia SbMnDtBkYgDipinjam SbMnTransPinjamBk Trans. Pengembalian SbMnTransKembaliBk Buku Tabel 2.2 Konfigurasi Menu Utama 6. Setelah menu dan sub-menu tersebut sudah dibuat, klik tombol OK. 7. Tambahkan komponen Toolbar ( ) dan Status Bar ( ) pada Form_Menu_Utama. Sehingga tampilannya seperti di bawah ini. Objek Toolbar Objek StatusBar Gambar 2.10 Tampilan Form Setelah Ditambah Toolbar dan StatusBar 21 Atep Ruhiat

8. Klik kanan pada objek Status Bar, pilih Properties. 9. Akan muncul jendela Property Page, pilih tab Panels, kemudian tambahkan satu panel lagi ke dalam komponen Status Bar yaitu caranya dengan klik tombol Insert Panel satu kali. Lihat pada gambar di bawah ini. Gambar 2.11 Tampilan Untuk Menambah Panel Pada Objek Status Bar 10. Setelah itu klik tombol Apply, kemudian lanjutkan dengan mengklik tombol OK. 2.1.3 Membuat Kode pada Menu Utama Aplikasi Setelah semuanya selesai, langkah selanjutnya adalah pembuatan kode program pada Form_Menu_Utama. Ikutilah langkah-langkah di bawah ini : 1. Pada Form_Menu_Utama dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() memberikan kondisi pada menu pada saat form dijalankan SbMnLogout.Enabled = False SbMnKeluar.Enabled = True MnData.Enabled = False MnTransaksi.Enabled = False MnLaporan.Enabled = False 2. Dari halaman Form_Menu_Utama, pilih menu Sistem Login. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnLogin_Click() membuka form login 22 Atep Ruhiat

Form_Login.Show 1 3. Masih dari halaman Form_Menu_Utama, pilih menu Sistem Logout. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnLogout_Click() memberikan kondisi pada menu SbMnLogin.Enabled = True SbMnLogout.Enabled = False SbMnKeluar.Enabled = True MnData.Enabled = False MnTransaksi.Enabled = False MnLaporan.Enabled = False mengosongkan status userid dan nama petugas StatusBar1.Panels(1) = "" StatusBar1.Panels(2) = "" 4. Masih dari halaman Form_Menu_Utama, pilih menu Sistem Keluar. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnKeluar_Click() memunculkan dialog bok konfirmasi Keluar = MsgBox("Anda yakin akan keluar?", _ vbinformation + vbyesno, "Informasi") jika memilih Yes maka akan keluar jika sebaliknya No maka akan keluar dari sub kode If Keluar = vbyes Then End Else Exit Sub 5. Masih dari halaman Form_Menu_Utama, pilih menu Data Petugas. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnPetugas_Click() membuka form petugas Form_Petugas.Show 1 6. Masih dari halaman Form_Menu_Utama, pilih menu Data Anggota. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnAnggota_Click() membuka form anggota Form_Anggota.Show 1 7. Masih dari halaman menu utama, pilih menu Data Jenis Buku. Kemudian ketikkan kode program di bawah ini. 23 Atep Ruhiat

Private Sub SbmnJenisBk_Click() membuka form jenis buku Form_Jenis_Buku.Show 1 8. Masih dari halaman Form_Menu_Utama, pilih menu Data Buku. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnBuku_Click() membuka form buku Form_Buku.Show 1 9. Masih dari halaman Form_Menu_Utama, pilih menu Transaksi Peminjaman Buku. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnPeminjamanBk_Click() membuka form peminjaman Form_Peminjaman.Show 1 10. Masih dari halaman Form_Menu_Utama, pilih menu Transaksi Pengembalian Buku. Kemudian ketikkan kode program di bawah ini. Private Sub SbMnPengembalianBk_Click() membuka form pengembalian Form_Pengembalian.Show 1 11. Kemudian tekan tombol Ctrl+S pada keyboard untuk menyimpan kembali Form_Menu_Utama. 2.2 Pembuatan Program Data Petugas Setelah Form_Menu_Utama selesai dibuat, selanjutnya kita buat form Petugas. Form ini digunakan untuk mendata petugas yang nantinya data pertugas tersebut akan dijadikan akses untuk bisa masuk ke dalam Aplikasi Perpustakaan Sekolah. 2.2.1 Mendesain Form Petugas Pada tahapan ini kita akan mendesain form Petugas, di mana langkah-langkahnya bisa dilihat di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. 24 Atep Ruhiat

Gambar 2.12 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. Gambar 2.13 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Petugas Form 1 Aplikasi Perpustakaan Sekolah 25 Atep Ruhiat

BorderStyle 3-Fixed Dialog ClipControls False ControlBox False INPUT AKSES PETUGAS Label1 FontStyle Bold FontSize 14 Label2 User Id Label3 Password Label4 Nama Petugas Lbl_Duplikat [Duplikat Data] Label5 FontStyle Bold ForeColor &H000000FF& Visible False txtuserid Text1 Appereance 0-Flat Text <kosongkan> txtpassword Text2 Appereance 0-Flat PasswordChar * Text <kosongkan> txtnama Text3 Appereance 0-Flat Text <kosongkan> txtkonfirmasi Alignment 2-Center Text4 Appereance 0-Flat BackColor &H0000FF00& PasswordChar * Visible False cmdtambah Command1 &Tambah TabIndex 1 Command2 cmdsimpan &Simpan Command3 cmdubah &Ubah Command4 cmdhapus &Hapus Command5 cmdkeluar &Keluar cmdkonfirmasi Command6 &Konfirmasi Visible False Konek_Petugas Adodc1 Koneksi Petugas Visible False 26 Atep Ruhiat

Grid_Petugas DataGrid1 DataSource Konek_Petugas Tabel 2.3 Konfigurasi Form Petugas 5. Sehingga tampilan form seperti di bawah ini. Gambar 2.14 Tampilan Desain Form Setelah Disesuaikan 2.2.2 Membuat Kode pada Form Petugas Setelah Form_Petugas selesai dibuat, langkah selanjutnya adalah pembuatan kode program pada Form_Petugas. Ikutilah langkah-langkah di bawah ini : 1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. Gambar 2.15 Tampilan Area Pengetikan Kode Program 2. Buatlah prosedur untuk menormalkan kondisi Form_Petugas dengan nama Normal. Kemudian ketikkan kode program di bawah ini. Sub Normal() memanggil prosedur form tidak aktif dan kosong Call Kondisi(False) Call Kosong 27 Atep Ruhiat

membuat kondisi pada tombol cmdtambah.enabled = True cmdsimpan.enabled = False cmdubah.enabled = False cmdhapus.enabled = False cmdkeluar. = "&Keluar" menyembunyikan komponen cmdkonfirmasi.visible = False txtkonfirmasi.visible = False 3. Buat juga prosedur untuk mengosongkan kondisi inputan pada Form_Petugas dengan nama Kosong. Lalu ketikkan kode program di bawah ini. Sub Kosong() memberikan inputan kosong txtuserid.text = "" txtpassword.text = "" txtnama.text = "" 4. Setelah itu tambahkan prosedur kondisi untuk mengaktif dan non-aktifkan inputan pada Form_Petugas dengan nama Kondisi. Ketikan kode di bawah ini. Sub Kondisi(Kform As Boolean) memberikan kondisi inputan true atau false txtuserid.enabled = Kform txtpassword.enabled = Kform txtnama.enabled = Kform 5. Pada Form_Petugas dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Petugas.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel petugas Konek_Petugas.RecordSource = _ "Select * From Petugas" Konek_Petugas.Refresh Grid_Petugas.Columns(1).Visible = False memposisikan form pada tengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 28 Atep Ruhiat

memanggil prosedur form normal Call Normal cmdsimpan.enabled = False cmdhapus.enabled = False memberikan informasi ketika database masih kosong With Konek_Petugas.Recordset If.BOF Then MsgBox "Data Petugas Masih Kosong!!!", _ vbinformation + vbokonly, "" _ & "Informasi" Grid_Petugas.Enabled = False Else Grid_Petugas.Enabled = True End With mengatur grid petugas Grid_Petugas.HeadLines = 2 Grid_Petugas.Columns(0). = "USER ID" Grid_Petugas.Columns(2). = "NAMA PETUGAS" 6. Dari halaman Form_Petugas, dobel klik pada tombol Tambah. Kemudian ketikkan kode program di bawah ini. Private Sub cmdtambah_click() memanggil prosedur kondisi aktif dan kosong Call Kondisi(True) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = False cmdhapus.enabled = False cmdsimpan.enabled = True cmdkeluar.enabled = True cmdubah.enabled = False cmdkeluar. = "&Batal" txtuserid.setfocus 7. Kembali ke halaman Form_Petugas, dobel klik pada tombol Simpan. Kemudian ketikkan kode program untuk menyimpan data di bawah ini. Private Sub cmdsimpan_click() memberikan validasi ketika inputan masih kosong If txtuserid.text = "" Then MsgBox "UserID belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtuserid.setfocus ElseIf txtuserid.maxlength > 5 Then MsgBox "UserID melebihi!!!", _ vbinformation + vbokonly, "Informasi" 29 Atep Ruhiat

txtuserid.setfocus ElseIf txtuserid.text = "" Then MsgBox "UserID belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtuserid.setfocus ElseIf txtpassword.text = "" Then MsgBox "Password belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtpassword.setfocus ElseIf txtnama.text = "" Then MsgBox "Nama petugas belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtnama.setfocus Else kode program untuk menyimpan data With Konek_Petugas.Recordset.AddNew!UserId = txtuserid.text!password = txtpassword.text!nama_petugas = txtnama.text.update End With memanggil prosedur kosong dan kondisi aktif Call Kosong Call Kondisi(False) memberikan kondisi pada tombol cmdtambah.enabled = True cmdhapus.enabled = False cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdsimpan.enabled = False cmdtambah.enabled = True cmdtambah.setfocus Grid_Petugas.Enabled = True 8. Setelah itu kembali lagi ke halaman Form_Petugas, dobel klik pada tombol Ubah. Kemudian ketikkan kode program untuk merubah data di bawah ini. Private Sub cmdubah_click() kode program untuk merubah data With Konek_Petugas.Recordset.Update!UserId = txtuserid.text!password = txtpassword.text!nama_petugas = txtnama.text End With 30 Atep Ruhiat

memanggil prosedur kondisi tidak aktif Call Kondisi(False) memberikan kondisi pada tombol cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdhapus.enabled = False cmdtambah.enabled = True 9. Lalu dobel klik pada tombol Hapus. Kemudian ketikkan kode program untuk menghapus data di bawah ini. Private Sub cmdhapus_click() memunculkan kotak dialog penghapusan Hapus = MsgBox("Anda akan menghapus data ini!!", _ vbinformation + vbyesno, "Hapus Data") memberikan kondisi jika Yes maka akan terhapus jika No maka akan membatalkan proses penghapusan If Hapus = vbyes Then Konek_Petugas.Recordset.Delete Konek_Petugas.Recordset.MoveFirst Else MsgBox "Batal menghapus!!",, "Batal" memanggil prosedur form normal Call Normal menyembunyikan komponen txtkonfirmasi.visible = False cmdkonfirmasi.visible = False 10. Kemudian dobel klik pada tombol Keluar. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdkeluar_click() kondisi jika Keluar maka akan keluar jika Batal maka akan memanggil prosedur form Normal If cmdkeluar. = "&Keluar" Then Unload Me Else Call Normal 11. Dobel klik juga pada tombol Konfirmasi. Lalu ketikkan kode program untuk memberikan konfirmasi sebelum data tersebut akan diubah ataupun dihapus seperti di bawah ini. Private Sub cmdkonfirmasi_click() memberikan kondisi jika password sama maka data petugas akan bisa diubah dan dihapus 31 Atep Ruhiat

sebaliknya jika tidak maka akan muncul informasi If txtpassword.text = txtkonfirmasi.text Then txtuserid.enabled = False txtpassword.enabled = True txtnama.enabled = True txtkonfirmasi.visible = False cmdkonfirmasi.visible = False cmdubah.enabled = True cmdhapus.enabled = True cmdhapus.enabled = True txtpassword.setfocus Else MsgBox "Error!!, Password tidak sesuai.", _ vbinformation + vbokonly, "Informasi" txtkonfirmasi.setfocus txtkonfirmasi.text = "" 12. Pada Grid_Petugas tambahkan kode program untuk menampilkan data ke inputan pada form dengan cara mendobel klik pada grid. Dengan memindahkan eventnya yang tadinya Click menjadi DblClick. Private Sub Grid_Petugas_DblClick() menghindari error On Error Resume Next memunculkan data pada grid ke inputan txtuserid.text = Grid_Petugas.Columns(0) txtpassword.text = Grid_Petugas.Columns(1) txtnama.text = Grid_Petugas.Columns(2) memanggil prosedur kondisi tidak aktif Call Kondisi(False) txtkonfirmasi.visible = True txtkonfirmasi.setfocus txtkonfirmasi.text = "" memberikan kondisi pada tombol cmdkonfirmasi.visible = True cmdsimpan.enabled = False cmdkeluar. = "&Batal" cmdtambah.enabled = False lbl_duplikat.visible = False 13. Kemudian dobel klik pada komponen txtuserid. Lalu ketikkan kode program untuk mencari data agar tidak memasukan data yang sama. 32 Atep Ruhiat

Private Sub txtuserid_change() mencari data userid yang sama Konek_Petugas.Recordset.Find "UserId='" _ & txtuserid.text & "'",, adsearchforward, 1 With Konek_Petugas.Recordset If Not.EOF Then On Error Resume Next cmdsimpan.enabled = False lbl_duplikat.visible = True On Error GoTo 0 Exit Sub End With cmdsimpan.enabled = True lbl_duplikat.visible = False 14. Masih pada area pengetikan kode di atas, ganti event Change menjadi KeyPress. Lalu ketikkan kode program di bawah ini agar bisa menggunakan tombol Enter pada keyboard. Private Sub txtuserid_keypress(keyascii As Integer) If KeyAscii = 13 Then txtpassword.setfocus KeyAscii = 0 15. Dobel klik pada komponen txtpassword, ganti event Change menjadi KeyPress. Sama seperti halnya dengan maksud kode sebelumnya. Private Sub txtpassword_keypress(keyascii As Integer) If KeyAscii = 13 Then txtnama.setfocus KeyAscii = 0 16. Lalu dobel klik pada komponen txtnama, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub txtnama_keypress(keyascii As Integer) If KeyAscii = 13 Then If cmdsimpan.enabled = True Then cmdsimpan.setfocus KeyAscii = 0 ElseIf cmdubah.enabled = True Then cmdubah.setfocus KeyAscii = 0 Else cmdkeluar.setfocus KeyAscii = 0 33 Atep Ruhiat

17. Setelah itu dobel klik juga pada txtkonfirmasi, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub txtkonfirmasi_keypress(keyascii As Integer) If KeyAscii = 13 Then cmdkonfirmasi.setfocus KeyAscii = 0 18. Terakhir simpan form petugas dengan nama Form_Petugas dan letakkan pada sub-folder Form. 2.2.3 Mengaktifkan Halaman dan Mencoba Program Setelah Form_Petugas sudah selesai dibuat, coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini: 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. Gambar 2.16 Tampilan Jendela Project Properties 2. Pada Startup Object pilih Form_Petugas, klik tombol OK. 3. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. 34 Atep Ruhiat

Gambar 2.17 Tampilan Form Petugas Setelah Dijalankan 2.3 Pembuatan Program Data Anggota Selanjutnya kita akan membuat form Anggota. Form ini digunakan untuk mendata anggota yang nantinya data tersebut akan dijadikan akses untuk bisa melakukan peminjaman dan pengembalian buku. 2.3.1 Mendesain Form Anggota Pada tahapan ini kita akan mendesain form Anggota, di mana langkah-langkahnya bisa dilihat di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.18 Tampilan Penambahan Form 35 Atep Ruhiat

2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ), komponen MaskEdBox ( ), komponen ComboBox ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. Gambar 2.19 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Anggota Aplikasi Perpustakaan Sekolah Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False INPUT ANGGOTA Label1 FontStyle Bold FontSize 14 Label2 Tanggal Masuk Label3 Id Anggota Label4 Nama Anggota Label5 Alamat Label6 No Phone Label7 Status Label8 Masa Berlaku 36 Atep Ruhiat

txttglmasuk MaskEdBox1 Appereance 0-mskFlat Mask ##/##/#### txtid Text1 Appereance 0-Flat Locked True Text <kosongkan> txtnama Text2 Appereance 0-Flat Text <kosongkan> txtalamat Appereance 0-Flat Text3 MultiLine True ScrollBars 2-Vertical Text (text) txthp MaskEdBox2 Appereance 0-mskFlat Mask &&&-&&&-&&&&&& cmbstatus Combo1 List Siswa Siswi Guru Stap Lainnya Text <kosongkan> txtmsberlaku MaskEdBox3 Appereance 0-mskFlat Mask ##/##/#### cmdtambah Command1 &Tambah TabIndex 1 Command2 cmdsimpan &Simpan Command3 cmdubah &Ubah Command4 cmdhapus &Hapus Command5 cmdcetak &Cetak Kartu Command6 cmdkeluar &Keluar Konek_Anggota Adodc1 Koneksi Anggota Visible False DataGrid1 Grid_Anggota DataSource Konek_Anggota Tabel 2.4 Konfigurasi Form Anggota 37 Atep Ruhiat

5. Sehingga tampilan formnya seperti di bawah ini. Gambar 2.20 Tampilan Desain Form Setelah Disesuaikan 2.3.2 Membuat Kode pada Form Anggota Setelah Form_Anggota selesai dibuat, langkah selanjutnya adalah pembuatan kode program pada Form_Anggota. Ikutilah langkah-langkah di bawah ini : 1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. Gambar 2.21 Tampilan Area Pengetikan Kode Program 2. Buatlah variabel untuk mendeklarasikan Id Anggota. Dim IdAnggotaBaru As String Dim Id As String 3. Kemudian buat prosedur untuk membuat Id Anggota secara otomatis dengan nama BuatId. Ketikkan kode program di bawah ini. Sub BuatId() With Konek_Anggota.Recordset 38 Atep Ruhiat

jika record masih kosong If.BOF Then IdAnggotaBaru = "APS.0001" Exit Sub Else jika record tidak kosong.movelast Id =!Id Id = Val(Right(Id, 4)) Id = Id + 1 IdAnggotaBaru = "APS." & Format(Id, "0000") End With 4. Buatlah prosedur untuk menormalkan kondisi Form_Anggota dengan nama Normal. Kemudian ketikkan kode program di bawah ini. Sub Normal() memanggil prosedur kondisi tidak aktif dan kosong Call Kondisi(False) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = True cmdsimpan.enabled = False cmdubah.enabled = False cmdhapus.enabled = False cmdcetak.enabled = False cmdkeluar. = "&Keluar" 5. Buat juga prosedur untuk mengosongkan kondisi inputan pada Form_Anggota dengan nama Kosong. Lalu ketikkan kode program di bawah ini. Sub Kosong() mengosongkan inputan txttglmasuk.text = " / / " txtid.text = "" txtnama.text = "" txtalamat.text = "" txthp.text = " - - " cmbstatus.text = "" txtmsberlaku.text = " / / " 6. Setelah itu tambahkan prosedur kondisi untuk mengaktif dan non-aktifkan inputan pada Form_Anggota dengan nama Kondisi. Ketikan kode program di bawah ini. 39 Atep Ruhiat

Sub Kondisi(Kform As Boolean) memberikan kondisi inputan true atau false txttglmasuk.enabled = Kform txtid.enabled = Kform txtnama.enabled = Kform txtalamat.enabled = Kform txthp.enabled = Kform cmbstatus.enabled = Kform txtmsberlaku.enabled = Kform 7. Pada Form_Anggota dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Anggota.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel anggota dengan mengurutkan data berdasarkan id Konek_Anggota.RecordSource = _ "Select * From Anggota Order by Id" Konek_Anggota.Refresh memposisikan form pada tengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 memanggil prosedur form normal Call Normal cmdsimpan.enabled = False cmdhapus.enabled = False memberikan validasi ketika data masih kosong With Konek_Anggota.Recordset If.BOF Then MsgBox "Data Anggota Masih Kosong!!!", _ vbinformation + vbokonly, "Informasi" Grid_Anggota.Enabled = False Else Grid_Anggota.Enabled = True End With mengatur grid anggota Grid_Anggota.HeadLines = 2 Grid_Anggota.Columns(0). = "TGL MASUK" Grid_Anggota.Columns(1). = "ID ANGGOTA" Grid_Anggota.Columns(2). = "NAMA ANGGOTA" 40 Atep Ruhiat

Grid_Anggota.Columns(3). = "ALAMAT" Grid_Anggota.Columns(4). = "NO PHONE" Grid_Anggota.Columns(5). = "STATUS" Grid_Anggota.Columns(6). = "MS BERLAKU" Grid_Anggota.Columns(7). = "USERID PETUGAS" 8. Dari halaman Form_Anggota, dobel klik pada tombol Tambah. Kemudian ketikkan kode program di bawah ini. Private Sub cmdtambah_click() variabel tanggal bertipe string Dim Tgl As String memanggil prosedur kosong,kondisi aktif, dan membuat id baru Call Kosong Call Kondisi(True) Call BuatId txtid.text = IdAnggotaBaru memberikan kondisi pada tombol cmdcetak.enabled = False cmdtambah.enabled = False cmdhapus.enabled = False cmdsimpan.enabled = True cmdkeluar.enabled = True cmdubah.enabled = False cmdkeluar. = "&Batal" membuat penanggalan otomatis 1 tahun berlaku kartu txttglmasuk.text = Format(Now, "dd/mm/yyyy") Tgl = Val(Right(txtTglMasuk, 4)) txtmsberlaku.text = Format(Now,"dd/mm/")&Val(Tgl)+1 txtnama.setfocus 9. Kembali ke halaman Form_Anggota, dobel klik pada tombol Simpan. Kemudian ketikkan kode program untuk menyimpan data di bawah ini. Private Sub cmdsimpan_click() memberikan validasi ketika inputan masih kosong If txtid.text = "" Then MsgBox "ID belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtid.setfocus ElseIf txtnama.text = "" Then MsgBox "Nama anggota belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtnama.setfocus ElseIf txtalamat.text = "" Then MsgBox "Alamat anggota belum diisi!!!", _ vbinformation + vbokonly, "Informasi" 41 Atep Ruhiat

txtalamat.setfocus ElseIf txthp.text = " - - " Then MsgBox "No Phone anggota belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txthp.setfocus ElseIf cmbstatus.text = "" Then MsgBox "Status anggota belum diisi!!!", _ vbinformation + vbokonly, "Informasi" cmbstatus.setfocus Else kode program untuk menyimpan data With Konek_Anggota.Recordset.AddNew!tgl_Masuk = txttglmasuk.text!id = txtid.text!nama_anggota = txtnama.text!alamat = txtalamat.text!no_phone = txthp.text!status = cmbstatus.text!masa_berlaku = txtmsberlaku.text!userid = _ Form_Menu_Utama.StatusBar1.Panels(1).Update End With memanggil prosedur kondisi tidak aktif Call Kondisi(False) memberikan kondisi pada tombol cmdtambah.enabled = True cmdhapus.enabled = False cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdtambah.enabled = True cmdsimpan.enabled = False cmdcetak.enabled = True cmdcetak.setfocus Grid_Anggota.Enabled = True 10. Setelah itu kembali lagi ke halaman Form_Anggota, dobel klik pada tombol Ubah. Kemudian ketikkan kode program untuk merubah data di bawah ini. Private Sub cmdubah_click() kode program untuk mengubah data With Konek_Anggota.Recordset!tgl_Masuk = txttglmasuk.text!id = txtid.text!nama_anggota = txtnama.text!alamat = txtalamat.text!no_phone = txthp.text 42 Atep Ruhiat

!Status = cmbstatus.text!masa_berlaku = txtmsberlaku.text!userid = _ Form_Menu_Utama.StatusBar1.Panels(1) End With memanggil prosedur kondisi aktif Call Kondisi(False) memberikan kondisi pada tombol cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdhapus.enabled = False cmdtambah.enabled = True cmdcetak.enabled = True cmdcetak.setfocus 11. Lalu dobel klik pada tombol Hapus. Kemudian ketikkan kode program untuk menghapus data di bawah ini. Private Sub cmdhapus_click() memunculkan kotak dialog penghapusan Hapus = MsgBox("Anda akan menghapus data ini!!", _ vbinformation + vbyesno, "Hapus Data") jika Yes maka data akan terhapus If Hapus = vbyes Then Konek_Anggota.Recordset.Delete Konek_Anggota.Recordset.MoveFirst Else jika No maka akan membatalkan proses penghapusan MsgBox "Batal menghapus!!",, "Batal" Call Normal 12. Pada tombol Cetak Kartu ketikkan kode program untuk menampilkan kartu anggota di bawah ini. Private Sub cmdcetak_click() kode program untuk menampilkan kartu anggota berdasarkan id anggota Konek_Anggota.Recordset.Requery With Form_Menu_Utama.CRKartuAnggota.ReportFile = App.Path & "\Kartu_Anggota.rpt".SelectionFormula = "{Anggota.Id}='" & txtid.text & "'".RetrieveDataFiles.WindowShowPrintSetupBtn = True.WindowShowRefreshBtn = True.WindowTitle = "KARTU ANGGOTA".WindowState = crptmaximized.action = 1 End With 43 Atep Ruhiat

13. Kemudian dobel klik pada tombol Keluar. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdkeluar_click() jika keluar If cmdkeluar. = "&Keluar" Then Unload Me Else jika batal maka akan memanggil prosedur normal Call Normal 14. Pada Grid_Anggota tambahkan kode program untuk menampilkan data ke inputan pada form dengan cara mendobel klik pada grid. Dengan memindahkan eventnya yang tadinya Click menjadi DblClick. Private Sub Grid_Anggota_DblClick() menghindari error On Error Resume Next menampilkan data pada grid ke inputan txttglmasuk.text = Grid_Anggota.Columns(0) txtid.text = Grid_Anggota.Columns(1) txtnama.text = Grid_Anggota.Columns(2) txtalamat.text = Grid_Anggota.Columns(3) txthp.text = Grid_Anggota.Columns(4) cmbstatus.text = Grid_Anggota.Columns(5) txtmsberlaku.text = Grid_Anggota.Columns(6) memberikan kondisi pada tombol cmdkeluar. = "&Batal" cmdubah.enabled = True cmdhapus.enabled = True cmdtambah.enabled = False cmdsimpan.enabled = False mengaktif dan non-aktifkan inputan txttglmasuk.enabled = True txtid.enabled = False txtnama.enabled = True txtalamat.enabled = True txthp.enabled = True cmbstatus.enabled = True txtmsberlaku.enabled = True txtnama.setfocus 15. Dobel klik pada komponen txtnama, ganti event Change menjadi KeyPress. Lalu ketikkan kode program agar bisa menggunakan tombol Enter pada keyboard. 44 Atep Ruhiat

Private Sub txtnama_keypress(keyascii As Integer) If KeyAscii = 13 Then txtalamat.setfocus KeyAscii = 0 16. Dobel klik pada komponen txtalamat, ganti event Change menjadi KeyPress. Sama seperti halnya dengan maksud kode sebelumnya. Private Sub txtalamat_keypress(keyascii As Integer) If KeyAscii = 13 Then txthp.setfocus KeyAscii = 0 17. Lalu dobel klik pada komponen txthp, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub txthp_keypress(keyascii As Integer) If KeyAscii = 13 Then cmbstatus.setfocus KeyAscii = 0 18. Kemudian dobel klik juga pada komponen cmbstatus, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub cmbstatus_keypress(keyascii As Integer) If KeyAscii = 13 Then If cmdsimpan.enabled = True Then cmdsimpan.setfocus KeyAscii = 0 Else cmdubah.setfocus KeyAscii = 0 19. Terakhir simpan Form_Anggota dengan nama Form_Anggota dan letakkan pada sub-folder Form. 2.3.3 Mengaktifkan Halaman dan Mencoba Program Setelah form Anggota sudah selesai dibuat, coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini: 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. 45 Atep Ruhiat

Gambar 2.23 Tampilan Jendela Project Properties 2. Pada Startup Object pilih Form_Anggota, klik tombol OK. 3. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. Gambar 2.24 Tampilan Form Anggota Setelah Dijalankan 46 Atep Ruhiat

2.4 Pembuatan Program Data Jenis Buku Selanjutnya kita akan membuat form Jenis Buku. Form ini digunakan untuk mendata jenis buku yang ada yang nantinya akan ditempatkan dalam rak tertentu untuk mempermudah pencarian buku. 2.4.1 Mendesain Form Jenis Buku Pada tahapan ini kita akan mendesain form Jenis Buku, di mana langkah-langkahnya bisa dilihat di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.25 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. 47 Atep Ruhiat

Gambar 2.26 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Jenis_Buku Aplikasi Perpustakaan Sekolah Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False INPUT JENIS BUKU Label1 FontStyle Bold FontSize 14 Label2 Kode Jenis Label3 Nama Jenis Label4 No Rak Lbl_Duplikat [Duplikat Data] Label5 FontStyle Bold ForeColor &H000000FF& Visible False txtkode Text1 Appereance 0-Flat Text <kosongkan> txtjenis Text2 Appereance 0-Flat Text <kosongkan> txtrak Text3 Appereance 0-Flat Mask <kosongkan> 48 Atep Ruhiat

cmdtambah Command1 &Tambah TabIndex 1 Command2 cmdsimpan &Simpan Command3 cmdubah &Ubah Command4 cmdhapus &Hapus Command5 cmdkeluar &Keluar Konek_Jenis_Buku Adodc1 Koneksi Jenis Buku Visible False DataGrid1 Grid_Jenis_Buku DataSource Konek_Jenis_Buku Tabel 2.5 Konfigurasi Form Jenis Buku 5. Sehingga tampilan form seperti di bawah ini. Gambar 2.27 Tampilan Desain Form Setelah Disesuaikan 2.4.2 Membuat Kode pada Form Jenis Buku Setelah semuanya selesai dibuat, langkah selanjutnya adalah pembuatan kode program pada Form_Jenis_Buku. Ikutilah langkahlangkah di bawah ini : 1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. 49 Atep Ruhiat

Gambar 2.28 Tampilan Area Pengetikan Kode Program 2. Buatlah prosedur untuk menormalkan kondisi Form_Jenis_Buku dengan nama Normal. Kemudian ketikkan kode program di bawah ini. Sub Normal() memanggil prosedur kondisi tidak aktif dan kosong Call Kondisi(False) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = True cmdsimpan.enabled = False cmdubah.enabled = False cmdhapus.enabled = False cmdkeluar. = "&Keluar" 3. Buat juga prosedur untuk mengosongkan kondisi inputan pada Form_Jenis_Buku dengan nama Kosong. Lalu ketikkan kode program di bawah ini. Sub Kosong() mengosongkan inputan pada form txtkode.text = "" txtjenis.text = "" txtrak.text = "" 4. Setelah itu tambahkan prosedur kondisi untuk mengaktif dan non-aktifkan inputan pada Form_Jenis_Buku dengan nama Kondisi. Ketikan kode program di bawah ini. Sub Kondisi(Kform As Boolean) memberikan kondisi inputan true atau false txtkode.enabled = Kform txtjenis.enabled = Kform txtrak.enabled = Kform 50 Atep Ruhiat

5. Pada Form_Jenis_Buku dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Jenis_Buku.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel jenis buku Konek_Jenis_Buku.RecordSource = _ "Select * From Jenis_Buku" Konek_Jenis_Buku.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 memanggil form normal Call Normal memberikan informasi ketika data masih kosong Konek_Jenis_Buku.Refresh With Konek_Jenis_Buku.Recordset If.BOF Then MsgBox "Data Jenis Buku Masih Kosong!!!", _ vbinformation + vbokonly, "Informasi" Grid_Jenis_Buku.Enabled = False Else Grid_Jenis_Buku.Enabled = True End With mengatur grid jenis buku Grid_Jenis_Buku.HeadLines = 2 Grid_Jenis_Buku.Columns(0). = "KODE JENIS" Grid_Jenis_Buku.Columns(1). = "NAMA JENIS" Grid_Jenis_Buku.Columns(2). = "NO RAK" 6. Dari halaman Form_Jenis_Buku, dobel klik pada tombol Tambah. Kemudian ketikkan kode program di bawah ini. Private Sub cmdtambah_click() memanggil prosedur kondisi aktif dan kosong Call Kondisi(True) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = False cmdhapus.enabled = False cmdsimpan.enabled = True 51 Atep Ruhiat

cmdkeluar.enabled = True cmdubah.enabled = False cmdkeluar. = "&Batal" txtkode.setfocus 7. Kembali ke halaman Form_Jenis_Buku, dobel klik pada tombol Simpan. Kemudian ketikkan kode program untuk menyimpan data di bawah ini. Private Sub cmdsimpan_click() memberikan validasi ketika inputan masih kosong If txtkode.text = "" Then MsgBox "Kode Jenis belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtkode.setfocus ElseIf txtjenis.text = "" Then MsgBox "Jenis Buku belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtjenis.setfocus ElseIf txtrak.text = "" Then MsgBox "No Rak Buku belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtrak.setfocus Else kode program untuk menyimpan data With Konek_Jenis_Buku.Recordset.AddNew!Kode_Jenis = txtkode.text!jenis_buku = txtjenis.text!no_rak = txtrak.text.update End With memanggil prosedur kosong dan tidak aktif Call Kosong Call Kondisi(False) memberikan kondisi pada tombol cmdtambah.enabled = True cmdhapus.enabled = False cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdtambah.enabled = True cmdsimpan.enabled = False cmdtambah.setfocus Grid_Jenis_Buku.Enabled = True 8. Setelah itu kembali lagi ke halaman Form_Jenis_Buku, dobel klik pada tombol Ubah. Kemudian ketikkan kode program untuk merubah data di bawah ini. 52 Atep Ruhiat

Private Sub cmdubah_click() kode program untuk merubah data With Konek_Jenis_Buku.Recordset.Update!Kode_Jenis = txtkode.text!jenis_buku = txtjenis.text!no_rak = txtrak.text End With memanggil prosedur kondisi tidak aktif Call Kondisi(False) memberikan kondisi pada tombol cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdhapus.enabled = False cmdtambah.enabled = True 9. Lalu dobel klik pada tombol Hapus. Kemudian ketikkan kode program untuk menghapus data di bawah ini. Private Sub cmdhapus_click() memunculkan kotak dialog untuk penghapusan Hapus = MsgBox("Anda akan menghapus data ini!!", _ vbinformation + vbyesno, "Hapus Data") jika Yes maka data akan terhapus If Hapus = vbyes Then Konek_Jenis_Buku.Recordset.Delete Konek_Jenis_Buku.Recordset.MoveFirst Else jika No maka akan membatalkan proses penghapusan MsgBox "Batal menghapus!!",, "Batal" Call Normal 10. Kemudian dobel klik pada tombol Keluar. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdkeluar_click() jika keluar If cmdkeluar. = "&Keluar" Then Unload Me Else jika batal akan memanggil prosedur normal Call Normal 11. Pada Grid_Jenis_Buku tambahkan kode program untuk menampilkan data ke inputan pada form di bawah ini dengan 53 Atep Ruhiat

cara mendobel klik pada grid. Dengan memindahkan eventnya yang tadinya Click menjadi DblClick. Private Sub Grid_Jenis_Buku_DblClick() mencegah terjadinya error On Error Resume Next menampilkan data pada grid ke inputan txtkode.text = Grid_Jenis_Buku.Columns(0) txtjenis.text = Grid_Jenis_Buku.Columns(1) txtrak.text = Grid_Jenis_Buku.Columns(2) memberikan kondisi pada tombol dan inputan cmdtambah.enabled = False cmdsimpan.enabled = False cmdubah.enabled = True cmdhapus.enabled = True cmdkeluar. = "&Batal" txtjenis.enabled = True txtrak.enabled = True lbl_duplikat.visible = False txtjenis.setfocus 12. Kemudian dobel klik pada komponen txtkode. Lalu ketikkan kode program di bawah ini untuk mencari data agar tidak memasukan data yang sama. Private Sub txtkode_change() mencegah terjadinya error On Error Resume Next mencari data yang sama Konek_Jenis_Buku.Recordset.Find "Kode_Jenis='" _ & txtkode.text & "'",, adsearchforward, 1 With Konek_Jenis_Buku.Recordset If Not.EOF Then On Error Resume Next cmdsimpan.enabled = False lbl_duplikat.visible = True On Error GoTo 0 Exit Sub End With cmdsimpan.enabled = True lbl_duplikat.visible = False 13. Masih pada area pengetikan kode di atas, ganti event Change menjadi KeyPress. Lalu ketikkan kode program agar bisa menggunakan tombol Enter pada keyboard. 54 Atep Ruhiat

Private Sub txtkode_keypress(keyascii As Integer) If KeyAscii = 13 Then txtjenis.setfocus KeyAscii = 0 14. Dobel klik pada komponen txtjenis, ganti event Change menjadi KeyPress. Sama seperti halnya dengan maksud kode sebelumnya. Private Sub txtjenis_keypress(keyascii As Integer) If KeyAscii = 13 Then txtrak.setfocus KeyAscii = 0 15. Lalu dobel klik pada komponen txtrak, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub txtrak_keypress(keyascii As Integer) If KeyAscii = 13 Then If cmdsimpan.enabled = True Then cmdsimpan.setfocus KeyAscii = 0 ElseIf cmdubah.enabled = True Then cmdubah.setfocus KeyAscii = 0 Else cmdkeluar.setfocus KeyAscii = 0 16. Terakhir simpan Form_Jenis_Buku dengan nama Form_Jenis_Buku dan letakkan pada sub-folder Form. 2.4.3 Mengaktifkan Halaman dan Mencoba Program Setelah Form_Jenis_Buku sudah selesai dibuat, coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini : 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. 55 Atep Ruhiat

Gambar 2.29 Tampilan Jendela Project Properties 2. Pada Startup Object pilih Form_Jenis_Buku, klik tombol OK. 3. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. Gambar 2.30 Tampilan Form Jenis Buku Setelah Dijalankan 56 Atep Ruhiat

2.5 Pembuatan Program Data Buku Kemudian kita akan membuat form Buku. Form ini digunakan untuk mendata buku yang ada di perpustakaan. 2.5.1 Mendesain Form Buku Pada tahapan ini kita akan mendesain form Buku, di mana langkah-langkahnya bisa dilihat di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.31 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ),komponen DataCombo ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. 57 Atep Ruhiat

Gambar 2.32 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Buku Aplikasi Perpustakaan Sekolah Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False INPUT BUKU Label1 FontStyle Bold FontSize 14 Label2 Kode Buku Label3 Nama Buku Label4 Pengarang Label5 Jenis Buku Label6 No Rak Label7 Keterangan Label8 Status Buku txtkode Text1 Appereance 0-Flat Text <kosongkan> txtnama Appereance 0-Flat Text2 MultiLine True ScrollBars 2-Vertical Text <kosongkan> 58 Atep Ruhiat

txtpengarang Text3 Appereance 0-Flat Text <kosongkan> txtrak Text4 Appereance 0-Flat Locked True Text <kosongkan> txtketerangan Appereance 0-Flat Text5 MultiLine True ScrollBars 2-Vertical Text (text) txtstatus Text5 Appereance 0-Flat Locked True Text <kosongkan> DCJenis DataCombo1 ListField Jenis_Buku RowSource Konek_Jenis_Buku cmdtambah Command1 &Tambah TabIndex 1 Command2 cmdsimpan &Simpan Command3 cmdubah &Ubah Command4 cmdhapus &Hapus Command5 cmdkeluar &Keluar Konek_Buku Adodc1 Koneksi Buku Visible False Konek_Jenis_Buku Adodc2 Koneksi Jenis Buku Visible False DataGrid1 Grid_Buku DataSource Konek_Buku Tabel 2.6 Konfigurasi Form Buku 5. Sehingga tampilan form seperti di bawah ini. 59 Atep Ruhiat

Gambar 2.33 Tampilan Desain Form Setelah Disesuaikan 2.5.2 Membuat Kode pada Form Buku Setelah tahapan desain, langkah selanjutnya adalah pembuatan kode program pada Form_Buku. Ikutilah langkahlangkah di bawah ini : 1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. Gambar 2.34 Tampilan Area Pengetikan Kode Program 2. Pertama buatlah variabel untuk mendeklarasikan Kode Jenis. Dim Kd_Jenis As String 3. Buatlah prosedur untuk menormalkan kondisi Form_Buku dengan nama Normal. Kemudian ketikkan kode program di bawah ini. Sub Normal() memanggil prosedur kondisi tidak aktif dan kosong 60 Atep Ruhiat

Call Kondisi(False) Call Kosong memberikan kondisi pada inputan cmdtambah.enabled = True cmdsimpan.enabled = False cmdubah.enabled = False cmdhapus.enabled = False cmdkeluar. = "&Keluar" 4. Buat juga prosedur untuk mengosongkan kondisi inputan pada Form_Buku dengan nama Kosong. Lalu ketikkan kode program di bawah ini. Sub Kosong() mengosongkan inputan txtkode.text = "" txtnama.text = "" txtpengarang.text = "" DCJenis.Text = "" txtrak.text = "" txtketerangan.text = "" txtstatus.text = "" 5. Setelah itu tambahkan prosedur kondisi untuk mengaktif dan non-aktifkan inputan pada Form_Buku dengan nama Kondisi. Ketikan kode program di bawah ini. Sub Kondisi(Kform As Boolean) memberikan kondisi inputan true atau false txtkode.enabled = Kform txtnama.enabled = Kform txtpengarang.enabled = Kform DCJenis.Enabled = Kform txtrak.enabled = Kform txtketerangan.enabled = Kform txtstatus.enabled = Kform 6. Pada Form_Buku dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Jenis_Buku.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel jenis buku Konek_Jenis_Buku.RecordSource = _ 61 Atep Ruhiat

"Select * From Jenis_Buku" Konek_Jenis_Buku.Refresh membuka koneksi ke database Konek_Buku.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel buku Konek_Buku.RecordSource = _ "Select * From Buku" Konek_Buku.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 memanggil prosedur form normal Call Normal memberikan informasi ketika data masih kosong Konek_Jenis_Buku.Refresh With Konek_Buku.Recordset If.BOF Then MsgBox "Data Buku Masih Kosong!!!", _ vbinformation + vbokonly, "Informasi" Grid_Buku.Enabled = False Else Grid_Buku.Enabled = True End With mengatur grid buku Grid_Buku.HeadLines = 2 Grid_Buku.Columns(0). = "KODE BUKU" Grid_Buku.Columns(1). = "NAMA BUKU" Grid_Buku.Columns(2). = "PENGARANG" Grid_Buku.Columns(3). = "KODE JENIS" Grid_Buku.Columns(4). = "KETERANGAN" Grid_Buku.Columns(5). = "STATUS" 7. Dari halaman Form_Buku, dobel klik pada tombol Tambah. Kemudian ketikkan kode program di bawah ini. Private Sub cmdtambah_click() memanggil prosedur kondisi aktif dan kosong Call Kondisi(True) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = False 62 Atep Ruhiat

cmdhapus.enabled = False cmdsimpan.enabled = True cmdkeluar.enabled = True cmdubah.enabled = False cmdkeluar. = "&Batal" txtkode.setfocus txtstatus.text = "Tersedia" 8. Kembali ke halaman Form_Buku, dobel klik pada tombol Simpan. Kemudian ketikkan kode program untuk menyimpan data di bawah ini. Private Sub cmdsimpan_click() memberikan validasi ketika inputan masih kosong If txtkode.text = "" Then MsgBox "Kode Buku belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtkode.setfocus ElseIf txtnama.text = "" Then MsgBox "Nama Buku belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtnama.setfocus ElseIf txtpengarang.text = "" Then MsgBox "Pengarang belum diisi!!!", _ vbinformation + vbokonly, "Informasi" txtpengarang.setfocus ElseIf DCJenis.Text = "" Then MsgBox "Jenis Buku belum dipilih!!!", _ vbinformation + vbokonly, "Informasi" DCJenis.SetFocus Else kode program untuk menyimpan data With Konek_Buku.Recordset.AddNew!Kode_Buku = txtkode.text!nama_buku = txtnama.text!pengarang = txtpengarang.text!kode_jenis = Kd_Jenis!keterangan = txtketerangan.text!status = txtstatus.text.update.sort = "Kode_Buku" End With memanggil prosedur kosong dan kondisi tidak aktif Call Kosong Call Kondisi(False) memberikan kondisi pada tombol cmdtambah.enabled = True cmdhapus.enabled = False 63 Atep Ruhiat

cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdtambah.enabled = True cmdsimpan.enabled = False cmdtambah.setfocus Grid_Buku.Enabled = True 9. Setelah itu kembali lagi ke halaman Form_Buku, dobel klik pada tombol Ubah. Kemudian ketikkan kode program untuk merubah data di bawah ini. Private Sub cmdubah_click() kode program untuk merubah data With Konek_Buku.Recordset.Update!Kode_Buku = txtkode.text!nama_buku = txtnama.text!pengarang = txtpengarang.text!kode_jenis = Kd_Jenis!keterangan = txtketerangan.text!status = txtstatus.text End With memanggil prosedur kondisi tidak aktif Call Kondisi(False) memberikan kondisi pada tombol cmdubah.enabled = False cmdkeluar. = "&Keluar" cmdhapus.enabled = False cmdtambah.enabled = True 10. Lalu dobel klik pada tombol Hapus. Kemudian ketikkan kode program untuk menghapus data di bawah ini. Private Sub cmdhapus_click() memunculkan kotak dialog untuk penghapusan Hapus = MsgBox("Anda akan menghapus data ini!!", _ vbinformation + vbyesno, "Hapus Data") jika Yes maka data akan terhapus If Hapus = vbyes Then Konek_Buku.Recordset.Delete Konek_Buku.Recordset.MoveFirst Else jika No maka akan membatalkan proses penghapusan MsgBox "Batal menghapus!!",, "Batal" Call Normal 64 Atep Ruhiat

11. Kemudian dobel klik pada tombol Keluar. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdkeluar_click() jika keluar If cmdkeluar. = "&Keluar" Then Unload Me Else jika batal maka akan memanggil prosedur normal Call Normal 12. Pada Grid_Buku tambahkan kode program untuk menampilkan data ke inputan pada form di bawah ini dengan cara mendobel klik pada grid. Dengan memindahkan eventnya yang tadinya Click menjadi DblClick. Private Sub Grid_Buku_DblClick() mengantisipasi adanya error On Error Resume Next menampikan data pada grid ke inputan dengan adanya pencarian data berdasarkan kode jenis txtkode.text = Grid_Buku.Columns(0) txtnama.text = Grid_Buku.Columns(1) txtpengarang.text = Grid_Buku.Columns(2) Konek_Jenis_Buku.Recordset.Find "Kode_Jenis='" _ & Grid_Buku.Columns(3) & "'",, adsearchforward, 1 DCJenis.Text = _ Konek_Jenis_Buku.Recordset.Fields("Jenis_Buku") txtrak.text = _ Konek_Jenis_Buku.Recordset.Fields("No_Rak") txtketerangan.text = Grid_Buku.Columns(4) txtstatus.text = Grid_Buku.Columns(5) memanggil prosedur kondisi aktif Call Kondisi(True) memberikan kondisi pada tombol cmdkeluar. = "&Batal" cmdubah.enabled = True txtkode.enabled = False cmdtambah.enabled = False lbl_duplikat.visible = False txtnama.setfocus 13. Kemudian dobel klik pada komponen txtkode. Lalu ketikkan kode program untuk mencari data agar tidak memasukan data yang sama. 65 Atep Ruhiat

Private Sub txtkode_change() mengantisipasi terjadinya error On Error Resume Next mencari data yang sama Konek_Buku.Recordset.Find "Kode_Buku='" _ & txtkode.text & "'",, adsearchforward, 1 With Konek_Buku.Recordset If Not.EOF Then On Error Resume Next cmdsimpan.enabled = False lbl_duplikat.visible = True On Error GoTo 0 Exit Sub End With cmdsimpan.enabled = True lbl_duplikat.visible = False 14. Masih pada area pengetikan kode di atas, ganti event Change menjadi KeyPress. Lalu ketikkan kode program agar bisa menggunakan tombol Enter pada keyboard. Private Sub txtkode_keypress(keyascii As Integer) If KeyAscii = 13 Then txtnama.setfocus KeyAscii = 0 15. Dobel klik pada komponen txtnama, ganti event Change menjadi KeyPress. Sama seperti halnya dengan maksud kode sebelumnya. Private Sub txtnama_keypress(keyascii As Integer) If KeyAscii = 13 Then txtpengarang.setfocus KeyAscii = 0 16. Lalu dobel klik pada komponen txtpengarang, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub txtpengarang_keypress(keyascii As Integer) If KeyAscii = 13 Then DCJenis.SetFocus KeyAscii = 0 66 Atep Ruhiat

17. Kemudian dobel klik pada komponen DCJenis. Lalu ketikkan kode program di bawah ini untuk mencari data yang ada pada tabel Jenis Buku. Private Sub DCJenis_Change() mengantisipasi terjadinya error On Error Resume Next pencarian jenis buku Konek_Jenis_Buku.Recordset.Find "Jenis_Buku='" _ & DCJenis.Text & "'",, adsearchforward, 1 menampilkan hasil pencarian ke inputan txtrak.text = _ Konek_Jenis_Buku.Recordset.Fields("No_Rak") Kd_Jenis = _ Konek_Jenis_Buku.Recordset.Fields("Kode_Jenis") txtketerangan.setfocus On Error GoTo 0 18. Masih pada area pengetikkan kode ini, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub DCJenis_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtketerangan.setfocus KeyAscii = 0 19. Setelah itu dobel klik pada komponen txtketerangan, ganti event Change menjadi KeyPress. Ketikkan kode program di bawah ini. Private Sub txtketerangan_keypress(keyascii As Integer) If KeyAscii = 13 Then If cmdsimpan.enabled = True Then cmdsimpan.setfocus KeyAscii = 0 ElseIf cmdubah.enabled = True Then cmdubah.setfocus KeyAscii = 0 Else cmdkeluar.setfocus KeyAscii = 0 20. Terakhir simpan Form_Buku dengan nama Form_Buku dan letakkan pada sub-folder Form. 67 Atep Ruhiat

2.5.3 Mengaktifkan Halaman dan Mencoba Program Setelah Form_Buku sudah selesai dibuat, coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini: 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. Gambar 2.35 Tampilan Jendela Project Properties 2. Pada Startup Object pilih Form_Buku, klik tombol OK. 3. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. Gambar 2.36 Tampilan Form Buku Setelah Dijalankan 68 Atep Ruhiat

2.6 Pembuatan Program Transaksi Peminjaman Buku Selanjutnya kita akan membuat form Transaksi Peminjaman Buku di mana form ini digunakan untuk melakukan pendataan transaksi peminjaman buku di perpustakaan. Untuk menjalankan form Peminjaman Buku ini ada beberapa hal yang harus diperhatikan yaitu kita memerlukan form pendukung, diantaranya form Cari Anggota, Cari Buku 1, dan Cari Buku 2. 2.6.1 Mendesain Form Pada tahapan ini ada 3 (tiga) form yang harus kita desain, diantaranya desain untuk form Peminjaman Buku, Cari Anggota, Cari Buku 1, dan Cari Buku 2. Untuk lebih jelasnya coba ikuti langkah-langkah di bawah ini. a. Form Peminjaman Buku Untuk membuat desain form Peminjaman Buku, berikut ini langkah-langkahnya : 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.37 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 69 Atep Ruhiat

3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ), komponen MaskEdBox ( ), komponen Frame ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. DataGrid1 DataGrid2 Gambar 2.38 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Peminjaman Aplikasi Perpustakaan Sekolah Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False TRANSAKSI PEMINJAMAN BUKU Label1 FontStyle Bold FontSize 14 Label2 No Pinjam Label3 Tanggal Pinjam Label4 Id Anggota Label5 Nama Anggota Label6 Tanggal Kembali Label7 Kode Buku 70 Atep Ruhiat

Label8 Nama Buku Label9 Pengarang Label10 Kode Buku Label11 Nama Buku Label12 Pengarang Lbl_Keterangan Informasi FontStyle Bold Label13 FontSize 12 ForeColor &H000000FF& Height 3510 Width 4300 txtno Text1 Appereance 0-Flat Text <kosongkan> Locked True txtid Text2 Appereance 0-Flat Text <kosongkan> Locked True txtnama Text3 Appereance 0-Flat Text <kosongkan> Locked True txtkode1 Text4 Appereance 0-Flat Locked True Text <kosongkan> txtbuku1 Appereance 0-Flat Text5 Locked True MultiLine True ScrollBars 2-Vertical Text <kosongkan> txtpengarang1 Text6 Appereance 0-Flat Locked True Text <kosongkan> txtkode2 Text7 Appereance 0-Flat Locked True Text <kosongkan> txtbuku2 Appereance 0-Flat Text8 Locked True MultiLine True ScrollBars 2-Vertical 71 Atep Ruhiat

Text9 MaskEdBox1 MaskEdBox2 Frame1 Frame2 Command1 Command2 Command3 Command4 Command5 Command6 Adodc1 Adodc2 Adodc3 Adodc4 DataGrid1 72 Atep Ruhiat Text <kosongkan> txtpengarang2 Appereance 0-Flat Locked True Text <kosongkan> txttglpinjam Appereance 0-mskFlat Mask ##/##/#### txttglkembali Appereance 0-mskFlat Mask ##/##/#### Frm_Peminjaman1 Peminjaman 1 (Satu) Buku : Font Style Bold Frm_Peminjaman2 Peminjaman 2 (Dua) Buku : Font Style Bold cmdcari1 &Cari.. cmdcari2 &Cari.. cmdcari3 &Cari.. cmdtambah &Tambah TabIndex 1 cmdsimpan &Simpan cmdkeluar &Keluar Simpan_Peminjaman Simpan Peminjaman Visible False Simpan_Det_Peminjaman Simpan Detail Peminjaman Visible False Konek_Anggota Koneksi Anggota Visible False Konek_Buku Koneksi Buku Visible False Grid_Buku DataSource Konek_Buku Visible False

Grid_Peminjaman DataGrid2 DataSource Simpan_Peminjaman Tabel 2.7 Konfigurasi Form Peminjaman Buku 5. Sehingga tampilan form seperti di bawah ini. Gambar 2.39 Tampilan Desain Form Setelah Disesuaikan b. Form Cari Anggota Selanjutnya kita harus mendesain form Cari Anggota. Form ini digunakan untuk mencari data anggota agar mempermudah dalam malakukan transaksi Peminjaman Buku. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.40 Tampilan Penambahan Form 73 Atep Ruhiat

2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen ComboBox ( ), komponen TextBox ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. Gambar 2.41 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Cari_Anggota Pencarian Anggota Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False Label1 Kategori Label2 Cari cmdkategori Combo1 List Id Nama Text <kosongkan> txtcari Text1 Appereance 0-Flat Text <kosongkan> Command1 cmdkeluar &Keluar Konek_Anggota Adodc1 Koneksi Anggota Visible False Grid_Anggota DataGrid1 DataSource Konek_Anggota ToolTipText Dobel klik salah satu data! Tabel 2.8 Konfigurasi Form Cari Anggota 74 Atep Ruhiat

5. Sehingga tampilan form seperti di bawah ini. Gambar 2.42 Tampilan Desain Form Setelah Disesuaikan c. Form Cari Buku 1 Kemudian kita juga harus mendesain form Cari Buku 1. Form ini digunakan untuk mencari data buku agar mempermudah dalam malakukan transaksi Peminjaman Buku. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.43 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen ComboBox ( ), komponen TextBox ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. 75 Atep Ruhiat

Gambar 2.44 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Cari_Buku1 Pencarian Buku Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False Label1 Kategori Label2 Cari cmdkategori Combo1 List Kode Buku Nama Buku Text <kosongkan> txtcari Text1 Appereance 0-Flat Text <kosongkan> Command1 cmdkeluar &Keluar Konek_Buku Adodc1 Koneksi Buku Visible False Grid_Buku DataGrid1 DataSource Konek_Buku ToolTipText Dobel klik salah satu data! Tabel 2.9 Konfigurasi Form Cari Buku 1 5. Sehingga tampilan form seperti di bawah ini. 76 Atep Ruhiat

Gambar 2.42 Tampilan Desain Form Setelah Disesuaikan d. Form Cari Buku 2 Untuk mendesain form Cari Buku 2 hampir sama dengan mendesain form Cari Buku 1, namun untuk mempercepat pembuatan coba ikuti langkah-langkah di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.43 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 3. Buka Form_Cari_Buku1, kemudian tekan Ctrl+A pada keyboard lalu tekan Ctrl+C untuk mengcopykan komponen pada form. 77 Atep Ruhiat

Gambar 2.44 Tampilan Mengcopykan Komponen 4. Buka form yang baru kita buat tadi, lalu tekan tombol Ctrl+V pada keyboard untuk menggandakan komponen. Maka akan nampak pada gambar di bawah ini. Gambar 2.45 Tampilan Hasil Penggandaan Komponen 5. Kemudian kita tinggal atur properti formnya samakan dengan Form_Cari_Buku1. Sehingga tampilan seperti di bawah ini. Gambar 2.46 Tampilan Desain Form Setelah Disesuaikan 78 Atep Ruhiat

2.6.2 Membuat Kode pada Form a. Form Peminjaman Buku Setelah semuanya selesai dibuat, langkah selanjutnya adalah pembuatan kode program pada Form_Peminjaman. Ikutilah langkah-langkah di bawah ini : 1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. Gambar 2.47 Tampilan Area Pengetikan Kode Program 2. Pertama buatlah variabel untuk mendeklarasikan No Pinjam. Dim NoPinjamBaru As String Dim No As String 3. Lalu buatlah prosedur dengan nama BuatNo untuk membuat No Pinjam secara otomatis. Ketikkan kode program di bawah ini. Sub BuatNo() With Simpan_Peminjaman.Recordset jika pada record awal If.BOF Then NoPinjamBaru = "PJM.001" Exit Sub Else jika pada record akhir.movelast No =!No_Pinjam No = Val(Right(No, 3)) No = No + 1 NoPinjamBaru = "PJM." & Format(No, "000") End With 4. Buatlah prosedur untuk menormalkan kondisi Form_Peminjaman dengan nama Normal. Kemudian ketikkan kode program di bawah ini. 79 Atep Ruhiat

Sub Normal() memanggil prosedur kondisi tidak aktif dan kosong Call Kondisi(False) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = True cmdsimpan.enabled = False cmdkeluar. = "&Keluar" cmdcari1.enabled = False cmdcari2.enabled = False cmdcari3.enabled = False menampilkan frame peminjaman Frm_Peminjaman1.Visible = True Frm_Peminjaman2.Visible = True lbl_keterangan. = "" 5. Buat juga prosedur untuk mengosongkan kondisi inputan pada Form_Peminjaman dengan nama Kosong. Lalu ketikkan kode program di bawah ini. Sub Kosong() mengosongkan inputan txtno.text = "" txttglpinjam.text = " / / " txtid.text = "" txtnama.text = "" txttglkembali.text = " / / " txtkode1.text = "" txtbuku1.text = "" txtpengarang1.text = "" txtkode2.text = "" txtbuku2.text = "" txtpengarang2.text = "" 6. Setelah itu tambahkan prosedur kondisi untuk mengaktif dan non-aktifkan inputan pada Form_Peminjaman dengan nama Kondisi. Ketikan kode program di bawah ini. Sub Kondisi(Kform As Boolean) memberikan kondisi inputan true atau false txtno.enabled = Kform txttglpinjam.enabled = Kform txtid.enabled = Kform txtnama.enabled = Kform txttglkembali.enabled = Kform txtkode1.enabled = Kform txtbuku1.enabled = Kform txtpengarang1.enabled = Kform txtkode2.enabled = Kform txtbuku2.enabled = Kform 80 Atep Ruhiat

txtpengarang2.enabled = Kform 7. Pada Form_Peminjaman dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Simpan_Peminjaman.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel peminjaman berdasarkan urutan no pinjam Simpan_Peminjaman.RecordSource = _ "Select * From Peminjaman Order By No_Pinjam" Simpan_Peminjaman.Refresh membuka koneksi ke database Simpan_Det_Peminjaman. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel detail peminjaman Simpan_Det_Peminjaman.RecordSource = _ "Select * From Detail_Peminjaman" Simpan_Det_Peminjaman.Refresh membuka koneksi ke database Konek_Buku. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel buku Konek_Buku.RecordSource = "Select * From Buku" Konek_Buku.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 memanggil prosedur form normal Call Normal memberikan informasi ketika data masih kosong With Simpan_Peminjaman.Recordset If.BOF Then MsgBox"Transaksi Peminjaman Masih Kosong!!!", _ vbinformation + vbokonly, "Informasi" Grid_Peminjaman.Enabled = False Else Grid_Peminjaman.Enabled = True 81 Atep Ruhiat

End With mengatur grid peminjaman Grid_Peminjaman.HeadLines = 2 Grid_Peminjaman.Columns(0). = "KODE PINJAM" Grid_Peminjaman.Columns(1). = "TGL PINJAM" Grid_Peminjaman.Columns(2). = "ID ANGGOTA" Grid_Peminjaman.Columns(3). = "TGL KEMBALI" 8. Pada halaman Form_Peminjaman, dobel klik pada komponen cmdcari1. Lalu ketikkan kode program di bawah ini. Private Sub cmdcari1_click() mengosongkan inputan txtkode1.text = "" txtbuku1.text = "" txtpengarang1.text = "" txtkode2.text = "" txtbuku2.text = "" txtpengarang2.text = "" memberikan informasi ketika data masih kosong With Form_Cari_Anggota.Konek_Anggota.Recordset If.BOF Then MsgBox "Data Anggota Masih Kosong!!!", _ vbinformation + vbokonly, "Informasi" End With membuka form cari anggota Form_Cari_Anggota.Show 1 9. Kemudian pada halaman Form_Peminjaman, dobel klik pada komponen cmdcari2. Lalu ketikkan kode program di bawah ini. Private Sub cmdcari2_click() memberikan informasi ketika data masih kosong With Form_Cari_Buku1.Konek_Buku.Recordset If.BOF Then MsgBox "Data Buku Kosong!!!", _ vbinformation + vbokonly, "Informasi" Exit Sub End With membuka form cari buku 1 Form_Cari_Buku1.Show 1 82 Atep Ruhiat

10. Dobel klik juga pada komponen cmdcari3. Lalu ketikkan kode program di bawah ini. Private Sub cmdcari3_click() memberikan informasi ketika data masih kosong With Form_Cari_Buku2.Konek_Buku.Recordset If.BOF Then MsgBox "Data Buku Kosong!!!", _ vbinformation + vbokonly, "Informasi" Exit Sub End With membuka form cari buku 2 Form_Cari_Buku2.Show 1 11. Dari halaman Form_Peminjaman, dobel klik pada tombol Tambah. Kemudian ketikkan kode program di bawah ini. Private Sub cmdtambah_click() memanggil kondisi aktif,kosong, dan membuat no otomatis Call Kondisi(True) Call Kosong Call BuatNo txtno.text = NoPinjamBaru memberikan kondisi pada tombol cmdtambah.enabled = False cmdsimpan.enabled = True cmdkeluar.enabled = True cmdkeluar. = "&Batal" cmdcari1.enabled = True cmdcari2.enabled = True cmdcari3.enabled = True memberikan otomatisasi pada tgl kembali 7 hari peminjaman txttglpinjam.text = Format(Now, "dd/mm/yyyy") txttglkembali.text = _ DateValue(txtTglPinjam.Text) + 8 cmdcari1.setfocus 12. Kembali ke halaman Form_Peminjaman, dobel klik pada tombol Simpan. Kemudian ketikkan kode program untuk menyimpan data di bawah ini. Private Sub cmdsimpan_click() memberikan validasi ketika inputan masih kosong If txtid.text = "" Then MsgBox "ID Anggota belum diisi!!!", _ 83 Atep Ruhiat

vbinformation + vbokonly, "Informasi" cmdcari1.setfocus ElseIf txtkode1.text = "" Then MsgBox "Kode Buku belum diisi!!!", _ vbinformation + vbokonly, "Informasi" cmdcari2.setfocus Else kode untuk menyimpan data ke tabel peminjaman With Simpan_Peminjaman.Recordset.AddNew!No_Pinjam = txtno.text!tgl_pinjam = txttglpinjam.text!id = txtid.text!tgl_kembali = txttglkembali.text.update End With kode untuk menyimpan data ke tabel detail peminjaman With Simpan_Det_Peminjaman.Recordset If txtkode1.text <> "" Then.AddNew!No_Pinjam = txtno.text!id = txtid.text!kode_buku = txtkode1.text.update End With kode program untuk menyimpan data ke tabel detail peminjaman With Simpan_Det_Peminjaman.Recordset If txtkode2.text <> "" Then.AddNew!No_Pinjam = txtno.text!id = txtid.text!kode_buku = txtkode2.text.update End With kode untuk mengubah status pada tabel buku With Konek_Buku.Recordset If txtkode1.text <> "" Then.Find "Kode_Buku='" & txtkode1.text & "'" _,, adsearchforward, 1.Update!Status = "Dipinjam" End With kode untuk mengubah status pada tabel buku With Konek_Buku.Recordset If txtkode2.text <> "" Then.Find "Kode_Buku='" & txtkode2.text & "'" _,, adsearchforward, 1.Update 84 Atep Ruhiat

!Status = "Dipinjam" End With memanggil prosedur kosong dan kondisi aktif Call Kosong Call Kondisi(False) memberikan kondisi pada tombol cmdtambah.enabled = True cmdkeluar. = "&Keluar" cmdsimpan.enabled = False cmdtambah.setfocus Grid_Peminjaman.Enabled = True keluar dari form Unload Me membuka form kembali untuk membuka koneksi baru Form_Peminjaman.Show 1 13. Kemudian dobel klik pada tombol Keluar. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdkeluar_click() jika keluar If cmdkeluar. = "&Keluar" Then Unload Me Else jika batal maka akan memanggil form normal Call Normal 14. Kemudian dobel klik pada komponen txtid. Lalu ketikkan kode program untuk mencari data anggota agar tidak ada yang meminjam buku lebih dari 2 (dua). Private Sub txtid_change() menyeleksi tabel detail peminjaman berdasarkan id Simpan_Det_Peminjaman.RecordSource = _ "Select * From Detail_Peminjaman " & _ "Where Id = '" & txtid.text & "'" Simpan_Det_Peminjaman.Refresh With Simpan_Det_Peminjaman.Recordset jika tidak diketemukan If.RecordCount = 0 Then lbl_keterangan. = "" Frm_Peminjaman1.Visible = True Frm_Peminjaman2.Visible = True cmdsimpan.enabled = True jika pencarian ada satu peminjaman 85 Atep Ruhiat

ElseIf.RecordCount = 1 Then lbl_keterangan. = _ "Anggota ini baru meminjam 1 buku!!" Frm_Peminjaman1.Visible = True Frm_Peminjaman2.Visible = False cmdsimpan.enabled = True jika pencarian ada dua peminjaman ElseIf.RecordCount = 2 Then lbl_keterangan. = _ "Anggota ini sudah meminjam 2 buku!!" Frm_Peminjaman1.Visible = False Frm_Peminjaman2.Visible = False cmdsimpan.enabled = False End With 15. Terakhir simpan Form_Peminjaman dengan nama Form_Peminjaman dan letakkan pada sub-folder Form. b. Form Cari Anggota Untuk pembuatan kode program pada Form_Cari_Anggota. Ikutilah langkah-langkah di bawah ini : 1. Buku Form_Cari_Anggota, lalu dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Anggota.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel anggota berdasarkan urutan id Konek_Anggota.RecordSource = _ "Select Anggota.Id,Anggota.Nama_Anggota " _ & " From Anggota Order by Id" Konek_Anggota.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 mengatur grid cari anggota Grid_Anggota.HeadLines = 2 Grid_Anggota.Columns(0). = "ID ANGGOTA" Grid_Anggota.Columns(1). = "NAMA ANGGOTA" 86 Atep Ruhiat

2. Pada halaman Form_Cari_Anggota, dobel klik pada komponen cmdkategori. Lalu ketikkan kode program di bawah ini. Private Sub cmbkategori_click() mengosongkan pencarian dan kursos fokus ke pencarian txtcari.text = "" txtcari.setfocus 3. Kemudian dobel klik juga pada komponen txtcari. Ketikkan kode program untuk pencarian di bawah ini. Private Sub txtcari_change() jika pilihan id If cmbkategori.listindex = 0 Then Konek_Anggota.RecordSource = _ "Select Anggota.ID, Anggota.Nama_Anggota " _ & " From Anggota Where Id like '" _ & txtcari.text & "%'" Konek_Anggota.Refresh jika pilihan nama anggota ElseIf cmbkategori.listindex = 1 Then Konek_Anggota.RecordSource = _ "Select Anggota.ID, Anggota.Nama_Anggota " _ & " From Anggota Where Nama_Anggota like '" _ & txtcari.text & "%'" Konek_Anggota.Refresh mengatur grid cari anggota Grid_Anggota.HeadLines = 2 Grid_Anggota.Columns(0). = "ID ANGGOTA" Grid_Anggota.Columns(1). = "NAMA ANGGOTA" 4. Kemudian kembali ke halaman Form_Cari_Anggota, dobel klik pada komponen Grid_Anggota. Lalu ganti eventnya yang tadinya Click menjadi DblClick dan ketikkan kode program di bawah ini. Private Sub Grid_Anggota_DblClick() mengantisipasi terjadinya error On Error Resume Next menampilkan data yang dipilih pada grid ke inputan yang berada pada form peminjaman Form_Peminjaman.txtId.Text = _ Grid_Anggota.Columns(0) Form_Peminjaman.txtNama.Text = _ Grid_Anggota.Columns(1) 87 Atep Ruhiat

keluar dari form pencarian Unload Me 5. Dobel klik juga pada tombol Keluar. Lalu ketikkan kode program untuk keluar di bawah ini. Private Sub cmdkeluar_click() keluar dari form pencarian Unload Me 6. Terakhir simpan Form_Cari_Anggota dengan nama Form_Cari_Anggota dan letakkan pada sub-folder Form. c. Form Cari Buku 1 Sama halnya dengan membuat kode program untuk form Cari Anggota, form Cari Buku 1 pun hampir sama langkahnya cuman penulisan struktur kodenya yang sedikit beda. Untuk lebih jelasnya coba ikutilah langkah-langkah di bawah ini : 1. Buku Form_Cari_Buku1, lalu dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Buku. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel buku berdasarkan kriteria Konek_Buku.RecordSource = _ "Select Buku.Kode_Buku,Buku.Nama_Buku," _ & "Buku.Pengarang From Buku where Kode_Buku<>'" _ & Form_Peminjaman.txtKode1.Text & "' " _ & "and kode_buku<>'" _ & Form_Peminjaman.txtKode2.Text & "'" _ & "and Status<>'Dipinjam'" Konek_Buku.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 mengatur grid buku Grid_Buku.HeadLines = 2 Grid_Buku.Columns(0). = "KODE BUKU" Grid_Buku.Columns(1). = "NAMA BUKU" Grid_Buku.Columns(2). = "PENGARANG" 88 Atep Ruhiat

2. Pada halaman Form_Cari_Buku1, dobel klik pada komponen cmdkategori. Lalu ketikkan kode program di bawah ini. Private Sub cmbkategori_click() mengosongkan pencarian dan fokus ke pencarian txtcari.text = "" txtcari.setfocus 3. Kemudian dobel klik juga pada komponen txtcari. Ketikkan kode program untuk pencarian di bawah ini. Private Sub txtcari_change() jika pilihan kode buku If cmbkategori.listindex = 0 Then Konek_Buku.RecordSource = _ "Select Buku.Kode_Buku,Buku.Nama_Buku," _ & "Buku.Pengarang From Buku " & _ "Where kode_buku<>'" _ & Form_Peminjaman.txtKode2.Text & "'" _ & "and Status<>'Dipinjam'" _ & "and Kode_Buku like '" & txtcari.text & "%'" Konek_Buku.Refresh jika pilihan nama buku Else Konek_Buku.RecordSource = _ "Select Buku.Kode_Buku,Buku.Nama_Buku," _ & "Buku.Pengarang From Buku " & _ "where kode_buku<>'" _ & Form_Peminjaman.txtKode2.Text & "'" _ & "and Status<>'Dipinjam'" _ & "and Nama_Buku like '" & txtcari.text & "%'" Konek_Buku.Refresh mengatur grid buku Grid_Buku.HeadLines = 2 Grid_Buku.Columns(0). = "KODE BUKU" Grid_Buku.Columns(1). = "NAMA BUKU" Grid_Buku.Columns(2). = "PENGARANG" 4. Kemudian kembali ke halaman Form_Cari_Buku1, dobel klik pada komponen Grid_Buku. Lalu ganti eventnya yang tadinya Click menjadi DblClick dan ketikkan kode program di bawah ini. Private Sub Grid_Buku_DblClick() mengantisipasi terjadinya error On Error Resume Next menampilkan data yang dipilih pada grid ke 89 Atep Ruhiat

inputan yang ada di form peminjaman Form_Peminjaman.txtKode1.Text = _ Grid_Buku.Columns(0) Form_Peminjaman.txtBuku1.Text = _ Grid_Buku.Columns(1) Form_Peminjaman.txtPengarang1.Text = _ Grid_Buku.Columns(2) menyegarkan database Konek_Buku.Refresh menutup form cari buku Unload Me Form_Peminjaman.cmdCari3.Enabled = True 5. Dobel klik juga pada tombol Keluar. Lalu ketikkan kode program untuk keluar di bawah ini. Private Sub cmdkeluar_click() keluar dari form cari buku Unload Me 6. Terakhir simpan Form_Cari_Buku1 dengan nama Form_Cari_Buku1 dan letakkan pada sub-folder Form. d. Form Cari Buku 2 Untuk pembuatan kode program untuk form Cari Buku 2 sama dengan pembuatan form Cari Buku 1. Coba lakukan langkah-langkah tadi atau bisa menggunakan langkah seperti di bawah ini. 1. Buka Form_Cari_Buku1, lalu buka area penulisan kode programnya tekan Ctrl+A untuk memblok semua kode program kemudian tekan Ctrl+C pada keyboard. 2. Setelah itu buka Form_Cari_Buku2, kemudian buka area penulisan kode programnya dari View Code dan tekan tombol Ctrl+V pada keyboard untuk menggandakan kode program. 3. Kembali ke halaman Form_Cari_Buku2, dobel klik pada komponen Grid_Buku. Ganti kode programnya dengan kode program di bawah ini. Private Sub Grid_Buku_DblClick() mengantisipasi terjadinya error On Error Resume Next menampilkan data pada grid ke inputan yang ada 90 Atep Ruhiat

di form peminjaman Form_Peminjaman.txtKode2.Text = _ Grid_Buku.Columns(0) Form_Peminjaman.txtBuku2.Text = _ Grid_Buku.Columns(1) Form_Peminjaman.txtPengarang2.Text = _ Grid_Buku.Columns(2) menyegarkan database Konek_Buku.Refresh menutup form cari buku Unload Me 4. Kemudian simpan Form_Cari_Buku2 dengan nama Form_Cari_Buku2 dan letakkan pada sub-folder Form. 2.6.3 Mengaktifkan Halaman dan Mencoba Program Untuk mencoba menjalankan form untuk transaksi peminjaman. Coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini : 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. Gambar 2.48 Tampilan Jendela Project Properties 4. Pada Startup Object pilih Form_Peminjaman, klik tombol OK. 91 Atep Ruhiat

5. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. Gambar 2.49 Tampilan Form Peminjaman Setelah Dijalankan 2.7 Pembuatan Program Transaksi Pengembalian Buku Pada tahapan ini kita akan membuat form Transaksi Pengembalian Buku di mana form ini digunakan untuk melakukan mendataan transaksi pengembalian buku di perpustakaan. Untuk menjalankan form Pengembalian Buku ini kita memerlukan form pendukung yaitu form Cari Peminjaman Buku. 2.7.1 Mendesain Form Ada 2 (dua) form yang harus kita desain yaitu desain untuk form Pengembalian Buku dan Cari Peminjaman Buku. Untuk lebih jelasnya coba ikuti langkah-langkah di bawah ini. a. Form Pengembalian Buku Untuk membuat desain form Pengembalian Buku, berikut ini langkah-langkahnya : 92 Atep Ruhiat

1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.50 Tampilan Penambahan Form 6. Klik tombol Open untuk menambah form baru. 7. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ), komponen MaskEdBox ( ), komponen Frame ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. DataGrid1 DataGrid2 DataGrid3 Gambar 2.51 Tampilan Desain Form 8. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : 93 Atep Ruhiat

Komponen Properti Nilai Form_Pengembalian Aplikasi Perpustakaan Sekolah Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False TRANSAKSI PENGEMBALIAN BUKU Label1 FontStyle Bold FontSize 14 Label2 No Kembali Label3 Tanggal Label4 Id Anggota Label5 Nama Anggota Label6 Tanggal Pinjam Label7 Tanggal Kembali Label8 Kode Buku Label9 Nama Buku Label10 Pengarang Label11 Kode Buku Label12 Nama Buku Label13 Pengarang Label14 Keterlambatan Label15 Denda <keterangan> Label16 Font Style Bold Height 555 Width 3000 txtno Text1 Appereance 0-Flat Text <kosongkan> Locked True txtid Text2 Appereance 0-Flat Text <kosongkan> Locked True txtnama Text3 Appereance 0-Flat Text <kosongkan> Locked True txtkode1 Text4 Appereance 0-Flat Locked True Text <kosongkan> Text5 txtbuku1 Appereance 0-Flat 94 Atep Ruhiat

Text6 Text7 Text8 Text9 MaskEdBox1 MaskEdBox2 MaskEdBox3 Frame1 Frame2 Frame3 Command1 Command2 95 Atep Ruhiat Locked True MultiLine True ScrollBars 2-Vertical Text <kosongkan> txtpengarang1 Appereance 0-Flat Locked True Text <kosongkan> txtkode2 Appereance 0-Flat Locked True Text <kosongkan> txtbuku2 Appereance 0-Flat Locked True MultiLine True ScrollBars 2-Vertical Text <kosongkan> txtpengarang2 Appereance 0-Flat Locked True Text <kosongkan> txttgl Appereance 0-mskFlat Mask ##/##/#### txttglpinjam Appereance 0-mskFlat Mask ##/##/#### txttglkembali Appereance 0-mskFlat Mask ##/##/#### Frm_Pengembalian1 Pengembalian 1 (Satu) Buku : Font Style Bold Frm_Pengembalian2 Pengembalian 2 (Dua) Buku : Font Style Bold Frm_Informasi Informasi Font Style Bold Visible False cmdcari &Cari.. cmdproses &Proses

cmdtambah Command3 &Tambah TabIndex 1 Command4 cmdsimpan &Simpan Command5 cmdkeluar &Keluar Konek_Det_Peminjaman Adodc1 Koneksi Detail Peminjaman Visible False Simpan_Pengembalian Adodc2 Simpan Pengembalian Visible False Simpan_Det_Pengembalian Adodc3 Simpan Detail Pengembalian Visible False Hapus_Peminjaman Adodc4 Hapus Peminjaman Visible False Hapus_Det_Peminjaman Adodc5 Hapus Detail Peminjaman Visible False Update_Buku Adodc4 Update Buku Visible False Grid_Buku DataGrid1 DataSource Konek_Buku Visible False Grid_Detail BackColor &H0000FF00& DataGrid2 DataSource Konek_Det_Peminjaman Pilih data peminjaman buku Visible False DataGrid3 Grid_Pengembalian DataSource Simpan_Pengembalian Tabel 2.10 Konfigurasi Form Pengembalian Buku 9. Sehingga tampilan form seperti di bawah ini. 96 Atep Ruhiat

Gambar 2.52 Tampilan Desain Form Setelah Disesuaikan b. Form Cari Peminjaman Selanjutnya kita akan mendesain form Cari Peminjaman, coba ikuti langkah-langkah di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.53 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 97 Atep Ruhiat

3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen ComboBox ( ), komponen TextBox ( ), komponen CommandButton ( ), komponen Adodc ( ), dan komponen DataGrid ( ). Lihat tampilan di bawah ini. Gambar 2.54 Tampilan Desain Form 4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Cari_Peminjaman Pencarian Peminjaman Buku Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False Label1 Kategori Label2 Cari cmdkategori Combo1 List Id Nama Anggota Text <kosongkan> txtcari Text1 Appereance 0-Flat Text <kosongkan> Command1 cmdkeluar &Keluar Konek_Peminjaman Adodc1 Koneksi Peminjaman Visible False Grid_Peminjaman DataGrid1 DataSource Konek_Peminjaman ToolTipText Dobel klik salah satu data! Tabel 2.11 Konfigurasi Form Cari Peminjaman 98 Atep Ruhiat

5. Sehingga tampilan form seperti di bawah ini. Gambar 2.55 Tampilan Desain Form Setelah Disesuaikan 2.7.2 Membuat Kode pada Form a. Form Pengembalian Buku Tahapan selanjutnya yaitu kita akan membuatkan kode program pada setiap form yang tadi kita sudah desain. Untuk membuat kode program pada Form_Pengembalian, coba ikuti langkah-langkah di bawah ini. 1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. Gambar 2.56 Tampilan Area Pengetikan Kode Program 2. Pertama buatlah variabel untuk mendeklarasikan No Kembali. Dim NoKembaliBaru As String Dim No As String 3. Lalu buatlah prosedur dengan nama BuatNo untuk membuat No Kembali secara otomatis. Ketikkan kode program di bawah ini. Sub BuatNo() With Simpan_Pengembalian.Recordset jika pada record awal If.BOF Then NoKembaliBaru = "KMB.00001" 99 Atep Ruhiat

Exit Sub Else jika pada record akhir.movelast No =!No_Kembali No = Val(Right(No, 5)) No = No + 1 NoKembaliBaru = "KMB." & Format(No, "00000") End With 4. Buatlah prosedur untuk menormalkan kondisi Form_Pengembalian dengan nama Normal. Kemudian ketikkan kode program di bawah ini. Sub Normal() memanggil prosedur tidak aktif dan kosong Call Kondisi(False) Call Kosong memberikan kondisi pada tombol cmdtambah.enabled = True cmdsimpan.enabled = False cmdkeluar. = "&Keluar" cmdcari.enabled = False cmdproses.enabled = False menampilkan frame pengembalian Frm_Pengembalian1.Visible = True Frm_Pengembalian2.Visible = True menyembunyikan frame informasi dan grid detail Frm_Informasi.Visible = False Grid_Detail.Visible = False 5. Buat juga prosedur untuk mengosongkan inputan pada Form_Pengembalian dengan nama Kosong. Lalu ketikkan kode program di bawah ini. Sub Kosong() mengosongkan inputan txtno.text = "" txttgl.text = " / / " txttglpinjam.text = " / / " txtid.text = "" txtnama.text = "" txttglkembali.text = " / / " txtkode1.text = "" txtbuku1.text = "" txtpengarang1.text = "" txtkode2.text = "" 100 Atep Ruhiat

txtbuku2.text = "" txtpengarang2.text = "" txtketerlambatan.text = "" txtdenda.text = "" 6. Setelah itu tambahkan prosedur kondisi untuk mengaktif dan non-aktifkan inputan pada Form_Pengembalian dengan nama Kondisi. Ketikan kode program di bawah ini. Sub Kondisi(Kform As Boolean) memberikan kondisi inputan true atau false txtno.enabled = Kform txttglpinjam.enabled = Kform txtid.enabled = Kform txtnama.enabled = Kform txttglkembali.enabled = Kform txtkode1.enabled = Kform txtbuku1.enabled = Kform txtpengarang1.enabled = Kform txtkode2.enabled = Kform txtbuku2.enabled = Kform txtpengarang2.enabled = Kform 7. Pada Form_Pengembalian dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuat koneksi ke database Simpan_Pengembalian.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel pengembalian berdasarkan urutan no kembali Simpan_Pengembalian.RecordSource = _ "Select * From Pengembalian " _ & "Order By No_Kembali" Simpan_Pengembalian.Refresh membuat koneksi ke database Hapus_Peminjaman.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel peminjaman Hapus_Peminjaman.RecordSource = _ "Select * From Peminjaman" Hapus_Peminjaman.Refresh 101 Atep Ruhiat

membuat koneksi ke database Konek_Det_Peminjaman. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel detail peminjaman Konek_Det_Peminjaman.RecordSource = _ "Select * From Detail_Peminjaman" Konek_Det_Peminjaman.Refresh membuat koneksi ke database Simpan_Det_Pengembalian. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel detail pengembalian Simpan_Det_Pengembalian.RecordSource = _ "Select * From Detail_Pengembalian" Simpan_Det_Pengembalian.Refresh membuat koneksi ke database Update_Buku. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel buku Update_Buku.RecordSource = _ "Select * From Buku" Update_Buku.Refresh membuat koneksi ke database Hapus_Det_Peminjaman. = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel detail peminjaman Hapus_Det_Peminjaman.RecordSource = _ "Select * From Detail_Peminjaman " Hapus_Det_Peminjaman.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 memanggil prosedur form normal Call Normal memberikan informasi ketika data masih kosong With Simpan_Pengembalian.Recordset If.BOF Then MsgBox "Transaksi Pengembalian Masih Kosong!!!", _ vbinformation + vbokonly, "Informasi" Grid_Pengembalian.Enabled = False 102 Atep Ruhiat

Else Grid_Pengembalian.Enabled = True End With Grid_Detail.Visible = False mengatur grid pengembalian Grid_Pengembalian.HeadLines = 2 Grid_Pengembalian.Columns(0). = "NO KEMBALI" Grid_Pengembalian.Columns(1). = "TANGGAL" Grid_Pengembalian.Columns(2). = "ID" Grid_Pengembalian.Columns(3). = _ "KATERLAMBATAN" Grid_Pengembalian.Columns(4). = "DENDA" 8. Pada halaman Form_Pengembalian, dobel klik pada komponen cmdcari. Lalu ketikkan kode program di bawah ini. Private Sub cmdcari_click() memberikan informasi ketika data masih kosong With _ Form_Cari_Peminjaman.Konek_Peminjaman.Recordset If.BOF Then MsgBox "Data Peminjaman Kosong!!!", _ vbinformation + vbokonly, "Informasi" Exit Sub End With membuka form cari peminjaman Form_Cari_Peminjaman.Show 1 9. Kemudian pada halaman Form_Pengembalian, dobel klik pada komponen cmdproses. Lalu ketikkan kode program di bawah ini. Private Sub cmdproses_click() memberikan validasi ketika inputan masih kosong If txttgl.text = " / / " Then MsgBox " Maaf, Tanggal masih kosong!!", _ vbinformation + vbokonly, "Informasi" txttgl.setfocus ElseIf txtid.text = "" Then MsgBox " Maaf, Id Anggota masih kosong!!", _ vbinformation + vbokonly, "Informasi" cmdcari.setfocus Else memberikan perhitungan tentang keterlambaran pengembalian buku txtketerlambatan.text = _ 103 Atep Ruhiat

DateValue(txtTgl.Text)- DateValue(txtTglKembali.Text) jika mengembalikan sebelum tanggal kembali If txtketerlambatan.text < -1 Then txtketerlambatan.text = "0" txtdenda.text = "0,00" lbl_keterangan. = _ "SELAMAT, Anda tidak dikenai denda!!" lbl_keterangan.forecolor = vbblue jika mengembalikan tepat dengan tanggal kembali ElseIf txtketerlambatan.text = 0 Then txtketerlambatan.text = "0" txtdenda.text = "0,00" lbl_keterangan. = _ "SELAMAT, Anda tidak dikenai denda!!" lbl_keterangan.forecolor = vbblue jika mengembalikan melebihi tanggal kembali Else txtdenda.text = _ 1000 * txtketerlambatan.text lbl_keterangan. = _ "MAAF, Anda dikenakan denda!! sebesar Rp " _ & txtdenda.text lbl_keterangan.forecolor = vbred Frm_Informasi.Visible = True cmdsimpan.enabled = True 10. Dari halaman Form_Pengembalian, dobel klik pada tombol Tambah. Kemudian ketikkan kode program di bawah ini. Private Sub cmdtambah_click() memanggil prosedur kondisi aktif,kosong,dan membuat otomatisasi no kembali Call Kondisi(True) Call Kosong Call BuatNo txtno.text = NoKembaliBaru memberikan kondisi pada tombol cmdtambah.enabled = False cmdkeluar.enabled = True cmdkeluar. = "&Batal" cmdcari.enabled = True txttgl.text = Format(Now, "dd/mm/yyyy") cmdcari.setfocus 104 Atep Ruhiat

11. Kembali ke halaman Form_Pengembalian, dobel klik pada tombol Simpan. Kemudian ketikkan kode program untuk menyimpan data di bawah ini. Private Sub cmdsimpan_click() memberikan validasi ketika inputan masih kosong If txtid.text = "" Then MsgBox "ID Anggota belum diisi!!!", _ vbinformation + vbokonly, "Informasi" cmdcari.setfocus ElseIf txtkode1.text = "" Then MsgBox "Kode Buku belum diisi!!!", _ vbinformation + vbokonly, "Informasi" Grid_Detail.SetFocus cmdcari.setfocus ElseIf Grid_Detail.Visible = True Then MsgBox "Maaf, data pinjaman masih ada!!!", _ vbinformation + vbokonly, "Informasi" Grid_Detail.SetFocus Else kode program untuk menyimpan data ke tabel pengembalian With Simpan_Pengembalian.Recordset.AddNew!No_Kembali = txtno.text!tanggal = txttgl.text!id = txtid.text!keterlambatan = txtketerlambatan.text!denda = txtdenda.text.update End With kode program untuk menyimpan data ke tabel detail pengembalian With Simpan_Det_Pengembalian.Recordset If txtkode1.text <> "" Then.AddNew!No_Kembali = txtno.text!kode_buku = txtkode1.text.update End With kode program untuk menyimpan data ke tabel pengembalian With Simpan_Det_Pengembalian.Recordset If txtkode2.text <> "" Then.AddNew!No_Kembali = txtno.text!kode_buku = txtkode2.text.update End With 105 Atep Ruhiat

kode program untuk mengubah status pada tabel buku With Update_Buku.Recordset If txtkode1.text <> "" Then.Find "Kode_Buku='" & txtkode1.text & "'" _,, adsearchforward, 1.Update!Status = "Tersedia" End With kode program untuk mengubah status pada tabel buku With Update_Buku.Recordset If txtkode2.text <> "" Then.Find "Kode_Buku='" & txtkode2.text & "'" _,, adsearchforward, 1.Update!Status = "Tersedia" End With kode program untuk menghapus data pada tabel peminjaman With Hapus_Peminjaman.Recordset.Delete End With kode program untuk menghapus data pada tabel detail peminjaman With Hapus_Det_Peminjaman.Recordset If txtkode1.text <> "" Then.Find "Kode_Buku='" & txtkode1.text & "'" _,, adsearchforward, 1.Delete End With kode program untuk menghapus data pada tabel detail peminjaman With Hapus_Det_Peminjaman.Recordset If txtkode2.text <> "" Then.Find "Kode_Buku='" & txtkode2.text & "'" _,, adsearchforward, 1.Delete End With memanggil prosedur kosong dan kondisi tidak aktif Call Kosong Call Kondisi(False) memberikan kondisi pada tombol cmdtambah.enabled = True cmdkeluar. = "&Keluar" cmdsimpan.enabled = False cmdtambah.setfocus 106 Atep Ruhiat

Grid_Pengembalian.Enabled = True menutup form peminjaman Unload Me membuka kembali form peminjaman untuk membuka koneksi baru Form_Pengembalian.Show 1 12. Kemudian dobel klik pada tombol Keluar. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdkeluar_click() jika keluar If cmdkeluar. = "&Keluar" Then Unload Me Else jika batal maka akan memanggil prosedur form normal Call Normal 13. Kemudian dobel klik pada komponen txttgl. Lalu ketikkan kode program di bawah ini. Private Sub txttgl_change() menyembunyikan frame informasi Frm_Informasi.Visible = False 14. Lalu dobel klik juga pada komponen txtkode1. Lalu ketikkan kode program di bawah ini. Private Sub txtkode1_change() mengaktifkan tombol proses cmdproses.enabled = True 15. Kembali ke halaman Form_Pengembalian, dobel klik pada komponen Grid_Detail. Ketikkan kode program di bawah ini. Private Sub Grid_Detail_Click() mengantisipasi terjadinya error On Error Resume Next jika inputan kode 1 kosong maka data akan ditampilkan pada inputan pertama If txtkode1.text = "" Then txtkode1.text = Grid_Detail.Columns(2) txtbuku1.text = Grid_Detail.Columns(3) txtpengarang1.text = Grid_Detail.Columns(4) Grid_Detail.Visible = False 107 Atep Ruhiat

Else jika inputan kode 2 kosong maka data akan ditampilkan pada inputan kedua txtkode2.text = Grid_Detail.Columns(2) txtbuku2.text = Grid_Detail.Columns(3) txtpengarang2.text = Grid_Detail.Columns(4) Grid_Detail.Visible = False mencari id berdasarkan inputan id yang dipilih Konek_Det_Peminjaman.Recordset.Find "id='" _ & txtid.text & "'",, adsearchforward, 1 With Konek_Det_Peminjaman.Recordset jika ditemukan satu If.RecordCount = 1 Then Grid_Detail.Visible = False Else jika ditemukan lebih dari satu maka akan menyeleksi data lainnya Konek_Det_Peminjaman.RecordSource = _ "Select Detail_Peminjaman.No_Pinjam," _ & "Detail_Peminjaman.Id, " _ & "Detail_Peminjaman.Kode_Buku,Buku.Nama_Buku, " _ & "Buku.Pengarang From Detail_Peminjaman," _ & "Buku Where Detail_Peminjaman.Id = '" _ & txtid.text & "' And " _ & "Detail_Peminjaman.Kode_Buku=Buku.Kode_Buku " _ & "And Detail_Peminjaman.Kode_Buku<>'" _ & txtkode1.text & "'" Konek_Det_Peminjaman.Refresh Grid_Detail.Visible = True End With mengatur grid detail peminjaman Grid_Detail.HeadLines = 2 Grid_Detail.Columns(0). = "KODE PINJAM" Grid_Detail.Columns(1). = "ID" Grid_Detail.Columns(2). = "KODE BUKU" Grid_Detail.Columns(3). = "NAMA BUKU" Grid_Detail.Columns(4). = "PENGARANG" 16. Terakhir simpan form Pengembalian Buku dengan nama Form_Pengembalian dan letakkan pada sub-folder Form. 108 Atep Ruhiat

b. Form Cari Peminjaman Untuk pembuatan kode program pada Form_Cari_Peminjaman. Ikutilah langkah-langkah di bawah ini : 1. Buku Form_Cari_Peminjaman, lalu dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Peminjaman.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel peminjaman dan anggota berdasarkan id anggota Konek_Peminjaman.RecordSource = _ "Select Peminjaman.Id,Anggota.Nama_Anggota," _ & "Peminjaman.Tgl_Pinjam,Peminjaman.Tgl_Kembali," _ & "Peminjaman.No_pinjam From Peminjaman,Anggota " _ & "Where Peminjaman.Id=Anggota.Id " Konek_Peminjaman.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 mengatur grid peminjaman Grid_Peminjaman.HeadLines = 2 Grid_Peminjaman.Columns(0). = "ID ANGGOTA" Grid_Peminjaman.Columns(1). = _ "NAMA ANGGOTA" Grid_Peminjaman.Columns(2). = "TGL PINJAM" Grid_Peminjaman.Columns(3). = "TGL KEMBALI" Grid_Peminjaman.Columns(4). = "KODE PINJAM" 7. Pada halaman Form_Cari_Peminjaman, dobel klik pada komponen cmdkategori. Lalu ketikkan kode program di bawah ini. Private Sub cmbkategori_click() mengosongkan pencarian dan kursor fokus dipencarian txtcari.text = "" txtcari.setfocus 8. Kemudian dobel klik juga pada komponen txtcari. Ketikkan kode program untuk pencarian di bawah ini. 109 Atep Ruhiat

Private Sub txtcari_change() jika pilihan id anggota If cmbkategori.listindex = 0 Then Konek_Peminjaman.RecordSource = _ "Select Peminjaman.Id,Anggota.Nama_Anggota," _ & "Peminjaman.Tgl_Pinjam,Peminjaman.Tgl_Kembali," _ & "Peminjaman.No_Pinjam From Peminjaman,Anggota " _ & "Where Peminjaman.Id=Anggota.Id And " _ & "Peminjaman.Id like '" & txtcari.text & "%'" Konek_Peminjaman.Refresh jika pilihan nama anggota ElseIf cmbkategori.listindex = 1 Then Konek_Peminjaman.RecordSource = _ "Select Peminjaman.Id,Anggota.Nama_Anggota," _ & "Peminjaman.Tgl_Pinjam,Peminjaman.Tgl_Kembali," _ & "Peminjaman.No_Pinjam From Peminjaman,Anggota " _ & "Where Peminjaman.Id=Anggota.Id And " _ & "Anggota.Nama_Anggota like '" & txtcari.text & "%'" Konek_Peminjaman.Refresh mengatur grid peminjaman Grid_Peminjaman.HeadLines = 2 Grid_Peminjaman.Columns(0). = "ID ANGGOTA" Grid_Peminjaman.Columns(1). = _ "NAMA ANGGOTA" Grid_Peminjaman.Columns(2). = "TGL PINJAM" Grid_Peminjaman.Columns(3). = "TGL KEMBALI" Grid_Peminjaman.Columns(4). = "KODE PINJAM" 9. Kemudian kembali ke halaman Form_Cari_Peminjaman, dobel klik pada komponen Grid_Peminjaman. Lalu ganti eventnya yang tadinya Click menjadi DblClick dan ketikkan kode program di bawah ini. Private Sub Grid_Peminjaman_DblClick() mengantisipasi terjadinya error On Error Resume Next menampilkan data pada grid ke inputan yang ada di form pengembalian Form_Pengembalian.txtId.Text = _ Grid_Peminjaman.Columns(0) Form_Pengembalian.txtNama.Text = _ Grid_Peminjaman.Columns(1) Form_Pengembalian.txtTglPinjam.Text = _ Grid_Peminjaman.Columns(2) Form_Pengembalian.txtTglKembali.Text = _ Grid_Peminjaman.Columns(3) NoPinjam = Grid_Peminjaman.Columns(4) 110 Atep Ruhiat

menyeleksi data yang dipilih berdasarkan id dan no pinjam untuk mencari banyaknya peminjaman buku Form_Pengembalian.Konek_Det_Peminjaman.RecordSource = _ "Select Detail_Peminjaman.No_Pinjam," _ & "Detail_Peminjaman.Id," _ & "Detail_Peminjaman.Kode_Buku," _ & "Buku.Nama_Buku,Buku.Pengarang " _ & "From Detail_Peminjaman,Buku Where " _ & "Detail_Peminjaman.Id ='" & Form_Pengembalian.txtId.Text & "'" _ & "And Detail_Peminjaman.Kode_Buku=Buku.Kode_Buku " _ & "And Detail_Peminjaman.No_Pinjam='" & NoPinjam & "'" Form_Pengembalian.Konek_Det_Peminjaman.Refresh Konek_Peminjaman.Refresh menutup form cari peminjaman Unload Me menampilkan dan mengatur grid detail peminjaman Form_Pengembalian.Grid_Detail.Visible = True Form_Pengembalian.Grid_Detail.HeadLines = 2 Form_Pengembalian.Grid_Detail.Columns(0). = _ "KODE PINJAM" Form_Pengembalian.Grid_Detail.Columns(1). = _ "ID" Form_Pengembalian.Grid_Detail.Columns(2). = _ "KODE BUKU" Form_Pengembalian.Grid_Detail.Columns(3). = _ "NAMA BUKU" Form_Pengembalian.Grid_Detail.Columns(4). = _ "PENGARANG" mengosongkan beberapa inputan pada form pengembalian Form_Pengembalian.txtKode1.Text = "" Form_Pengembalian.txtBuku1.Text = "" Form_Pengembalian.txtPengarang1.Text = "" Form_Pengembalian.txtKode2.Text = "" Form_Pengembalian.txtBuku2.Text = "" Form_Pengembalian.txtPengarang2.Text = "" 10. Dobel klik juga pada tombol Keluar. Lalu ketikkan kode program untuk keluar di bawah ini. Private Sub cmdkeluar_click() keluar dari form cari peminjaman Unload Me 11. Terakhir simpan Form_Cari_Peminjaman dengan nama Form_Cari_Peminjaman dan letakkan pada sub-folder Form. 111 Atep Ruhiat

2.7.3 Mengaktifkan Halaman dan Mencoba Program Untuk mencoba menjalankan form untuk transaksi pengembalian. Coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini: 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. Gambar 2.57 Tampilan Jendela Project Properties 2. Pada Startup Object pilih Form_Pengembalian, klik tombol OK. 3. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. Gambar 2.58 Tampilan Form Pengembalian Setelah Dijalankan 112 Atep Ruhiat

2.8 Pembuatan Program Login Aplikasi Selanjutnya untuk memberikan hak akses untuk bisa masuk ke Aplikasi Perpustakaan Sekolah, kita harus membuat form Login Aplikasi. 2.8.1 Mendesain Form Login Untuk mendesain form Login, tidak begitu sulit seperti membuat form-form sebelumnya. Cukup ikuti langkah-langkah di bawah ini. 1. Tambah form baru ke dalam project dengan cara klik menu Project Add Form, maka akan muncul tampilan di bawah ini. Gambar 2.59 Tampilan Penambahan Form 2. Klik tombol Open untuk menambah form baru. 3. Setelah form berhasil dibuat langkah selanjutnya tambahkan komponen Label ( ), komponen TextBox ( ), komponen CommandButton ( ), dan komponen Adodc ( ). Lihat tampilan di bawah ini. Gambar 2.60 Tampilan Desain Form 113 Atep Ruhiat

4. Kemudian atur properti pada setiap komponennya dengan ketentuan di bawah ini : Komponen Properti Nilai Form_Login Login Aplikasi Form 1 BorderStyle 3-Fixed Dialog ClipControls False ControlBox False Label1 User Id Label2 Password txtuserid Text1 Appereance 0-Flat Text <kosongkan> TabIndex 1 txtpassword Text1 Appereance 0-Flat PasswordChar * Text <kosongkan> Command1 cmdlogin &Login Command1 cmdbatal &Batal Konek_Login Adodc1 Koneksi Login Visible False Tabel 2.12 Konfigurasi Form Login 5. Sehingga tampilan form seperti di bawah ini. Gambar 2.61 Tampilan Desain Form Setelah Disesuaikan 2.8.2 Membuat Kode pada Form Login Setelah form selesai didesain, langkah selanjutnya kita buat kode program untuk Form_Login. Coba ikuti langkah-langkah di bawah ini. 114 Atep Ruhiat

1. Masuk pada area pengetikkan kode program dari menu View Code. Lihat tampilan di bawah ini. Gambar 2.56 Tampilan Area Pengetikan Kode Program 2. Pertama buatlah variabel untuk mendeklarasikan UserId dan Nama Petugas. Dim PetugasId, PetugasNm As String 3. Pada Form_Login dobel klik pada area form sampai muncul area untuk mengetikkan kode program. Lalu ketikkan kode program di bawah ini. Private Sub Form_Load() membuka koneksi ke database Konek_Login.ConnectionString = _ "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=dbPerpustakaan.accdb;" _ & "Persist Security Info=False" menyeleksi tabel petugas Konek_Login.RecordSource = _ "Select * From Petugas" Konek_Login.Refresh memposisikan form ditengah layar Move (Screen.Width - Width) / 2, _ (Screen.Height - Height) / 2 4. Pada halaman Form_Login, dobel klik pada komponen cmdlogin. Lalu ketikkan kode program di bawah ini. Private Sub cmdlogin_click() memberikan validasi ketika inputan masih kosong If txtuser.text = "" Then MsgBox "Maaf, User masih kosong!!", _ vbinformation + vbokonly, "Informasi" txtuser.setfocus ElseIf txtpassword.text = "" Then MsgBox "Maaf, Password masih kosong!!", _ vbinformation + vbokonly, "Informasi" txtpassword.setfocus Else 115 Atep Ruhiat

menyeleksi tabel petugas berdasarkan inputan user id dan password Konek_Login.RecordSource = _ "Select * From Petugas " _ & "Where UserId='" & txtuser.text & "' " _ & "And Password='" & txtpassword.text & "'" Konek_Login.Refresh With Konek_Login.Recordset jika tidak kosong If Not.BOF Then kalau data sesuai maka akan menampilkan user id dan nama petugas pada status bar di menu utama PetugasId = _ Konek_Login.Recordset.Fields("UserId") PetugasNm = _ Konek_Login.Recordset.Fields("Nama_Petugas") With Form_Menu_Utama.StatusBar1.Panels(1) = _ Konek_Login.Recordset.Fields("UserId").StatusBar1.Panels(2) = _ Konek_Login.Recordset.Fields("Nama_Petugas") End With form login akan keluar Unload Me membuat kondisi pada menu di menu utama Form_Menu_Utama.SbMnLogin.Enabled = False Form_Menu_Utama.SbMnLogout.Enabled = True Form_Menu_Utama.SbMnKeluar.Enabled = False Form_Menu_Utama.MnTransaksi.Enabled = True Form_Menu_Utama.MnLaporan.Enabled = True Form_Menu_Utama.MnData.Enabled = True jika user id dan password tidak sesuai maka akan muncul kotak dialog perhatian Else MsgBox "Maaf, data yang anda masukan salah mohon!!", _ vbcritical + vbokonly, "Perhatian" txtuser.text = "" txtpassword.text = "" txtuser.setfocus End With 5. Kemudian dobel klik pada tombol Batal. Kemudian ketikkan kode program untuk batal dan keluar di bawah ini. Private Sub cmdbatal_click() membatalkan/keluar dari form login Unload Me 116 Atep Ruhiat

6. Dobel klik pada komponen txtuserid, ganti event Change menjadi KeyPress. Lalu ketikkan kode program agar bisa menggunakan tombol Enter pada keyboard. Private Sub txtuserid_keypress(keyascii As Integer) If KeyAscii = 13 Then txtpassword.setfocus KeyAscii = 0 7. Lalu kembali ke halaman Form_Login, dobel klik pada komponen txtpassword, ganti event Change menjadi KeyPress. Lalu ketikkan kode program agar bisa menggunakan tombol Enter pada keyboard. Private Sub txtpassword_keypress(keyascii As Integer) If KeyAscii = 13 Then cmdlogin.setfocus KeyAscii = 0 8. Terakhir simpan Form_Login dengan nama Form_Login dan letakkan pada sub-folder Form. 2.8.3 Mengaktifkan Halaman dan Mencoba Program Untuk mencoba menjalankan form untuk login aplikasi. Coba jalankan form tersebut dengan mengikuti langkah-langkah di bawah ini: 1. Aktifkan terlebih dahulu halaman form dari menu Project Properties. Maka akan muncul tampilan di bawah ini. Gambar 2.57 Tampilan Jendela Project Properties 117 Atep Ruhiat

2. Pada Startup Object pilih Form_Menu_Utama, klik tombol OK. 3. Coba jalankan form dari menu Run Start atau bisa juga dengan menekan F5 pada keyboard. Maka akan muncul tampilan seperti di bawah ini. Gambar 2.58 Tampilan Form Menu Utama Setelah Dijalankan 4. Kemudian pilih menu Sistem - Login. Maka akan muncul Form_Login. Gambar 2.59 Tampilan Form Login Setelah Dijalankan 118 Atep Ruhiat