Anda di halaman 1dari 92

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah


Seiring perkembangan zaman, perkembangan teknologi saat

ini semakin
pesat. Komputer merupakan salah satu bentuk teknologi yang

berperan untuk
membantu pekerjaan manusia agar dapat lebih mudah, efektif

dan efisien.
Berbagai kegiatan yang pada awalnya dilakukan secara

manual, sekarang dengan adanya alat bantu komputer maka

proses pengolahan data dan penyimpanan data dapat

terselesaikan dengan waktu yang relatif lebih cepat dari pada

menggunakan tenaga manusia secara manual.


Keberadaan teknologi komputer sangat dibutuhkan, hampir

seluruh perusahaan / instansi baik pemerintahan maupun

swasta di Indonesia telah


memiliki teknologi yang canggih dalam pengolahan data.
Berdasarkan observasi yang penulis lakukan, Staf dibidang

pelayanan dan

teknologi, bagian kepegawaian dan tatalaksana masih

mengalami kesulitan untuk memproses data pengunjung

1
perpustakaan. Walaupun telah menggunakan komputer

sebagai sarana penunjangnya, tetapi dalam pengolahan data

pada buku tamu masih disimpan secara manual ke dalam arsip

perpustakaan. Berdasarkan uraian tersebut maka laporan yang

dihasilkan terkadang masih mengalami kekeliruan, tidak

akurat, tidak up to date, kurang efisien dan sering mengalami

keterlambatan pembuatan dan penyampaian laporan.

Berdasarkan penjelasan di atas, maka penulis tertarik untuk

melakukan penelitian tentang Perancangan Sistem Informasi

Pengisian Buku Tamu Pada Badan Arsip Dan Perpustakaan

Menggunakan Visual Basic.

1.2 Perumusan Masalah

Adapun Perumusan Masalah dari Tugas Akhir ini adalah:

1. Bagaimana cara Merancang Sistem Informasi Pengisian

Buku Tamu

pada Perpustakan.

2
2. Bagaimana prosedur penggunaan Database tersebut

dalam sistem

informasi Perpustakaan.

1.3 Tujuan Penulisan Tugas Akhir

-Untuk Mendapatkan Nila akhir Student Day Programming 2


-untuk mengetahui dan memahami bagaimana cara

merancang buku tamu dan mengelola Database tersebut

dalam menginput data.

1.4 Manfaat Penulisan

Adapun manfaat penelitian ini diharapkan dapat dijadikan

referensi dan bahan kajian dalam pengelolaan data tamu

yang mengunjungi perpustakaan

3
BAB II

LANDASAN TEORI

2.1 Konsep Dasar Sistem

2.1.1 Pengertian Sistem Informasi

Sistem Informasi adalah aplikasi komputer untuk

mendukung operasi dari suatu organisasi. berupa operasi,

instalasi, dan perawatan komputer, perangkat lunak, dan

data.

Menurut Jerry Fithgerald, Sistem adalah suatu jaringan

kerja dari prosedur-prosedur yang saling berhubungan,

berkumpul bersama-sama untuk melakukan suatu kegiatan

atau menyelesaikan suatu sasaran tertentu.

Bornar Dan Hopwood (1993). Sistem informasi adalah

kumpulan perangkat keras dan perangkat lunak yang di

rancang untuk mengtansformasikan data ke dalam bentuk

informasi yang berguna.

4
Beberapa hal yang harus ada dalam sebuah sistem

informasi yaitu :

Perencanaan Sistem Informasi


Pengelolaan Sistem Informasi
Pengendalian Sistem Informasi
Penilaian Sistem Informasi

Dalam merancang sebuah sistem informasi perlu adanya

analisa sistem yaitu dengan mempelajari sistem yang

berjalan pada sebuah perusahaan atau instansi dimana user

bekerja beserta dengan segala permasalahannya. Tujuannya

adalah untuk mendapatkan gambaran secara jelas tentang

bagaimana membangun dan menyusun rancangan sistem

yang akan di usulkan.

Pada tahap analisis sistem, rencana implementasi

sistem akan menaikkan kemungkinan transisi yang mulus

dari sistem informasi saat ini ke sistem informasi yang baru.

Kegiatan ini merupakan prosedur untuk mengkonversi

spesifikasi logis ke dalam sebuah rancangan logis sebagai

suatu bentuk dari model sistem yang akan dirancang. Selain

5
itu sistem analis juga membutuhkan jadwal perancangan

sistem.

Sistem analis dapat mendesain model dari sistem

informasi yang diusulkan dalam bentuk logical model. Model

(tool) sistem merupakan alat yang tepat digunakan untuk

membentuk suatu sistem.

2.1.2 Pengertian Database

Database adalah serangkaian arsip atau kumpulan file-file

data yang saling

berelasi atau berhubungan, relasi tersebut biasa ditunjukkan

dengan kunci dari

tiap file yang ada, yang disimpan sedapat mungkin dengan

redudansi data yang

sedikit mungkin dan dapat dimasukkan oleh satu atau lebih

program aplikasi.

Pemakai sistem database dapat memperoleh kemudahan untuk

melakukan

6
operasi terhadap file-file, seperti:

a. Penambahan file baru ke dalam database

b. Penyisipan data baru ke file yang sudah ada

c. Pengambilan data dari file yang sudah ada

d. Peembaharuan data di dalam file yang sudah ada

e. Penghapusan data dari file yang ada.

2.1.3 Fungsi Database

Fungsi dari database adalah untuk mengatasi dan

mengurangi atau

meminimalkan masalah misalnya yang sering muncul dalam

pengolahan data

(File Processing Sistem). Dan masalah tersebut adalah sebagai

berikut.

a. Redudancy dan Inconsistency Data

Jika file-file dan program aplikasi diciptakan oleh

programmer yang

7
berbeda maka ada kemungkinan terjadi penggandaan beberapa

bagian data pada

file-file yang berbeda. Penyimpanan data yang sama pada

beberapa tempat file

yang berbeda disebut redudancy dan mengakibatkan

pemborosan ruang

penyimpanan dan biaya untuk akses menjadi lebih tinggi.

Inconsistency data

adalah perubahan data yang tidak dilakukan terhadap seluruh

data yang

mengalami redudansi.

b. Isolasi data untuk standarisasi

Jika data yang tersimpan dalam beberapa file memiliki

format yang

berbeda, maka akan menyulitkan dalam menulis program untuk

mengakses data.

8
Untuk mengatasi masalah tersebut, maka data yang diletakkan

dalam satu

database haruslah memiliki format yang sama sehingga program

aplikasinya

mudah dibuat.

C. Keamanan data

Tidak semua orang atau pemakai sistem database diberikan

hak untuk

mengakses data. Keamanan data ini dapat diatur lewat program

aplikasinya

dengan memberikan password.

d. Integritas (keutuhan) data

Database berisi file-file yang saling berkaitan, masalahnya

adalah cara

9
untuk menghubungkan file-file tersebut. File tersebut

dihubungkan dengan

menggunakan field kunci. Field kunci merupakan field yang

nilainya unik dan

mewakili record, setiap orang atau objek yang mewakili satu field

kunci.

e. Multiple User

Untuk meningkatkan daya guna sistem mempercepat waktu

akses dan

penghematan memori, beberapa sistem mengijinkan banyak

pemakai untuk

mengakses data secara bersamaan. Data dapat digunakan untuk

banyak orang,

diakses oleh program yang sama dalam waktu yang berbeda.

f. Kesulitan mengakses data

10
Kesulitan untuk mengakses data tertentu akan mucul jika

belum tersedia

program yang digunakan untuk akses. Kesalahan ini akan teratasi

dengan adanya

DBMS yang mampu mengambil data secara langsung dengan

menggunakan bahasa yang sederhana.

g. Kebebasan data

Jika suatu ketika terjadi perubahan data maka program

aplikasi tersebut

juga harus diubah. Hal ini disebut bahasa program yang telah

dibuat tidak bebas

terhadap database yang ada. Berbeda dengan aplikasi yang

dibuat DBMS,

perubahan apapun yang terjadi pada struktur database tidak

menyebabkan

11
program harus diubah pada saat itu.

4. Database Management Sistem

Database Management Sistem merupakan software khusus

menangani data

yaitu yang menyimpan, mengorganisir, mengolah dan

menemukan kembali sekian

banyak data yang diperlukan, serta mengumpulkan semua data

menjadi data yang

terpadu (integrated) yang mempunyai hubungan antara data,

sehingga bisa

digunakan bersama oleh aplikasi lain. Database Management

Sistem adalah

sekumpulan data yang saling berelasi dan satu set program yang

digunakan untuk

mengakses data tersebut. Tujuan utama sistem database adalah

untuk

mempermudah penciptaan struktur data dan membebaskan

pemrogram dari

12
masalah penyusunan file yang kacau. Sebuah sistem database

pada dasarnya

merupakan suatu sistem penyimpanan atau pemeliharaan record

yang berbasis

komputer. Database itu sendiri dianalogikan sebagai almari file

elektronik seperti

penyimpanan file-file data yang terkomputerisasi.

5. Microsoft Visual Basic 6.0

a. Microsoft Visual Basic

Microsoft Visual Basic merupakan bahasa pemrograman

yang berbasis

microsoft windows, sebagai bahasa pemrograman yang mutakhir,

Microsoft Visual Basic 6.0 didesain untuk dapat memanfaatkan

fasilitas yang tersedia dalam

Microsoft windows.

Microsoft Visual Basic 6.0 juga merupakan bahasa

pemrograman Object

13
Oriented Programing (OOP), yaitu pemrograman yang berorientasi

objek. Visual

Basic merupakan salah satu software untuk membuat program

yang cukup

sederhana tetapi banyak cakupan yang dapat dikerjakan, karena

visual basic dapat mengakses banyak software seperti Excel,

Access dan sebagaiya. Visual basic lebih sederhana dari

pemrograman yang lain. Kesederhanaan visual basic terletak

pada kemudahan membuat bahasa pemrograman dan bentuk

tampilan yang dikehendaki. Visual Basic ini merupakan

pengembangan bahasa basic yang

diterapkan pada program yang berbasis Windows. Visual Basic 6.0

adalah salah satu development tools untuk membangun aplikasi

dalam lingkungan windows. Dalam pengembangan aplikasi, visual

basic menggunakan pendekatan visual untuk merancang user

interface atau tampilan dalam bentuk form, sedangkan untuk

kodingnya menggunakan bahasa basic yang cenderung mudah

