TA Riri Maiyuliani 2009-94293.pdf
-
Upload
uchi-chayy -
Category
Documents
-
view
133 -
download
11
Transcript of TA Riri Maiyuliani 2009-94293.pdf
vi
vii xi xiii xv xvii
“PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN
SMP NEGERI 1 KEC. MUNGKA KAB. LIMA PULUH KOTA”
TUGAS AKHIR
Diajukan Untuk Memenuhi Sebagian Persyaratan Memperoleh
Gelar Sarjana Pendidikan
DISUSUN OLEH :
RIRI MAIYULIANI
NIM. 94293/2009
PENDIDIKAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2012
x
xii xiv xiv
PERSETUJUAN TUGAS AKHIR
PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN SMP NEGERI 1 KEC. MUNGKA KAB. LIMA PULUH KOTA
Nama : Riri Maiyuliani
Nim : 94293
Program Studi : Pendidikan Teknik Informatika
Jurusan : Teknik Elektronika
Fakultas : Teknik
Padang, Januari 2012
Disetujui Oleh :
Pembimbing I Pembimbing II
Muhammad Adri, S. Pd, MT Dony Novaliendry, S. Kom, M. Kom Nip : 19750514 200003 1 001 Nip :19751104 200604 1 002
Mengetahui,
Ketua Jurusan Teknik Elektronika
FT UNP
Drs. Putra Jaya, MT NIP. 19621020 198602 1 001
ii
vi
vii xi xiii xv xvii
PENGESAHAN
Dinyatakan lulus setelah dipertahankan di depan Tim Penguji Tugas Akhir Program Studi Pendidikan Teknik Informatika Jurusan Teknik Elektronika
Fakultas Teknik Universitas Negeri Padang
Judul : Perancangan Sistem Informasi Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
Nama : Riri Maiyuliani
Nim : 94293
Program Studi : Pendidikan Teknik Informatika
Jurusan : Teknik Elektronika
Fakultas : Teknik
Padang, Januari 2012
Tim Penguji
Nama Tanda Tangan
1. Ketua : Drs. Efrizon, MT 1
2. Sekretaris : Muhammad Adri, S. Pd, MT 2
3. Anggota : Dony Novaliendry, S. Kom, M. Kom 3
4. Anggota : Nurindah Dwiyani, S. Pd, MT 4
5. Anggota : Yasdinul Huda, S. Pd, MT 5
iii
x
xii xiv xiv
MOTTO DAN PERSEMBAHAN
MOTTO
Sukses tidak diukur dari posisi yang dicapai seseorang dalam hidup, tetapi diukur
dari kesulitan-kesulitan yang berhasil diatasi ketika berusaha meraih sukses.
Adakah hal yang lebih menyedihkan daripada pekerjaan yang
belum selesai? Ada, yaitu pekerjaan yang tidak pernah dimulai.
Anything is possible if you really want to!
Sesungguhnya sesudah kesulitan itu ada kemudahan. (QS. Al-Insyiroh: 6)
Dan bahwasanya seorang manusia tiada memperoleh selain apa yang telah
diusahakannya. (QS. An- Najm : 39)
iv
vi
vii xi xiii xv xvii
PERSEMBAHAN
Karya ini ku persembahkan untuk:
1. Ibu dan Ayah, yang selalu membimbingku dan memberikan doa serta
motivasi tanpa lelah,
2. Keluarga besarku, yang telah memberikan pengertian, bantuan dan
dukungan selama ini,
3. Teman seperjuanganku, Keluargaku “BJJ 09”, Teman, kakak, adik di FTR
09”, Fotocopy Andeslim beserta uda-udanya, semoga Allah membalas
kebaikan kalian semua amin..
4. Teman, sahabat yang sudah dianggap sebagai keluarga sendiri Nadia
(Gapai cita-citamu, JEPANG !!!), Yosi Azwan (Master, tarimo kasih
banyak :D), ferica, Eel, ica, mbah Drubicza, kak Rossi, Ayu, Rica Amelia,
nelma, pipit (bu’ Alumni), rifka, kak Fitri dan bang Tata, nur, leni,
terima kasih *salam hormat.
5. Almamaterku UNP khususnya Fakultas Teknik yang menjadi
kebanggaanku.
6. Dan semua teman baik yang kenal maupun yang tiba-tiba kenal
mendadak hehehe.. terima kasih banyak..
Silaturahim with me ya.. @Facebook : Riri Maiyuliani @Email :[email protected] @Twitter :Maymunah99 @Blog :ririmaiyuliani.wordpress.com
x
xii xiv xiv
SURAT PERNYATAAN
Dengan ini Saya menyatakan bahwa Skripsi ini benar-benar karya Saya
sendiri. Sepanjang pengetahuan Saya tidak terdapat karya atau pendapat yang
ditulis atau diterbitkan orang lain kecuali sebagai acuan atau kutipan dengan
mengikuti tata penulisan ilmiah yang lazim.
Padang, Januari 2012
Yang menyatakan,
Riri Maiyuliani
vi
vi
vii xi xiii xv xvii
ABSTRAK
Riri Maiyuliani: Perancangan Sistem Informasi Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
Peran perpustakaan sebagai salah satu sarana untuk dapat mengakses
berbagai sumber ilmu pengetahuan menuntut adanya kemudahan proses peminjaman dan pengembalian buku serta data buku. Selama ini komputer yang ada di perpustakaan pada SMP Negeri 1 Kec. Mungka, Kab. Lima Puluh Kota, digunakan sebagai alat untuk mencetak kartu dan surat-surat lainnya. Proses peminjaman, pengembalian atau aktivitas transaksi perpustakaan masih dan belum memanfaatkan komputer yang ada. Dengan teknologi komputer serta aplikasi software yang mendukung, diharapkan dapat menggantikan sistem pustaka lama yang masih manual menjadi sistem yang terkomputerisasi untuk memudahkan proses transaksi yang berhubungan dengan perpustakaan. Penelitian ini merupakan jenis penelitian pengembangan perancangan aplikasi. Penelitian pengembangan adalah penelitian yang dilakukan untuk menemukan dan mengembangkan suatu prototipe baru atau yang sudah ada dalam rangka menyempurnakan dan mengembangkan sehingga, diperoleh hasil yang lebih baik. Dari hasil penelitian pengembangan aplikasi ini, mempermudah proses transaksi yang berhubungan dengan perpustakaan yaitu, proses peminjaman, pengembalian dan data buku yang tadinya menggunakan cara manual menjadi sistem yang terkomputerisasi.
Kata Kunci: Perancangan Sistem Informasi, Perpustakaan, Manual, Aplikasi Software
x
xii xiv xiv
KATA PENGANTAR
Puji syukur kehadirat Allah SWT atas petunjuk dan hidayah-Nya sehingga tugas
akhir ini dapat terselesaikan dengan baik. Keberhasilan penyusunan tugas akhir
ini tidak terlepas dari bantuan dan dukungan dari berbagai pihak. Oleh karena itu,
dalam kesempatan ini penulis mengucapkan terima kasih kepada:
1. Bapak Drs. H. Ganefri, M. Pd, Ph. D selaku Dekan Fakultas Teknik.
2. Bapak Drs. Putra Jaya, MT dan Bapak Yasdinul Huda, S. Pd, MT selaku
Ketua Jurusan dan Sekretaris Jurusan Teknik Elektronika.
3. Bapak Muhammad Adri, S. Pd, MT selaku Ketua Program Studi
Pendidikan Teknik Informatika, sekaligus sebagai pembimbing I yang
telah memberikan bimbingan, meluangkan waktu, fikiran sehingga
penulis bisa menyelesaikan tugas akhir ini.
4. Bapak Dony Novaliendry, S. Kom, M. Kom selaku pembimbing II yang
telah memberikan bimbingan, waktu dan fikiran sehingga penulis bisa
menyelesaikan Tugas Akhir ini.
5. Bapak Drs. Efrizon, MT, Ibu Nurindah Dwiyani, S. Pd, MT, Bapak
Yasdinul Huda, S. Pd, MT selaku penguji Tugas Akhir.
6. Seluruh staf pengajar, tenaga labor, tenaga administrasi Jurusan Teknik
Elektronika.
7. Bapak Asri, S. Pd selaku kepala sekolah SMP Negeri 1 Kec. Mungka,
yang telah memberikan izin untuk melakukan penelitian disekolah.
vi
vii xi xiii xv xvii
8. Seluruh guru dan karyawan tata usaha serta karyawan perpustakaan SMP
Negeri 1 Kec. Mungka.
9. Semua pihak yang tidak dapat penulis sebutkan satu per satu, yang telah
membantu penyusunan tugas akhir ini.
Penulis menyadari bahwa dalam penyusunan tugas akhir ini masih banyak
kekurangan. Saran dan kritik yang membangun akan penulis terima demi
perbaikan penyusunan di masa yang akan datang. Akhir kata, semoga tugas akhir
ini dapat bermanfaat bagi yang berkepentingan.
Padang, Januari 2012
Penulis
x
xii xiv xiv
DAFTAR ISI
Halaman
HALAMAN JUDUL ...................................................................................... i
PERSETUJUAN ............................................................................................ ii
PENGESAHAN ........................................................................................... iii
PERSEMBAHAN ........................................................................................ iv
SURAT PERNYATAAN ............................................................................. vi
ABSTRAK .................................................................................................. vii
KATA PENGANTAR ................................................................................ viii
DAFTAR ISI ................................................................................................. x
DAFTAR TABEL ..................................................................................... xiii
DAFTAR GAMBAR .................................................................................. xiv
DAFTAR LAMPIRAN .................................................................................xix
BAB I PENDAHULUAN
A. Latar Belakang Masalah ........................................................... 2
B. Identifikasi Masalah .................................................................. 3
C. Batasan Masalah ........................................................................ 3
D. Rumusan Masalah ..................................................................... 4
E. Tujuan Penelitian ....................................................................... 4
F. Kegunaan Penelitian .................................................................. 5
G. Metodologi Penelitian ..................................................................5
vi
vii xi xiii xv xvii
BAB II LANDASAN TEORI
A. Pengertian Sistem ..................................................................... 8
B. Pengertian Informasi ................................................................10
C. Pengertian Sistem Informasi .................................................... 11
D. Siklus Hidup Pengembangan Sistem (SDLC) .......................... 12
E. Konsep Dasar Tentang Jaringan ............................................... 15
F. Konsep Dasar Tentang Perpustakaan ....................................... 15
1. Pengertian Perpustakaan Sekolah ....................................... 15
2. Fungsi Perpustakaan Sekolah ............................................ 16
3. Klasifikasi Buku Perpustakaan .......................................... 17
G. Alat Bantu Pengembangan Sistem .......................................... 20
1. Aliran Sistem Informasi (ASI) .......................................... 20
2. Context Diagram dan Data Flow Diagram (DFD) ............ 21
3. Entity Relationship Diagram (ERD) ................................. 23
4. Program Flowchart (Aliran Program) ............................... 24
H. Konsep Dasar Database MySQL 25
I. Konsep Dasar Bahasa Pemrograman Java ............................... 28
1. Sekilas Tentang Java ......................................................... 28
2. Keuntungan Menggunakan Java ........................................ 32
3. Integrated Development Environment (IDE) NetBeans ..... 34
4. Sekilas Tentang XAMPP..................................................... 35
BAB III ANALISIS DAN PERANCANGAN SISTEM
A. Jenis Penelitian ........................................................................ 40
B. Analisis Sistem Yang Sedang Berjalan .................................... 40
C. Aliran Sistem Informasi (ASI) Yang Sedang Berjalan ............. 41
D. Usulan Sistem Baru ................................................................. 42
E. Desain Sistem .......................................................................... 43
1. Desain Global ................................................................... 44
a. Aliran Sistem Informasi Perpustakaan Baru . .............. 44
x
xii xiv xiv
b. Context Diagram ......................................................... 46
c. Data Flow Diagram (DFD) Level 0 ............................ 47
d. Entity Relationship Diagram (ERD) ............................ 50
e. Desain File .................................................................. 52
f. Struktur Program ......................................................... 55
2. Desain Terinci .................................................................. 56
a. Desain Output ............................................................. 57
b. Desain Input ................................................................ 58
c. Logika Program (Flowchart) ...................................... .61
BAB IV IMPLEMENTASI SISTEM
A. Perancangan Implementasi Sistem ........................................... 71
B. Hasil Uji Coba dan Pembahasan .............................................. 72
1. Program Server ................................................................. 72
a. Tampilan Login ..............................................................72
b. Menu Kepustakaan .......................................................118
c. MenuLaporan................................................................135
2. Program Client ...................................................................149
BAB V PENUTUP
A. Kesimpulan ........................................................................... 152
B. Saran-saran ............................................................................ 153
DAFTAR PUSTAKA
LAMPIRAN
vi
vii xi xiii xv xvii
DAFTAR TABEL
Tabel Halaman
1. Simbol-simbol Aliran Sistem Informasi (ASI) ......................................... .... 21
2. Simbol-simbol Data Flow Diagram (DFD) .............................................. .... 22
3. Aturan Umum Penulisan Data Flow Diagram (DFD) .............................. .... 23
4. Simbol-simbol Entity Relationship Diagram (ERD) ................................. ..... 23
5. Simbol-simbol Flowchart ........................................................................ ..... 24
6. Fungsi MySQL ........................................................................................ ..... 28
7. Desain File Buku ..................................................................................... ..... 52
8. Desain File Kategori Buku ...................................................................... ..... 53
9. Desain File Peminjaman Buku ................................................................ ..... 53
10. Desain File Anggota ................................................................................ ..... 54
11. Desain File User ...................................................................................... ..... 54
x
xii xiv xiv
DAFTAR GAMBAR
Gambar Halaman
1. Karakteristik Sistem. .................................................................................. ..... 10
2. Siklus Informasi ........................................................................................ ..... 11
3. Siklus Hidup Pengembangan Sistem ......................................................... ..... 13
4. Aliran Proses Kompilasi dan Eksekusi Program Java ................................ ..... 33
5. Tampilan Java NetBeans 6.8 ..................................................................... ..... 35
6. Tampilan Home XAMPP ............................................................................ ..... 39
7. Aliran Sistem Informasi (ASI) Lama Perpustakaan SMP Negeri 1
Kec. Mungka ............................................................................................. ..... 43
8. Aliran Sistem Informasi (ASI) Baru Perpustakaan SMP Negeri 1
Kec. Mungka ............................................................................................. ..... 45
9. Context Diagram........................................................................................ ..... 47
10. Data Flow Diagram (DFD) Level 0 ........................................................... ..... 49
11. Entity Relationship Diagram (ERD) ........................................................... ..... 50
12. Struktur Program........................................................................................ ..... 56
13. Desain Output Laporan Buku ..................................................................... ..... 57
14. Desain Output Laporan Peminjaman .......................................................... ..... 57
15. Tampilan Login .......................................................................................... ..... 58
16. Desain Input Kategori Buku ....................................................................... ..... 58
17. Desain Input Buku ..................................................................................... ..... 59
18. Desain Input Data Anggota Pustaka ........................................................... ..... 59
vi
vii xi xiii xv xvii
19. Desain Input Data Peminjaman Buku ......................................................... ..... 60
20. Desain Input Data Pengembalian Buku ...................................................... ..... 60
21. Desain Tampilan Pencarian Buku ............................................................... ..... 61
22. Flowchart Menu Utama ............................................................................. ..... 62
23. Flowchart Kategori Buku ........................................................................... ..... 63
24. Flowchart Buku ......................................................................................... ..... 64
25. Flowchart Anggota Pustaka ....................................................................... ..... 65
26. Flowchart Peminjaman Buku ..................................................................... ..... 66
27. Flowchart Pengembalian Buku .................................................................. ..... 67
28. Flowchart Laporan Buku ........................................................................... ..... 68
29. Flowchart Laporan Peminjaman Buku ....................................................... ..... 69
30. Tampilan Login .......................................................................................... ..... 72
31. Tampilan Menu Utama............................................................................... ..... 75
32. Tampilan Konfirmasi Tombol Keluar ......................................................... ..... 76
33. Tampilan Menu File Kategori Buku ........................................................... ..... 77
34. Tampilan Kotak Dialog Konfirmasi Tombol Simpan Pada Menu File
Kategori Buku ............................................................................................ ..... 79
35. Tampilan Kotak Dialog Konfirmasi Data Berhasil disimpan ...................... ..... 79
36. Tampilan Menu Kategori Buku Setelah Proses Simpan Data ...................... ..... 80
37. Tampilan Proses Mengubah Data Pada Menu File Kategori Buku .............. ..... 81
38. Tampilan Kotak Dialog Konfirmasi Data Beerhasil diubah ........................ ..... 83
39. Tampilan Menu Kategori Buku Setelah Proses Ubah ................................. ..... 84
40. Tampilan Proses Penghapusan Data Pada Menu File Kategori Buku .......... ..... 85
x
xii xiv xiv
41. Tampilan Kotak Dialog Data Berhasil disimpan ......................................... ..... 86
42. Tampilan Menu File Kategori Buku Setelah Proses Hapus ........................ ..... 87
43. Tampilan Proses Reset Data Pada Menu File Kategori Buku ..................... ..... 88
44. Tampilan Proses Keluar Pada Menu File Kategori Buku ........................... ..... 89
45. Tampilan Menu File Buku ......................................................................... ..... 90
46. Tampilan Proses Penginputan Data Buku .................................................. ..... 91
47. Tampilan Kotak Dialog Data Berhasil disismpan Pada Menu File
Buku ......................................................................................................... ..... 93
48. Tampilan Menu Proses Simpan Data Buku ................................................ ..... 94
49. Tampilan Kotak Dialog Proses Ubah Data Pada Menu File Buku ............... ..... 95
50. Tampilan Kotak Dialog Data Berhasil diubah ........................................... ..... 97
51. Tampilan Proses Ubah Data Pada Menu File Buku .................................... ..... 98
52. Tampilan Kotak Dialog Hapus Data Buku ................................................. ..... 99
53. Tampilan Kotak Dialog Data Berhasil dihapus .......................................... .... 100
54. Tampilan Proses Hapus Data Pada Menu File Buku .................................. .... 101
55. Tampilan Kotak Dialog Reset Data Buku .................................................. .... 102
56. Tampilan Kotak Dialog Keluar Data Buku ................................................ .... 103
57. Tampilan Menu File Anggota Pustaka ....................................................... .... 104
58. Tampilan Kotak Dialog Simpan Data Anggota .......................................... .... 107
59. Tampilan Koatak Dialog Data Anggota Berhasil disimpan ........................ .... 108
60. Tampilan Proses Simpan Menu File Anggota Pustaka ............................... .... 109
61. Tampilan Kotak Dialog Ubah Data Anggota ............................................. .... 111
62. Tampilan Kotak Dialog Data Anggota Berhasil Diubah ............................ .... 111
vi
vii xi xiii xv xvii
63. Tampilan Proses Ubah Data Anggota Pustaka ........................................... .... 112
64. Tampilan Kotak Dialog Proses Hapus Data Anggota Pustaka .................... .... 113
65. Tampilan Kotak Dialog Data Anggota Pustaka Berhasil dihapus ............... .... 114
66. Tampilan Proses Hapus Data Anggota Pustaka .......................................... .... 115
67. Tampilan Proses Reset Data Anggota Pustaka ........................................... .... 116
68. Tampilan Kotak Dialog Proses Keluar File Menu Data Anggota
Pustaka ..................................................................................................... .... 117
69. Tampilan Menu Kepustakaan Peminjaman Buku ...................................... .... 118
70. Tampilan Kotak Dialog Proses Simpan Pada Data Peminjaman Buku
.................................................................................................................. .... 120
71. Tampilan Proses Simpan Data Peminjaman Buku ..................................... .... 121
72. Tampilan Proses Ubah Data Peminjaman Buku ......................................... .... 122
73. Tampilan Kotak Dialog Proses Hapus Data Peminjaman Buku ................. .... 124
74. Tampilan Proses Hapus Data Peminjaman Buku ....................................... .... 124
75. Tampilan Proses Reset Data Peminjaman Buku ........................................ .... 125
76. Tampilan Proses Keluar Data Peminjaman Buku ....................................... .... 126
77. Tampilan Menu Kepustakaan Pengembalian Buku .................................... .... 127
78. File Menu Laporan Buku .......................................................................... .... 135
79. Tampilan Laporan Buku ............................................................................ .... 136
80. File Menu Laporan Peminjaman Buku ....................................................... .... 137
81. Tampilan Laporan Peminjaman Buku ....................................................... .... 138
82. File Menu Laporan Peminjaman Buku/ 3Bulan .......................................... .... 139
83. Halaman Tampilan Laporan Peminjaman Buku/ 3 Bulan ........................... .... 142
x
xii xiv xiv
84. File Menu Laporan Peminjaman Buku/ 6 Bulan ......................................... .... 143
85. Halaman Tampilan Laporan Peminjaman Buku/ 6 Bulan ........................... .... 146
86. File Menu Laporan Peminjaman Buku/ Tahun ........................................... .... 146
87. Halaman Tampilan Laporan Peminjaman Buku/ Tahun .............................. .... 148
88. Tampilan Program Client Cari Buku .......................................................... .... 149
vi
vii xi xiii xv xvii
DAFTAR LAMPIRAN
Lampiran Halaman
1. Lampiran 1. Listing Program Login .............................................................. .... 157
2. Lampiran 2. Listing Program Menu Utama .................................................. .... 160
3. Lampiran 3. Listing Program Kategori Buku ................................................. .... 162
4. Lampiran 4. Listing Program Buku ............................................................... .... 171
5. Lampiran 5. Listing Program Anggota Pustaka ............................................. .... 183
6. Lampiran 6. Listing Program Peminjaman Buku .......................................... .... 203
7. Lampiran 7. Listing ProgramPengembalian Buku ........................................ .... 207
8. Lampiran 8. Listing Program Laporan Buku ................................................. .... 214
9. Lampiran 9. Listing Program Laporan Peminjaman Buku/ Bulan .................. .... 215
10. Lampiran 10. Listing Program Laporan Peminjaman Buku/ 3Bulan .............. .... 217
11. Lampiran 11. Listing Program Laporan Peminjaman Buku/ 6Bulan ............. .... 220
12. Lampiran 12. Listing Program Laporan Peminjaman Buku/ Tahun .............. .... 223
13. Lampiran 13. Listing Program Pencarian Buku ............................................. .... 225
x
xii xiv xiv
BAB I
PENDAHULUAN
A. Latar Belakang Masalah
Ilmu pengetahuan dan teknologi selalu mengalami perkembangan secara
dinamis, salah satu dari sekian banyak perkembangan teknologi adalah komputer.
Komputer sebagai alat bantu manusia memiliki kelebihan diantaranya kecepatan,
keakuratan, serta keefisienan dalam pengolahan data dibandingkan dengan sistem
manual.
Pengolahan data menjadi terkomputerisasi inilah yang sangat dibutuhkan
untuk membantu dalam penyampaian informasi sacara cepat tepat dan akurat.
Komputer sudah merambat dalam berbagai bidang, baik dalam dunia kerja
maupun dunia pendidikan.
Dalam institusi pendidikan selalu membutuhkan sistem untuk
mengumpulkan, mengelola, menyimpan, melihat kembali dan menyalurkan
informasi. Komputer merupakan salah satu sarana yang dapat membantu kegiatan
tersebut. Hasilnya sistem informasi berdasarkan komputer akan mempunyai nilai
lebih dari pada sistem yang diolah secara manual, seperti pada suatu organisasi
yang memiliki jumlah data cukup banyak maka perlu penanganan khusus.
Sekolah Menengah Pertama Negeri 1 Kec. Mungka, adalah salah satu
sekolah menengah pertama yang belum memakai sistem informasi berbasis
komputer pada bagian perpustakaannya, di mana sistem pengolahan datanya
sampai saat ini masih bersifat manual.
vi
vii xi xiii xv xvii
Sistem manual ini membuat lambatnya informasi data yang dihasilkan. Hal
ini dianggap kurang efisien, karena dalam pencatatan data secara manual akan
membutuhkan waktu yang lama. Sehingga sering terjadi kesalahan dalam
pencarian data. Seperti dalam pencarian data buku, data peminjam, data
pengembalian.
Sistem ini memerlukan sebuah sistem yang dapat mempermudah dalam
pengolahan data buku, data peminjam buku, dan data pengembalian buku dengan
menggunakan sistem komputer yang lebih komprehensif sehingga dapat
menampilkan informasi data-data perpustakan secara cepat, tepat dan akurat.
Berdasarkan latar belakang yang telah dikemukakan di atas maka penulis
merasa tertarik untuk melakukan penelitian dengan judul “PERANCANGAN
SISTEM INFORMASI PERPUSTAKAAN SMP. NEGERI 1 KEC.
MUNGKA KAB. LIMA PULUH KOTA”.
B. Identifikasi Masalah
Berdasarkan latar belakang masalah yang dikemukakan dapat di
identifikasi masalah sebagai berikut:
1. Sistem pengelolaan data perpustakaan masih manual.
2. Bagaimana merancang sistem informasi dengan menggunakan bahasa
pemrograman Java, Integrated Development Environment (IDE)
NetBeans.
C. Batasan Masalah
Berdasarkan identifikasi masalah, maka batasan masalah dibatasi pada
perancangan sistem informasi perpustakaan pada SMP Negeri 1 Kec. Mungka
Kab. Lima Puluh Kota, yang terdiri dari proses peminjaman dan pengembalian
x
xii xiv xiv
buku, data buku, data anggota dan laporan buku dan peminjaman buku dengan
menggunaan bahasa pemrograman Java, Integrated Development
Environment (IDE) NetBeans.
D. Rumusan Masalah
Berdasarkan batasan masalah, maka rumusan masalahnya adalah,
“Bagaimana merancang sistem perpustakaan yang tadinya manual menjadi
sebuah sistem terkomputerisasi dapat memberikan manfaat terutama bagi
anggota perpustakaan dan pegawai pustaka pada SMP Negeri 1 Kec. Mungka,
Kab. Lima Puluh Kota Puluh Kota ? ”.
E. Tujuan Penelitian
Adapun tujuan dari perancangan sistem informasi perpustakaan ini adalah
sebagai berikut :
1. Menggantikan sistem pustaka lama yang masih manual menjadi sistem
yang terkomputerisasi untuk memudahkan proses transaksi yang
berhubungan dengan perpustakaan.
2. Sistem informasi yang baru ini dapat memberikan informasi tentang buku
yang tersedia pada perpustakaan SMP Negeri 1 Kec. Mungka.
3. Sistem Informasi yang baru ini dapat memudahkan pekerjaan pegawai
pustaka dalam melakukan transaksi peminjaman, pengembalian buku dan
menginvetarisasi buku-buku perpustakaan
F. Kegunaan Penelitian
Adapun kegunaan dari perancangan sistem informasi perpustakaan ini
adalah sebagai berikut :
vi
vii xi xiii xv xvii
1. Bagi anggota perpustakaan
Memudahkan proses peminjaman, pengembalian buku dan bisa
mengetahui dengan mudah buku yang ada diperpustakaan.
2. Bagi pegawai pustaka
a. Memudahkan dalam proses pencatatan transaksi kepustakaan
b. Tidak memerlukan arsip berupa kertas yang banyak
c. Memudahkan mendata anggota pustaka
3. Bagi Guru
Dengan adanya kemudahan dalam proses peminjaman buku, maka
kegiatan PBM (Proses Belajar Mengajar) jadi lancar karena ditunjang oleh
buku-buku yang sesuai dengan pelajaran yang diajarkan.
G. Metodologi Penelitian
Untuk memperoleh data-data sehubungan dengan penulisan tugas akhir
ini penulis melakukan beberapa penelitian yaitu:
1. Penelitian Lapangan (Field Research)
Penelitian lapangan (Field Research) dilakukan dengan cara
meninjau langsung objek yang diteliti agar tercapainya tujuan dan hasil
yang maksimal. Adapun sistematikanya adalah sebagai berikut :
a. Observasi
Observasi merupakan cara mengumpulkan data dengan melakukan
pengamatan langsung dan disampaikan sebagai dasar dalam merancang
sistem informasi yang nantinya akan menunjang dalam pembuatan
sistem informasi yang baru.
x
xii xiv xiv
b. Wawancara
Wawancara adalah mengumpulkan data dengan cara komunikasi
langsung dengan pihak yang bersangkutan (pegawai pustaka dan
beberapa siswa) agar mendapatkan suatu hasil rancangan dan informasi
yang nantinya akan menjadi penunjang dalam perancangan sistem.
2. Penelitian kepustakaan (Library Research)
Penelitian kepustakaan adalah penelitian yang dilakukan dengan
mempelajari buku-buku, literatur-literatur dan sumber bacaan lainnya
yang erat hubungannya dengan penelitian yang dilakukan.
3. Penelitian Laboratorium (Laboratory Research)
Penelitian laboratorium (Laboratory Research) adalah penelitian
yang dilakukan di dalam pembuatan program, pengetikan, pengeditan
serta menguji rancangan sesuai dengan kebutuhan. Perangkat yang
digunakan untuk aplikasi ini adalah sebagai berikut :
a. Hardware (perangkat keras) yang digunakan adalah 1 unit laptop
dengan spesifikasi sebagai berikut :
1. Processor Intel Core ™ 2 Duo
2. Memory RAM : 3.00 GB
3. Monitor 15”
4. Keyboard
5. Mouse
vi
vii xi xiii xv xvii
b. Software (perangkat lunak) yaitu :
1. Windows Vista Home Premium
2. Microsoft Office Word
3. Software JAVA NetBeans IDE 6.8
4. Software DataBase MySQL
5. Tool XAMPP
6. Microsoft Visio
x
xii xiv xiv
BAB II
LANDASAN TEORI
A. Pengertian Sistem
Pada dasarnya, sistem berasal dari bahasa Yunani systema yang berarti
kesatuan, yakni keseluruhan dari bagian-bagian yang mempunyai hubungan
satu sama lain.
Menurut Jogiyanto (2005: 1) sistem adalah “suatu jaringan kerja dari
prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk
melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu”.
Lebih lanjut, Menurut Leman (1998: 2) “Sistem terdiri dari komponen-
komponen yang saling berkaitan dan bekerja sama untuk mencapai suatu
tujuan. Sistem terdiri dari sistem alamiah (sistem tata surya, sistem galaksi)
dan sistem yang dibuat manusia (sistem penjualan, sistem akuntansi)”.
Jadi, dari beberapa pengertian diatas maka sistem adalah sekumpulan
unsur/ elemen yang saling berkaitan dan saling mempengaruhi dalam
melakukan kegiatan bersama untuk mencapai suatu tujuan. Sebagai contoh,
dalam sistem komputer terdapat software (perangkat lunak), hardware
(perangkat keras), dan brainware (sumber daya manusia).
Karakteristik sistem:
1. Komponen-komponen Sistem ( Component )
Komponen sistem yang saling bekerja sama untuk membentuk suatu
kesatuan.
vi
vii xi xiii xv xvii
2. Batasan Sistem ( Boundary )
Merupakan daerah yang membatasi antara suatu sistem dengan sistem
yang lainnya atau lingkungan luarnya. Batas suatu sistem menunjukkan
ruang lingkup (scope) dari sistem tersebut.
3. Lingkungan Luar Sistem ( Environment )
Lingkungan luar sitem adalah apapun diluar batas sistem yang
mempengaruhi operasi sistem dan dapat bersifat menguntungkan atau
merugikan sistem.
4. Penghubung Sistem ( Interface )
Merupakan media penghubung antara satu subsistem dengan subsistem
lainnya dan dapat mengintegrasikan sub sistem-sistem yang ada pada
sistem.
5. Masukan Sistem ( Input )
Energi yang dimasukkan ke dalam sistem yang diterima oleh sistem dari
lingkungan luar untuk mencapai tujuan.
6. Keluaran Sistem ( Output )
Hasil dari energi yang telah diolah dan diklasifikasikan menjadi keluaran
yang berguna dari sisa pembuangan, hasil dari sistem dapat berupa
laporan, grafik atau gambar.
7. Pengolahan Sistem ( Proccess )
Bagian yang memproses masukan data menjadi keluaran yang berupa
informasi yang sesuai dengan keinginan penerima.
x
xii xiv xiv
8. Sasaran Sistem ( Object )
Sasaran dari sistem sangat menentukan sekali terhadap masukan yang
dibutuhkan sistem dan keluaran yang dihasilkan sistem.
Gambar 1. Karakteristik Sistem Sumber : Yogiyanto (2005: 6)
B. Pengertian Informasi
Informasi ibarat darah yang mengalir di dalam tubuh suatu organisasi
sehingga informasi sangat penting di dalam suatu organisasi. Informasi itu
sendiri adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih
berarti bagi yang menerimanya.
Menurut Yogiyanto (2005: 8) “Informasi merupakan data yang telah
diproses ke dalam suatu bentuk yang mempunyai arti bagi sipenerima dan
mempunyai nilai nyata serta terasa bagi keputusan saat itu atau keputusan
yang akan datang”.
vi
vii xi xiii xv xvii
Informasi yang berkualitas ditentukan oleh beberapa faktor, yaitu:
1. Akurat (Accurate)
Informasi harus bebas dari kesalahan-kesalahan, jelas maksudnya karena
pada saat penyampaian dari pengirim ke penerima kemungkinan terjadi
banyak gangguan (noise) dapat mengubah atau merusak informasi.
2. Tepat waktu (Timeliness)
Informasi datang ke penerima tidak boleh terlambat.
3. Relevan (Relevance)
Informasi yang diterima harus bermanfaat. Berarti, informasi tersebut
mempunyai manfaat bagi pemakainya walaupun relevansi informasi untuk
tiap-tiap orang berbeda.
Gambar 2. Siklus Informasi Sumber : Yogiyanto (2005: 9)
C. Pengertian Sistem Informasi
Seperti yang kita ketahui bahwa informasi merupakan hal yang penting
bagi manajemen atau organisasi dalam pengambilan keputusan. Informasi
dapat diperoleh dari sistem informasi (information system). Sistem informasi
x
xii xiv xiv
di definisikan oleh Robert A. Leitch dan K. Roscoe Davis dalam (Yogiyanto,
2005: 11) “Sistem Informasi adalah suatu sistem di dalam suatu organisasi
yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung
operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan
menyediakan pihak luar tertentu dengan laporan yang diperlukan”.
Dari pengertian sistem informasi diatas, maka dapat disimpulkan bahwa,
sistem informasi menyediakan informasi untuk membantu pengambilan
keputusan manajemen, operasi perusahaan dari hari ke hari dan informasi
yang layak untuk pihak luar perusahaan.
D. Siklus Hidup Pengembangan Sistem (System Development Life Cycle /
SDLC)
SDLC adalah langkah-langkah (pedoman) yang harus diikuti untuk
mengembangkan dan merancang sebuah sistem. Siklus hidup pengembangan
sistem ini adalah seperti kompas di dalam merancang sistem. Adapun
langkah-langkah dari siklus hidup pengembangan sistem dapat dilihat pada
gambar. 3 :
vi
vii xi xiii xv xvii
Kebijakan dan Perencanaan Sistem
Analisis Sistem
Desain (perancangan) Sistem secaraumum
Desain (perancangan) Sistem terinci
Seleksi Sistem
Implementasi (penerapan) Sistem
Perawatan Sistem
Awal proyek sistem
Manajemen sistem
Pengembangan sistem
Gambar 3 . Siklus Hidup Pengembangan Sistem Sumber : Jogiyanto (2005: 52)
Berdasarkan gambar 3, dapat dijelaskan sebagai berikut :
1. Tahap Kebijakan dan Perencanaan Sistem
Merupakan tahap awal dalam siklus pengembangan sistem, sebelum
suatu sistem informasi dikembangkan, umumnya terlebih dahulu dimulai
dengan adanya suatu analisis, kebijakan dan perencanaan untuk
mengembangkan sistem itu. Tanpa adanya perencanaan sistem yang baik,
pengembangan sistem tidak akan dapat berjalan sesuai dengan yang
diharapkan. Perencanaan sistem (system planning) merupakan pedoman
untuk melakukan pengembangan sistem.
x
xii xiv xiv
2. Tahap Analisis Sistem
Analisis sistem adalah penguraian dari suatu sistem informasi yang utuh
kedalam bagian-bagian komponennya dengan maksud untuk
mengidentifikasi dan mengevaluasi permasalahan-permasalahan,
kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-
kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-
perbaikannya. Analisis sistem dilakukan setelah tahap perencanaan sistem
dan sebelum tahap disain sistem. Pada tahap ini diberikan penilaian terhadap
sistem yang lama dan dipelajari kelemahan yang ada serta mencari beberapa
alternatif pemecahan masalah. Di dalam tahap ini terdapat langkah-langkah
dasar yang harus dilakukan yaitu:
a. Identify, yaitu mengidentifikasi masalah, meliputi :
b. Understand, yaitu memahami kerja dari sistem yang ada.
c. Analyse, yaitu menganalisis sistem.
d. Report, yaitu membuat laporan hasil analisis
3. Tahap Perancangan Sistem Secara Umum
Setelah tahap analisis dilakukan, maka dilakukan pengembangan sistem
secara umum dan menjelaskan informasi yang dihasilkan sistem tersebut.
Tujuan tahap ini adalah untuk memberikan gambaran umum kepada user
tentang sistem yang baru. Desain sistem secara umum mengidentifikasi
komponen-komponen sistem informasi yang akan didesain secara rinci.
vi
vii xi xiii xv xvii
4. Tahap Perancangan Sistem Secara Terinci
Tahap ini merupakan perincian dari sistem secara umum, disain sistem
secara umum ditransformasikan ke dalam bentuk yang lebih spesifik untuk
membangun sebuah sistem. Desain terinci dimaksudkan untuk pemrogram
komputer dan ahli teknik lainnya yang akan mengimplementasi sistem.
Tujuan dari tahap ini adalah mendesain sistem baru yang dapat
menyelesaikan masalah-masalah yang dihadapi organisasi secara logis.
5. Tahap Seleksi Sistem
Tahap ini mencari beberapa penyebab permasalahan pada sistem lama
dan memilih satu pemecahan masalah dari beberapa alternatif yang ada.
6. Tahap Implementasi Sistem
Tahap ini merupakan tahap dimana suatu sistem siap untuk
dioperasikan.
7. Tahap Perawatan Sistem
Tahap ini adalah merupakan tahap akhir dalam sebuah pengembangan
sistem.
E. Konsep Dasar Tentang Perpustakaan
1. Pengertian Perpustakaan Sekolah
Perpustakaan sekolah pada hakekatnya adalah sistem pengelolaan
informasi oleh sumber daya manusia yang terdidik dalam bidang
perpustakaan, dokumentasi, dan informasi.
Menurut Lasa Hs (2007: 20) menyatakan bahwa “perpustakaan
merupakan sistem informasi yang didalamnya terdapat aktivitas
x
xii xiv xiv
pengumpulan, pengolahan, pengawetan, pelestarian, penyajian, dan
penyebaran informasi”.
2. Fungsi Perpustakaan Sekolah
Secara umum fungsi perpustakaan memiliki fungsi sebagai berikut:
a. Fungsi Informasi
Perpustakaan menyediakan berbagai informasi yang meliputi bahan
tercetak, terekam maupun koleksi lainnya.
b. Fungsi Pendidikan
Perpustakaan menyediakan berbagai informasi agar pengguna
perpustakaan mendapat kesempatan untuk mendidik diri sendiri secara
berkesinambungan, mempertinggi kreativitas dan intelektualitas,
mempertajam sikap social dan mempercepat penguasaan ilmu dan
teknologi baru.
c. Fungsi Kebudayaan
Meningkatkan mutu kehidupan dengan memanfaatkan berbagai
informasi sebagai rekaman budaya bangsa untuk meningkatkan taraf hidup
dan mutu kehidupan manusia baik secara individu maupun kelompok serta
mengembangkan sikap dan sifat hubungan manusia yang positif serta
menunjang kehidupan antar budaya secara harmonis.
d. Fungsi Rekreasi
Menciptakan kehidupan yang seimbang antara jasmani dan rohani,
mengembangkan minat rekreasi pengguna melalui berbagai bacaan dan
vi
vii xi xiii xv xvii
pemanfaatan waktu senggang, menunjang berbagai kegiatan kreatif serta
hiburan yang positif.
e. Fungsi Penelitian
Fungsi penelitian perpustakaan menyediakan berbagai informasi
untuk menunjang kegiatan penelitian. Informasi yang disajikan meliputi
berbagai jenis bentuk informasi sesuai dengan kebutuhan pengguna
pustaka.
f. Fungsi Deposit
Fungsi deposit pustaka berkewajiban menyimpan dan melestarikan
semua karya cetak dan karya rekam yang diterbitkan di wilayah Indonesia.
Fungsi perpustakaan sekolah diharapkan berfungsi sebagai media
pendidikan, tempat belajar, penelitian sederhana, pemanfaatan teknologi
informasi, kelas alternatif dan sumber informasi.
3. Klasifikasi Buku Perpustakaan
a. Klasifikasi Persepuluh Dewey Decimal Classification (DCC)
Klasifikasi Persepuluh Dewey Decimal Classification (DCC)
diciptakan oleh Melvil Dewey pada tahun 1873 dan pertama kali
diterbitkan pada tahun 1876. Dari edisi pertama yang hanya terdiri dari 52
halaman itu sistem ini terus dikembangkan sehingga edisi mutakhir yaitu
edisi 20 diterbitkan tahun 1989 terdiri dari 4 jilid masing-masing untuk
pendahuluan, bagan dan indeks relatif yang tebalnya lebih dari 52 kali dari
edisi pertama. DCC adalah salah satu klasifikasi yang paling banyak
dipakai diseluruh dunia dan sudah diterjemahkan kedalam berbagai
x
xii xiv xiv
bahasa. Disamping edisi lengkapnya, DCC juga menerbitkan edisi ringkas
yang dimulai pada tahun 1894 dan telah mencapai edisi ke 12 pada tahun
1989. Edisi ini diterbitkan untuk perpustakaan- perpustakaan yang tidak
terlalu besar koleksinya.
b. Prinsip Dasar Desimal Dewey Decimal Classification (DCC)
1) Klasifikasi persepuluh Dewey pertama-tama membagi ilmu pengetahuan
kedalam 10 kelas utama. Kemudian masing-masing kelas utama itu dibagi
lagi kedalam 10 devisi, dan selanjutnya masing-masing divisi dibagi
kedalam 10 seksi. Sehingga dengan demikian, DCC masih memungkinkan
diadakannya pembagian lebih lanjut daripada seksi menjadi sub-seksi, dari
sub-seksi menjadi sub-sub-seksi dan seterusnya. Oleh karena pola
pencarian ilmu pengetahuan ang berdasarkan kelipatan 10 inilah maka
DCC disebut klasifikasi persepuluh atau klasifikasi decimal.
2) Kelas Utama (Main Classes)
Sepuluh kelas utama diberi nomor urut 0,1,2,3,4,5,6,7,8, dan 9 akan
tetapi didalam praktek selalu dituliskan dalam bentuk notasi dengan tiga
bilangan dan tidak boleh kurang, dimana no kelas utama memempati
posisi pertama. Sepuluh kelas utama tersebut biasanya dinamakan
ringkasan pertama (First Summary) yang terdiri dari
a) Kelas Utama (Ringkasan I)
000 – Karya Umum
100 – Filsafat
200 – Agama
vi
vii xi xiii xv xvii
300 – Ilmu Sosial
400 – Bahasa
500 – Ilmu Penetahuan Murni
600 – Ilmu Pengetahuan Terapan/ Teknologi
700 – Seni, Olahraga
800 – Kesusateraan
900 – Sejarah, Geografi
b) Devisi (Devision)
600 – Ilmu Terapan/ Teknologi
610 – Ilmu Kedokteran
620 – Ilmu Teknik
630 – Ilmu Pertanian dan Perternakan
640 – Kesejahteraan Rumah Tangga
650 – Manajemen
660 – Industri dan Teknologi Kimia
670 – Pengolahan Bahan Industri dan Pabrik
680 – Industri- industri Lain
690 – Bangunan
c) Seksi (Sections)
620 – Ilmu Teknik
621- Teknik Mesin
622 – Teknik Pertambangan
623 – Teknik Militer/ Perkapalan dan Pelayaran
x
xii xiv xiv
624 – Teknik Sipil/ Bangunan
625 – Teknik Perkeretaapian
626 - -
627 – Teknik Bangunan Air
628 – Teknik Kesehatan Lingkungan
629 – Cabang- cabang Teknik
d) Pembagian Lebih Lanjut
612 – Fisiologi Manusia
612.1 – Darah dan Peredaran darah
612. 2 – Pernafasan
…………
612. 8 – Susunan Saraf dan Alat-alat Indera
612.81 – Susunan Saraf dan Alat-alat Indera
G. Alat Bantu Pengembangan Sistem
1. Aliran Sistem Informasi (ASI)
Aliran sistem informasi merupakan bagan alir yang menunjukkan
arus data dari laporan dan formulir termasuk tembusan-tembusannya.
Simbol-simbol yang digunakan antara lain :
vi
vii xi xiii xv xvii
Tabel 1. Simbol-simbol Aliran Sistem Informasi (ASI)
2. Context Diagram dan Data Flow Diagram (DFD )
Context Diagram merupakan gambaran secara global atau umum dari
sistem yang dirancang secara logika tanpa mempertimbangkan lingkungan
fisik tempat data itu mengalir atau tempat data itu disimpan.
Jika Context Diagram adalah gambaran umum sistem yang dirancang,
maka Data Flow Diagram (DFD) adalah rincian atau penjelasan dari
Context Diagram. Simbol-simbol yang digunakan dalam pembuatan Context
Diagram dan DFD adalah sama, hanya ada beberapa simbol tambahan
untuk DFD yang dapat dilihat pada tabel 2.
x
xii xiv xiv
Tabel 2. Simbol-simbol yang digunakan pada Data Flow Diagram (DFD)
Aturan Umum Penggambaran DFD:
a. Tidak boleh menghubungkan eksternal entity lainnya secara langsung.
b. Tidak boleh menghubungkan secara langsung antara data store dengan
data store yang lainnya.
c. Tidak boleh menghubungkan data store dengan eksternal entity secara
langsung.
d. Pada setiap proses harus ada data yang masuk dan keluar demikian juga
sebaliknya.
e. Tidak boleh ada proses dan arus data yang tidak memiliki nama, karena
dapat mengakibatkan arus data.
f. Proses harus mempunyai nama dan nomor
vi
vii xi xiii xv xvii
Tabel 3. Aturan Umum Penulisan Data Flow Diagram (DFD)
3. Entity Relathionship Diagram (ERD)
ERD adalah sebuah model konseptual yang mendiskripsikan hubungan
antar penyimpanan. ERD menggunakan sejumlah notasi dan simbol untuk
menggambarkan struktur dan hubungan antar data yaitu:
Tabel 4. Simbol-simbol Entity Relationship Diagram (ERD)
Gambar Keterangan Fungsi
Simbol Entitas Menunjukkan suatu entitas
Simbol satu kesatu atau
one to one
Menunjukkan hubungan satu
kesatu
Simbol satu kebanyak
Atau one to many
Menunjukkan hubungan satu
kebanyak
Simbol banyak
kebanyak atau many to
many
Menunjukkan hubungan banyak
kebanyak
x
xii xiv xiv
4. Program Flowchart (Aliran Program)
Program Flowchat merupakan bagan yang menjelaskan secara terinci
langkah-langkah dari proses program. Flowchart dapat dibuat dengan
menggunakan simbol-simbol sebagai berikut:
Tabel 5. Simbol- simbol Program Flowchart
Simbol Keterangan
Simbol input/ output digunakan untuk mewakili data input dan output
Simbol proses untuk mewakili sebuah proses
Simbol garis alir digunakan untuk menunjukan arus dari proses
Simbol conector digunakan untuk menunjukan sambungan dari bagan alir yang terputus di halaman yang sama atau halaman yang berbeda
Simbol keputusan yang digunakan untuk suatu penyelesaian kondisi dalam program
Simbol titik terminal digunakan untuk menunjukan awal dan akhir suatu proses
vi
vii xi xiii xv xvii
H. Konsep Dasar Database MySQL
Database merupakan kumpulan data yang setiap perintahnya
menggunakan SQL. SQL (structured query langunge) merupakan bahasa ANSI
(American National Standard Institute) yang digunakan untuk melakukan
query data pada database. Hampir semua software database
mengimplementasikan bahasa ini sebagai komponen utama dari produknya.
MySQL (My Stucture Query Language) merupakan software RDBMS open
source. Pada awalnya MySQL dikembangkan pada platform sistem operasi
Linux namun kemudian dikembangkan untuk penggunaan pada platform
Windows.
1. Kelebihan MySQL
Sebagai software database dengan konsep database modern, MySQL
memiliki banyak kelebihan antara lain :
a. Protability
MySQL dapat digunakan dengan stabil tanpa kendala, berarti pada
berbagai sistem operasi diantaranya seperti Windows, Linux, Mac OS X
Server, Solaris, Amiga HP-UX dan masih banyak lagi.
b. Open source
MySQL didistribusikan secara open source di bawah lisensi GPL,
sehingga dapat memperoleh menggunakannya secara cuma-cuma tanpa
dipungut biaya sepeserpun.
x
xii xiv xiv
c. Multiuser
MySQL dapat digunakan untuk menangani beberapa user dalam
waktu yang bersamaan tanpa mengalami masalah atau konflik. Hal ini
akan memungkinkan sebuah database server MySQL dapat diakses
client secara bersamaan dalam waktu yang bersamaan pula.
d. Performance Tuning
MySQL memiliki kecepatan yang cukup menakjubkan dalam
menangani query sederhana, serta mampu memproses lebih banyak
SQL persatuan waktu.
e. Column Types
MySQL didukung tipe kolom (tipe data) yang sangat kompleks.
f. Command dan Functions
MySQL memiliki operator dan fungsi secara penuh yang
mendukung perintah SELECT dan WHERE dalam query.
g. Scalability dan Limits
Dalam hal batas kemampuan, MySQL terbukti mampu menangani
database dalam skala yang besar dengan jumlah record lebih dari 50
juta dan 60 ribu tabel serta 5 miliar baris. Selain itu batas indeks yang
dapat ditampung mencapai 32 indeks pada setiap tabelnya.
h. Interface
Sama halnya dengan software database lainnya, MySQL memiliki
interface (antarmuka) terhadap berbagai aplikasi dan bahasa
vi
vii xi xiii xv xvii
pemrograman dengan menggunakan fungsi API (Aplication
Programming Interface).
i. Struktur tabel
Struktur tabel MySQL cukup baik, serta cukup fleksibel. Misalnya
ketika menangani Alter Table, dibandingkan database lainnya semacam
PostgreSQL ataupun Oracle.
2. Fungsi MySQL
Ada beberapa fungsi yang digunakan dalam MySQL. Fungsi tersebut
sangat erat kaitannya dengan query SQL. Akan tetapi user tidak dapat
langsung menggunakan perintah SQL pada script PHP. Di sini fungsi MySQL-
lah yang digunakan sebagai penghubung antar SQL sehingga query tersebut
dapat dijalankan pada server dan dapat dilihat hasilnya oleh client.
Fungsi MySQL dapat juga dikatakan sebagai interpreter query karena
setiap user menggunakan query SQL, maka fungsi ini harus diletakkan.
Dengan kata lain query SQL tidak dapat dijalankan tanpa adanya fungsi
MySQL. Fungsi MySQL antara lain seperti pada tabel berikut ini:
x
xii xiv xiv
Tabel 6 . Beberapa Fungsi MySQL
Fungsi MySQL Penggunaan
mysql_close() Untuk menutup koneksi dengan MySQL
mysql_connect() Untuk membuka koneksi dengan database MySQL
mysql_create_db() Untuk membuat database
mysql_db_name() Untuk menghasilkan hasil data
mysql_db_query() Untuk mengantarkan query MySQL
mysql_error() Untuk menampilkan pesan kesalahan dalam bentuk teks dari server MySQL
mysql_field_name() Menampilkan nama field khusus pada database MySQL
mysql_free_result() Untuk menghasilkan keadaan memori yang bebas
mysql_list_dbs() Untuk menampilkan database di server MySQL
mysql_query() Untuk mengirimkan perintah SQL
I. Konsep Dasar Bahasa Pemograman Java
1. Sekilas Tentang Java
a. Sejarah Java
Java dipelopori oleh James Gosling, Patrick Naughton, Chris
Warth, Ed Frank, dan Mike Sheridan dari Sun Microsystems, Inc pada
tahun 1991. Mereka membutuhkan kurang lebih 18 bulan untuk
membuat versi pertamanya. Bahasa ini pada awalnya disebut “Oak”
vi
vii xi xiii xv xvii
tapi kemudian diubah menjadi “Java” pada tahun 1995 karena nama
Oak telah dijadikan hak cipta dan digunakan sebagai bahasa
pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992
hingga diumumkan ke publik pada musim semi 1995, banyak orang
yang terlibat dalam desain dan evolusi bahasa ini. Bill Joy, Arthur van
Hoff, Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan
kontributor kunci yang mematangkan prototipe aslinya.
b. Java Modern
Java telah digunakan dalam banyak hal dan telah membuktikan
keberadaannya pada abad ke 21. Saat ini, Java digunakan bermacam
jenis aplikasi seperti aplikasi embedded, aplikasi keuangan, desktop,
simulasi pesawat, pemrosesan citra, game, aplikasi perusahaan
terdistribusi yang disebut J2EE dan masih banyak lagi.
c. Java Virtual Machine (JVM)
Java Virtual Machine (JVM) merupakan aplikasi sederhana yang
ditulis dalam bahasa C untuk mengeksi program yang ditulis dalam
bahasa Java. Pada saat kompilasi (perubahan dari bahasa tingkat tinggi
ke bahasa lebih rendah), program tersebut diubah menjadi kode byte.
Kemudian pada saat eksekusi, JVM membaca kode byte tersebu dan
mengubahnya menjadi bahasa mesin yang dimengerti oleh sistem
operasi tempat program tersebut dijalankan. Karena JVM sangat
bergantung pada platformnya (bahasa mesin merupakan bahasa level
rendah yang hanya dimengerti oleh suatu mesin tertentu, misalnya Intel,
x
xii xiv xiv
tapi tidak dapat dimengerti oleh mesin lain, seperti Macintosh), byte
code ini dapat dibuat untuk terbebas dari kungkungan platform tertentu.
Code byte yang dihasilkan dalam proses kompilasi bahasa Java akan
selalu sama untuk setiap sistem operasi atau jenis mesinnya, tetapi JVM
akan mengubah kode byte tersebut menjadi bahasa mesin tujuannya.
d. Just In Time Compiler (JIT)
Meskipun Java didesain untuk diinterpretasi, secara teknis tidak
ada yang menghalangi Java untuk dikompilasi menjadi bahasa mesin
seperti bahasa-bahasa pemrograman lainnya. Sun menyediakan
kompiler Just In Time Compiler (JIT) untuk mengkompilasi kode byte
itu menjadi bahasa mesinnya pada saat yang bersamaan dengan
eksekusinya. Walaupun demikian, pendekatan JIT ini menghasilkan
kemampuan yang lebih dibandingkan dengan interpretasi biasa.
e. Kelebihan Java
Bahasa pemrograman lain yang telah ada sebelum Java lahir sudah
merupakan bahasa yang baik dan mudah dipelajasi oleh programmer
profesional. Akan tetapi para programmer ini menginginkan sesuatu
yang baru yang memiliki banyak hal yang menyelesaikan masalah
mereka. Utamanya adalah keamanan kode mereka. Hal ini melahirkan
pikiran yang revolusioner untuk menemukan bahasa pemrograman lain
yang disebut Java. Tidak hanya keamanan tapi juga beberapa hal yang
sering disebut sebagai Java-Buzzwords. Kata-kata ini menjelaskan
berbagai fitur tambahan dan beberapa hal yang membuat Java demikian
vi
vii xi xiii xv xvii
sukses dan diterima oleh dunia perangkat lunak. Berikut ini adalah
penjelasan serta keuntungan dari kata-kata tersebut.
f. Sederhana dan Berorientasi Objek
Seperti diuraikan sebelumnya, Java lahir dari suatu pemikiran
mendalam akan bahasa pemrograman yang ada pada saat itu, seperti C
dan C++. Hal ini akan memudahkan programmer profesional untuk
dapat mengerti lebih jelas tentang Java, fungsionalitas, dan lain
sebagainya apabila ia memiliki pengetahuan dasar tentang C++ dan
konsep pemrograman berorientasi objek. Tujuannya agar konsep dasar
dari teknologi Java dapat dimengerti dengan mudah, dan programmer
dapat segera menghasilkan sesuatu sedini mungkin. Tidak hanya ini,
penemu Java memastikan bahwa Java juga bermula dari bahasa
pemrograman dasar yang sudah ada pada saat itu. Kemudian mereka
membuang berbagai fitur yang rumit dan membingungkan.
Bahasa pemrograman Java didesain sejak awal untuk menjadi
bahasa yang berorientasi objek. Setelah kira-kira 30 tahun, akhirnya
teknologi objek menjadi kenyataan dan diterima oleh sebagian besar
komunitas pemrograman. Konsep berorientasi objek memungkinkan
pembuatan software yang kompleks, berbasis network, sehingga dapat
disimpulkan bahwa teknologi Java menghasilkan platform pembuatan
perangkat lunak yang baik dan efisien serta berorientasi objek.
x
xii xiv xiv
2. Keuntungan Java
a. Mulai dengan cepat
Java merupakan bahasa pemrograman berorientasi objek, mudah
dipelajari, terutama untuk programmer yang sudah menguasai C atau C++
b. Tulis lebih sedikit program
Jumlah kelas, jumlah metode, dll, menunjukkan bahwa program yang
ditulis dalam bahasa pemrograman Java memiliki jumlah 4 kali lipat lebih
kecil dari program sama yang ditulis dalam bahasa C++
c. Tulis program lebih baik
Bahasa pemrograman Java menganjurkan praktek membuat program
yang baik, dan automatic garbage collection membantu Anda untuk
menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen
JavaBeans, dan jangkauannya yanga luas, API yang mudah diperluas,
memungkinkan Anda menggunakan kode yang ada.
d. Membuat program dengan lebih cepat
Bahasa pemrograman Java lebih mudah dari C++, pemrograman
akan menjadi 2 kali lipa lebih cepat, dengan jumlah baris yang jauh lebih
sedikit
e. Menghindari kebergantungan pada platform tertentu
Anda dapat menjalankan program Anda pada banyak platform dengan
tidak menggunakan library yang ditulis spesifik untuk platform tertentu.
vi
vii xi xiii xv xvii
f. Tulis sekali, jalankan di mana saja
Aplikasi yang ditulis dalam bahasa Java dikompilasi ke dalam kode
byte yang bebas platform, aplikasi yang ditulis dapat jalan secara
konsisten pada platform apa saja.
g. Distribusikan software Anda dengan mudah
Java Web Start, pengguna program Anda akan dapat menggunakan
aplikasi Anda dengan mudah. Sistem pengecekan versi otomatis pada saat
program dimulai menjamin pengguna Anda selalu menjalankan versi
terkini. Apabila versi baru tersedia, Java Web Start akan melakukan
instalasi secara otomatis. Gambar dibawah ini menjelaskan aliran proses
kompilasi dan eksekusi sebuah program Java.
Gambar 4. Aliran Proses Kompilasi dan Eksekusi Program Java
Langkah pertama dalam pembuatan sebuah program berbasis Java adalah
menuliskan kode program pada text editor. Contoh text editor yang dapat
digunakan antara lain: notepad, vi, emacs dan lain sebagainya. Kode program
yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java.
Setelah membuat dan menyimpan kode program, kompilasi file yang berisi
kode program tersebut dengan menggunakan Java Compiler. Hasil dari
kompilasi berupa berkas bytecode dengan ekstensi .class. Berkas yang
x
xii xiv xiv
mengandung bytecode tersebut kemudian akan dikonversikan oleh Java.
Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang
digunakan.
3. Integrated Development Environment (IDE) NetBeans
NetBeans mengacu pada dua hal, yakni platform untuk pengembangan
aplikasi desktop Java, dan sebuah Integrated Development Environment (IDE)
yang dibangun menggunakan platform NetBeans.
Platform NetBeans memungkinkan aplikasi dibangun dari sekumpulan
komponen perangkat lunak moduler yang disebut ‘modul’. Sebuah modul
adalah suatu arsip Java (Java archive) yang memuat kelas-kelas Java untuk
berinetraksi dengan NetBeans Open API dan file manifestasi yang
mengidentifikasinya sebagai modul. Aplikasi yang dibangun dengan modul-
modul dapat dikembangkan dengan menambahkan modul-modul baru. Karena
modul dapat dikembangkan secara independen, aplikasi berbasis platform
NetBeans dapat dengan mudah dikembangkan oleh pihak ketiga secara mudah
dan powerful. Pengembangan NetBeans diawali dari Xelfi, sebuah proyek
mahasiswa tahun 1997 di bawah bimbingan Fakultas Matematika dan Fisika
Universitas Charles, Praha.
Sebuah perusahaan kemudian dibentuk untuk proyek tersebut dan
menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun
Microsystem pada tahun 1999. Sun kemudian menjadikan NetBeans open
source pada bulan Juni tahun 2000. Sejak itu komunitas NetBeans terus
berkembang.
vi
vii xi xiii xv xvii
Gambar 5. Tampilan Java Netbeans 6.8
J. Sekilas Tentang XAMPP
Kepanjangan dari XAMPP yaitu Apache, PHP, MySQL dan phpMyAdmin.
XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam
satu buah paket. Dengan menginstall XAMPP maka tidak perlu lagi
melakukan instalasi dan konfigurasi web server Apache, PHP dan MySQL
secara manual. XAMPP akan menginstalasi dan mengkonfigurasikannya
secara otomatis untuk anda atau auto konfigurasi. Software XAMPP versi ini
terdiri atas:
1. Apache versi 2.0.54
2. MySQL versi 4.1.12
3. PHP versi 5.0.4
4. PhpMyAdmin versi 2.6.2-p11
x
xii xiv xiv
1. APACHE
Apache sudah berkembang sejak versi pertamanya. Sampai saat
ditulisnya artikel ini versi terakhirnya yang ada yaitu Apache ver 2.0.54.
Apache bersifat open source, artinya setiap orang boleh menggunakannya,
mengambil dan bahkan mengubah kode programnya.Tugas utama apache
adalah menghasilkan halaman web yang benar kepada peminta,
berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Jika
diperlukan juga berdasarkan kode PHP yang dituliskan, maka dapat saja
suatu database diakses terlebih dahulu (misalnya dalam MySQL) untuk
mendukung halaman web yang dihasilkan.
2. PHP
Bahasa pemrograman PHP merupakan bahasa pemrograman untuk
mebuat web yang bersifat server-side scripting. PHP memungkinkan kita
untuk membuat halaman web yang bersifat dinamis. PHP dapat dijalankan
pada berbagai macam Operating System (OS), misalnya Windows, Linux
dan Mac OS. Selain Apache, PHP juga mendukung beberapa web server
lain, misalnya Microsoft IIS, Caudium, PWS dan lain-lain.Seperti pernah
disinggung sebelumnya bahwa PHP dapat memanfaatkan database untuk
menghasilkan halaman web yang dinamis. Sistem manajemen database
yang sering digunakan bersama PHP adalah MySQL. Namun PHP juga
mendukung system manajemen Database Oracle, Microsoft Acces,
Interbase, d-Base, PostgreSQL dan sebagainya.
vi
vii xi xiii xv xvii
Hingga kini PHP sudah berkembang hingga versi ke 5. PHP 5 mendukung
penuh Object Oriented Programing(OOP), integrasi XML, mendukung
semua ekstensi terbaru MySQL, pengembangan web services dengan SOAP
dan REST, serta ratusan peningkatan kemampuan lainnya dibandingkan versi
sebelumnya. Sama dengan web server lainnya PHP juga bersifat open source
sehingga setiap orang dapat menggunakannya dengan gratis.
3. MySQL
Perkembangannya disebut SQL yang merupakan kepanjangan dari
Structured Query Language. SQL merupakan bahasa terstruktur yang
khusus digunakan untuk mengolah database. SQL pertama kali
didefinisikan oleh American National Standards Institute (ANSI) pada
tahun 1986. MySQL adalah sebuah sistem manajemen database yang
bersifat open source. MySQL adalah pasangan serasi dari PHP. MySQL
dibuat dan dikembangkan oleh MySQL AB yang berada di Swedia.
MySQL dapat digunakan untuk membuat dan mengola database
beserta isinya. Kita dapat memanfaatkan MySQL untuk menambahkan,
mengubah dan menghapus data yang berada dalam database. MySQL
merupakan sisitem manajemen database yang bersifat at relational. Artinya
data-data yang dikelola dalam database akan diletakkan pada beberapa
tabel yang terpisah sehingga manipulasi data akan menjadi jauh lebih cepat.
MySQL dapat digunakan untuk mengelola database mulai dari yang kecil
sampai dengan yang sangat besar. MySQL juga dapat menjalankan
perintah-perintah Structured Query Language (SQL) untuk mengelola
x
xii xiv xiv
database-database yang ada di dalamnya. Hingga kini, MySQL sudah
berkembang hingga versi 5. MySQL 5 sudah mendukung trigger untuk
memudahkan pengelolaan tabel dalam database.
4. PHPMyAdmin
Pengelolaan database dengan MySQL harus dilakukan dengan
mengetikkan baris-baris perintah yang sesuai (command line) untuk setiap
maksud tertentu. Jika anda ingin membuat database, ketikkan baris perintah
yang sesuai untuk membuat database. Jika kita ingin menghapus tabel,
ketikkan baris perintah yang sesuai untuk menghapus tabel. Hal tersebut
tentu cukup menyulitkan karena kita harus hafal dan mengetikkan
perintahnya satu persatu.
Banyak sekali perangkat lunak yang dapat dimanfaatkan untuk
mengelola data base dalam MySQL, salah satunya adalah phpMyAdmin.
Dengan phpMyAdmin kita dapat membuat tabel, mengisi data dan lain-lain
dengan mudah tanpa harus hafal perintahnya. Untuk mengaktifkan
phpMyAdmin langkah-langkahnya adalah : yang pertama setelah XAMP
kita terinstall, kita harus mengaktifkan web server Apache dan MySQL dari
control panel XAMPP. Yang kedua, jalankan browser kesayangan Anda
(IE, Mozilla Firefox atau Opera) lalu ketikkan alamat web berikut :
http://localhost/phpmyadmin/ pada addressbar lalu tekan Enter. Langkah
ketiga apabila telah nampak interface (tampilan antar muka) phpMyAdmin
anda bisa memulainya dengan mengetikkan nama database, nama tabel dan
seterusnya.
vi
vii xi xiii xv xvii
Gambar 6. Tampilan Home XAMPP
x
xii xiv xiv
BAB III
METODOLOGI PERANCANGAN SISTEM
A. Jenis Penelitian
Penelitian ini merupakan jenis penelitian pengembangan perancangan
aplikasi. Penelitian pengembangan adalah penelitian yang dilakukan untuk
menemukan dan mengembangkan suatu prototipe baru atau yang sudah ada
dalam rangka menyempurnakan dan mengembangkan sehingga, diperoleh
hasil yang lebih baik.
B. Analisis Sistem yang Sedang Berjalan
Analisis sistem adalah penguraian dari suatu sistem informasi yang utuh
kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi
dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan,
hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan
sehingga dapat diusulkan perbaikan-perbaikannya. Dalam tahap ini penulis
dapat menganalisis sistem yang sedang berjalan yaitu :
1. Identify , mengidentifikasi masalah.
Adapun identifikasi masalahnya adalah selama ini sistem yang sedang
berjalan yaitu sistem peminjaman dan pengembalian buku pada
perpustakaan SMP Negeri 1 Kec. Mungka dilakukan secara manual dan
belum terkomputerisasi. Dan komputer di perpustakaan kurang
dimanfaatkan. Dengan pemrosesan transaksi peminjaman dan
vi
vii xi xiii xv xvii
pengembalian buku secara manual tidak menutup kemungkinan data-data
itu tidak terdokumentasi dengan baik atau data-data bisa hilang.
2. Understand, memahami kerja sistem yang sedang berjalan
Sistem peminjaman dan pengembalian buku pada perpustakaan
SMP.N 1 Kec. Mungka, Kab. Lima Puluh Kota dilakukan secara manual.
Dimana siswa datang ke perpustakaan, meminjam buku, mengembalikan
buku dicatat pada sebuah form yang berisi NIS, Nama siswa, tanggal
pinjam, tanggal kembali, kolom denda dan kolom paraf petugas pustaka.
3. Analyze, menganalisis hasil terhadap sistem yang sedang berjalan
Pada tahap analyze ini, penulis menemukan kelemahan dari sistem
yang sedang berjalan ini yaitu, dengan sistem pencatatan secara manual,
kemungkinan data-data yang berkenaan dengan perpustakaan sewaktu-
waktu bisa hilang. Dan penulis juga melihat belum di maksimalkannya
penggunaan komputer di perpustakaan SMP Negeri 1 Kec. Mungka, Kab.
Lima Puluh Kota.
C. Aliran Sistem Informasi (ASI) yang Sedang Berjalan
Dalam sistem informasi perpustakaan SMP Negeri 1 Kec. Mungka, Kab.
Lima Puluh Kota saat ini melibatkan beberapa entity. Adapun entity-entity
tersebut adalah siswa, pegawai perpustakaan, kepala perpustakaan, dan kepala
sekolah. Adapun gambaran dan aliran sistem informasi Perpustakaan pada
SMP Negeri 1 Kec. Mungka adalah sebagai berikut :
1. Siswa datang ke perpustakaan, membuat kartu pustaka dengan mengisi form
berupa biodata.
2. Pegawai Pustaka mencatat data siswa berupa biodata, dan membuat kartu
x
xii xiv xiv
pustaka, dan menyerahkan kepada siswa.
3. Siswa menyerahkan kartu pustaka melakukan peminjaman, pengembalian
buku, dan kartu diserahkan kembali ke siswa.
4. Pegawai Pustaka mencatat data anggota transaksi peminjaman/ pengembalian
dan buku.
5. Pegawai Pustaka membuat laporan transaksi peminjaman/ pengembalian,
diberikan kepada Kepala Pustaka.
6. Kepala mengesahkan / ACC laporan.
7. Jika ada kesalahan dalam pembuatan laporan, maka laporan tidak di ACC oleh
Kepala Pustaka dan laporan diserahkan kembali kepada Pegawai Pustaka dan
Pegawai Pustaka membuat laporan baru.
8. Jika laporan tidak ada kesalahan lagi, maka laporan tersebut di ACC dan
Kepala Pustaka memberikan laporan pertanggung jawaban perpustakaan
kepada Kepala Sekolah.
Agar lebih jelas, bentuk Aliran Sistem Informasi (ASI) yang sedang
berjalan pada perpustakaan SMP Negeri 1 Kec. Mungka, Kab. Lima Puluh Kota
dapat dilihat pada Gambar 12.
D. Usulan Sistem Baru
Setelah melakukan pengamatan terhadap segala permasalahan mengenai
sistem informasi perpustakaan yang lama, maka diperlukan perancangan
sistem baru yaitu sistem yang manual atau paper based ke sistem yang
terkomputerisasi. Sistem baru yang diusulkan akan disajikan dalam bentuk
vi
vii xi xiii xv xvii
rancangan fisik dan rancangan logika sehingga kelemahan-kelemahan dan
hambatan yang terjadi dapat diperkecil bahkan diharapkan tidak ada lagi.
Gambar 7. Aliran Sistem Informasi ( ASI ) Lama Perpustakaan SMP Negeri
1 Kec. Mungka Kab. Lima Puluh Kota
E. Desain Sistem
Desain sistem merupakan tahap setelah analisa sistem. Tujuan dari disain
sistem ini yaitu untuk mempercepat pengambilan keputusan. Disain sistem
pada hakekatnya bukanlah sekedar mempercepat atau mengoptimalisasikan
x
xii xiv xiv
kegiatan operasi tapi juga mencakup standarisasi dengan hasil dalam
penghematan tenaga, waktu dan biaya. Disain sistem terdiri dari dua tahap
yaitu tahap disain secara global dan tahap disain secara terinci.
1. Disain Global
Tujuan dari disain global adalah memberikan gambaran secara umum
kepada user tentang sistem yang baru. Rancangan sistem
mengidentifikasikan komponen-komponen sistem informasi yang akan
didisain secara rinci.
Perancangan sistem yang dilakukan di dalam tahap disain global ini
terdiri dari rancangan Aliran Sistem Informasi (ASI) baru, Context
Diagram, Data Flow Diagram (DFD) level 0 dan 1, Entity Relationship
Diagram (ERD) dan Struktur Program.
a. Aliran Sistem Informasi Perpustakaan Baru
Pada Aliran sistem Informasi baru ini, terdapat perbedaan dari sistem
informasi lama yaitu pada proses pencatatan peminjaman, pengembalian
buku, buku dan anggota diinputkan melalui komputer dan disimpan dalam
database sistem informasi perpustakaan.
Pada Gambar 8. dapat dilihat Aliran Sistem Informasi (ASI) baru pada
sistem informasi Perpustakaan SMP Negeri 1 Kec. Mungka, Kab. Lima
Puluh Kota.
vi
vii xi xiii xv xvii
Gambar 8. Aliran Sistem Informasi ( ASI ) Baru Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
Keterangan :
1) Anggota pustaka memberikan kartu pustaka kepada Pegawai Pustaka untuk
melakukan proses peminjaman atau pengembalian buku.
2) Pegawai Pustaka menginputkan data anggota pustaka.
3) Kartu pustaka diberikan ke anggota Pustaka.
4) Proses input dan penyimpanan data maupun transaksi peminjaman atau
pengembalian buku disimpan didalam database.
x
xii xiv xiv
5) Pegawai Pustaka membuat laporan buku dan peminjaman dan mencetaknya
6) Laporan diserahkan kepada Kepala Pustaka untuk di ACC, jika laporan di
ACC, maka laporan tersebut diserahkan kepada Kepala Sekolah, 1 (satu)
untuk Pegawai Pustaka dan 1 (satu) untuk Kepala Pustaka sebagai arsip.
7) Jika laporan yang dibuat oleh Pegawai Pustaka tidak di ACC, maka Pegawai
Pustaka membuat kembali laopran tersebut.
b. Context Diagram
Context Diagram merupakan alat bantu perancangan secara global yang
memperlihatkan sistem secara umum dan bagian-bagian dari sub sistem yang
terlibat dalam sistem secara keseluruhan, keterkaitan dan interaksi antar sub-
sub sistem.
Proses sistem informasi perpustakaan memiliki 4 (empat) terminator yang
terdiri dari entitas eksternal anggota pustaka, pegawai pustaka, kepala pustaka
dan kepala sekolah. Entitas eksternal anggota pustaka login dan memberikan
input berupa data anggota pustaka dan sistem informasi perpustakaan
memberikan feedback atau output kepada anggota pustaka berupa informasi
buku, informasi transaksi peminjaman atau pengembalian buku. Entitas
eksternal pegawai pustaka memberikan input ke sistem data anggota, data
kategori buku, peminjaman, pengembalian dan buku kemudian sistem
informasi perpustakaan memberikan feedback atau output data anggota, data
kategori buku, laporan peminjaman buku dan laporan buku. Entitas eksternal
kepala pustaka dan kepala sekolah menerima output dari sistem berupa
laporan peminjaman buku dan laporan buku melalui pegawai pustaka. Untuk
vi
vii xi xiii xv xvii
lebih jelasnya, dapat dilihat pada gambar context diagram Sistem Informasi
Perpustakaan SMP Negeri 1 Kec. Mungka, Kab. Lima Puluh berikut:
Gambar 9. Context Diagram Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
c. Data Flow Diagram Level 0
Data Flow Diagram menggambarkan sebuah Sistem Informasi yang
menitikberatkan pada proses (fokus pada Proses). Dengan mengacu kepada
Context Diagram, proses yang terjadi diuraikan kedalam bentuk Data Flow
Diagram (DFD) level 0.
Pada DFD level 0 Sistem Informasi Perpustakaan SMPN. 1 Kec mungka
bahwa, entitas eksternal pegawai pustaka memberikan input ke sistem melalui
login, input data anggota, kategori buku, peminjaman dan pengembalian buku
dan data buku, setelah sistem melakukan pemrosesan 1.0, maka data-data
x
xii xiv xiv
tersebut disimpan pada data storage pada file anggota (F1), file buku (F2),
file kategori buku (F3) dan file data peminjaman/ pengembalian buku (F4).
Pada proses 2.0 yaitu proses cetak laporan peminjaman dan buku, data dibaca
dari file buku, file anggota, file kategori buku dan file peminjaman/
pengembalian buku dan menghasilkan output berupa laporan peminjaman,
pengembalian dan laporan buku. Dan Laporan peminjaman/ pengembalian
dan buku disimpan pada data storage file laporan peminjaman dan
pengembalian buku (F5). Kemudian laporan tersebut di ACC oleh kepala
pustaka, laporan yang telah di ACC diberikan kepada kepala sekolah dan
pegawai pustaka. Untuk lebih jelasnya berikut adalah gambar dari Data Flow
Diagram (DFD) level 0 Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima
Puluh Kota.
vi
vii xi xiii xv xvii
Gambar 10. Data Flow Diagram (DFD) Level 0 Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
x
xii xiv xiv
d. Entity Relationship Diagram
Entity Relationship Diagram (ERD) merupakan suatu dokumentasi data
yang mengidentifikasikan entity data dan memperlihatkan hubungan yang ada
diantara entity tersebut dengan menggunakan atribut key field (Primary Key
Atribut) dari masing-masing entiti.
Pada gambar ini dijelaskan bahwa database yang dirancang terdiri dari
lima entity yaitu entity anggota, peminjaman, kategori buku, buku dan
pegawai pustaka. Setiap entity mempunyai atributnya masing-masing, salah
satunya berfungsi sebagai primary key atau sebagai foreign key. Adapun
bentuk hubungan dari masing-masing entiti dari sistem yang dirancang dapat
dilihat digambar berikut :
Gambar 11. Entity Relationship Diagram (ERD) Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
vi
vii xi xiii xv xvii
Keterangan :
Pada gambar 11, terdapat 5 (Lima) entiti yaitu, anggota, peminjaman,
buku, kategori buku dan pegawai pustaka. Dimana entiti anggota terdiri dari 7
(Tujuh) atribut yaitu, anggota_ID, anggota_nama, anggota_jk, anggota_alamat,
anggota_cp, anggota_tipe, anggota_kelas. Entiti anggota memiliki primary key
anggota_ID. Adapun relasi antara entiti anggota dengan peminjam adalah one
to many artinya, 1 orang anggota pustaka bisa meminjam lebih dari satu buku
dan banyak proses peminjaman buku bisa dilakukan oleh 1 orang anggota.
Entiti peminjaman memiliki 5 (atribut) yaitu, tgl_pinjam, anggota_ID,
buku_ID, pinjam_tgl batas, pinjam_tglkembali. Pada entiti peminjaman ini
memiliki primary key tgl_pinjam dan foreign key anggota_ID dan buku_ID.
Entiti buku memiliki 10 (sepuluh) atribut yaitu, buku_ID, buku_judul,
buku_pengarang, buku_penerbit, buku_tahun, kategori_ID, buku sinopsis,
stok, sumber dan rak. Entiti buku memiliki primary key buku_ID, dan foreign
key kategori_ID. Relasi yang terjadi antara entiti peminjaman dengan buku
adalah many to one. Artinya, banyak peminjaman dimiliki oleh satu buku dan
sebaliknya.
Entiti kategori buku memiliki 2 (dua) atribut yaitu, kategori_id dan
kategori_nama. Primary keynya kategory_id. Relasi yang terjadi antara buku
dan kategori buku adalah many to one. Artinya, satu buku hanya memiliki satu
kategori. Sedangkan satu kategori bisa dimiliki oleh banyak buku. Dan entiti
pegawai pustaka memiliki 2 (dua) atribut yaitu, username dan password.
Entity pegawai pustaka memiliki hubungan relasional one to many atau satu
x
xii xiv xiv
ke banyak artinya, satu pegawai pustaka bisa menginputkan data anggota,
buku, pemeinjaman buku, dan data kategori buku.
e. Disain File
File adalah kumpulan dari record-record yang tersusun secara logis. File
tersebut digunakan untuk mendapatkan informasi yang diinginkan. Record-
record pada file akan tersimpan dalam suatu media penyimpanan (Harddisk,
dll). Agar lebih jelas mengenai desain file dari sistem informasi perpustakaan
SMP Negeri 1 kec. Mungka, dapat dilihat pada tabel-tabel berikut :
1) Desain File Buku
Nama Database : Pustaka
Nama Tabel : buku
Primary Key : buku_id
Tabel 7. Desain File Buku
No Field Type Width
1 Buku_id Varchar 20
2 Buku_judul Varchar 50
3 Buku_pengarang Varchar 50
4 Buku_penerbit Varchar 50
5 Buku_tahun int 11
6 Kategori_id varchar 20
7 Buku_sinopsis Varchar 500
8 Stok Int 11
9 Sumber Dana VarChar 150
10 Rak VarChar 5
vi
vii xi xiii xv xvii
2) Desain File Kategori Buku
Nama Database : Pustaka
Nama Tabel : kategori
Primary key : Kategori_id
Tabel 8. Desain File Kategori Buku
No Field Type Width
1 Kategori_id Varchar 20
2 Kategori_Nama Varchar 50
3) Desain File Peminjaman Buku
Nama Database : Pustaka
Nama Tabel : pinjam
Primary Key : pinjam_tgl,
Foreign key : anggota_id dan buku_id
Tabel 9. Desain File Peminjaman Buku
No Field Type Width
1 Pinjam_tgl Date -
2 Anggota_id Varchar 20
3 Buku_id Varchar 20
4 Pinjam_tgl batas Date -
5 Pinjam_tgl kembali
Date -
x
xii xiv xiv
4) Desain File Anggota
Nama Database : Pustaka
Nama Tabel : anggota
Primary Key : Anggota_id
Tabel 10. Desain File Anggota
No Field Type Width
1 Anggota_id Varchar 20
2 Anggota_nama Varchar 25
3 Anggota_jekel Char 1
4 Anggota_almt Varchar 150
5 Anggota_cp Varchar 15
6 Anggota_tipe Varchar 6
7 Siswa_kelas Char 10
5) Desain File Pegawai Pustaka
Nama Database : Pustaka
Nama Tabel : user
Primary Key : Password
Tabel 11. Desain File User
No. Field Type Width
1 Username Varchar 30
2 Password Varchar 30
vi
vii xi xiii xv xvii
f. Struktur Program
Stuktur Program adalah gambaran dari sebuah rangkaian modul-
modul program yang saling terkait satu sama lain yang terlihat dalam
proses pengolahan data. Pembuatan struktur program ini dimaksudkan
untuk mempermudah dalam memahami keterkaitan modul-modul program
dan untuk memperlihatkan jenjang atau hirarki dari program yang
dirancang. Dengan demikian dapat dijabarkan urutan kerja dari tiap modul
program.
Struktur program terdiri dari 3 (tiga) menu utama yaitu, menu file,
menu kepustakaan, dan menu laporan. Pada menu file, terdapat 4 (empat)
sub menu yaitu, submenu kategori buku, buku, anggota pustaka, dan exit
untuk keluar dari program. Pada menu kepustakaan terdapat 2 (dua)
sebmenu yaitu submenu peminjaman buku dan pengembalian buku. Pada
menu laporan terdapat 2 (dua) submenu yaitu laporan buku dan laporan
peminjaman buku. Menu laporan peminjaman buku terdiri atas laporan
perbulan, per- 3 bulan, per- 6 bulan dan 1 tahun. Adapun bentuk struktur
program dapat dilihat pada gambar dibawah ini :
x
xii xiv xiv
Gambar 12. Struktur Program Sistem Informasi Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota
2. Desain Terinci
Desain terinci disebut juga dengan sistem secara fisik (phisical system
design) atau desain internal (internal design). Disain ini terdiri dari disain
output, disain input dan disain file. Rancangan-rancangan dari disain ini akan
dijadikan sebagai acuan dalam perancangan sistem baru untuk memperoleh
hasil yang semaksimal mungkin.
vi
vii xi xiii xv xvii
a. Desain Output
Rancangan output merupakan bentuk laporan dari sistem yang
dirancang sedemikian rupa, sehingga dapat memberikan informasi yang
diperlukan dan diinginkan oleh user. Berikut gambar disain output yang
dirancang:
1) Desain Output Laporan Buku
Gambar 13. Desain Output Laporan Buku
2) Desain Output Laporan Peminjaman Buku
Gambar 14. Desain Output Laporan Peminjaman
x
xii xiv xiv
b. Disain Input
Pada bagian perancangan input ini, dirancang bentuk format yang
nantinya menjadi penghubung antara user dengan program aplikasi yang
digunakan. Format ini akan meminta user untuk menginputkan data sesuai
dengan permintaan. Adapun bentuk dari rancangan input ini adalah :
1) Desain Input Login
Gambar 15. Halaman Login
2) Desain Input Kategori Buku
Gambar 16. Desain Input Kategori Buku
vi
vii xi xiii xv xvii
3) Desain Input Buku
Gambar 17. Desain Input Buku
4) Desain Input Data Anggota Pustaka
Gambar 18. Desain Input Data Anggota
x
xii xiv xiv
5) Input Data Peminjaman Buku
Gambar 19. Desain Input Data Peminjaman Buku
6) Desain Input Data Pengembalian Buku
Gambar 20. Desain Input Data Pengembalian Buku
vi
vii xi xiii xv xvii
7) Desain Input Cari Data Buku
Gambar 21. Desain Input Pencarian Buku
c. Logika Program ( Flowchart )
Program flowchart adalah suatu bagian yang menggambarkan arus
logika dari data yang akan diproses dari awal suatu program sampai akhir
program. Bagan alir terdiri dari simbol-simbol yang akan dikerjakan. Adapun
flowchart yang dirancang pada sistem informasi yang baru ini adalah:
x
xii xiv xiv
1) Flowchart Menu Utama
Mulai
Kategori
menu=2
Buku
Anggota
Berhenti
Menu File
Tampilkan Menu kategori(1), buku(2),
anggota(3)
Tidak
Ya
Tampilkan Menu File, Kepustakaan dan Laporan
menu=1
menu=3
Laporan Buku
Laporan Peminjaman
Menu Laporan
Tampilkan Menu Laporan Buku(6) dan Peminjaman(7)
menu=6
menu=7
Menu Kepustakaan
Tampilkan Menu Peminjaman(4) dan Pengembalian(5)
Peminjaman
menu=5
Siswa
menu=4
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
Tidak
TidakYa
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Ya
Gambar 22. Flowchart Menu Utama
Keterangan :
Pada gambar diatas, gambar 22 Flowchart Menu utama dimulai dari start
program, lalu perintah untuk menampilkan menu file, kepustakaan, dan laporan.
Jika yang dipilih menu file, dan kondisinya Ya (benar) maka akan menampilkan
submenu dari file yaitu kategori buku (1), file buku (2) dan file anggota (3). Jika
kondisi (1) benar maka akan diteruskan ke kategori buku. Jika tidak, pindah ke
menu lain (2) atau (3). Jika kondisi (2) benar maka file buku akan dijalankan dan
jika kondisi (3) benar, maka file anggota bisa dijalankan.
vi
vii xi xiii xv xvii
Jika kondisi pada menu file tidak, maka program melanjutkan menu
berikutnya yaitu menu kepustakaan dan akan menampilkan sub menu peminjaman
(4) dan pengembalian (5). Jika kondisi pada submenu (4) ya, maka program akan
ke program peminjaman. Dan jika kondisi submenu (4) tidak maka program
dilanjutkan ke submenu (5) dan jika (4) dan (5) tidak maka program berhenti.
Jika kondisi pada menu laporan dipilih maka program akan menampilkan menu
laporan buku (7) dan laporan peminjaman buku (8).
2) Flowchart Kategori Buku
Gambar 23. Flowchart Kategori Buku
x
xii xiv xiv
Keterangan :
Pada gambar 23. Flowchat kategori buku, file kategori buku dilakukan
proses menginputkan id kategori. Jika konsisinya ya, maka akan ditampilkan data
kategori buku dan ada dua kondisi yaitu ubah dan hapus. Jika kondisinya tidak
maka akan dilakukan input data kategori ada satu kondisi yaitu simpan dan bersih
data jika pegawai pustaka salah dalam menginputkan data.
3) Flowchart Buku
Gambar 24. Flowchart Buku
vi
vii xi xiii xv xvii
Keterangan :
Pada gambar 24. Flowchart Buku diatas, dapat dilihat pada file buku
dilakukan proses input kode buku dan jika kondisinya ada maka data buku
ditampilkan dan memiliki dua kondisi ubah data buku dan hapus data buku. Jika
kondisi proses input kode buku tidak maka akan dilakukan proses input data buku
dan ada kondisi simpan data buku jika tidak maka akan kembali ke menu file
buku.
4) Flowchart Anggota Pustaka
Gambar 25. Flowchart Anggota Pustaka
x
xii xiv xiv
Keterangan :
Pada gambar 25. Flowchat Anggota Pustaka, dimulai dari menu utama,
lalu menu file dan submenu anggota pustaka. Pada file anggota pustaka dilakukan
proses penginputkan kode anggota. Jika kondisinya ada maka data anggota akan
ditampilkan dan memiliki dua kendisi ubah dan hapus data anggota. Jika
kondisinya tidak berarti ditampilakan proses input data anggota dan pada kondisi
simpan, maka dilakukan proses penyimpanan data anggota dan bersih data. jika
tidak maka akan ada pilihan keluar dan kembali ke menu anggota, dan berhenti.
5) Flowchart Peminjaman Buku
Gambar 26. Flowchart Peminjaman Buku
vi
vii xi xiii xv xvii
Keterangan :
Pada gambar 26. Flowchart Peminjaman Buku, dimulai dari menu utama,
lalu menu kepustakaan dan submenu peminjaman. dapat dijelaskan data pada file
peminjaman diinputkan tgl peminjaman, identitas anggota dan kode buku. Jika
data ada maka akan ditampilan data peminjaman dan dalam data peminjaman
terdapat dua kondisi ubah dan hapus data. Jika kondisinya ubah maka dilakukan
proses ubah data peminjaman buku dan kembali pada menu file peminjaman. Jika
kondisinya hapus maka dilakukan proses penghapusan data peminjaman dan
kembali ke menu file peminjman. Pada kondisi data tidak maka ditampilkan
proses input data peminjaman lalu ada kondisi simpan data pemninjaman jika
diteruskan maka data disimpan jika tidak maka akan kembali ke menu file
peminjaman buku.
6) Flowchart Pengembalian Buku
Gambar 27. Flowchart Pengembalian Buku
x
xii xiv xiv
Keterangan :
Pada gambar 27. Flowchart Pengembalian buku, dimulai dari menu utama,
lalu menu kepustakaan dan submenu pengembalian dan dicari data peminjaman
jika data ada, maka data ditampilkan jika tidak program keluar dan berhenti.
Setelah data ditampilkan lalu diproses data pengembalian atau tidak.
7) Flowchart Laporan Buku
Gambar 28. Flowchart Laporan Buku
vi
vii xi xiii xv xvii
Keterangan :
Pada gambar 28. Flowchart Laporan Buku, dimulai menampilkan menu
utama, menu laporan buku, jika data ada, maka data buku akan ditampilkan dan
ada pilihan cetak jika ya maka laporan dicetak kalau tidak program akan keluar
dan berhenti.
8) Flowchart Laporan Peminjaman Buku
Gambar 29. Flowchart Laporan Peminjaman Buku
x
xii xiv xiv
Keterangan :
Pada gambar 29. Flowchart Laporan Peminjaman Buku, dimulai pada
menu utama, menu laporan peminjaman buku. Jika data ada maka data akan
ditampilkan sesuai dengan periode peminjaman, ada pilihan cetak laporan jika ya,
maka laporan akan dicetak dan jika tidak maka program keluar dan berhenti.
vi
vii xi xiii xv xvii
BAB IV
IMPLEMENTASI SISTEM
A. Perancangan Implementasi Sistem
Tahap implementasi sistem merupakan tahap meletakkan sistem supaya
siap untuk dioperasikan. Tahap ini termasuk juga kegiatan menulis kode
program jika tidak digunakan paket perangkat lunak aplikasi.
Tahap implementasi sistem terdiri dari langkah-langkah sebagai berikut ini :
1) Menerapkan rencana implementasi
Rencana Implementasi dimaksudkan terutama untuk mengatur biaya
dan waktu yang dibutuhkan selama implementasi. Dalam rencana
implementasi ini, semua biaya yang akan dikeluarkan untuk kegiatan
implemntasi perlu dianggarkan dalam bentuk anggaran biaya. Anggaran
biaya ini selanjutnya juga berfungsi sebagai pengendalian terhadap biaya-
biaya yang harus dikeluarkan. Waktu yang diperlukan untuk melakukan
kegiatan juga perlu diatur dalam rencana implementasi dalam bentuk
jadwal waktu. jadwal waktu berfungsi sebagai pengendalian terhadap
waktu implementasi
2) Melakukan kegiatan implementasi
a. Pemilihan dan pelatihan personil
b. Pemilihan tempat dan instalasi perangkat keras dan perangkat lunak
c. Pemrograman dan pengetesan program
d. Pengetesan sistem
x
xii xiv xiv
e. Konversi sistem
3) Tindak lanjut implementasi
Analis sistem masih perlu melakukan tindak lanjut berikutnya seteleh
sistem baru diimplementasikan. Analis sistem masih perlu melakukan
pengetesan penerimaan sistem. Pengetesan ini berbeda dengan pengetesan
sistem yang telah dilakukan sebelumnya. Jika pada pengetesan
sebelumnya digunakan data test/semu, tapi pada pengetesan ini dilakukan
dengan menggunakan data sesungguhnya dalam jangka waktu tertentu
yang dilakukan oleh analis sistem bersama-sama dengan user.
B. Hasil Uji Coba Program dan Pembahasan
1. Program Server
Program pada komputer server terdiri dari halaman login, menu
utama dan menu utama terdiri dari file, kepustakaan, dan laporan
a. Tampilan Login
Gambar 30. Tampilan Halaman Login
vi
vii xi xiii xv xvii
Keterangan :
1) Pada halaman Login, proses login memberikan dua opsi pilihan yaitu, login
sebagai Admin atau pegawai pustaka (pada komputer server) dan login
sebagai guest (pada komputer client). Sebelum melakukan perintah login,
pegawai pustaka terlebih dahulu memasukan username dan password lalu
melakukan login. Adapun script eksekutor dari tombol login adalah sebagai
berikut :
import javax.swing.*; public class Login extends javax.swing.JFrame { /** Creates new form Login */ public Login() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LOGIN"); private void btnLoginKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { caridata(); } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void loginasActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(loginas.getSelectedIndex()==0) { username.setText(""); password.setText(""); } else { username.setText("Guest"); password.setText("Guest"); } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() {
x
xii xiv xiv
public void run() { Login x = new Login(); x.setVisible(true); x.show(); x.toFront(); x.setSize(490, 330); } }); } private void caridata() { if(loginas.getSelectedIndex()==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from user where username='"+username.getText()+"' and password='"+password.getText()+"'")==1) { if(db.rs.next()) { MenuUtama x = new MenuUtama(false); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } else { new cfg().msgbox("Username / Password Salah...", 'i'); } } } db.CloseRS(); db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } else { MenuUtama x = new MenuUtama(true); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } }
vi
vii xi xiii xv xvii
private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari program... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { System.exit(0); } } private void tampilCariBuku() { CariBuku x = new CariBuku(); x.setSize(709, 664); x.setVisible(true); x.show(); this.dispose(); }
2) Setelah melakukan login, maka muncul tampilan menu utama seperti gambar
dibawah ini
Gambar 31. Tampilan Halaman Menu Utama
Keterangan :
Ada 3 (tiga) menu yang terdapat pada menu utama yaitu, menu file,
menu kepustakaan, dan menu laporan. Dimana pada menu file, terdapat 4
(empat) submenu yaitu, file kategori buku, file buku, file anggota pustaka
x
xii xiv xiv
dan exit untuk keluar dari program. Pada menu kepustakaan terdapat 2
(dua) submenu yaitu, menu peminjaman buku dan pengembalian buku
sedangkan pada menu laporan terdapat 2 (dua) submenu yaitu, laporan
buku dan laporan peminjaman buku.
3) Jika admin tidak jadi melakukan login untuk masuk ke menu utama, maka
admin menekan tombol keluar. Maka akan muncul tampilan konfirmasi
sebagai berikut.
Gambar 32. Tampilan Konfirmasi Tombol Keluar
Adapun script eksekutor dari tombol keluar adalah sebagai berikut :
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari program... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { System.exit(0); } }
b. Menu File
1) File Kategori Buku
Pada Menu File Kategori Buku, Admin atau pegawai pustaka
melakukan entri data (input Kategori Buku) dengan mengisi No.
vi
vii xi xiii xv xvii
Kategori Buku dan Nama Kategori Buku. Ada 5 pilihan proses
yang terjadi pada input kategori buku ini yaitu :
Gambar 33. Tampilan Menu File Kategori Buku
Keterangan :
a) Proses simpan
Ketika admin atau pegawai pustaka telah melakukan input no.
kategori buku dan nama kategori buku maka admin melakukan
penyimpanan data dengan cara mengklik tombol simpan. Contoh disini
admin menginputkan no. kategori buku = 000 dengan nama kategori =
Karya Umum. Adapun script eksekutor dari proses simpan paa menu
file kategori buku adalah sebagai berikut :
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() {
x
xii xiv xiv
int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Kategori kosong...",'w'); nmKategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idKategori.getText() + "','"; query = query + nmKategori.getText() + "')"; String SQL = "insert into kategori " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } }}
Ketika mengklik tombol simpan maka muncul kotak dialog konfirmasi
seperti gambar dibawah ini.
vi
vii xi xiii xv xvii
Gambar 34. Tampilan Kotak Dialog Konfirmasi Tombol Simpan Pada Menu File Kategori Buku
Ketika admin mengklik tombol Yes, maka akan muncul kotak dialog
Gambar 35. Tampilan Kotak Dialog Konfirmasi Data Berhasil disimpan
x
xii xiv xiv
Setelah mengklik tombol OK, maka data no. kategori buku = 209 dengan
nama kategori buku = Ilmu Bumi telah tersimpan.
Gambar 36. Tampilan Menu Kategori Buku Setelah Proses Simpan Data
b) Proses Ubah Data
Proses merubah data dilakuan apabila admin salah dalam
melakukan input data kategori buku, sehingga dilakukan perubahan
data dengan cara mengklik tombol Ubah. Contohnya, admin ingin
merubah data no. kategori buku 209 dengan nama kategori buku Ilmu
Bumi kenjadi Karya sastra. Untuk lebih jelasnya dapat dilihat pada
gambar dibawah ini.
vi
vii xi xiii xv xvii
Gambar 37. Tampilan Proses Mengubah Data Pada Menu File Kategori Buku
Adapun script eksekutor dari tombol Ubah adalah sebagai berikut :
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Barang kosong...",'w'); nmKategori.requestFocus(); } else {
x
xii xiv xiv
try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "kategori_nama='"+nmKategori.getText()+"'"; String SQL = "update kategori set "+query+" where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }
Setelah mengklik tombol Yes pada kotak dialog tombol Ubah, maka
muncul kotak dialog data berhasil diubah seperti dibawah ini.
vi
vii xi xiii xv xvii
Gambar 38. Tampilan Kotak Dialog Konfirmasi Data Berhasil diubah
Setelah mengklik tombol OK, maka terlihat bahwa data no. kategori buku
209 dengan nama kategori buku Ilmu Bumi, sekarang berubah menjadi
Karya Saatra.
x
xii xiv xiv
Gambar 39. Tampilan Menu Kategori Buku Setelah Proses Ubah
c) Proses Hapus Data
Proses Hapus data dilakukan apabila admin ingin menghapus data-
data yang telah tersimpan namun salah dalam proses pengentrian data.
Contonya, admin ingin menghapus data no. Kategori buku 100 dengan
nama kategori buku Filsafat. Maka admin bisa mengklik pada tabel no.
kategori buku 100 dengan nama kategori buku filsafat maka akan
muncul tampilan seperti dibawah ini.
vi
vii xi xiii xv xvii
Gambar 40. Tampilan Proses Penghapusan Data Pada Menu File Kategori Buku
Adapun script eksekutor tombol proses hapus data adalah sebagai berikut:
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from kategori where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false);
x
xii xiv xiv
idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } }
Setelah mengklik tombol Yes, maka akan muncul tampilan kotak dialog
seperti gambar dibawah ini.
Gambar 41. Tampilan Kotak dialog Data Berhasil Dihapus
Setelah mengklik tombol OK, maka data no. kategori buku dengan nama
Filsafat sudah tidak ada lagi
vi
vii xi xiii xv xvii
Gambar 42. Tampilan Menu File Kategori Buku Setelah Proses Hapus
d) Proses Reset Data Kategori Buku
Proses reset data dilakukan apabila admin salah menginputkan
salah satu dari entitas input kategori buku. Contohnya, admin ingin
mengimputkan data dengan no. kategori buku 100, nama kategori buku
Filsafat, tapi karena salah menginputkan data no. kategori buku 100,
nama kategori buku Agama. Maka admin bisa membatalkanya dengan
cara mengklik tombol reset.
x
xii xiv xiv
Gambar 43. Tampilan Proses Reset Data Pada Menu File Kategori Buku
Adapun script eksekusi dari proses tombol reset adalah sebagai berikut
private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } }
Setelah mengklik tombol Yes maka input no. kategori dan nama buku tadi
dibatalkan.
vi
vii xi xiii xv xvii
e) Proses Keluar Kategori Buku
Proses tombol keluar merupan tombol yang digunakan admin untuk
keluar dari menu file kategori buku. Ketika admin mengklik tombol
keluar maka akan muncul kotak dialog seperti dibawah ini
Gambar 44. Tampilan Proses Keluar Pada Menu File Kategori Buku
Adapun script eksekutor dari proses tombol keluar adalah sebagai berikut
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void bersih() { nmKategori.setText("");
x
xii xiv xiv
} private void aktif(boolean yes) { nmKategori.setEnabled(yes); if(yes==false) { tombol(0,0); tampilTabel(); idKategori.setEditable(true); } } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } }
Setelah mengklik tombol Yes, maka admin akan kembali ke menu utama
2) File Buku
Gambar 45. Tampilan Menu File Buku
vi
vii xi xiii xv xvii
Keterangan :
Pada Menu File buku ini, admin atau pegawai pustaka melakukan
mengentrikan data buku (input data buku). Adapun entitas yang diinputkan terdiri
dari ID Buku, judul, pengarang, penerbit, tahun terbit, dan kategori buku.
Sedangkan untuk proses
Ada 5 pilihan proses yang terjadi pada input data buku ini yaitu :
a) Proses Simpan Data Buku
Proses simpan data dilakukan oleh admin untuk menyimpan data buku
yang telah dientrikan. Admin mengentikan ID buku, judul, pengarang,
penerbit, tahun terbit, dan kategori buku. Untuk kategori buku, admin hanya
memilih dari list kategori yang telah di entrikan sebelumnya pada menu file
kategori buku. Contohnya, admin ingin memasukan data ID buku 488336,
judul 1001 Dongeng Mancanegara, pengarang MB. Rumansyah. AR, penerbit
Bintang Usaha Jaya, tahun terbit kategori Karya Umum.
Gambar 46. Tampilan Proses Penginputan data Buku
x
xii xiv xiv
Adapun script eksekutor dari tombol proses simpan adalah sebagai berikut
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w'); pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w'); kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idBuku.getText() + "','"; query = query + judul.getText() + "','"; query = query + pengarang.getText() + "','";
vi
vii xi xiii xv xvii
query = query + penerbit.getText() + "','"; query = query + tahun.getYear() + "','"; query = query + new cfg().GetID(kategori) + "')"; String SQL = "insert into buku " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }
Setelah admin mengklik tombol Yes, maka muncul tampilan kotak dialog
data berhasil disimpan seperti dibawah ini
x
xii xiv xiv
Gambar 47. Tampilan Kotak Dialog Data Berhasil didimpan Pada Menu File Buku
Setelah admin mengklik tombol OK, maka data buku yang diinputkan
tadi akan tersimpan. Seperti gambar dibawah ini
Gambar 48. Tampilan Menu Proses Simpan Data Buku
b) Proses Ubah Data Buku
Proses merubah data dilakuan apabila admin salah dalam melakukan
input data buku, sehingga dilakukan perubahan data dengan cara mengklik
tombol Ubah. Contohnya, admin ingin merubah judul buku pada data
kode buku 45836, judul Atlas, pengarang Tim Penyusun, penerbit Pustaka
Amani menjadi stok yang tadi 14 menjadi 15. Pada peoses ubah ini, admin
mengklik row/ baris item yang akan di rubah, lalu mengklik tombol ubah.
Maka akan muncul tampilan sebagai berikut.
vi
vii xi xiii xv xvii
Gambar 49. Tampilan Kotak Dialog Proses Ubah data Pada Menu File Buku
Adapun script eksekutor dari tombol proses ubah data buku adalah sebagai
berikut:
private void
btnUbahActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w');
x
xii xiv xiv
pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w'); kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "buku_judul='"+judul.getText()+"',"; query = query + "buku_pengarang='"+pengarang.getText()+"',"; query = query + "buku_penerbit='"+penerbit.getText()+"',"; query = query + "buku_tahun='"+tahun.getYear()+"',"; query = query + "kategori_id='"+new cfg().GetID(kategori)+"'"; String SQL = "update buku set "+query+" where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }
vi
vii xi xiii xv xvii
Setelah admin mengklik tombol Yes, pada kotak dialog diatas maka akan
muncul kotak dialog data telah berhasil dihapus. Seperti tampilan dibawah
ini
Gambar 50. Tampilan Kotak Dialog Data Berhasil diubah
Setelah admin mengklik tombol OK, maka dapat kita lihat data pada
baris pertama pada kolom judul telah berubah, dari judul Einstain aja ga
tahu menjadi Einstain aja ga tahu edisi 2. Untuk lebih jelasnya dapat
dilihat pada gambar dibawah ini
x
xii xiv xiv
Gambar 51. Tampilan Proses Ubah data pada Menu File Buku
c) Poses Hapus Data Buku
Proses Hapus data dilakukan apabila admin ingin menghapus data-data
yang telah tersimpan namun salah dalam proses pengentrian data.
Contonya, admin ingin menghapus data pada baris pertama. Maka admin
mengklik baris yang akan dihapus, lalu mengklik tombol hapus. Untuk
lebih jelasnya dapat dilihat pada gambar dibawah ini
vi
vii xi xiii xv xvii
Gambar 52. Tampilan Kotak Dialog Hapus Data Buku
Adapun script eksekutor dari tombol proses Hapus adalah sebagai berikut
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from buku where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB();
x
xii xiv xiv
bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } }
Setelah mengklik tombol Yes, maka mucul kotak dialog bahwa data telah
berhasil dihapus.
Gambar 53. Tampilan Kotak Dialog Data Berhasil dihapus
vi
vii xi xiii xv xvii
Setelah admin mengklik tombol OK, maka akan terlihat bahwa data pada
baris no 1 dengan judul buku 1001 Dongeng Mancanegara tidak ada lagi.
Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini:
Gambar 54. Tampilan Proses Hapus Data Pada Menu File Buku
d) Proses Reset Data Buku
Proses reset data dilakukan apabila admin salah menginputkan salah
satu dari entitas input kategori buku. Contohnya, admin ingin
mengimputkan data ID Buku 48341, judul Panduan MC dan Pidato, tapi
terinputkan dana dari Bos padahal beli dari dana SSN maka admin bisa
mengklik tombol reset untuk membantalkanya. Untuk lebih jelasnya dapat
dilihat pada gambar dibawah ini
x
xii xiv xiv
Gambar 55. Tampilan Kotak Dialog Reset Data Buku
Adapun script eksekutor untuk tombol proses reset data buku adalah
sebagai berikut
private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } }
Setelah admin mengklik tombol Yes, maka akan data yang diinputkan
tadi akan reset.
vi
vii xi xiii xv xvii
e) Proses Keluar Data Buku
Proses tombol keluar merupan tombol yang digunakan admin untuk
keluar dari menu file Data buku. Ketika admin mengklik tombol keluar
maka akan muncul kotak dialog seperti dibawah ini
Gambar 56. Tampilan Kotak Dialog Keluar Data Buku
Adapun script eksekutor untuk tombol proses keluar dari data buku adalah
sebagai berikut :
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } }
x
xii xiv xiv
Setelah admin mengklik tombol OK, maka admin akan berada pada menu
utama
3) File Anggota Pustaka
Gambar 57. Tampilan Menu File Anggota Pustaka
Keterangan :
Pada menu file anggota pustaka, admin melakukan entri data anggota
berupa, Identitas anggota, nama anggota, jenis kelamin, alamat, contact
person, kategori anggota (siswa, guru dan umum). Adapun proses yang
dilakukan adalah sebagai berikut.
a) Proses Simpan Data Anggota
Proses simpan data anggota dilakukan oleh admin untuk
mengimputkan data anggota perpustakaan. Contoh, Admin menginputkan
Identitas anggota 02-456, nama anggota Werslita, jenis kelamin
perempuan, alamat Jl. Raya Mungka No. 23, contact person
vi
vii xi xiii xv xvii
081363785145, kategori anggota guru, lalu mengklik tombol proses
simpan.
Gambar 58. Tampilan Kotak dialog Simpan Data Anggota
Adapun script eksekutor untuk tombol proses simpan pada menu file data
anggota adalah sebagai berikut
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) { new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w');
x
xii xiv xiv
alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w'); cp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + id.getText() + "','"; query = query + nama.getText() + "','"; query = query + new cfg().getJK(radL, radP) + "','"; query = query + alamat.getText() + "','"; query = query + cp.getText() + "','"; JRadioButton[] rad = {radSiswa,radGuru,radUmum}; query = query + new cfg().getRad(rad) + "','"; if(radSiswa.isSelected()==true) { query=query+kelas.getSelectedItem()+"')"; } else { query=query+"')"; } String SQL = "insert into anggota " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false);
vi
vii xi xiii xv xvii
id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }
Setelah mengklik tombol Yes, Maka akan muncul kotak dialog data
berhasil disimpan
Gambar 59. Tampilan Kotak Dialog Data Anggota berhasil disimpan
Setelah mengklik tombol OK, maka dapat dilihat bahwa data yang
diinputkan admin telah tersimpan. Untuk lebih jelasnya dapat dilihat pada
gambar dibawah ini :
x
xii xiv xiv
Gambar 60. Tampilan Proses Simpan Menu File Anggota Pustaka
b) Proses Ubah Data Anggota
Proses ubah data anggota digunakan untuk merubah data anggota
pustaka yang salah dalam proses pengentrian data oleh admin. Contohnya
admin ingin mengubah data Contact Person dari anggota bernama
Werslita. Semula data Contact Person Werslita 081363785145, akan
dirubah menjadi 081363112165. Untuk lebih jelasnya dapat dilihat pada
gambar dibawah ini
vi
vii xi xiii xv xvii
Gambar 61. Tampilan Kotak Dialog Ubah Data Anggota
Adapun script eksekutor dari tombol proses ubah data anggota pustaka
adalah sebagai berikut
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) { new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w'); alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w');
x
xii xiv xiv
cp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "anggota_nama='"+nama.getText()+"',"; query = query + "anggota_jk='"+new cfg().getJK(radL, radP)+"',"; query = query + "anggota_alamat='"+alamat.getText()+"',"; query = query + "anggota_cp='"+cp.getText()+"',"; JRadioButton[] rad = {radSiswa,radGuru,radUmum}; query = query + "anggota_tipe='"+new cfg().getRad(rad)+"',"; if(radSiswa.isSelected()==true) { query=query+"anggota_kelas='"+kelas.getSelectedItem()+"'"; } else { query=query+"anggota_kelas=''"; } String SQL = "update anggota set "+query+" where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); }
vi
vii xi xiii xv xvii
} } }
Setelah admin mengklik tombol Yes, muncul kotak dialog data
berhasil diubah.
Gambar 62. Tampilan Kotak Dialog Data Anggota Berhasil Diubah
Setelah admin mengklik tombol OK, maka dapat kita lihat data
Anggota dengan identitas Anggota 02-456, berubah. Untuk lebih
jelasnya dapat dilihat pada gambar dibawah ini
x
xii xiv xiv
Gambar 63. Tampilan Proses Ubah Anggota Pustaka
c) Proses Hapus Data Anggota
Proses hapus data pustaka dilakukan oleh admin untuk menghapus
data anggota pustaka, contohnya admin ingin menghapus data anggota
Werslita, maka admin mengklik baris anggota yang akan dihapus dan
mengklik tombol hapus. Untuk lebih jelasnya dapat dilihat pada gambar
dibawah ini
vi
vii xi xiii xv xvii
Gambar 64. Tampilan Kotak Dialog Proses Hapus Data Anggota Pustaka
Adapun script eksekutor untuk tombol proses hapus data anggota pustaka
adalah sebagai berikut
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from anggota where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) {
x
xii xiv xiv
new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } }
Setelah admin mengklik tombol Yes, muncul kotak dialog, data
berhasil dihapus
Gambar 65. Tampilan Kotak Dialog Data Anggota Pustaka Berhasil Dihapus
Setelah admin mengklik tombol OK, maka data anggota Werslita
telah dihapus.
vi
vii xi xiii xv xvii
Gambar 66. Tampilan Proses Hapus Data Anggota Pustaka
d) Proses Reset Data Anggota Pustaka
Proses reset data anggota digunakan admin apabila admin ingin
membatalkan penginputan data yang dianggap salah. Contohnya, admin
ingin menginputkan ID anggota Rahmadi Zaki dengan alamat Jl. Raya
Mungka, tapi karena terjadi kesalahan admin mengimputkan ID anggota
Ramadi Zaki dengan alamat Payakumbuh, maka admin bisa
membatalkannya dengan mengklik tombol reset
x
xii xiv xiv
Gambar 67. Tampilan Proses Reset Data Anggota Pustaka
Adapun script eksekutor dari tombol proses reset data anggota pustaka
adalah sebagai berikut
private void
btnResetActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here: resetdata(); } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); id.setText(""); id.requestFocus(); } }
vi
vii xi xiii xv xvii
e) Proses Keluar Data Anggota Pustaka
Proses Keluar Data anggota digunakan oleh admin untuk keluar dari menu
File data anggota pustaka.
Gambar 68. Tampilan Kotak Dialog Proses Keluar File Menu Data Anggota Pustaka
Script eksekutor untuk tombol proses keluar data anggota pustaka
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } }
x
xii xiv xiv
Setelah admin mengklik tombol Yes, maka admin berada pada menu utama
c. Menu Kepustakaan
1) Peminjaman Buku
Gambar 69. Tampilan Menu Kepustakaan Peminjaman Buku
Keterangan :
Pada menu kepustakaan peminjaman buku, admin melakukan proses
input data peminjaman buku yang terdiri dari tanggal pinjam, kategori
anggota (dipilh dengan mengklik salah satu pilihan radio bottom),
identitas peminjam, buku, dan batas pinjam, pengarang, penerbit, tahun
terbit buku, kategori buku (admin tanpa menginputkan data)
Adapun proses yang ada pada menu kepustakaan peminjaman buku
adalah sebagai berikut :
vi
vii xi xiii xv xvii
a) Tombol Simpan Data Peminjaman
Ketika admin menginputkan data peminjaman maka admin mengklik
tombol simpan. Script eksekutor dari tombol proses simpan pada data
peminjaman adalah sebagai berikut
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "(pinjam_tgl,anggota_id,buku_id,pinjam_tglbatas) values('"; query = query + tglpinjam+ "','"; query = query + new cfg().GetID(peminjam) + "','"; query = query + new cfg().GetID(buku) + "','"; query = query + tglbts + "')"; String SQL = "insert into pinjam " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); }
x
xii xiv xiv
buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }
Gambar 70. Tampilan Kotak Dialog Proses Simpan Pada Data Peminjaman Buku
Setelah admin melakukan simpan data peminjaman maka dapat dilihat
data anggota Putri Rahayu telah tersimpan
vi
vii xi xiii xv xvii
Gambar 71. Tamilan Proses Simpan Data Peminjaman Buku
b) Proses Ubah Data Peminjaman
Proses ubah data peminjaman digunakan admin untuk merubah data
peminjaman. Adapun script eksekutor untuk tombol proses ubah data
peminjaman adalah sebagai berikut :
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else { try
x
xii xiv xiv
{ mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "pinjam_tglbatas='"+tglbts+"'"; String SQL = "update pinjam set "+query+" where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and " + "buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }
Gambar 72. Tampilan Proses Ubah data Peminjaman Buku
vi
vii xi xiii xv xvii
c) Proses Hapus Data Peminjaman Buku
Proses hapus data peminjaman buku digunakan oleh admin untuk
menghapus data peminjaman buku. Adapun script eksekutor dari tombol
hapus data peminjaman buku adalah sebagai berikut :
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from pinjam where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } }
x
xii xiv xiv
Gambar 73. Tampilan Kotak Dialog Proses Hapus Data Peminjaman Buku
Setelah admin mengklik tombol Yes, maka data Putri Rahayu,
meminjam buku Contextual Teaching Learning akan terhapus.
Gambar 74. Tampilan Proses Hapus Data Peminjaman Buku
vi
vii xi xiii xv xvii
d) Proses Reset Data Peminjaman Buku
Proses reset data peminjaman buku ini berfungsi untuk membatalkan
entri data yang diinputkan oleh admin. Adapun script eksekutor untuk
tombol proses reset adalah sebagai berikut :
private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: reset(); } private void reset() { int pil = JOptionPane.showConfirmDialog(null,"Reset Order di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersihPinjam(); aktifPinjam(false); resetPinjam(); tampilTabel(); tombol(0, 0); } }
Gambar 75. Tampilan Proses Reset Data Peminjaman Buku
x
xii xiv xiv
e) Proses Keluar Data Peminjaman Buku
Proses Keluar Data Peminjaman Buku berfungsi untuk keluar dari
menu data peminjaman buku. Adapun script eksekutor untuk tombol
proses keluar adalah sebagai berikut.
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } }
Gambar 76. Tampilan Proses Keluar Data Peminjaman Buku
vi
vii xi xiii xv xvii
2) Pengembalian Buku
Gambar 77. Tampilan Menu Kepustakaan Pengembalian Buku
x
xii xiv xiv
Keterangan :
Pada menu kepustakaan pengembalian buku, terdapat 2 (dua) tab. Tab
pertama, cari data peminjam buku dan data pengembalian buku. Pada Tab cari
data peminjam buku digunakan untuk melihat data peminjam buku dan dilkukan
dengan menginputkan nama anggota pustaka lalu dengan mengklik tombol proses
peminjaman maka ditampilakan data peminjam buku yang bersangkutan.
Sedangkan pada tab data pengembalian buku terdapat data peminjaman buku.
Adapun proses yang ada pada menu kepustakaan pengembalian buku adalah
sebagai berikut
a) Proses Cari Peminjam Buku
Adapun script eksekutor dari tombol proses simpan dari pengembalian
buku adalah sebagai berikut :
private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(tampilTabel()==0) { JOptionPane.showMessageDialog(null, "Data tidak ada","Pesan",JOptionPane.INFORMATION_MESSAGE); } }
b) Proses Tombol Pemrosesan Peminjaman Buku
Adapun script eksekutor dari tombol proses pemrosesan peminjaman
buku dari pengembalian buku adalah sebagai berikut :
private void btnProsesActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: Proses(); }
private void Proses() {
vi
vii xi xiii xv xvii
if(myTabel.getSelectedRow()>=0) { String pinj = myTabel.getValueAt(myTabel.getSelectedRow(), 6).toString(); String angg = myTabel.getValueAt(myTabel.getSelectedRow(), 2).toString(); String buku = new cfg().GetID(myTabel.getValueAt(myTabel.getSelectedRow(), 4)); int ok = JOptionPane.showConfirmDialog(null, "Proses pengembalian buku untuk "+myTabel.getValueAt(myTabel.getSelectedRow(), 1) +" ?", "Update Data", JOptionPane.YES_NO_OPTION); if(ok==JOptionPane.YES_OPTION) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; String tgl = new mydate().curDate(); String bln = new mydate().curMonth(false); String thn = new mydate().curYear()+""; query = query + "pinjam_tglkembali='"+thn+"-"+bln+"-"+tgl+"'"; String SQL = "update pinjam set "+query+" " + "where pinjam_tgl='"+new mydate().mySQLDate(pinj)+"' and " + "anggota_id='"+angg+"' and " + "buku_id='"+buku+"'"; //System.out.println(SQL); if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } tampilTabel(); datakembali(); } private int tampilTabel() {
x
xii xiv xiv
int no=0 ; String cr = cari.getText(); String kriteria = ""; if(cr.length()>0) { kriteria = "and anggota_nama like '"+ cr + "%'"; } try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Perkiraan Keterlambatan", //8 "Perkiraan Denda"}; //9 tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is null " + kriteria + "order by pinjam_tgl desc")==1) { String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length()}; while(db.rs.next()) { no = no+1;
vi
vii xi xiii xv xvii
nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ //t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ //t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe"); t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t8 = lebih+" Hari"; t9 = ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); }
x
xii xiv xiv
db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } return no; } private void datakembali() { try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Tanggal Kembali", //8 "Keterlambatan", //9 "Denda"}; //10 tabelku = new DefaultTableModel(null, row); tabelkembali.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is not null "+ "order by pinjam_tglkembali desc")==1) { int no=0 ;
vi
vii xi xiii xv xvii
String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="",t10=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe"); t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul");
x
xii xiv xiv
t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); if(lebih<0){ lebih = 0; t9 = ""; }else{ t9 = lebih+" Hari"; } t10= ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } myTab.setTitleAt(1, "Data Pengembalian ( "+no+" )"); db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<tabelkembali.getColumnCount();i++) { col = tabelkembali.getColumnModel().getColumn(i); int fSize = tabelkembali.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } }
vi
vii xi xiii xv xvii
d. Laporan
1) Laporan Buku
Laporan Buku merupakan laporan ketersedian buku yang ada pada
SMP.N 1 Kec. Mungka.
Gambar 78. File Menu Laporan Buku
Keterangan :
Ketika admin mengklik tombol preview, maka script eksekutornya
adalah sebagai berikut
private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("pimp", pimp.getText());
x
xii xiv xiv
JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"Laporan\\LaporanBuku.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); }
Tampilan setelah mengeksekusi tombol preview
Gambar 79. Tampilan Halaman Laporan Buku
Selanjutnya jika admin ingin keluar dari laporan, tinggal mengklik
tombol keluar adapun script eksekutor untuk tombol proses keluar adlah
sebagai berikut:
vi
vii xi xiii xv xvii
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }
2) Laporan Peminjaman Buku
Laporan Peminjaman Buku, merupakan laporan dari data peminjaman dan
pengambalian buku dan denda.
Gambar 80. File Menu Laporan Peminjaman Buku
Keterangan :
Ketika admin mengklik tombol preview untuk laporamn peminjaman
buku, script eksekutornya adalah sebagai berikut :
private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); }
x
xii xiv xiv
else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode", tahun.getYear()+"-"+new mydate().zero_(bulan.getMonth()+1)+"%"); prs.put("pimp", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"Laporan\\LaporanPeminjaman.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); }
Tampilan setelah mengeksekusi tombol preview
Gambar 81. Tampilan Laporan Peminjaman Buku
vi
vii xi xiii xv xvii
Selanjutnya jika admin ingin keluar dari menu laporan peminjaman buku
maka admin tinggal mengklik tombol keluar , adapun script eksekutornya adalah
sebagai berikut:
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }
3) Laporan Peminjaman Buku/ 3 Bulan
Gambar. 82 File Menu Laporan Peminjaman/ 3 Bulan
Keterangan :
Ketika admin mengklik tombol preview untuk laporamn peminjaman
buku, script eksekutornya adalah sebagai berikut :
public class lapPinjamPer3Bln extends javax.swing.JInternalFrame { public lapPinjamPer3Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 3 BULAN");
x
xii xiv xiv
cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer3Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }
vi
vii xi xiii xv xvii
private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari, Februari, Maret"); periode.addItem("April, Mei, Juni"); periode.addItem("Juli, Agustus, September"); periode.addItem("Oktober, Nopember, Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "04"); }else if(p==2) { per = per.replace("{b}", "05"); }else if(p==3) { per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==2) { if(p==1)
x
xii xiv xiv
{ per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09"); } }else if(periode.getSelectedIndex()==3) { if(p==1) { per = per.replace("{b}", "10"); }else if(p==2) { per = per.replace("{b}", "11"); }else if(p==3) { per = per.replace("{b}", "12"); } } return per; }
Tampilan halaman laporan Peminjaman Buku/ 3Bulan
Gambar. 83 Halaman Tampilan Laporan Peminjaman Buku/ 3bulan
vi
vii xi xiii xv xvii
4) Laporan Peminjaman Buku/ 6 Bulan
Gambar. 84 File Menu Laporan Peminjaman Buku/ 6Bulan
Keterangan :
Ketika admin mengklik tombol preview untuk laporamn peminjaman
buku, script eksekutornya adalah sebagai berikut :
import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPer6Bln extends javax.swing.JInternalFrame { public lapPinjamPer6Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 6 BULAN"); cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0)
x
xii xiv xiv
{ new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("periode4", periode(4)); prs.put("periode5", periode(5)); prs.put("periode6", periode(6)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer6Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: }
vi
vii xi xiii xv xvii
private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari s/d Juni"); periode.addItem("Juli s/d Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); }else if(p==4) { per = per.replace("{b}", "04"); }else if(p==5) { per = per.replace("{b}", "05"); }else if(p==2) { per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09");
x
xii xiv xiv
}else if(p==4) { per = per.replace("{b}", "10"); }else if(p==5) {per = per.replace("{b}", "11"); }else if(p==2) {per = per.replace("{b}", "12"); }} return per;}
Tampilan Halaman Laporan Peminjaman Buku/ 6Bulan
Gambar.85 Halaman Tampilan Laporan Peminjaman
Buku/ 6Bulan
5) Laporan Peminjaman Buku/ Tahun
Gambar. 86 File Laporan Peminjaman Buku/ Tahun
vi
vii xi xiii xv xvii
Keterangan :
Ketika admin mengklik tombol preview untuk laporamn peminjaman
buku, script eksekutornya adalah sebagai berikut :
public class lapPinjamPerTahun extends javax.swing.JInternalFrame { public lapPinjamPerTahun() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN REKAP PEMINJAMAN / TAHUN"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("tahun", tahun.getYear()+"%"); prs.put("pim", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPerTahun.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } }
x
xii xiv xiv
private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: }
Tampilan Halaman Laporan Peminjaman Buku/ Tahun
vi
vii xi xiii xv xvii
Gambar. 87 Halaman Tampilan Laporan Peminjaman Buku/ Tahun
2. Program Client
Program client merupakan program yang dirancang untuk client,
program client dibuat agar anggota pustaka mengetahui koleksi buku yang
ada pada perpustakaan SMP Negeri 1 Kec. Mungka. Adapun tampilan dari
program client sebagai berikut.
Gambar 88. Tampilan Program Client Cari Buku
Keterangan :
Pada program client cari buku, client menginputkan data pencarian
berupa kategori buku dan judul buku lalu mengklik tombol cari buku,
adapun script untuk tombol proses cari buku adalah sebagai berikut:
private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
x
xii xiv xiv
tampilTabel(); } private void tampilTabel() { String cari = ""; if(cekKategori.isSelected()==true) { cari = " and t1.kategori_id='"+new cfg().GetID(kategori)+"' "; } if(cekJudul.isSelected()==true) { cari = cari+" and buku_judul like '%"+judul.getText()+"%'"; } try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Buku","Judul","Pengarang","Penerbit","Tahun Terbit","Kategori"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id " + cari + "order by t1.kategori_id,buku_judul asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+".";
vi
vii xi xiii xv xvii
t1 = db.rs.getString("buku_id"); t2 = db.rs.getString("buku_judul"); t3 = db.rs.getString("buku_pengarang"); t4 = db.rs.getString("buku_penerbit"); t5 = db.rs.getString("buku_tahun"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); String[] data = {nom,t1,t2,t3,t4,t5,t6}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } }
x
xii xiv xiv
BAB V
PENUTUP
A. Kesimpulan
Berdasasrkan analisa perancangan dan implementasi sistem yang telak
dilakukan, maka dapat diambil kesimpulan sebagai berikut :
1. Kegiatan pengolahan data perpustakaan yang sebelumnya masih dilakukan
secara manual/ paper based dan sekarang beralih ke pengolahan data
berbasiskan komputer
2. Sistem Informasi Perpustakaan pada SMP Negeri. 1 Kec. Mungka
memberikan informasi tentang data buku pada komputer client sehingga
memberikan informasi tentang buku apa saja yang tersedia pada
perpustakaan SMP Negeri.1 Kec. Mungka
3. Sistem Informasi pustaka pada SMP Negeri.1 Kec. Mungka dapat
memberikan kemudahan bagi petugas pustaka dalam menginventarisasi
buku-buku perpustakaan
B. Saran
Berdasarkan Implementasi dan uji coba sistem maka penulis memberikan
saran yang dapat melengkapi dan memperbaiki sistem informasi
perpustakaan pada SMP Negeri.1 Kec. Mungka ini dimasa yang akan
datang adalah sebagai berikut :
vi
vii xi xiii xv xvii
1. Proses input data harus dilakukan dengan teliti sehingga informasi yang
dihasilkan sesuai dengan yang diharapkan dalam transaksi peminjaman,
pengembalian dan data buku
2. Sistem informasi yang telah penulis buat dapat dikembangkan lagi seperti
menambah entitas pada program pencarian data buku
3. Akhirnya, semoga sistem informasi perpustakaan yang terkomputerisasi
ini dapat membantu segala civitas akademika pada SMP Negeri.1 Kec.
Mungka.
x
xii xiv xiv
DAFTAR PUSTAKA
Al-Ghazali, Abdul Katar. (2010). Jenis-jenis Metode Penelitian Pendidikan. http://www.akalgi.co.cc/2009/09/jenis-jenis-metode-penelitian.html Diakses tanggal 09 mei 2011, 14:22 WIB
Akib, Faisal. (2009). Topologi Jaringan http://teknik-informatika.com/topologi-jaringan/ Diakses tanggal, 31 Juli 2011, 15:08 WIB
Astika, Budi. (2008). Memahami Database Mysql http://budiastika.blogspot.com/2008/11/memahami-database-mysql.html Diakses tanggal 15 mei 2011, 08: 50 WIB
Darmono. (2002). Perpustakaan Sekolah. Jakarta: Grasindo
Fredynaonnya’s blog. (2010). Pengertian Informasi http://f123dynaonnya.wordpress.com/2010/07/11/pengertian-informasi/ Diakses tanggal 10 mei 2011, 11:30 WIB
Hakim S, Rachmad & Sutarto. (2008). Mastering Java. Jakarta : PT. Elex Media Komputindo
Hamakonda, P. Towa & Tairas. (2008). Pengantar Klasifikasi Persepuluh Dewey. Jakarta: Gunung Mulia
Harianto, Kristanto (2004). Konsep dan Perancangan Database. Yogyakarta: Andi
Husni, Iskandar Pohan & Kusnassriyanto, Saipul Bahri (2004). Pengantar
Perancangan Sistem. Yogyakarta : Andi Offset
Jogianto HM. (2005). Analisis dan Desain. Yogyakarta: Andi Offset
Lasa. Hs (2009). Manajemen Perpustakaan Sekolah. Yogyakarta: Pinus
Leman. (1998). Metodologi Pengembangan Sistem Informasi. Jakarta: PT. Elex Media Komputindo
Nurdiana R Lila Sinaga, Nurdiana R dan Brahmana, Rayenda Khresna MR. (2005). Analisis dan Desain Informasi
vi
vii xi xiii xv xvii
Nazir, Moh. (1998). Metode Penelitian. Jakarta: Ghalia Indonesia
Ramadhan, Arif. (2006). Pengenalan Jaringan Komputer. Jakarta: PT. Elex Media Komputindo
Randhi, Akbar. (2007). Definisi Komputer Menurut Para Ahli. http://wss-id.org/blogs/akbar_randhi_sby/archive/2007/09/25/definisi-komputer-menurut-para-ahli.aspx , Diakses tanggal 10 mei 2011, 11:05 WIB
Syafrizal, Melwin. (2005). Pengantar Jaringan Komputer. Yogyakarta: Andi
Supardi, Yuniar. (2007). Pemrograman Database dengan Java dan MySQL. Jakarta: PT. Elex Media Komputindo
Universitas Negeri Padang (2009). Buku Panduan Penulisan Tugas Akhir/ Skripsi Padang: UNP
http://id.wikipedia.org/wiki/Sistem. Diakses tanggal 10 mei 2011, 11:1
http://usupress.usu.ac.id/files/layout Analisis dan Desain Sistem Informasi_normal_awal.pdf Diakses tanggal 10 mei 2011, 11:00 WIB
http://f4bregaz.blogspot.com/2009/02/apa-itu-xampp-kepanjangan-dari-xampp.html. Diakses tanggal 01 Agustus 2011, 01:00 WIB
x
xii xiv xiv
vi
vii xi xiii xv xvii
Lampiran 1. Listing Program Login
import javax.swing.*; public class Login extends javax.swing.JFrame { /** Creates new form Login */ public Login() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LOGIN"); } private void usernameCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void usernameActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void usernameKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: caridata(); } private void btnLoginKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { caridata(); } } private void btnLoginKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); }
x
xii xiv xiv
private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void loginasActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(loginas.getSelectedIndex()==0) { username.setText(""); password.setText(""); } else { username.setText("Guest"); password.setText("Guest"); } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { Login x = new Login(); x.setVisible(true); x.show(); x.toFront(); x.setSize(490, 330); } }); } private void caridata() { if(loginas.getSelectedIndex()==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from user where username='"+username.getText()+"' and password='"+password.getText()+"'")==1) { if(db.rs.next()) {
vi
vii xi xiii xv xvii
MenuUtama x = new MenuUtama(false); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } else { new cfg().msgbox("Username / Password Salah...", 'i'); } } } db.CloseRS(); db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } else { MenuUtama x = new MenuUtama(true); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari program... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { System.exit(0); } } private void tampilCariBuku() { CariBuku x = new CariBuku(); x.setSize(709, 664); x.setVisible(true); x.show(); this.dispose(); } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnLogin; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2;
x
xii xiv xiv
private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JLabel lblNama1; private javax.swing.JComboBox loginas; private javax.swing.JPasswordField password; private javax.swing.JTextField username; // End of variables declaration } Lampiran 2. Listing Program Menu Utama public class MenuUtama extends javax.swing.JFrame { public MenuUtama(boolean guest) { initComponents(); this.setTitle(".: " + new SoftID().NamaPerusahaan+" :."); this.img.setSize(1800, 800); if(guest==true) { myPil.setVisible(false); Cari x = new Cari(); dp.add(x); x.setSize(980, 675); x.show(); x.toFront(); } } private void mkKembaliActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: filePengembalian x = new filePengembalian(); dp.add(x); x.setSize(1045, 620); x.show(); x.toFront(); } private void mkPinjamActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: filePeminjaman x = new filePeminjaman(); dp.add(x); x.setSize(990, 620); x.show(); x.toFront();
vi
vii xi xiii xv xvii
} private void mlBukuActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: lapBuku x = new lapBuku(); dp.add(x); x.setSize(520, 330); x.show(); x.toFront(); } private void mlPinjamActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: lapPinjam x = new lapPinjam(); dp.add(x); x.setSize(520, 330); x.show(); x.toFront(); } private void mfExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: System.exit(0); } private void mfAnggotaActionPerformed(java.awt.event.ActionEvent evt) { fileAnggota x = new fileAnggota(); dp.add(x); x.setSize(809, 680); x.show(); x.toFront(); } private void mfBukuActionPerformed(java.awt.event.ActionEvent evt) { fileBuku x = new fileBuku(); dp.add(x); x.setSize(720,680); x.show(); x.toFront(); } private void mfKategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: fileKategoriBuku fbrg = new fileKategoriBuku(); dp.add(fbrg); fbrg.setSize(525, 680); fbrg.show(); fbrg.toFront(); }
x
xii xiv xiv
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { } }); } // Variables declaration - do not modify private javax.swing.JDesktopPane dp; private javax.swing.JLabel img; private javax.swing.JSeparator jSeparator1; private javax.swing.JMenu mFile; private javax.swing.JMenu mLap; private javax.swing.JMenu mOrder; private javax.swing.JMenuItem mfAnggota; private javax.swing.JMenuItem mfBuku; private javax.swing.JMenuItem mfExit; private javax.swing.JMenuItem mfKategori; private javax.swing.JMenuItem mkKembali; private javax.swing.JMenuItem mkPinjam; private javax.swing.JMenuItem mlBuku; private javax.swing.JMenuItem mlPinjam; private javax.swing.JMenuBar myPil; // End of variables declaration } Lampiran 3. Listing Program Kategori Buku import javax.swing.*; import javax.swing.table.*; public class fileKategoriBuku extends javax.swing.JInternalFrame { public fileKategoriBuku() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("FILE > KATEGORI BUKU"); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); tampilTabel(); }
vi
vii xi xiii xv xvii
private void idKategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(idKategori.getText().length()>0) { caridata(); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); } private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void idKategoriCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void idKategoriKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: // new cfg().limtext_jtf(kode_barang, 20); // new cfg().deltabu_jtf(kode_barang); } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: }
x
xii xiv xiv
private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } } private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { resetdata(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here:
vi
vii xi xiii xv xvii
if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); idKategori.setText(""); } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: idKategori.setText(""+myTabel.getValueAt(myTabel.getSelectedRow(), 1)); caridata(); } private void nmKategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void nmKategoriKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void caridata() { bersih(); aktif(true); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from kategori where kategori_id='"+idKategori.getText()+"'")==1) { if(db.rs.next()) { idKategori.setEditable(false); nmKategori.setText(db.rs.getString("kategori_nama")); tombol(0,1); } else { idKategori.setEditable(false);
x
xii xiv xiv
tombol(1,0); } } } db.CloseRS(); db.CloseDB(); nmKategori.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Kategori kosong...",'w'); nmKategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idKategori.getText() + "','"; query = query + nmKategori.getText() + "')"; String SQL = "insert into kategori " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } }
vi
vii xi xiii xv xvii
} private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Barang kosong...",'w'); nmKategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "kategori_nama='"+nmKategori.getText()+"'"; String SQL = "update kategori set "+query+" where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) {
x
xii xiv xiv
String SQL = "delete from kategori where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void bersih() { nmKategori.setText(""); } private void aktif(boolean yes) { nmKategori.setEnabled(yes); if(yes==false) { tombol(0,0); tampilTabel(); idKategori.setEditable(true); }
vi
vii xi xiii xv xvii
} private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } } private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Kategori","Nama Kategori"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from kategori order by kategori_id asc")==1) { int no=0 ; String nom="",t1="",t2=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = db.rs.getString("kategori_id"); t2 = db.rs.getString("kategori_nama"); String[] data = {nom,t1,t2}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); }
x
xii xiv xiv
db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JTextField idKategori; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblNama1; private javax.swing.JTable myTabel; private javax.swing.JTextField nmKategori; // End of variables declaration }
vi
vii xi xiii xv xvii
Lampiran 4. Listing Program Buku import javax.swing.*; import javax.swing.table.*; public class fileBuku extends javax.swing.JInternalFrame { public fileBuku() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("FILE > BUKU"); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: cmbKategori(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); tampilTabel(); } private void idBukuActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(idBuku.getText().length()>0) { caridata(); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); }
x
xii xiv xiv
private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void judulActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void idBukuCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void idBukuKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: new cfg().limtext_jtf(idBuku, 20); new cfg().deltabu_jtf(idBuku); } private void judulKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here:
vi
vii xi xiii xv xvii
} private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } } private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { resetdata(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); idBuku.setText(""); } private void penerbitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: }
x
xii xiv xiv
private void penerbitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: idBuku.setText(""+myTabel.getValueAt(myTabel.getSelectedRow(), 1)); caridata(); } private void pengarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pengarangKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void stokActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void stokKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void sumberActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void sumberKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void rakActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void rakKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void cmbKategori() { for(int i=0;i<kategori.getItemCount();) {
vi
vii xi xiii xv xvii
kategori.removeItemAt(i); } kategori.addItem(""); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from kategori order by kategori_id asc")==1) { while(db.rs.next()) { kategori.addItem(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#Combo Kategori",'e'); } } private void caridata() { bersih(); aktif(true); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id and " + "buku_id='"+idBuku.getText()+"'")==1) { if(db.rs.next()) { idBuku.setEditable(false); judul.setText(db.rs.getString("buku_judul")); pengarang.setText(db.rs.getString("buku_pengarang")); penerbit.setText(db.rs.getString("buku_penerbit")); tahun.setYear(db.rs.getInt("buku_tahun")); kategori.setSelectedItem(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); sinopsis.setText(db.rs.getString("buku_sinopsis")); stok.setText(db.rs.getString("stok")); sumber.setText(db.rs.getString("sumber")); rak.setText(db.rs.getString("rak"));
x
xii xiv xiv
tombol(0,1); } else { idBuku.setEditable(true); tombol(1,0); } } } db.CloseRS(); db.CloseDB(); judul.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w'); pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w'); kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idBuku.getText() + "','"; query = query + judul.getText() + "','"; query = query + pengarang.getText() + "','";
vi
vii xi xiii xv xvii
query = query + penerbit.getText() + "','"; query = query + tahun.getYear() + "','"; query = query + new cfg().GetID(kategori) + "','"; query = query + sinopsis.getText() + "','"; query = query + stok.getText() + "','"; query = query + sumber.getText() + "','"; query = query + rak.getText() + "')"; String SQL = "insert into buku " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w'); pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w');
x
xii xiv xiv
kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "buku_judul='"+judul.getText()+"',"; query = query + "buku_pengarang='"+pengarang.getText()+"',"; query = query + "buku_penerbit='"+penerbit.getText()+"',"; query = query + "buku_tahun='"+tahun.getYear()+"',"; query = query + "kategori_id='"+new cfg().GetID(kategori)+"',"; query = query + "buku_sinopsis='"+sinopsis.getText()+"',"; query = query + "stok='"+stok.getText()+"',"; query = query + "sumber='"+sumber.getText()+"',"; query = query + "rak='"+rak.getText()+"'"; String SQL = "update buku set "+query+" where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try
vi
vii xi xiii xv xvii
{ mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from buku where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void bersih() { judul.setText(""); pengarang.setText(""); penerbit.setText(""); tahun.setYear(2000); kategori.setSelectedIndex(0); sinopsis.setText(""); stok.setText("0"); sumber.setText("");
x
xii xiv xiv
rak.setText(""); } private void aktif(boolean yes) { judul.setEnabled(yes); pengarang.setEnabled(yes); penerbit.setEnabled(yes); tahun.setEnabled(yes); kategori.setEnabled(yes); sinopsis.setEnabled(yes); stok.setEnabled(yes); sumber.setEnabled(yes); rak.setEnabled(yes); if(yes==false) { tampilTabel(); idBuku.setEditable(true); tombol(0,0); } } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } } private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Buku","Judul","Pengarang","Penerbit","Tahun Terbit","Kategori","Sinopsis","Stok","Sumber Dana","Rak"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id " + "order by t1.kategori_id,buku_judul asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="", t8="", t9="", t10="";
vi
vii xi xiii xv xvii
int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = db.rs.getString("buku_id"); t2 = db.rs.getString("buku_judul"); t3 = db.rs.getString("buku_pengarang"); t4 = db.rs.getString("buku_penerbit"); t5 = db.rs.getString("buku_tahun"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t7 = db.rs.getString("buku_sinopsis"); t8 = db.rs.getString("stok"); t9 = db.rs.getString("sumber"); t10 = db.rs.getString("rak"); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); }
x
xii xiv xiv
} } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JTextField idBuku; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField judul; private javax.swing.JComboBox kategori; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblHarga; private javax.swing.JLabel lblKet1; private javax.swing.JLabel lblKet2; private javax.swing.JLabel lblKet3; private javax.swing.JLabel lblKet4; private javax.swing.JLabel lblKet5; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblNama; private javax.swing.JLabel lblNama1; private javax.swing.JLabel lblSatuan; private javax.swing.JTable myTabel; private javax.swing.JTextField penerbit; private javax.swing.JTextField pengarang; private javax.swing.JTextField rak; private javax.swing.JTextArea sinopsis; private javax.swing.JTextField stok; private javax.swing.JTextField sumber; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration }
vi
vii xi xiii xv xvii
Lampiran. 5 Listing Program Anggota Pustaka import javax.swing.*; import javax.swing.table.*; public class fileAnggota extends javax.swing.JInternalFrame { public fileAnggota() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("FILE > ANGGOTA"); kelas.setVisible(false); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); id.setText(""); id.requestFocus(); tampilTabel(); } private void idActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(id.getText().length()>0) { caridata(); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); } private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) {
x
xii xiv xiv
// TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void namaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void idCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void idKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: new cfg().limtext_jtf(id, 20); new cfg().deltabu_jtf(id); } private void namaKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: new cfg().limtext_jtf(nama, 30); } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: }
vi
vii xi xiii xv xvii
private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } } private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { resetdata(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); id.setText(""); } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: id.setText(""+myTabel.getValueAt(myTabel.getSelectedRow(), 1)); caridata();
x
xii xiv xiv
} private void cpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void cpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void radSiswaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: showKelas(true); } private void radGuruActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: showKelas(false); } private void radUmumActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: showKelas(false); } private void caridata() { bersih(); aktif(true); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from anggota where anggota_id='"+id.getText()+"'")==1) { if(db.rs.next()) { id.setEditable(false); nama.setText(db.rs.getString("anggota_nama")); new cfg().setJK(db.rs.getString("anggota_jk"),radL,radP); alamat.setText(db.rs.getString("anggota_alamat")); cp.setText(db.rs.getString("anggota_cp")); String tipe = db.rs.getString("anggota_tipe"); String[] pil = {"1","2","3"};
vi
vii xi xiii xv xvii
JRadioButton[] rad = {radSiswa,radGuru,radUmum,radTest}; new cfg().setRad(tipe, rad); if(tipe.compareTo(radSiswa.getText())==0) { showKelas(true); kelas.setText(db.rs.getString("anggota_kelas")); } else { showKelas(false); } tombol(0,1); } else { id.setEditable(true); tombol(1,0); } } } db.CloseRS(); db.CloseDB(); nama.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) { new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w'); alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w'); cp.requestFocus(); } else { try {
x
xii xiv xiv
mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + id.getText() + "','"; query = query + nama.getText() + "','"; query = query + new cfg().getJK(radL, radP) + "','"; query = query + alamat.getText() + "','"; query = query + cp.getText() + "','"; JRadioButton[] rad = {radSiswa,radGuru,radUmum,radTest}; query = query + new cfg().getRad(rad) + "','"; if(radSiswa.isSelected()==true) { query=query+kelas.getText()+"')"; } else { query=query+"')"; } String SQL = "insert into anggota " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) {
vi
vii xi xiii xv xvii
new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w'); alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w'); cp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "anggota_nama='"+nama.getText()+"',"; query = query + "anggota_jk='"+new cfg().getJK(radL, radP)+"',"; query = query + "anggota_alamat='"+alamat.getText()+"',"; query = query + "anggota_cp='"+cp.getText()+"',"; JRadioButton[] rad = {radSiswa,radGuru,radUmum,radTest}; query = query + "anggota_tipe='"+new cfg().getRad(rad)+"',"; if(radSiswa.isSelected()==true) { query=query+"anggota_kelas='"+kelas.getText()+"'"; } else { query=query+"anggota_kelas=''"; } String SQL = "update anggota set "+query+" where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB();
x
xii xiv xiv
bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from anggota where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); id.setText(""); id.requestFocus(); } } private void keluarform()
vi
vii xi xiii xv xvii
{ int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void showKelas(boolean pil) { lblKelas.setVisible(pil); kelas.setVisible(pil); } private void bersih() { nama.setText(""); radL.setSelected(true); alamat.setText(""); cp.setText(""); radGuru.setSelected(true); kelas.setText(""); showKelas(false); } private void aktif(boolean yes) { nama.setEnabled(yes); radL.setEnabled(yes); radP.setEnabled(yes); alamat.setEnabled(yes); cp.setEnabled(yes); radSiswa.setEnabled(yes); radGuru.setEnabled(yes); radUmum.setEnabled(yes); radTest.setEnabled(yes); kelas.setEnabled(yes); if(yes==false) { tampilTabel(); id.setEditable(true); tombol(0,0); } } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } }
x
xii xiv xiv
private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","ID Anggota","Nama","Jekel","Alamat","Contact","Tipe","Kelas"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from anggota order by anggota_tipe,anggota_nama asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = db.rs.getString("anggota_id"); t2 = db.rs.getString("anggota_nama"); t3 = db.rs.getString("anggota_jk"); t4 = db.rs.getString("anggota_alamat"); t5 = db.rs.getString("anggota_cp"); t6 = db.rs.getString("anggota_tipe"); t7 = db.rs.getString("anggota_kelas"); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); }
vi
vii xi xiii xv xvii
db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JTextArea alamat; private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.JTextField cp; private javax.swing.ButtonGroup grupAnggota; private javax.swing.ButtonGroup grupJekel; private javax.swing.JTextField id; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField kelas; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblHarga; private javax.swing.JLabel lblKelas; private javax.swing.JLabel lblKode1; private javax.swing.JLabel lblKode2; private javax.swing.JLabel lblNama; private javax.swing.JLabel lblNama1; private javax.swing.JLabel lblSatuan; private javax.swing.JTable myTabel; private javax.swing.JTextField nama; private javax.swing.JRadioButton radGuru; private javax.swing.JRadioButton radL; private javax.swing.JRadioButton radP; private javax.swing.JRadioButton radSiswa; private javax.swing.JRadioButton radTest;
x
xii xiv xiv
private javax.swing.JRadioButton radUmum; // End of variables declaration } Lampiran 6. Listing Program Peminjaman Buku import java.text.*; import java.util.Date; import javax.swing.*; import javax.swing.table.*; public class filePeminjaman extends javax.swing.JInternalFrame { public filePeminjaman() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("KEPUSTAKAAN > PEMINJAMAN BUKU"); } private String tglpinjam = ""; private String tglbts = ""; private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: cmbBuku(); cmbPeminjam(0); resetPinjam(); tampilTabel(); } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: reset(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); } private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {
vi
vii xi xiii xv xvii
// TODO add your handling code here: hapusdata(); } private void pengarangKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pengarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } }
x
xii xiv xiv
private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { reset(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersihPinjam(); resetPinjam(); aktifPinjam(false); } private void tahunCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void tahunActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void tahunKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void kategoriCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void kategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
vi
vii xi xiii xv xvii
} private void kategoriKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void tglPinjamPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(tglPinjam.getDate()!=null) { SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd"); tglpinjam = ""+dt.format(tglPinjam.getDate()); } caridata(); } private void tglBatasPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(tglBatas.getDate()!=null) { SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd"); tglbts = ""+dt.format(tglBatas.getDate()); } } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: try { tglPinjam.setDate(new mydate().toDate(myTabel.getValueAt(myTabel.getSelectedRow(), 1)+"")); String tipe = ""+myTabel.getValueAt(myTabel.getSelectedRow(), 4); if(tipe.compareTo("Siswa")==0) { radSiswa.setSelected(true); } else if(tipe.compareTo("Guru")==0) { radGuru.setSelected(true); } else if(tipe.compareTo("Umum")==0) { radUmum.setSelected(true); } peminjam.setSelectedItem(myTabel.getValueAt(myTabel.getSelectedRow(), 3));
x
xii xiv xiv
buku.setSelectedItem(myTabel.getValueAt(myTabel.getSelectedRow(), 5)); caridata(); } catch(Exception e){} } private void bukuActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cariBuku(); } private void peminjamActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: caridata(); } private void penerbitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void penerbitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void radSiswaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(1); } private void radGuruActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(2); } private void radUmumActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(3); } private void radTestActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(4); } private void cmbBuku() {
vi
vii xi xiii xv xvii
for(int i=0;i<buku.getItemCount();) { buku.removeItemAt(i); } buku.addItem("-- Pilih Buku --"); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from buku order by kategori_id, buku_judul asc")==1) { while(db.rs.next()) { buku.addItem(db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul")); } } } } catch(Exception e){ } } private void cmbPeminjam(int tipe) { String tp = ""; if(tipe == 1) { tp = " where anggota_tipe='Siswa' "; } else if(tipe==2) { tp = " where anggota_tipe='Guru' "; } else if(tipe==3) { tp = " where anggota_tipe='Umum' "; } else if(tipe==4) { tp = " where anggota_tipe='Test' "; } for(int i=0;i<peminjam.getItemCount();) { peminjam.removeItemAt(i); } peminjam.addItem("-- Pilih Peminjam --"); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) {
x
xii xiv xiv
if(db.RS("select * from anggota "+tp+" order by anggota_tipe,anggota_nama asc")==1) { while(db.rs.next()) { peminjam.addItem(db.rs.getString("anggota_id")+" -- "+db.rs.getString("anggota_nama")); } } } } catch(Exception e){ } } private void caridata() { bersihPinjam(); aktifPinjam(true); if(tglPinjam.getDate()!=null && peminjam.getSelectedIndex()>0 && buku.getSelectedIndex()>0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { tglBatas.requestFocus(); if(db.RS("Select * from pinjam where pinjam_tgl='"+tglpinjam+"' " + "and anggota_id='"+new cfg().GetID(peminjam)+"' " + "and buku_id='"+new cfg().GetID(buku)+"'")==1) { if(db.rs.next()) { tglBatas.setDate(db.rs.getDate("pinjam_tglbatas")); tombol(0,1); } else { tglBatas.setDate(null); tombol(1,0); } } } db.CloseRS(); db.CloseDB(); tampilTabel(); tglPinjam.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage()+"#Cari Order",'e'); } }
vi
vii xi xiii xv xvii
else{ tombol(0,0); aktifPinjam(false); } } private void cariBuku() { bersihBuku(); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id and " + "buku_id='"+new cfg().GetID(buku)+"'")==1) { if(db.rs.next()) { pengarang.setText(db.rs.getString("buku_pengarang")); penerbit.setText(db.rs.getString("buku_penerbit")); tahun.setText(db.rs.getString("buku_tahun")); kategori.setText(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); } else { tampilTabel(); tombol(0,0); } caridata(); } } db.CloseRS(); db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#Cari Barang",'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else
x
xii xiv xiv
{ try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "(pinjam_tgl,anggota_id,buku_id,pinjam_tglbatas) values('"; query = query + tglpinjam+ "','"; query = query + new cfg().GetID(peminjam) + "','"; query = query + new cfg().GetID(buku) + "','"; query = query + tglbts + "')"; String SQL = "insert into pinjam " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "";
vi
vii xi xiii xv xvii
query = query + "pinjam_tglbatas='"+tglbts+"'"; String SQL = "update pinjam set "+query+" where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and " + "buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from pinjam where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');}
x
xii xiv xiv
} } private void reset() { int pil = JOptionPane.showConfirmDialog(null,"Reset Order di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersihPinjam(); aktifPinjam(false); resetPinjam(); tampilTabel(); tombol(0, 0); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void resetPinjam() { tglPinjam.setDate(new Date()); peminjam.setSelectedIndex(0); buku.setSelectedIndex(0); radSiswa.setSelected(true); } private void bersihPinjam() { tglBatas.setDate(new Date()); } private void aktifPinjam(boolean aktif) { tglBatas.setEnabled(aktif); } private void bersihBuku() { pengarang.setText(""); penerbit.setText(""); tahun.setText(""); kategori.setText(""); } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); }
vi
vii xi xiii xv xvii
else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } } private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","Tanggal Pinjam","Tanggal Batas","Peminjam","Tipe","Buku","Kategori"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id order by pinjam_tgl asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t2 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); t3 = db.rs.getString("anggota_id")+" -- "+db.rs.getString("anggota_nama"); t4 = db.rs.getString("anggota_tipe"); t5 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); String[] data = {nom,t1,t2,t3,t4,t5,t6};
x
xii xiv xiv
if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.JComboBox buku; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField kategori; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblHarga; private javax.swing.JLabel lblKet2; private javax.swing.JLabel lblKet5; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblNama1;
vi
vii xi xiii xv xvii
private javax.swing.JLabel lblNama2; private javax.swing.JLabel lblSatuan; private javax.swing.JLabel lblSatuan1; private javax.swing.JTable myTabel; private javax.swing.JComboBox peminjam; private javax.swing.JTextField penerbit; private javax.swing.JTextField pengarang; private javax.swing.JRadioButton radGuru; private javax.swing.JRadioButton radSiswa; private javax.swing.JRadioButton radTest; private javax.swing.JRadioButton radUmum; private javax.swing.JTextField tahun; private com.toedter.calendar.JDateChooser tglBatas; private com.toedter.calendar.JDateChooser tglPinjam; // End of variables declaration } Lampiran 7. Listing Program Pengembalian Buku import java.util.Date; import javax.swing.JOptionPane; import javax.swing.table.*; public class filePengembalian extends javax.swing.JInternalFrame { public filePengembalian() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("KEPUSTAKAAN > PENGEMBALIAN BUKU"); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: tampilTabel(); datakembali(); } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: } private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {
x
xii xiv xiv
// TODO add your handling code here: if(tampilTabel()==0) { JOptionPane.showMessageDialog(null, "Data tidak ada","Pesan",JOptionPane.INFORMATION_MESSAGE); } } private void tabelkembaliMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: } private void btnProsesActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Proses(); } private void Proses() { if(myTabel.getSelectedRow()>=0) { String pinj = myTabel.getValueAt(myTabel.getSelectedRow(), 6).toString(); String angg = myTabel.getValueAt(myTabel.getSelectedRow(), 2).toString(); String buku = new cfg().GetID(myTabel.getValueAt(myTabel.getSelectedRow(), 4)); int ok = JOptionPane.showConfirmDialog(null, "Proses pengembalian buku untuk "+myTabel.getValueAt(myTabel.getSelectedRow(), 1) +" ?", "Update Data", JOptionPane.YES_NO_OPTION); if(ok==JOptionPane.YES_OPTION) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; String tgl = new mydate().curDate(); String bln = new mydate().curMonth(false); String thn = new mydate().curYear()+""; query = query + "pinjam_tglkembali='"+thn+"-"+bln+"-"+tgl+"'"; String SQL = "update pinjam set "+query+" " + "where pinjam_tgl='"+new mydate().mySQLDate(pinj)+"' and " + "anggota_id='"+angg+"' and " + "buku_id='"+buku+"'"; //System.out.println(SQL);
vi
vii xi xiii xv xvii
if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } tampilTabel(); datakembali(); } private int tampilTabel() { int no=0 ; String cr = cari.getText(); String kriteria = ""; if(cr.length()>0) { kriteria = "and anggota_nama like '"+ cr + "%'"; } try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Perkiraan Keterlambatan", //8 "Perkiraan Denda"}; //9 tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is null " + kriteria + "order by pinjam_tgl desc")==1) { String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="";
x
xii xiv xiv
int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ //t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ //t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe"); t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t8 = lebih+" Hari"; t9 = ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9}; if(data.length==c.length)
vi
vii xi xiii xv xvii
{ for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } return no; } private void datakembali() { try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Tanggal Kembali", //8 "Keterlambatan", //9 "Denda"}; //10 tabelku = new DefaultTableModel(null, row); tabelkembali.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " +
x
xii xiv xiv
"t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is not null "+ "order by pinjam_tglkembali desc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="",t10=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe");
vi
vii xi xiii xv xvii
t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); if(lebih<0){ lebih = 0; t9 = ""; }else{ t9 = lebih+" Hari"; } t10= ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } myTab.setTitleAt(1, "Data Pengembalian ( "+no+" )"); db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<tabelkembali.getColumnCount();i++) { col = tabelkembali.getColumnModel().getColumn(i); int fSize = tabelkembali.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnCari; private javax.swing.JButton btnProses; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JTextField cari;
x
xii xiv xiv
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JTabbedPane myTab; private javax.swing.JTable myTabel; private javax.swing.JTable tabelkembali; // End of variables declaration } Lampiran 8. Listing Program Laporan Buku import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapBuku extends javax.swing.JInternalFrame { public lapBuku() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > BUKU"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("pimp", pimp.getText());
vi
vii xi xiii xv xvii
JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"\\Laporan\\LaporanBuku.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode1; private javax.swing.JTextField pimp; // End of variables declaration
x
xii xiv xiv
} Lampiran 9. Listing Program Laporan Peminjaman Buku/ Bulan import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjam extends javax.swing.JInternalFrame { public lapPinjam() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode", tahun.getYear()+"-"+new mydate().zero_(bulan.getMonth()+1)+"%"); prs.put("pimp", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"Laporan\\LaporanPeminjaman.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } }
vi
vii xi xiii xv xvii
} private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private com.toedter.calendar.JMonthChooser bulan; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 10. Listing Program Laporan Peminjaman Buku/ 3Bulan import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer;
x
xii xiv xiv
import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPer3Bln extends javax.swing.JInternalFrame { public lapPinjamPer3Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 3 BULAN"); cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer3Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); }
vi
vii xi xiii xv xvii
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari, Februari, Maret"); periode.addItem("April, Mei, Juni"); periode.addItem("Juli, Agustus, September"); periode.addItem("Oktober, Nopember, Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "04"); }else if(p==2) { per = per.replace("{b}", "05"); }else if(p==3) {
x
xii xiv xiv
per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==2) { if(p==1) { per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09"); } }else if(periode.getSelectedIndex()==3) { if(p==1) { per = per.replace("{b}", "10"); }else if(p==2) { per = per.replace("{b}", "11"); }else if(p==3) { per = per.replace("{b}", "12"); } } return per; } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JComboBox periode; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 11. Listing Program Laporan Peminjaman Buku/ 6Bulan import java.util.*;
vi
vii xi xiii xv xvii
import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPer6Bln extends javax.swing.JInternalFrame { public lapPinjamPer6Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 6 BULAN"); cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("periode4", periode(4)); prs.put("periode5", periode(5)); prs.put("periode6", periode(6)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer6Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } }
x
xii xiv xiv
private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari s/d Juni"); periode.addItem("Juli s/d Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); }else if(p==4) { per = per.replace("{b}", "04"); }else if(p==5) { per = per.replace("{b}", "05"); }else if(p==2)
vi
vii xi xiii xv xvii
{ per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09"); }else if(p==4) { per = per.replace("{b}", "10"); }else if(p==5) { per = per.replace("{b}", "11"); }else if(p==2) { per = per.replace("{b}", "12"); } } return per; } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JComboBox periode; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 12. Listing Program Laporan Peminjaman Buku/ Tahun import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer;
x
xii xiv xiv
import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPerTahun extends javax.swing.JInternalFrame { public lapPinjamPerTahun() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN REKAP PEMINJAMAN / TAHUN"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("tahun", tahun.getYear()+"%"); prs.put("pim", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPerTahun.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }
vi
vii xi xiii xv xvii
private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 13. Listing Program Pencarian Buku import javax.swing.table.*; public class Cari extends javax.swing.JInternalFrame { /** Creates new form Cari */ public Cari() { initComponents(); this.setTitle("CARI BUKU"); //lblCompany.setText(new SoftID().NamaPerusahaan); cmbKategori(); } // TODO add your handling code here: kategori.setSelectedIndex(0); if(cekKategori.isSelected()==true) { kategori.setEnabled(true); } else { kategori.setEnabled(false); } }
x
xii xiv xiv
private void cekJudulActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: judul.setText(""); if(cekJudul.isSelected()==true) { judul.setEnabled(true); } else { judul.setEnabled(false); } } private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: tampilTabel(); } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: cekKategori.setSelected(false); cekJudul.setSelected(false); kategori.setSelectedIndex(0); kategori.setEnabled(false); judul.setText(""); judul.setEnabled(false); } private void cmbKategori() { for(int i=0;i<kategori.getItemCount();) { kategori.removeItemAt(i); } kategori.addItem(""); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from kategori order by kategori_id asc")==1) { while(db.rs.next()) { kategori.addItem(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); }
vi
vii xi xiii xv xvii
} } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#Combo Kategori",'e'); } } private void tampilTabel() { String cari = ""; if(cekKategori.isSelected()==true) { cari = " and t1.kategori_id='"+new cfg().GetID(kategori)+"' "; } if(cekJudul.isSelected()==true) { cari = cari+" and buku_judul like '%"+judul.getText()+"%'"; } try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Buku","Judul","Pengarang","Penerbit","Tahun Terbit","Kategori","Sinopsis","Rak","Stok","Tersedia"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select *,(select count(*) from pinjam t3 where t3.buku_id=t1.buku_id and t3.pinjam_tglkembali is null) as tot_pinjam from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id " + cari + "order by t1.kategori_id,buku_judul asc")==1) { int no=0,stok=0,pjm=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="",t10=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next())
x
xii xiv xiv
{ no = no+1; nom=no+"."; t1 = db.rs.getString("buku_id"); t2 = db.rs.getString("buku_judul"); t3 = db.rs.getString("buku_pengarang"); t4 = db.rs.getString("buku_penerbit"); t5 = db.rs.getString("buku_tahun"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t7 = db.rs.getString("buku_sinopsis"); t8 = db.rs.getString("rak"); t9 = db.rs.getString("stok"); stok = db.rs.getInt("stok"); pjm = db.rs.getInt("tot_pinjam"); if(stok==pjm){ t10="Tidak"; }else{ t10="Ya"; } String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20);}} }} catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnCari; private javax.swing.JCheckBox cekJudul; private javax.swing.JCheckBox cekKategori; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel2;
vi
vii xi xiii xv xvii
private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField judul; private javax.swing.JComboBox kategori; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JTable myTabel; // End of variables declaration }