dipelajari. Visual basic telah menjadi tools yang terkenal bagi para

pemula maupun developer. Dalam lingkungan windows user

14
interface memegang peranan penting, karena dalam pemakaian

aplikasi yang kita buat, pemakai senantiasa berinteraksi dengan

user interface tanpa menyadari bahwa di belakangnya berjalan

instruksi-instruksi program yang mendukung tampilan dan

proses yang dilakukan.

Pembuatan program pada visual basic seperti pembuatan

program pada

bahasa-bahasa lain, hanya saja pada visual basic banyak

kemudahan yang dimiliki

dibanding dengan program lain. Secara garis besar pembuatan

program pada

visual basic ada tiga bagian yaitu pengaturan form, pengaturan

properties dan

pembuatan program pada jendela code. Setelah selesai dibuat,

program dapat

dikompilasi sehingga menghasilkan executable program atau

langsung dijalankan

pada lingkungan visual basic.

15
b. Pemrograman Visual

Di lingkungan windows perangkat lunak pengembangan

aplikasi

cenderung mengarah ke pemrograman visual. Dengan

menggunakan

pemrograman visual, antarmuka pengguna dapat dibuat dengan

mudah dan

dilakukan secara visual. Kemudahan secra visual ini diterapkan

pada pembuatan

laporan dan berbagai aktivitas lainnya sehingga diharapkan

pengembangan suatu

aplikasi dapat dilakukandengan cepat.

Pemrograman visual menggunakan konsep yang disebut

pemrograman

berorientasi objek (PBO) dan pemrograman yang dikendalikan

oleh kejadian

(event driven). Oleh karena pemrograman visual menggunakan

pemrograman

16
berorientasi objek, komponen-komponen yang menyusun

antarmuka berupa

sejumlah objek, misalnya form. Mengingat PBO juga Menyediakan

kemampuan

pewarisan (inheritance) sehingga dapat membuat suatu objek

baru yang mewarisi

sifat-sifat objek yang telah ada, dengan beberapa perubahaan

sifat.

c. Struktur Aplikasi Microsoft Visual Basic 6.0

Title Bar Menu Bar Tool Bar Project

explorer

17
Tool Box From Windows Jendela Kode Properties From Layout

winndows

Gambar 2.1 Struktur Microsoft Visual Basic 6.0.

Title Bar

Title bar merupakan batang jendela dari program visual basic

6.0 yang

terletak pada bagian paling atas dari jendela program yang

berfungsi untuk

18
menampilkan judul atau nama jendela. Selain itu juga berfungsi

untuk memindahkan posisi jendela dengan menggunakan drag

and drop pada posisi title

bar tersebut dan untuk mengatur ukuran Title Bar, Menu Bar,

Toolbars, Project

Explorer, Toolbox, Form Window, Jendela Code, Properties, dan

Form Layout

Window.

Menu Bar

Menu bar merupakan batang menu yang terletak di bawah title

bar yang

berfungsi untuk menampilkan pilihan menu atau perintah untuk

mengoperasikan

program visual basic. Saat pertama kali jendela program visual

basic terbuka

dapat dilihat tiga belas menu utama yaitu file, edit, view, project,

format, debug,

19
run, quey, diagram, tools, addins, window, dan help. Menu bar

mempunyai

sederetan pilihan menu yang masing-masing mempunyai arti dan

fungsi yang

berbeda.

Toolbars

Toolbars merupakan sebuah batang yang berisi kumpulan

tombol yang

terletak dibagian bawah menu bar yang dapat digunakan untuk

menjalankan

sebuah perintah. Pada kondisi default program visual basic hanya

menampilkan

toolbars standar.

Project Explorer

Project Explorer merupakan suatu kumpulan module atau

merupakan

20
program aplikasi itu sendiri. Dalam visual basic, file project

disimpan dengan

nama file berakhiran vbp, dimana file ini berfungsi untuk

menyimpan seluruh

komponen program.

Apabila membuat suatu program aplikasi baru maka secara

otomatis project tersebut akan diisi dengan form baru. Dalam

jendela project explorer ditampilkan suatu struktur hirarki dari

sebuah project itu sendiri yang berisi semua item yang

terkandung di dalamnya.

Form

Form merupakan windows atau jendela di mana akan dibuat

user interface.

Toolbox atau kontrol

21
Merupakan tampilan berbasis grafis yang dimasukkan pada

form untuk membuat interaksi dengan pemakai. Bentuk toolbox

visual basic adalah sebagai berikut.

Gambar 2.2 ToolBox Visual Basic 6.0.

Adapun secara garis besar fungsi dari masing-masing control

tersebut

adalah sebagai berikut.

a) Pointer bukan merupakan suatu kontrol tapi icon ini

digunakan ketika

22
memilih kontrol yang sudah berada pada form.

b) Picturebox adalah kontrol yang digunakan untuk

menampilkan image

dengan format BMP, DIB, (Bitmap), ICO (Icon), CUR (Cursor),

WMF

(Metafile), CMF (Enhanced Metafile), GIF, JPEG.

c) Label adalah kontrol yang digunakan untuk menampilkan

teks yang tidak

dapat diperbaiki.

d) Textbox adalah kontrol yang mengandung string yang dapat

dipakai oleh

pemakai, dapat berupa satu baris tunggal atau banyak baris.

e) Frame adalah kontrol yang digunakan sebagai kontainer bagi

kontrol

lainnya.

f) CommandButton merupakan kontrol hampir ditemukan pada

setiap form

23
dan digunakan untuk membangkitkan event proses tertentu

ketika pemakai

melakukan klik padanya.

g) CheckBox digunakan untuk pilihan yang isinya bernilai yes

atau no, true

atau false.

h) OptionButton sering digunakan lebih dari satu sebagai

pilihan terhadap

beberapa option yang hanya dapat dipilih satu.

i) ListBox mengandung sejumlah item dan pemakai dapat

memilih lebih dari

satu.

j) ComboBox merupakan kombinasi dari TextBox dan suatu

ListBox di mana

pemasukan data dapat dilakukan dengan pengetikan

maupun pemilihan.

24
k) HScrollbar/VScrollbar digunakan untuk membentuk scrollbar

berdiri

sendiri.

l) Timer digunakan untuk proses background yang diaktifkan

berdasarkan

interval waktu tertentu. Ini merupakan kontrol non-visual.

m) DriveListBox, DirListBox, dan FileListBox sering digunakan

untuk

membentuk dialog box yang berkaitan dengan file.

n) Shape dan Line digunakan untuk menampilkan bentuk

seperti garis,

persegi, bulatan, oval.

o) Image berfungsi menyerupai image box, tetapi tidak dapat

digunakan

sebagai kontainer bagi kontrol lainnya. Sesuatu yang perlu

diketahui

bahwa kontrol image menggunakan resource yang lebih kecil

25
dibandingkan dengan Picture Box.

p) Data dan Adodc digunakan untuk menampilkan database

pada suatu form.

q) OLE dapat digunakan sebagai tempat bagi program

eksternal seperti

Microsoft Excel, Microsoft Word, dan lain-lain.

r) SSTab adalah objek berbentuk lembaran-lembaran. Setiap

lembaran dapat

berisi kelompok informasi.

s) DataGrid digunakan untuk menampilkan data dalam bentuk

grid seperti di

worksheet excel.

t) DalaList dan DataCombo digunakan untuk menampilkan data

dalam

sebuah drop-down list box.

Properties

26
Properties merupakan nilai yang dimiliki oleh sebuah objek

visual basic, merupakan sebuah jendela yang digunakan untuk

menampung nama properti dari kontrol yang dipilih.

Jendela Code

Jendela Code adalah salah satu jendela yang paling penting

dalam visual

basic, yang berisi kode-kode program yang merupakan instruksi-

instruksi untuk

aplikasi visual basic. Setiap objek pada visual basic dapat

ditambahai kode-kode

program untuk melaksanakan tugastugas tertentu, misalnya

membatalkan

perintah, menutup aplikasi dan sebagainya.

Form Layout Window

Form Layout Window merupakan sebuah jendela yang

digunakan untuk

27
mengatur posisi dari form pada form saat program dijalankan.

Pada saat

mengarahkan pointer mouse ke bagian form, maka pointer mouse

akan berubah

menjadi anak panah empat arah (pointer mengatur posisi) untuk

memindah posisi

form pada layar monitor dapat dilakukan dengan proses drag and

drop.

28
BAB III

Metode Dan Teknik Penulisan

3.1 Lokasi Penelitian

Tempat pelaksanaan penelitian ini dilakukan SMA PLUS PGRI

CIBINONG Yeng terletak di Jl. Golf Ciriung Cibinong, kab Bogor

3.2 Metode Penelitian

Metode penelitian adalah salah satu cara yang bersifat

otomatis dan objektif dengan tujuan untuk memperoleh dan

mengumpulkan keterangan atau informasi yang diteliti secara

lebih efisien dan dapat digunakan sebagai pedoman dalam

melaksanakan penelitian.

Metode penelitian yang penulis gunakan untuk mendapatkan

data yang

diperlukan adalah :

1. Penelitian Lapangan (Field Research)

Metode penelitian ini dilakukan langsung pada objek penelitian

dengan cara:

29
a) Pengamatan (Observation)

Dalam hal ini penulis melakukan penelitian untuk

mendapatkan data secara

umum dengan melihat langsung, mengamati dan mencatat

sistem informasi yang

sedang berjalan, serta melihat format-format yang dilakukan

selama ini.

b) Wawancara (Interview)

Dalam hal ini penulis melakukan wawancara untuk

melengkapi bahan yang

sudah ada selama observasi. Penulis melakukan tanya jawab

kepada Staf dibidang

pelayanan dan teknologi, Bagian kepegawaian dan tatalaksana,

dan pengunjung yang berkaitan dengan sistem yang sedang

diteliti.

2. Penelitian Kepustakaan (Library Research)

30
Penelitian Kepustakaan adalah penelitian dengan sumber-

sumber kepustakaan. Penelitian ini dimaksudkan untuk

mendapatkan landasan teori yang memadai dalam penyusunan

tugas akhir ini

3.3 Alat-alat yang dipakai Dalam Penelitian

Alat yang dipakai pada penelitian ini meliputi buku, pulpen,

Komputer,

Aplikasi Visual Basic 6.0, dan Microsoft Acces

3.4 Analisis Data

Dalam penulisan Tugas Akhir ini, penulis menggunakan

metode analisis diskriptif, yaitu data yang diperoleh dipilih dan

disusun secara sistematis kemudian dianalisa berdasarkan kajian

teori untuk mendapatkan deskripsi tentang Perancangan Sistem

Informasi Pengisian Buku Tamu Pada Perpustakaan

31
BAB IV

Hasil Dari Pembahasan

4.1 Hasil penulisan

4.1.1 Pengisian Buku Tamu Pada Perpustakaan

Setiap pengunjung yang mengunjungi pustaka, terlebih

dahulu harus mengikuti prosedur yang telah ditetapkan oleh

perpustakaan. Yaitu dengan mengisi buku tamu sebelum

memasuki ruang baca perpustakaan. Pengisian buku tamu pada

perpustakan menggunakan cara manual dengan mengisi di

lembaran kertas yang disediakan. Kemudian setelah buku tamu

yang telah diisi disimpan sebagai data pada arsip perpustakaan

untuk mengetahui berapa banyak pengunjung perpustakaan

dalam sehari.

4.1.2 Rancangan File

Perancangan file bertujuan untuk merancang struktur tabel

sebagai pengolahan data. Adapun perancangan file pada Sistem

32
informasi pengisian buku tamu pada perpustakan ini adalah

sebagai berikut :

a. Tabel Admin
Tabel 4.1 Srtuktur Tabel Admin

Name File Tipe Data Size Keterangan


Username Text 20 Primary Kay
Password Text 20 password
Pada tabel 4.1 merupakan susunan tabel dalam database

buku tamu yang terdiri dari nama field, tipe data, size, dan

keterangan.

b. Tabel Buku Tamu

Tabel 4.2 Srtuktur Tabel Buku Tamu

Name Field Tipe Data Size Keterangan


No_Identitas Text 20 Primary Key
Alamat Text 50 Foreign Key
Alamat Text 50 Alamat
Pekerjaan Text 25 Pekerjaan
Keperluan Text 50 Keperluan
Agama Text 10 Agama
No_Telpon Text 20 No telpon
Tanggal Date/Time 20 Tanggal

33
Jenis_Kelamin Text 20 Jenis

Kelamin
Struktur tabel 4.2 menjelaskan tentang susunan atau tempat

penyimpanan data tamu yang telah di input kedalam database.

4.1.3 Rancangan Keluaran

Rancangan keluaran yang penulis buat dalam tugas akhir ini

berupa rancangan di layar monitor (screen) . Untuk media

keluaran dapat ditentukan melalui suatu menu pilihan. Ada dua

menu pilihan, yaitu menampilkan data ke display dan mencetak

ke media kertas melalui printer.

4.1.4 Rancangan Kontrol

Pengontrolan sangat diperlukan terhadap suatu rancangan.

Rancangan Kontrol Perancangan Sistem Informasi Pengisian Buku

Tamu pada Perpustakaan provinsi Aceh dikendalikan dengan

sistem password.

4.1.5 Tahap Implementasi Sistem

Diagram alir data dibuat untuk menjelaskan dan

mempermudah dalam

34
merancang suatu program. Diagram alir data merupakan

implementasi dari

program yang akan dibuat. Dengan diagram alir data, maka

logika berfikir dalam membuat program dapat disusun secara

baik berdasarkan ukuran yang sesuai dengan yang direncanakan.

Dari diagram alir data yang sudah dibuat pada tahap rancangan

sistem, pada tahap implementasi sistem ini akan dilakukan

penerjemahan menjadi kata-kata dalam bahasa pemrograman

visual basic 6.0 agar computer dapat melakukan apa yang akan

diinginkan.

4.2 Pembahasan

4.2.1 Pengoperasian Sistem

Perancangan sistem informasi pengisian buku tamu pada

Perpustakaan merupakan program aplikasi yang dibuat dengan

menggunakan Microsoft Visual basic 6.0. Untuk menjalankan

sistem informasi ini dapat dilakukan melalui Login Admin yang

mengantarkan Administrator ke menu utama beserta sub-sub

menu utama pada program rancangan. Jika melalui menu maka

diklik pada menu yang ingin dijalankan sehingga akan muncul

35
sub-sub menu, lalu dipilih sub menu mana yang akan dijalankan

sehingga didapatkan informasi yang dibutuhkan. Yang tampil

pertama kali setelah program dijalankan adalah sebuah tampilan

awal seperti pada gambar 4.3 yang merupakan form login admin.

Gambar 4.1 Form Login Admin

Apabila dalam memasukkan username dan password benar

maka akan menuju menu utama yang terdiri dari 4 menu yaitu

menu File, Laporan, Admin, Backup dan Keluar seperti pada

gambar 4.4 Selain itu juga terdapat sub menu seperti Data Tamu,

Data Member, Laporan Data Tamu, Laporan data Member,

Tambah Admin, Ubah Password Admin, dan Exit.

36
Gambar 4.2 Form Menu Utama

Untuk penjelasan lebih lanjut dari gambar 4.4 di atas akan


dijabarkan
sebagai berikut :
1. Menu Utama
Form menu utama merupakan form yang di dalamnya
terdapat menu yang
akan kita pergunakan untuk memasuki ke form selanjutnya. Form
menu utama
memiliki menu seperti file, laporan,dan keluar.
a. Menu File
Apabila menu file pada menu utama dipilih maka akan
muncul sub menu
data tamu, kemudian dengan memilih sub data tamu maka form
data tamu yang
merupakan menu pokok dalam pengisian data tamu yang
mengunjungi

37
perpustakan. Form Data Tamu didesaign dengan 2 (dua) tabs.

Gambar 4.3 Form Input Data Tamu

Saat form data tamu tampil maka kita akan melihat File yang

berupa biodata tamu. Selain itu juga terdapat 4 command button

yang mana masing masing command button tersebut mempunyai

fungsinya masing-masing, command button tersebut yaitu

Input,Edit,Hapus, dan Tutup

Dengan menekan tombol Input maka semua textbox yang

menampilkan biodata pengunjung seperti Nama,Alamat,dan

NoTelepon command button input akan aktif. Setelah semua data

38
diinput maka data tersebut akan tersimpan dengan menekan

tombol input yang ada dibawah, dan data tersebut akan

tersimpan dalam sebuah database yang telah terhubung ke

sistem tersebut.

b. Menu Laporan

Menu laporan mempunyai sub menu laporan data tamu dan

laporan member yang didalamnya masing-masing memiliki 4

(Empat) tab yang berfungsi untuk menampilkan laporan dari pada

data tamu dan data member yang telah tersimpan di database.

Gambar 4.4 Laporan Data Peminjam buku di Microsoft access

39
Gambar 4.4 menunjukkan keluaran akhir sebagai laporan

buku tamu yang mengunjungi perpustakaan. Output ini-lah yang

bisa disimpan sebagai arsip perpustakaan.

c. Menu Keluar

Didalam menu keluar juga terdapat sub menu yaitu exit yang

berfungsi

40
BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan di bab sebelumnya, maka dapat

disimpulkan

bahwa:

1. Program sistem informasi pengisian buku tamu pada Badan

Arsip dan Perpustakaan dibuat dengan menggunakan software

Visual Basic 6.0, pembuatan program ini dimulai dengan

mendesain tampilan dan membuat form-form. Kemudian

membuat program dengan kode visual basic atau menulis view

code-nya.

2. Bentuk dari program ini adalah bentuk form-form yang

digunakan untuk menyimpan data dan penyediaan informasi

yang berkaitan dengan buku tamu pada perpustakaan.

3. Sistem informasi yang di usulkan dapat membuat laporan

secara cepat dan efisien sesuai dengan data yang ada.

41
4. Dengan menggunakan sistem informasi yang di usulkan,

maka dapat meningkatkan efisiensi kerja pada pegawai.

Misalnya, dapat melakukan perubahan (update) data secara

cepat pada saat yang dibutuhkan.

5.2 Saran

1. Dalam penggunaan program, karyawan atau pegawai harus

menguasai windows sehingga dapat dengan mudah

mengoperasikan program sistem informasi tersebut.

2. Dengan adanya sistem informasi yang diusulkan, maka

disarankan adanya pengembangan lebih lanjut untuk

merancang sistem yang lebih kompleks dan dapat melakukan

pengolahan data yang lebih besar.

3. Dengan adanya sistem informasi yang diusulkan, diharapkan

agar instansi melakukan pelatihan kepada operator-operator

yang ditunjuk agar dapat menggunakan sistem sesuai

kebutuhan.

4. Diharapkan kepada pimpinan instansi untuk mengintruksi

kepada setiap operator agar melakukan back-up (penyimpanan

42
cadangan) data untuk menghindari kehilangan data karena

gangguan yang diluar dugaan.

43
DAFTAR PUSTAKA

I, Bernaridho Hutabarat, M.sc, OCP. 2004. Pengelolaan

Basisdata. Andi. Yogyakarta.


Novian Agung, (2004), Panduan Microsoft Visual Basic, CV.

Andi Offset, Yogyakarta


Ramadhan, Arief, (2004), Microsoft Visual Basic. Diterbitkan

oleh PT.Elex Media Komputindo, Gramedia, Jakarta


Scott, (1995:102), Prinsip-prinsip Sistem Informasi

Manajemen. Erlangga. Jakarta.


Utami, Ema dan Sukrisno. 2004. Konsep Dasar Pengolahan

dan Pemograman Database Dengan Menggunakan SQL

Server, Ms.Acces, dan Ms. Visual Basic. 2005. Andi.

Yogyakarta.
Winarno, Wing Wahyu, (2006), Sisitem Informasi Manajemen.

Penerbit : UPP STIM YKPN, Yogjakarta

44
LINSTING PROGRAM
Form Login

Dim A As Byte
Dim B As Byte

Private Sub Form_Load()


'batasi jumlah karakter
TxtNamaKsr.MaxLength = 30
TxtPasswordKsr.MaxLength = 10
'nama dan password diubah menjadi karakter X
'TxtNamaKsr.PasswordChar = "X"
TxtPasswordKsr.PasswordChar = "X"
TxtPasswordKsr.Enabled = False
TxtKodeKsr.Enabled = False
End Sub

Private Sub TxtNamaKsr_KeyPress(Keyascii As Integer)


'ubah karakter jadi besar semua
Keyascii = Asc(UCase(Chr(Keyascii)))
'jika menekan ESC form ditutup
If Keyascii = 27 Then Unload Me
'jika menekan enter setelah mengisi nama, maka..
If Keyascii = 13 Then
'buka database
Call BukaDB

45
'cari nama kasir yang diketik
RSKasir.Open "Select NamaKsr from Kasir where NamaKsr
='" & TxtNamaKsr & "'", Conn
'jika tidak ditemukan, maka
If RSKasir.EOF Then
'batasi akses ke nama kasir 3 kali kesempatan
A=A+1
If 1 - A = 0 Then
MsgBox "Kesempatan ke " & A & " Salah" & Chr(13) & _
"Nama '" & TxtNamaKsr & "' tidak dikenal"
TxtNamaKsr = ""
TxtNamaKsr.SetFocus
ElseIf 2 - A = 0 Then
MsgBox "Kesempatan ke " & A & " Salah" & Chr(13) & _
"Nama '" & TxtNamaKsr & "' tidak dikenal"
TxtNamaKsr = ""
TxtNamaKsr.SetFocus
ElseIf 3 - A = 0 Then
MsgBox "Kesempatan ke " & A & " Salah" & Chr(13) & _
"Nama '" & TxtNamaKsr & "' tidak dikenal" &
Chr(13) & _
"Kesempatan habis, Ulangi dari awal"
'End
Unload Me
End If
Else
'jika nama kasir benar, maka nama kasir menjadi false

46
TxtNamaKsr.Enabled = False
'password kasir menjadi true dan menjadi fokus kursor
TxtPasswordKsr.Enabled = True
TxtPasswordKsr.SetFocus
End If
End If
End Sub

'coding ini sama dengan nama kasir


Private Sub txtpasswordksr_KeyPress(Keyascii As Integer)
Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 27 Then Unload Me
Dim KodeKasir As String
Dim NamaKasir As String
If Keyascii = 13 Then
Call BukaDB
RSKasir.Open "Select * from Kasir where NamaKsr ='" &
TxtNamaKsr & "' and PasswordKsr='" & TxtPasswordKsr & "'",
Conn
If RSKasir.EOF Then
B=B+1
If 1 - B = 0 Then
MsgBox "Kesempatan ke " & B & " Salah"
TxtPasswordKsr = ""
TxtPasswordKsr.SetFocus
ElseIf 2 - B = 0 Then
MsgBox "Kesempatan ke " & B & " Salah"

47
TxtPasswordKsr = ""
TxtPasswordKsr.SetFocus
ElseIf 3 - B = 0 Then
MsgBox "Kesempatan ke " & B & " Salah"
'End
Unload Me
End If
Else
'jika nama dan password benar, maka...tutup form login
Unload Me
'panggil menu utama
Menu.Show
End If
End If
End Sub

Form Menu
Private Sub Form_KeyPress(Keyascii As Integer)
If Keyascii = 27 Then End
End Sub

Private Sub mnanggota_Click()


Anggota.Show
End Sub

Private Sub mnbuku_Click()


Buku.Show
End Sub

Private Sub mnkeluar_Click()

48
End
End Sub

Private Sub mnkembali_Click()


Kembali.Show
End Sub

Private Sub mnlapanggota_Click()


CR.ReportFileName = App.Path & "\Lap Anggota.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 0
End Sub

Private Sub mnlapbuku_Click()


CR.ReportFileName = App.Path & "\Lap Buku.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 0
End Sub

Private Sub mnlaptransaksi_Click()


Laporan.Show
End Sub

Private Sub mnpinjaman_Click()


Pinjam.Show
End Sub

Private Sub mnrinciankbl_Click()


RincianKbl.Show
End Sub

Private Sub mnrincianpjm_Click()


RincianPjm.Show
End Sub

Private Sub mnuji_Click()


UjiSQL.Show

49
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As


ComctlLib.Button)
Select Case Button.Key
Case "a"
Anggota.Show
Case "b"
Buku.Show
Case "c"
Pinjam.Show
Case "d"
Kembali.Show
Case "e"
CR.ReportFileName = App.Path & "\Lap anggota.rpt"
CR.WindowState = crptMaximized
CR.RetrieveData Files
CR.Action = 1
Case "f"
CR.ReportFileName = App.Path & "\Lap buku.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
Case "g"
Laporan.Show
Case "h"
RincianPjm.Show
Case "i"
RincianKbl.Show
Case "j"
End
End Select

End Sub
Form Anggota

Sub Form_Load()
Call BukaDB
TxtNomor.MaxLength = 4

50
TxtNama.MaxLength = 20
TxtAlamat.MaxLength = 20
TxtTelepon.MaxLength = 15
KondisiAwal
End Sub

Function CariData()
Call BukaDB
RSAnggota.Open "Select * From Anggota where
NomorAgt='" & TxtNomor & "'", Conn
End Function

Private Sub KosongkanText()


TxtNomor = ""
TxtNama = ""
TxtAlamat = ""
TxtTelepon = ""
End Sub

Private Sub SiapIsi()


TxtNomor.Enabled = True
TxtNama.Enabled = True
TxtAlamat.Enabled = True
TxtTelepon.Enabled = True
End Sub

Private Sub TidakSiapIsi()


TxtNomor.Enabled = False
TxtNama.Enabled = False
TxtAlamat.Enabled = False
TxtTelepon.Enabled = False
End Sub

Private Sub KondisiAwal()


KosongkanText
TidakSiapIsi
CmdInput.Caption = "&Input"
CmdEdit.Caption = "&Edit"
CmdHapus.Caption = "&Hapus"

51
CmdTutup.Caption = "&Tutup"
CmdInput.Enabled = True
CmdEdit.Enabled = True
CmdHapus.Enabled = True
End Sub

Private Sub TampilkanData()


With RSAnggota
If Not RSAnggota.EOF Then
TxtNama = RSAnggota!Namaagt
TxtAlamat = RSAnggota!AlamatAgt
TxtTelepon = RSAnggota!TeleponAgt
End If
End With
End Sub

Private Sub AutoNomor()


Call BukaDB
RSAnggota.Open ("select * from Anggota Where NomorAgt
In(Select Max(NomorAgt)From Anggota)Order By NomorAgt
Desc"), Conn
RSAnggota.Requery
Dim Urutan As String * 4
Dim Hitung As Long
With RSAnggota
If .EOF Then
Urutan = "A" + "001"
TxtNomor = Urutan
Else
Hitung = Right(!NomorAgt, 3) + 1
Urutan = "A" + Right("000" & Hitung, 3)
End If
TxtNomor = Urutan
End With
End Sub

Private Sub CmdInput_Click()


If CmdInput.Caption = "&Input" Then
CmdInput.Caption = "&Simpan"

52
CmdEdit.Enabled = False
CmdHapus.Enabled = False
CmdTutup.Caption = "&Batal"
SiapIsi
KosongkanText
Call AutoNomor
TxtNomor.Enabled = False
TxtNama.SetFocus
Else
If TxtNomor = "" Or TxtNama = "" Or TxtAlamat = "" Or
TxtTelepon = "" Then
MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
SQLTambah = "Insert Into Anggota
(NomorAgt,NamaAgt,AlamatAgt,TeleponAgt) values ('" &
TxtNomor & "','" & TxtNama & "','" & TxtAlamat & "','" &
TxtTelepon & "')"
Conn.Execute SQLTambah
KondisiAwal
End If
End If
End Sub

Private Sub CmdEdit_Click()


If CmdEdit.Caption = "&Edit" Then
CmdInput.Enabled = False
CmdEdit.Caption = "&Simpan"
CmdHapus.Enabled = False
CmdTutup.Caption = "&Batal"
SiapIsi
TxtNomor.SetFocus
Else
If TxtNama = "" Or TxtAlamat = "" Or TxtTelepon = ""
Then
MsgBox "Masih Ada Data Yang Kosong"
Else
Dim SQLEdit As String

53
SQLEdit = "Update Anggota Set NamaAgt= '" &
TxtNama & "', AlamatAgt='" & TxtAlamat & "',TeleponAgt='"
& TxtTelepon & "' where NomorAgt='" & TxtNomor & "'"
Conn.Execute SQLEdit
KondisiAwal
End If
End If
End Sub

Private Sub CmdHapus_Click()


If CmdHapus.Caption = "&Hapus" Then
CmdInput.Enabled = False
CmdEdit.Enabled = False
CmdTutup.Caption = "&Batal"
KosongkanText
SiapIsi
TxtNomor.SetFocus
End If
End Sub

Private Sub cmdtutup_Click()


Select Case CmdTutup.Caption
Case "&Tutup"
Unload Me
Case "&Batal"
TidakSiapIsi
KondisiAwal
End Select
End Sub

Private Sub TxtNomor_KeyPress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then
If Len(TxtNomor) < 4 Then
MsgBox "Kode Harus 4 Digit"
TxtNomor.SetFocus
Else
TxtNama.SetFocus
End If

54
If CmdInput.Caption = "&Simpan" Then
Call CariData
If Not RSAnggota.EOF Then
TampilkanData
MsgBox "Kode Anggota Sudah Ada"
KosongkanText
TxtNomor.SetFocus
Else
TxtNama.SetFocus
End If
End If

If CmdEdit.Caption = "&Simpan" Then


Call CariData
If Not RSAnggota.EOF Then
TampilkanData
TxtNomor.Enabled = False
TxtNama.SetFocus
Else
MsgBox "Kode Anggota Tidak Ada"
TxtNomor = ""
TxtNomor.SetFocus
End If
End If

If CmdHapus.Enabled = True Then


Call CariData
If Not RSAnggota.EOF Then
TampilkanData
Pesan = MsgBox("Yakin akan dihapus", vbYesNo)
If Pesan = vbYes Then
Dim SQLHapus As String
SQLHapus = "Delete From Anggota where
NomorAgt= '" & TxtNomor & "'"
Conn.Execute SQLHapus
KondisiAwal
Else
KondisiAwal
CmdHapus.SetFocus

55
End If
Else
MsgBox "Data Tidak ditemukan"
TxtNomor.SetFocus
End If
End If
End If
End Sub

Private Sub TxtNama_KeyPress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then TxtAlamat.SetFocus
End Sub

Private Sub TxtAlamat_keypress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then TxtTelepon.SetFocus
End Sub

Private Sub TxtTelepon_keypress(Keyascii As Integer)


If Keyascii = 13 Then
If CmdInput.Enabled = True Then
CmdInput.SetFocus
ElseIf CmdEdit.Enabled = True Then
CmdEdit.SetFocus
End If
End If
If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or
Keyascii = vbKeyBack) Then Keyascii = 0
End Sub
Form Buku

Sub Form_Load()
Call BukaDB
TxtNomor.MaxLength = 4
TxtJudul.MaxLength = 30
TxtPengarang.MaxLength = 20
TxtPenerbit.MaxLength = 30
TxtTahun.MaxLength = 4

56
TxtStok.MaxLength = 3
KondisiAwal
End Sub

Function CariData()
Call BukaDB
RSBuku.Open "Select * From Buku where NomorBk='" &
TxtNomor & "'", Conn
End Function

Private Sub KosongkanText()


TxtNomor = ""
TxtJudul = ""
TxtPengarang = ""
TxtPenerbit = ""
TxtTahun = ""
TxtStok = ""
End Sub

Private Sub SiapIsi()


TxtNomor.Enabled = True
TxtJudul.Enabled = True
TxtPengarang.Enabled = True
TxtPenerbit.Enabled = True
TxtTahun.Enabled = True
TxtStok.Enabled = True
End Sub

Private Sub TidakSiapIsi()


TxtNomor.Enabled = False
TxtJudul.Enabled = False
TxtPengarang.Enabled = False
TxtPenerbit.Enabled = False
TxtTahun.Enabled = False
TxtStok.Enabled = False
End Sub

Private Sub KondisiAwal()


KosongkanText

57
TidakSiapIsi
CmdInput.Caption = "&Input"
CmdEdit.Caption = "&Edit"
CmdHapus.Caption = "&Hapus"
CmdTutup.Caption = "&Tutup"
CmdInput.Enabled = True
CmdEdit.Enabled = True
CmdHapus.Enabled = True
End Sub

Private Sub TampilkanData()


With RSBuku
If Not RSBuku.EOF Then
TxtJudul = RSBuku!Judul
TxtPengarang = RSBuku!Pengarang
TxtPenerbit = RSBuku!Penerbit
TxtTahun = RSBuku!Tahun
TxtStok = RSBuku!Stok
End If
End With
End Sub

Private Sub AutoNomor()


Call BukaDB
RSBuku.Open ("select * from Buku Where NomorBk In(Select
Max(NomorBk)From Buku)Order By NomorBk Desc"), Conn
RSBuku.Requery
Dim Urutan As String * 4
Dim Hitung As Long
With RSBuku
If .EOF Then
Urutan = "B" + "001"
TxtNomor = Urutan
Else
Hitung = Right(!NomorBk, 3) + 1
Urutan = "B" + Right("000" & Hitung, 3)
End If
TxtNomor = Urutan
End With

58
End Sub

Private Sub CmdInput_Click()


If CmdInput.Caption = "&Input" Then
CmdInput.Caption = "&Simpan"
CmdEdit.Enabled = False
CmdHapus.Enabled = False
CmdTutup.Caption = "&Batal"
SiapIsi
KosongkanText
Call AutoNomor
TxtNomor.Enabled = False
TxtJudul.SetFocus
Else
If TxtNomor = "" Or TxtJudul = "" Or TxtPengarang = ""
Or TxtPenerbit = "" Or TxtTahun = "" Or TxtStok = "" Then
MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
SQLTambah = "Insert Into Buku
(NomorBk,Judul,Pengarang,Penerbit,tahun,Stok) values ('" &
TxtNomor & "','" & TxtJudul & "','" & TxtPengarang & "','" &
TxtPenerbit & "','" & TxtTahun & "','" & TxtStok & "')"
Conn.Execute SQLTambah
KondisiAwal
End If
End If
End Sub

Private Sub CmdEdit_Click()


If CmdEdit.Caption = "&Edit" Then
CmdInput.Enabled = False
CmdEdit.Caption = "&Simpan"
CmdHapus.Enabled = False
CmdTutup.Caption = "&Batal"
SiapIsi
TxtNomor.SetFocus
Else

59
If TxtJudul = "" Or TxtPengarang = "" Or TxtPenerbit =
"" Or TxtTahun = "" Or TxtStok = "" Then
MsgBox "Masih Ada Data Yang Kosong"
Else
Dim SQLEdit As String
SQLEdit = "Update Buku Set Judul= '" & TxtJudul & "',
pengarang='" & TxtPengarang & "',penerbit='" & TxtPenerbit
& "', tahun='" & TxtTahun & "',stok='" & TxtStok & "' where
NomorBk='" & TxtNomor & "'"
Conn.Execute SQLEdit
KondisiAwal
End If
End If
End Sub

Private Sub CmdHapus_Click()


If CmdHapus.Caption = "&Hapus" Then
CmdInput.Enabled = False
CmdEdit.Enabled = False
CmdTutup.Caption = "&Batal"
KosongkanText
SiapIsi
TxtNomor.SetFocus
End If
End Sub

Private Sub cmdtutup_Click()


Select Case CmdTutup.Caption
Case "&Tutup"
Unload Me
Case "&Batal"
TidakSiapIsi
KondisiAwal
End Select
End Sub

Private Sub TxtNomor_KeyPress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then

60
If Len(TxtNomor) < 4 Then
MsgBox "Kode Harus 4 Digit"
TxtNomor.SetFocus
Else
TxtJudul.SetFocus
End If

If CmdInput.Caption = "&Simpan" Then


Call CariData
If Not RSBuku.EOF Then
TampilkanData
MsgBox "Kode Buku Sudah Ada"
KosongkanText
TxtNomor.SetFocus
Else
TxtJudul.SetFocus
End If
End If

If CmdEdit.Caption = "&Simpan" Then


Call CariData
If Not RSBuku.EOF Then
TampilkanData
TxtNomor.Enabled = False
TxtJudul.SetFocus
Else
MsgBox "Kode Buku Tidak Ada"
TxtNomor = ""
TxtNomor.SetFocus
End If
End If

If CmdHapus.Enabled = True Then


Call CariData
If Not RSBuku.EOF Then
TampilkanData
Pesan = MsgBox("Yakin akan dihapus", vbYesNo)
If Pesan = vbYes Then
Dim SQLHapus As String

61
SQLHapus = "Delete From Buku where
NomorBk= '" & TxtNomor & "'"
Conn.Execute SQLHapus
KondisiAwal
Else
KondisiAwal
CmdHapus.SetFocus
End If
Else
MsgBox "Data Tidak ditemukan"
TxtNomor.SetFocus
End If
End If
End If
End Sub

Private Sub txtjudul_KeyPress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then TxtPengarang.SetFocus
End Sub

Private Sub txtpengarang_keypress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then TxtPenerbit.SetFocus
End Sub

Private Sub txtpenerbit_keypress(Keyascii As Integer)


Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 13 Then TxtTahun.SetFocus
End Sub

Private Sub txttahun_keypress(Keyascii As Integer)


If Keyascii = 13 Then TxtStok.SetFocus
If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or
Keyascii = vbKeyBack) Then Keyascii = 0
End Sub

Private Sub txtstok_keypress(Keyascii As Integer)


If Keyascii = 13 Then

62
If CmdInput.Enabled = True Then
CmdInput.SetFocus
ElseIf CmdEdit.Enabled = True Then
CmdEdit.SetFocus
End If
End If
If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or
Keyascii = vbKeyBack) Then Keyascii = 0
End Sub

Form Kembali

Private Sub Form_Activate()


DT.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
App.Path & "\ADOPustaka.mdb"
DT.RecordSource = "Transaksi1"
Set DG1.DataSource = DT
DG1.Refresh
Call AutoNomor
LblTanggalKbl.Caption = Date
'LblTanggalKbl.Caption = Format(Date, "dd-mm-yyyy")
Call Tabel_Kosong
DT.Recordset.MoveFirst
DG1.Col = 1
LblDenda = 0
LblKembali = 0
TxtDibayar = 0
End Sub

Private Sub Form_Load()


Call BukaDB
End Sub

Private Sub AutoNomor()


Call BukaDB
RSKembali.Open "select * from Kembali Where NomorKbl
In(Select Max(NomorKbl)From Kembali)Order By NomorKbl
Desc", Conn

63
RSKembali.Requery
Dim Urutan As String * 8
Dim Hitung As Long
With RSKembali
If .EOF Then
Urutan = Format(Date, "yymmdd") + "01"
LblNomorKbl = Urutan
Else
If Left(!NomorKbl, 6) <> Format(Date, "yymmdd")
Then
Urutan = Format(Date, "yymmdd") + "01"
Else
Hitung = (!NomorKbl) + 1
Urutan = Format(Date, "yymmdd") + Right("00" &
Hitung, 2)
End If
End If
LblNomorKbl = Urutan
End With
End Sub

Private Sub LblDenda_Change()


If LblDenda = 0 Then
CmdSimpan.Enabled = True
Else
CmdSimpan.Enabled = False
End If
End Sub

Private Sub TxtNomorAgt_KeyPress(Keyascii As Integer)


On Error Resume Next
TxtNomorAgt.MaxLength = 4
Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 27 Then Unload Me
If Keyascii = 13 Then
Call BukaDB
RSAnggota.Open "Select * from anggota where
nomoragt='" & TxtNomorAgt & "'", Conn

64
If Not RSAnggota.EOF Then
LblNamaAgt.Caption = RSAnggota!Namaagt
DG1.SetFocus
DG1.Col = 1
Else
MsgBox "Nomor anggota tidak terdaftar"
TxtNomorAgt.SetFocus
Exit Sub
End If
Call Pinjaman
If LbltelahPjm = "" Or LbltelahPjm = 0 Then
MsgBox "'" & LblNamaAgt & "' tidak punya pinjaman"
TxtNomorAgt.SetFocus
Exit Sub
End If
End If
End Sub

Sub Pinjaman()
DTCari.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
App.Path & "\ADOPustaka.mdb"
DTCari.RecordSource = "Select Distinct
Detailpjm.Nomorpjm,Buku.Nomorbk,Judul,Tanggalpjm,
(Tanggalpjm+4) As Harus_Kembali,Jumlahbk, (Date()-
Tanggalpjm)+1 As Lmpinjam_Hari From
Anggota,Pinjam,Buku,Detailpjm Where
Buku.Nomorbk=Detailpjm.Nomorbk And
Pinjam.Nomorpjm=Left(Detailpjm.Nomorpjm,8) And
Anggota.Nomoragt=Pinjam.Nomoragt And
Anggota.Nomoragt='" & TxtNomorAgt & "'"
DTCari.Refresh
DG2.Refresh
LbltelahPjm.Caption = DTCari.Recordset.RecordCount
End Sub

Private Sub TxtDibayar_KeyPress(Keyascii As Integer)


If Keyascii = 13 Then
If TxtDibayar = "" And LblDenda <> 0 Then

65
MsgBox "jumlah pembayaran kosong"
TxtDibayar.SetFocus
Exit Sub
ElseIf Val(TxtDibayar) = LblDenda Then
LblKembali = 0
CmdSimpan.Enabled = True
CmdSimpan.SetFocus
Exit Sub
ElseIf Val(TxtDibayar) < LblDenda Then
MsgBox "jumlah pembayaran kurang"
TxtDibayar.SetFocus
Exit Sub
ElseIf Val(TxtDibayar) > LblDenda Then
LblKembali = Val(TxtDibayar) - LblDenda
CmdSimpan.Enabled = True
CmdSimpan.SetFocus
ElseIf TxtDibayar = "" And LblDenda = 0 Then
LblKembali = 0
CmdSimpan.Enabled = True
CmdSimpan.SetFocus
End If
End If
If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or
Keyascii = vbKeyBack) Then Keyascii = 0
End Sub

Private Sub CmdSimpan_Keypress(Keyascii As Integer)


If Keyascii = 27 Then
CmdSimpan.Enabled = False
TxtDibayar = ""
TxtDibayar.SetFocus
End If
End Sub

Private Sub cmdSimpan_Click()


If LblTotalKbl.Caption = "" Then
MsgBox "Tidak ada transaksi pengembalian"
TxtNomorAgt.SetFocus
Exit Sub

66
End If

'simpan ke tabel kembali


Dim SQLInput1 As String
SQLInput1 = "Insert Into
kembali(Nomorkbl,Tanggalkbl,Totalkbl,Nomoragt,denda,Diba
yar,kembali)" & _
"values('" & LblNomorKbl & "','" & LblTanggalKbl & "','" &
LblTotalKbl & "','" & TxtNomorAgt & "','" & LblDenda & "','" &
TxtDibayar & "','" & LblKembali & "')"
Conn.Execute (SQLInput1)

'simpan ke tabel detailkbl


DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!NomorPjm <> vbNullString Then
Dim SQLInput2 As String
SQLInput2 = "Insert Into
Detailkbl(Nomorkbl,Nomorbk,Jumlahbk) " & _
"values ('" & LblNomorKbl + DT.Recordset!Nomor & "','"
& DT.Recordset!NomorBk & "','" & DT.Recordset!Jumlah & "')"
Conn.Execute (SQLInput2)
End If
DT.Recordset.MoveNext
Loop

'penambahan Jumlah buku


DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!NomorPjm <> vbNullString Then
Call BukaDB
RSBuku.Open "Select * from Buku where Nomorbk='" &
DT.Recordset!NomorBk & "'", Conn
If Not RSBuku.EOF Then
Dim Tambah As String
Tambah = "update buku set stok='" & RSBuku!Stok +
DT.Recordset!Jumlah & "' where nomorbk='" & DT.Recordset!
NomorBk & "'"
Conn.Execute (Tambah)

67
End If
End If
DT.Recordset.MoveNext
Loop

'hapus pinjaman
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!NomorPjm <> vbNullString Then
Call BukaDB
RSDetailPjm.Open "Select * from detailpjm where
nomorpjm='" & DT.Recordset!NomorPjm & "'", Conn
If Not RSDetailPjm.EOF Then
Dim hapus As String
hapus = "delete from detailpjm where nomorpjm ='"
& DT.Recordset!NomorPjm & "'"
Conn.Execute (hapus)
End If
End If
DT.Recordset.MoveNext
Loop

'kurangi pinjaman
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!NomorPjm <> vbNullString Then
Call BukaDB
RSPinjam.Open "Select * from pinjam where
nomorpjm='" & Left(DT.Recordset!NomorPjm, 8) & "'", Conn
If Not RSPinjam.EOF Then
Dim kurangi As String
kurangi = "update pinjam set totalpjm= '" &
RSPinjam!TotalPjm - DT.Recordset!Jumlah & " ' where
nomorpjm='" & Left(DT.Recordset!NomorPjm, 8) & "' and
nomoragt='" & TxtNomorAgt & "'"
Conn.Execute (kurangi)
End If
End If
DT.Recordset.MoveNext

68
Loop

Bersihkan
Form_Activate
cmdbatal_Click
End Sub

Sub Bersihkan()
TxtNomorAgt = ""
LblNamaAgt.Caption = ""
LblTotalKbl.Caption = ""
LbltelahPjm.Caption = ""
LblDenda = 0
TxtDibayar = 0
LblKembali.Caption = 0
End Sub

Function Tabel_Kosong()
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
DT.Recordset.Delete
DT.Recordset.MoveNext
Loop
For i = 1 To 1
DT.Recordset.AddNew
DT.Recordset!Nomor = i
DT.Recordset.Update
Next i
End Function

Function TotalKbl()
DT.Recordset.MoveFirst
A=0
Do While Not DT.Recordset.EOF And DT.Recordset!Jumlah <>
vbNullString
A = A + DT.Recordset!Jumlah
DT.Recordset.MoveNext
LblTotalKbl = A
Loop

69
End Function

Function JmlDenda()
DT.Recordset.MoveFirst
A=0
Do While Not DT.Recordset.EOF And DT.Recordset!NomorPjm
<> vbNullString
A = A + DT.Recordset!Denda
DT.Recordset.MoveNext
LblDenda = A
Loop
End Function

Private Sub cmdbatal_Click()


Call Bersihkan
Call Pinjaman
TxtNomorAgt.SetFocus
Form_Activate
End Sub

Private Sub cmdtutup_Click()


Unload Me
End Sub

Function Tambah_Baris()
For i = DT.Recordset.RecordCount To
DT.Recordset.RecordCount
DT.Recordset.AddNew
DT.Recordset!Nomor = i + 1
DT.Recordset.Update
Next i
End Function

Function Kurangi_Baris()
For i = DT.Recordset.RecordCount To
DT.Recordset.RecordCount
DT.Recordset.Delete
DT.Recordset.Update
Next i

70
End Function

Private Sub DG1_Keypress(Keyascii As Integer)


On Error Resume Next
Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 27 Then
DT.Recordset!NomorPjm = Null
DT.Recordset!NomorBk = Null
DT.Recordset!Judul = Null
DT.Recordset!Tanggal = Null
DT.Recordset!Jumlah = Null
DT.Recordset.Update
LblTotalKbl = Format(TotalKbl, "#,###,###")
Call Kurangi_Baris
End If
End Sub

Private Sub DG2_KeyDown(KeyCode As Integer, Shift As


Integer)
Select Case KeyCode
Case vbKeyReturn
Call BukaDB
Dim cari As New ADODB.Recordset
cari.Open "select * from transaksi1 where nomorpjm= '" &
DTCari.Recordset!NomorPjm & "'", Conn
If Not cari.EOF Then
MsgBox "data jangan dientri dua kali"
Exit Sub
Else
Call SelectAllVisible
End If
End Select
End Sub

Sub SelectAllVisible()
'On Error Resume Next
'pengembalian buku dicari berdasarkan nomor pinjam di
grid2
'cukup dengan cara memilih baris kemudian menekan enter

71
DT.Recordset!NomorPjm = DG2.Columns(0)
DT.Recordset!NomorBk = DG2.Columns(1)
DT.Recordset!Judul = DG2.Columns(2)
DT.Recordset!Tanggal = DG2.Columns(3)
DT.Recordset!Jumlah = DG2.Columns(5)

'jika lama pinjam lebih dari 5 hari


'maka hari keenam dikenakan denda
'sebesar 500 / hari (harga denda per hari dapat diubah)
If CDate(DT.Recordset!Tanggal) + 5 > 5 Then
DT.Recordset!Denda = (CDate(LblTanggalKbl) -
(DT.Recordset!Tanggal) - 4) * 500 * DT.Recordset!Jumlah
End If

If DT.Recordset!Denda <= 0 Then


DT.Recordset!Denda = 0
End If

Call Tambah_Baris
DT.Recordset.MoveNext
DG1.Col = 1
DT.Recordset.MoveLast
'LblTotalKbl = Format(TotalKbl, "#,###,###")
Call TotalKbl
Call JmlDenda
'LblDenda = Str(JmlDenda)
End Sub

Form Lamporan

Private Sub Form_Load()


Call BukaDB
RSPinjam.Open "Select Distinct TanggalPjm From Pinjam
order By 1", Conn
RSPinjam.Requery
Do Until RSPinjam.EOF
Combo1.AddItem RSPinjam!TanggalPjm
Combo2.AddItem Format(RSPinjam!TanggalPjm, "YYYY
,MM, DD")

72
Combo3.AddItem Format(RSPinjam!TanggalPjm, "YYYY
,MM, DD")
RSPinjam.MoveNext
Loop
Conn.Close

Call BukaDB
Dim RSTGLPJM As New ADODB.Recordset
RSTGLPJM.Open "select distinct month(TanggalPjm) as Bulan
from Pinjam", Conn
Do While Not RSTGLPJM.EOF
Combo4.AddItem RSTGLPJM!Bulan & Space(5) &
MonthName(RSTGLPJM!Bulan)
RSTGLPJM.MoveNext
Loop
Conn.Close

Call BukaDB
Dim RSTHNPJM As New ADODB.Recordset
RSTHNPJM.Open "select distinct year(TanggalPjm) as Tahun
from Pinjam", Conn
Do While Not RSTHNPJM.EOF
Combo5.AddItem RSTHNPJM!Tahun
RSTHNPJM.MoveNext
Loop
Conn.Close

Call BukaDB
RSKembali.Open "Select Distinct TanggalKbl From Kembali
order By 1", Conn
RSKembali.Requery
Do Until RSKembali.EOF
'Combo6.AddItem Format(RSKembali!TanggalKbl, "DD-
MMM-YYYY")
Combo6.AddItem RSKembali!TanggalKbl
Combo7.AddItem Format(RSKembali!TanggalKbl, "YYYY
,MM, DD")
Combo8.AddItem Format(RSKembali!TanggalKbl, "YYYY
,MM, DD")

73
RSKembali.MoveNext
Loop
Conn.Close

Call BukaDB
Dim RSTGLKBL As New ADODB.Recordset
RSTGLKBL.Open "select distinct month(TanggalKbl) as Bulan
from Kembali", Conn
Do While Not RSTGLKBL.EOF
Combo9.AddItem RSTGLKBL!Bulan & Space(5) &
MonthName(RSTGLKBL!Bulan)
RSTGLKBL.MoveNext
Loop
Conn.Close

Call BukaDB
Dim RSTHNKBL As New ADODB.Recordset
RSTHNKBL.Open "select distinct year(TanggalKbl) as Tahun
from Kembali", Conn
Do While Not RSTHNKBL.EOF
Combo10.AddItem RSTHNKBL!Tahun
RSTHNKBL.MoveNext
Loop
Conn.Close

End Sub

Private Sub Combo1_Keypress(Keyascii As Integer)


If Combo1 = "" Or Keyascii = 27 Then Unload Me
End Sub

'laporan peminjaman

'Lap Harian
Private Sub Combo1_Click()
CR.SelectionFormula = "Totext({Pinjam.TanggalPjm})='" &
Combo1 & "'"

74
'CR.ReportFileName = App.Path & "\Lap Pinjam Harian.rpt"
CR.ReportFileName = App.Path & "\Lap Pinjam Harian.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

Private Sub Combo2_Keypress(Keyascii As Integer)


If Keyascii = 27 Then Unload Me
End Sub

'Lap Mingguan (Tgl Antara)


Private Sub Combo3_Click()
If Combo2 = "" Then
MsgBox "TanggalPjm awal kosong", , "Informasi"
Combo2.SetFocus
Exit Sub
End If
CR.SelectionFormula = "{Pinjam.TanggalPjm} in date (" &
Combo2.Text & ") to date (" & Combo3.Text & ")"
CR.ReportFileName = App.Path & "\Lap Pinjam
Mingguan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

Private Sub Combo4_Keypress(Keyascii As Integer)


If Keyascii = 27 Then Unload Me
End Sub

'Lap Bulanan
Private Sub Combo5_Click()
Call BukaDB
RSPinjam.Open "select * from Pinjam where
month(TanggalPjm)='" & Val(Combo4) & "' and
year(TanggalPjm)='" & (Combo5) & "'", Conn
If RSPinjam.EOF Then
MsgBox "Data tidak ditemukan"

75
Exit Sub
Combo4.SetFocus
End If

CR.SelectionFormula = "Month({Pinjam.TanggalPjm})=" &


Val(Combo4.Text) & " and Year({Pinjam.TanggalPjm})=" &
Val(Combo5.Text)
CR.ReportFileName = App.Path & "\Lap Pinjam
Bulanan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

'laporan pengembalian buku

Private Sub Combo6_Keypress(Keyascii As Integer)


If Combo6 = "" Or Keyascii = 27 Then Unload Me
End Sub

'Lap Harian
Private Sub Combo6_Click()
CR.SelectionFormula = "Totext({Kembali.TanggalKbl})='"
& Combo6 & "'"
CR.ReportFileName = App.Path & "\Lap Kembali
Harian.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

Private Sub combo7_Keypress(Keyascii As Integer)


If Keyascii = 27 Then Unload Me
End Sub

'Lap Mingguan (Tgl Antara)


Private Sub combo8_Click()

76
If Combo7 = "" Then
MsgBox "TanggalKbl awal kosong", , "Informasi"
Combo7.SetFocus
Exit Sub
End If
CR.SelectionFormula = "{Kembali.TanggalKbl} in date (" &
Combo7.Text & ") to date (" & Combo8.Text & ")"
CR.ReportFileName = App.Path & "\Lap Kembali
Mingguan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

Private Sub combo9_Keypress(Keyascii As Integer)


If Keyascii = 27 Then Unload Me
End Sub

'Lap Bulanan
Private Sub combo10_Click()
Call BukaDB
RSKembali.Open "select * from Kembali where
month(TanggalKbl)='" & Val(Combo9) & "' and
year(TanggalKbl)='" & (Combo10) & "'", Conn
If RSKembali.EOF Then
MsgBox "Data tidak ditemukan"
Exit Sub
Combo9.SetFocus
End If

CR.SelectionFormula = "Month({Kembali.TanggalKbl})=" &


Val(Combo9.Text) & " and Year({Kembali.TanggalKbl})=" &
Val(Combo10.Text)
CR.ReportFileName = App.Path & "\Lap Kembali
Bulanan.rpt"
CR.WindowState = crptMaximized
CR.RetrieveDataFiles
CR.Action = 1
End Sub

77
Form Pinjaman

Private Sub Form_Activate()


'hubungkan objek adodc ke database
DT.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
App.Path & "\ADOPustaka.mdb"
'hubungkan objek adodc ke tabel
DT.RecordSource = "Transaksi"
'sumber data untuk grid1 adalah data dalam objek
Set DG1.DataSource = DT
'grid di-refresh
DG1.Refresh
'panggil file database
Call BukaDB
'buka tabel buku dan tampilkan kode dan judlnya di list
sebelah kanan
RSBuku.Open "SELECT * FROM BUKU WHERE STOK >0",
Conn
List1.Clear
Do Until RSBuku.EOF
List1.AddItem RSBuku!Judul & Space(50) & RSBuku!
NomorBk
RSBuku.MoveNext
Loop
'tampilkan nomor pinjam otomatis
Call AutoNomor
LblTanggal.Caption = Format(Date, "dd-mm-yyyy")
Call Tabel_Kosong
DT.Recordset.MoveFirst
DG1.Col = 1
End Sub

'cari nomor pinjaman terakhir


Private Sub AutoNomor()
Call BukaDB

78
RSPinjam.Open "select * from Pinjam Where NomorPjm
In(Select Max(NomorPjm)From Pinjam)Order By NomorPjm
Desc", Conn
RSPinjam.Requery
Dim Urutan As String * 8
Dim Hitung As Long
With RSPinjam
If .EOF Then
Urutan = Format(Date, "yymmdd") + "01"
LblNomorPjm = Urutan
Else
If Left(!NomorPjm, 6) <> Format(Date, "yymmdd")
Then
Urutan = Format(Date, "yymmdd") + "01"
Else
Hitung = (!NomorPjm) + 1
Urutan = Format(Date, "yymmdd") + Right("00" &
Hitung, 2)
End If
End If
LblNomorPjm = Urutan
End With
End Sub

Private Sub TxtNomorAgt_KeyPress(Keyascii As Integer)


TxtNomorAgt.MaxLength = 4
Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 27 Then Unload Me
If Keyascii = 13 Then
Call BukaDB
'cari nomor anggota yang diketik
RSAnggota.Open "Select * from anggota where
nomoragt='" & TxtNomorAgt & "'", Conn
'jika ditemukan
If Not RSAnggota.EOF Then
'tampilkan namanya
LblNamaAgt.Caption = RSAnggota!Namaagt
DG1.SetFocus
DG1.Col = 1

79
Else
'jika tidak ditemukan, munculkan pesan
MsgBox "Nomor anggota tidak terdaftar"
TxtNomorAgt.SetFocus
Exit Sub
End If

Call Pinjaman

'batas-batas peminjaman
If LbltelahPjm = 0 Or LbltelahPjm = "" Then
Pesan = MsgBox(" " & LblNamaAgt & " Silahkan Pinjam
Maksimal " & 4 & " Buku", 0, "Informasi Peminjaman Buku")
DG1.SetFocus
DG1.Col = 1
ElseIf LbltelahPjm = 1 Then
Pesan = MsgBox(" " & LblNamaAgt & " Boleh Meminjam
" & 3 & " Buku Lagi", 0, "Informasi Peminjaman Buku")
DG1.SetFocus
DG1.Col = 1
Exit Sub
ElseIf LbltelahPjm = 2 Then
Pesan = MsgBox(" " & LblNamaAgt & " Boleh Meminjam
" & 2 & " Buku Lagi", 0, "Informasi Peminjaman Buku")
DG1.SetFocus
DG1.Col = 1
Exit Sub
ElseIf LbltelahPjm = 3 Then
Pesan = MsgBox(" " & LblNamaAgt & " Boleh Meminjam
" & 1 & " Buku Lagi", 0, "Informasi Peminjaman Buku")
DG1.SetFocus
DG1.Col = 1
Exit Sub
ElseIf LbltelahPjm >= 4 Then
Pesan = MsgBox(" " & LblNamaAgt & " Tidak Boleh
Meminjam Lagi...!", 0, "Informasi Peminjaman")
LbltelahPjm = ""
LblNamaAgt = ""
TxtNomorAgt.SetFocus
Exit Sub

80
End If
End If
End Sub

Sub Pinjaman()
DTCari.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
App.Path & "\ADOPustaka.mdb"
DTCari.RecordSource = "Select
Buku.Nomorbk,Judul,Jumlahbk From
Anggota,Pinjam,Buku,Detailpjm Where
Buku.Nomorbk=Detailpjm.Nomorbk And
Pinjam.Nomorpjm=Left(Detailpjm.Nomorpjm,8) And
Anggota.Nomoragt=Pinjam.Nomoragt And
Anggota.Nomoragt='" & TxtNomorAgt & "'"
DTCari.Refresh
DG2.Refresh
LbltelahPjm.Caption = DTCari.Recordset.RecordCount
End Sub

'transaksi peminjaman dlam grid1


Private Sub DG1_AfterColEdit(ByVal ColIndex As Integer)
If DG1.Col = 1 Then
Call BukaDB
Dim RS As New ADODB.Recordset
RS.Open "Select * from transaksi where kode='" &
DT.Recordset!KODE & "'", Conn
If Not RS.EOF Then
MsgBox "Kode buku sudah dientri sebelumnya"
Exit Sub
End If
'cari kode buku
RSBuku.Open "Select * from Buku where NomorBK='" &
DT.Recordset!KODE & "'", Conn
'jika tidak ditemukan, munculkan pesan
If RSBuku.EOF Then
Pesan = MsgBox("Kode Buku Tidak Terdaftar")
DG1.Col = 1
Exit Sub

81
End If
'jika ditemukan, tampilkan nomor dan judul buku
DT.Recordset!KODE = RSBuku!NomorBk
DT.Recordset!Judul = RSBuku!Judul
'jumlah pinjam asumsinya 1 buku
DT.Recordset!Jumlah = 1
'pindah ke baris berikutnya
Call Tambah_Baris
DT.Recordset.MoveNext
DG1.Col = 1
DT.Recordset.MoveLast
'tampilkan jumlah total pinjaman
LblTotalPjm.Caption = DT.Recordset.RecordCount - 1
End If

If DG1.Col = 3 Then
DT.Recordset!Jumlah = DT.Recordset!Jumlah
DT.Recordset.Update
DT.Recordset.MoveNext
DG1.Refresh
DG1.Col = 1
LblTotalPjm.Caption = DT.Recordset.RecordCount - 1
End If

If Val(LbltelahPjm) + Val(LblTotalPjm) = 4 Then


MsgBox "pinjaman sudah masimal"
DG1.AllowAddNew = False
DG1.AllowUpdate = False
CmdSimpan.SetFocus
Exit Sub
'jika jumlah telah pinjam dan pinjaman sekarang lebih dari 4,
'munculkan pesan bahwa pinjaman telah maksimal
ElseIf Val(LbltelahPjm) + Val(LblTotalPjm) > 4 Then
MsgBox "pinjaman melebihi batas, edit jumlah pinjaman"
DG1.AllowAddNew = True
DG1.AllowUpdate = True
DG1.SetFocus
CmdSimpan.SetFocus
Exit Sub

82
End If
End Sub

Private Sub cmdSimpan_Click()


'jika total pinjaman belum ada, tampilkan pesan
If LblTotalPjm.Caption = "" Then
MsgBox "Tidak ada transaksi peminjaman"
TxtNomorAgt.SetFocus
Exit Sub
End If

'simpan ke tabel pinjam


Dim SQLInput1 As String
SQLInput1 = "Insert Into
Pinjam(Nomorpjm,TanggalPjm,TotalPjm,Nomoragt)" & _
"values('" & LblNomorPjm.Caption & "','" &
LblTanggal.Caption & "','" & LblTotalPjm.Caption & "','" &
TxtNomorAgt & "')"
Conn.Execute (SQLInput1)

'simpan ke tabel detailpjm


DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!KODE <> vbNullString Then
Dim SQLInput2 As String
SQLInput2 = "Insert Into
DetailPjm(Nomorpjm,Nomorbk,Jumlahbk) " & _
"values ('" & LblNomorPjm.Caption + DT.Recordset!
Nomor & "','" & DT.Recordset!KODE & "','" & DT.Recordset!
Jumlah & "')"
Conn.Execute (SQLInput2)
End If
DT.Recordset.MoveNext
Loop

'Pengurangan Jumlah buku


DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
If DT.Recordset!KODE <> vbNullString Then

83
Call BukaDB
RSBuku.Open "Select * from Buku where Nomorbk='" &
DT.Recordset!KODE & "'", Conn
If Not RSBuku.EOF Then
Dim kurangi As String
kurangi = "update buku set stok='" & RSBuku!Stok -
DT.Recordset!Jumlah & "' where nomorbk='" & DT.Recordset!
KODE & "'"
Conn.Execute (kurangi)
End If
End If
DT.Recordset.MoveNext
Loop
Bersihkan
Form_Activate
cmdbatal_Click
End Sub

Sub Bersihkan()
TxtNomorAgt = ""
LblNamaAgt.Caption = ""
LblTotalPjm.Caption = ""
LbltelahPjm.Caption = ""
End Sub

Function Tabel_Kosong()
DT.Recordset.MoveFirst
Do While Not DT.Recordset.EOF
DT.Recordset.Delete
DT.Recordset.MoveNext
Loop
For i = 1 To 1
DT.Recordset.AddNew
DT.Recordset!Nomor = i
DT.Recordset.Update
Next i
End Function

Private Sub cmdbatal_Click()

84
Form_Activate
TxtNomorAgt = ""
LblNamaAgt = ""
LblTotalPjm = ""
LbltelahPjm = ""
DG1.Enabled = True
Call Pinjaman
TxtNomorAgt.SetFocus
End Sub

Private Sub cmdtutup_Click()


Unload Me
End Sub

Function Tambah_Baris()
For i = DT.Recordset.RecordCount To
DT.Recordset.RecordCount
DT.Recordset.AddNew
DT.Recordset!Nomor = i + 1
DT.Recordset.Update
Next i
End Function

Function Kurangi_Baris()
For i = DT.Recordset.RecordCount To
DT.Recordset.RecordCount
DT.Recordset.Delete
DT.Recordset.Update
Next i
End Function

'jika menekan ESC dalam grid transaksi


'data akan hilang (dibatalkan) dan baris berkurang
Private Sub DG1_Keypress(Keyascii As Integer)
On Error GoTo salah

Keyascii = Asc(UCase(Chr(Keyascii)))
If Keyascii = 27 Then
DT.Recordset!KODE = Null

85
DT.Recordset!Judul = Null
DT.Recordset!Jumlah = Null
DT.Recordset.Update
Call Kurangi_Baris
LblTotalPjm.Caption = DT.Recordset.RecordCount - 1
End If
On Error GoTo 0
Exit Sub
salah:
cmdbatal_Click
End Sub

Private Sub List1_keyPress(Keyascii As Integer)


If Keyascii = 13 Then
If DG1.SelText <> Right(List1, 4) Then
DG1.SelText = Right(List1, 4)
DT.Recordset.Update
Call BukaDB

'Call BukaDB
Dim cari As New ADODB.Recordset
cari.Open "select * from transaksi where KODE= '" &
Right(List1, 4) & "'", Conn
'cari.Open "select * from transaksi where KODE= '" &
DT.Recordset!KODE & "'", Conn
If Not cari.EOF Then
MsgBox "data jangan dientri dua kali"
Exit Sub
Else
' Call SelectAllVisible
'End If

RSBuku.Open "Select * from Buku where nomorBk


='" & Right(List1, 4) & "'", Conn
RSBuku.Requery
If Not RSBuku.EOF Then
DT.Recordset!KODE = RSBuku!NomorBk
DT.Recordset!Judul = RSBuku!Judul
DT.Recordset!Jumlah = 1
Call Tambah_Baris

86
DT.Recordset.MoveNext
DG1.Col = 1
DT.Recordset.MoveLast
'LblTotalPjm.Caption = Format(TotalPjm, "##")
LblTotalPjm.Caption =
DT.Recordset.RecordCount - 1

If Val(LbltelahPjm) + Val(LblTotalPjm) = 4 Then


MsgBox "Pinjaman Sudah Maksimal"
DG1.AllowAddNew = False
DG1.AllowUpdate = False
CmdSimpan.SetFocus
Exit Sub
'jika jumlah telah pinjam dan pinjaman sekarang
lebih dari 4,
'munculkan pesan bahwa pinjaman telah
maksimal
ElseIf Val(LbltelahPjm) + Val(LblTotalPjm) > 4
Then
MsgBox "Pinjaman melebihi batas, edit
jumlah pinjaman"
DG1.SetFocus
CmdSimpan.SetFocus
Exit Sub
End If
End If
End If
End If
End If
End Sub

Form Rincian KBL

Private Sub Form_Load()


On Error Resume Next
Call BukaDB
List1.Clear
RSKembali.Open "Select Distinct NomorKbl from Kembali ",
Conn

87
Do Until RSKembali.EOF
List1.AddItem RSKembali!NomorKbl
RSKembali.MoveNext
Loop
Conn.Close
End Sub

Private Sub list1_click()


Call BukaDB
Conn.CursorLocation = adUseClient
RSKembali.Open "select * from Kembali where NomorKbl='"
& List1.Text & "'", Conn
RSKembali.Requery

If Not RSKembali.EOF Then LblTanggal = RSKembali!


TanggalKbl

RSAnggota.Open "select * from Anggota where NomorAgt='"


& RSKembali!NomorAgt & "'", Conn
If Not RSAnggota.EOF Then LblAnggota = RSAnggota!
Namaagt
Conn.Close

Adodc1.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
App.Path & "\ADOPustaka.mdb"
Adodc1.RecordSource = "select Judul, jumlahbk as
Jumlah,Denda from Buku,detailKbl,Kembali where
DetailKbl.Nomorbk=Buku.Nomorbk and
left(detailKbl.NomorKbl,8)=Kembali.NomorKbl and
Kembali.NomorKbl='" & List1 & "'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
LblJumlah = Adodc1.Recordset.RecordCount
Call JmlDenda
End Sub

Private Sub List1_keyPress(Keyascii As Integer)

88
If Keyascii = 27 Then Unload Me
End Sub

Sub JmlDenda()
Adodc1.Recordset.MoveFirst
Denda = 0
Do While Not Adodc1.Recordset.EOF
Denda = Denda + Adodc1.Recordset!Denda
Adodc1.Recordset.MoveNext
Loop
LblDenda = Denda
End Sub
Form RincianPJM

Private Sub Form_Load()


On Error Resume Next
Call BukaDB
List1.Clear
RSPinjam.Open "Select Distinct NomorPjm from Pinjam
where totalpjm<>0", Conn
Do Until RSPinjam.EOF
List1.AddItem RSPinjam!NomorPjm
RSPinjam.MoveNext
Loop
Conn.Close

End Sub

Private Sub list1_click()


Call BukaDB
Conn.CursorLocation = adUseClient
RSPinjam.Open "select * from Pinjam where NomorPjm='" &
List1.Text & "'", Conn
RSPinjam.Requery

If Not RSPinjam.EOF Then Tanggal = RSPinjam!TanggalPjm

RSAnggota.Open "select * from Anggota where NomorAgt='"


& RSPinjam!NomorAgt & "'", Conn

89
If Not RSAnggota.EOF Then Anggota = RSAnggota!Namaagt
Conn.Close

Adodc1.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " &
App.Path & "\ADOPustaka.mdb"
Adodc1.RecordSource = "select Judul, jumlahbk as Jumlah
from Buku,detailpjm,Pinjam where
DetailPjm.Nomorbk=Buku.Nomorbk and
left(detailPjm.NomorPjm,8)=Pinjam.NomorPjm and
Pinjam.NomorPjm='" & List1 & "'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
Jumlah = Adodc1.Recordset.RecordCount
End Sub

Private Sub List1_keyPress(Keyascii As Integer)


If Keyascii = 27 Then Unload Me
End Sub

90
Biodata Penulis 1
Nama Lengkap : Nanda Firdausi Nuzula
Tempat/Tgl Lahir: Bogor,07-Juli-1999
Sekolah : SMA Plus PGRI Cibinong
Kelas : XI IPS 2

Agama : Islam

Pekerjaan : Pelajar

Jenis Kelamin: Laki-Laki

E-mail : Nfirdaus002@gmail.com

91
Biodata Penulis 1

Nama Lengkap : Fauzi Rahman


Tempat/Tgl Lahir: Bogor,02-juni-1999
Sekolah : SMA Plus PGRI Cibinong
Kelas : XI IPS 1

Agama : Islam

Pekerjaan : Pelajar

Jenis Kelamin: Laki-Laki

E-mail : Fauzirahmanfr03@gmail.com

92