Anda di halaman 1dari 217

LAPORAN KERJA PRAKTEK

PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN


PADA SDN CIMANGGIS 01 KABUPATEN BOGOR

Laporan Kerja Praktek


Diajukan untuk melengkapi
Persyaratan mata kuliah
Kerja praktek

PUTRA MUHAMAD RAFLY (201743500002)


INTAN DWI RAHAYU (201743500003)
ISYQINA NURKHALEEDA (201743500004)
ERRYZA NUR ALIF (201743500005)
RIFKY PUTRA RAMZI (201743500009)
SHAZIA PUTRI AWALIYAH (201743500020)
SILVI RIFAYANI SALAM (201743500034)
ALDA ALFIANTI (201743500038)

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS INDRAPRASTA PGRI
2021
UNIVERSITAS INDRAPPRASTA PGRI
FAKULTAS TEKNIK DAN KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA
Jl. Nangka No. 58 Tanjung Barat Jagakarsa, Jakarta Selatan Telp. (021) 78835283 – 7818718 Fax : (021) 78835283
Jl. Raya Tengah, Kelurahan Gedong, Pasar Rebo, Jakarta Timur. Telp: (021) 87797409
Website : http/www.unindra.ac.id Email : university@unindra.ac.id

LEMBAR PENGESAHAN

LAPORAN KERJA PRAKTEK


Perancangan Sistem Informasi Perpustakaan Pada SDN Cimanggis 01
Kabupaten Bogor

SDN CIMANGGIS 01

Disusun oleh:

Putra Muhamad Rafly 201743500002


Intan Dwi Rahayu 201743500003
Isyqina Nurkhaleeda 201743500004
Erryza Nur Alif 201743500005
Rifky Putra Ramzi 201743500009
Shazia Putri Awaliyah 201743500020
Silvi Rifayani Salam 201743500034
Alda Alfianti 201743500038

Mengetahui, Menyetujui,
Ketua Program Studi Dosen Pembimbing

(Mei Lestari, M.Kom) (Aan Risdiana, M.Kom)

2
PEMERINTAH KABUPATEN BOGOR
DINAS PENDIDIKAN
SD NEGERI CIMANGGIS 01
Alamat : Jl. Raya Tonjong Rt 03 Rw 12 Desa Cimanggis Kode Pos 16920
Kecamatan Bojonggede Kabupaten Bogor Provinsi Jawa Barat

LEMBAR PENGESAHAN

LAPORAN KERJA PRAKTEK


BIDANG : Perancangan Sistem Informasi Perpustakaan Pada SDN Cimanggis 01
Kabupaten Bogor

DI SDN CIMANGGIS 01
PADA TANGGAL 10 MARET 2021 s.d. 10 JUNI 2021

Disusun oleh:

Putra Muhamad Rafly 201743500002


Intan Dwi Rahayu 201743500003
Isyqina Nurkhaleeda 201743500004
Erryza Nur Alif 201743500005
Rifky Putra Ramzi 201743500009
Shazia Putri Awaliyah 201743500020
Silvi Rifayani Salam 201743500034
Alda Alfianti 201743500038

Mengetahui, Menyetujui,

Kepala Perpustakaan Pembimbing

(Uzi Fauziah, S.Pd) (Dinda Tiara Dewi)

3
KATA PENGANTAR

Alhamdulillah, puji syukur penulis panjatkan kepada Allah SWT yang telah

melimpahkan rahmat dan karunia-Nya kepada penulis sehingga akhirnya penulis

dapat menyelesaikan Laporan Kuliah Kerja Praktek ini dengan berbekal

keterbatasan- keterbasan pada diri sendiri.

Laporan Kuliah Kerja Praktek ini dibuat untuk memenuhi salah satu syarat

akademis yang harus dilaksanakan untuk mendapatkan gelar sarjana Strata Satu

pada Program Studi Informatika, Fakultas Ilmu dan Komputer Universitas

Indraprasta PGRI.

Pada kesempatan yang baik ini, izinkanlah penulis menyampaikan rasa

hormat dan ucapan terima kasih kepada semua pihak yang dengan tulus ikhlas

telah memberikan bantuan dan dorongan kepada penulis dalam menyelesaikan

tugas akhir ini, terutama kepada:

1. Bapak Aan Risdiana, M. Kom, selaku dosen pembimbing Laporan Kuliah

Kerja Praktek yang telah begitu banyak membantu dalam memberikan

bimbingan dan masukan-masukan dalam penyelesaian Laporan Kuliah Kerja

Praktek ini.

2. Bapak Prof. Dr. H. Surmaryoto, selaku Rektor Universitas Indraprasta PGRI.

3. Bapak Ir. H. Soepardi Harris, M.T, selaku dekan Fakultas Teknik dan ilmu

Komputer Universitas Indraprasta PGRI.

4. Ibu Atie Ernawati, M.T, selaku Wakil Dekan Fakultas Teknik dan Ilmu

Komputer.

4
5. Ibu Mei Lestari, M.Kom selaku ketua Program Studi Teknik Informatika.

6. Ibu Ni Wayan Parwati, M.Kom, selaku Sekertaris Program Studi Informatika.

7. Bapak dan Ibu Dosen yang telah membekali diri saya dengan berbagai ilmu

pengetahuan.

8. Keluarga tercinta yang telah memberikan semangat dan dukungan moril

maupun materi dan juga do’ a kepada penulis.

9. Serta semua pihak yang tidak dapat disebutkan satu per satu, yang telah

membantu terselesaikan nya Laporan Kuliah Kerja Praktek ini.

Dalam penulisan Tugas Akhir ini penulis, menyadari masih adanya

kekurangan. Karena itu dengan segala kerendahan hati penulis mohon maaf yang

sedalam-dalamnya atas kekurangan yang terdapat dalam penulisan Laporan

Kuliah Kerja Praktek ini. Penulis mengharapkan segala kritikan dan saran yang

dapat membangun dari semua pihak demi perbaikan dan sempurnanya Laporan

Kuliah Kerja Praktek ini.

Akhir kata, semoga Tugas ini dapat bermanfaat bagi semua pihak yang

memerlukan, khususnya Mahasiswa/i Universitas Indraprasta PGRI.

Jakarta, 28 Juni 2021

Penulis

5
DAFTAR ISI

LEMBAR JUDUL i

LEMBAR PENGESAHAN PROGRAM STUDI ii

LEMBAR PENGESAHAN PERUSAHAAN iii

KATA PENGANTAR iv

DAFTAR ISI vi

DAFTAR GAMBAR ix

DAFTAR TABEL xi

DAFTAR LAMPIRAN xii

BAB 1 PENDAHULUAN

A. Latar Belakang 1

B. Identifikasi Masalah 2

C. Tujuan Penulisan 3

D. Batasan Masalah 3

E. Metodologi 3

F. Sistematika Penulisan 4

BAB II PERUSAHAAN DAN ORGANISASI

A. Sejarah SDN Cimanggis 01 6

B. Struktur Organisasi SDN Cimanggis 01 7

1. Gambaran Struktur Organisasi SDN Cimanggis 01 7

2. Tugas dan Tanggung Jawab Struktur Organisasi 8

6
C. Penjelasan Unit Kegiatan KKP 11

BAB III INFRASTRUKTUR

A. Spesifikasi Hardware 13

1. Teori Singkat tentang Hardware 13

2. Spesifikasi Hardware yang digunakan SDN Cimanggis 01 19

B. Spesifikasi Software 20

1. Teori Singkat tentang Software 20

2. Software yang digunakan SDN Cimanggis 01 24

BAB IV PEMBAHASAN

A. Proses Bisnis 28

B. Sistem Berjalan Atau Proses Yang Dibahas 29

C. Aturan Bisnis 30

D. Kebijakan Sistem 30

E. Dekomposisi Fungsi 31

F. Hirarki Fungsi Sistem Yang Diulkan 32

G. Analisa Masukan (Input), Proses, dan Keluaran (Output) 32

H. Diagram Aliran Data (DAD) Konteks, Nol, dan Rinci 35

I. Kamus Data 39

J. Spesifikasi Proses 44

K. Bagan Terstruktur 47

L. Spesifikasi Modul 51

M. Analisa Basis Data 53

7
1. ERD (Entity Relationship Diagram) 53

2. Spesifikasi File Basisdata 54

N. Rancangan Layar, Rancangan Form Masukan, dan Rancangan Form

Keluaran 58

O. Tampilan Layar 63

BAB V PENUTUP

A. Simpulan 72

B. Saran 73

DAFTAR PUSTAKA

LAMPIRAN

8
DAFTAR GAMBAR

Gambar 2.1 Struktur Organisasi SDN Cimanggis 01 8

Gambar 4.1 Dekomposisi Fungsi 31

Gambar 4.2 Hirarki Fungsi Sistem Yang Diusulkan 32

Gambar 4.3 Diagram Konteks 35

Gambar 4.4 Diagram Nol 36

Gambar 4.5 Diagram Rinci Proses 1.0 37

Gambar 4.6 Diagram Rinci Proses 2.0 37

Gambar 4.7 Diagram Rinci Proses 3.0 37

Gambar 4.8 Diagram Rinci Proses 4.0 38

Gambar 4.9 Diagram Rinci Proses 5.0 38

Gambar 4.10 Diagram Rinci Proses 6.0 39

Gambar 4.11 Bagan Terstruktur Proses 1 47

Gambar 4.12 Bagan Terstruktur Proses 2 48

Gambar 4.13 Bagan Terstruktur Proses 3 48

Gambar 4.14 Bagan Terstruktur Proses 4 49

Gambar 4.15 Bagan Terstruktur Proses 5 49

Gambar 4.16 Bagan Terstruktur Proses 6 50

Gambar 4.17 Bagan Terstruktur Proses 7 50

Gambar 4.18 ERD (Entity Relationship Diagram) 53

Gambar 4.19 Rancangan Form Masuk Akun 58

Gambar 4.20 Rancangan Form Beranda 59

Gambar 4.21 Rancangan Form Pengelolaan Data Buku 59

9
Gambar 4.22 Rancangan Form Data Kategori Buku 60

Gambar 4.23 Rancangan Form Data Detail Buku 60

Gambar 4.24 Rancangan Form Data Detail Anggota 61

Gambar 4.25 Rancangan Form Pengelolaan Data Petugas 61

Gambar 4.26 Rancangan Form Pengelolaan Data Peminjaman Buku 62

Gambar 4.27 Rancangan Form Proses Peminjaman Buku 62

Gambar 4.28 Rancangan Form Data Peminjaman Buku 63

Gambar 4.29 Rancangan Form Pengelolaan Data Pengembalian Buku 63

Gambar 4.30 Rancangan Form Proses Pengembalian Buku 64

Gambar 4.31 Rancangan Form Data Pengembalian Buku 64

Gambar 4.32 Tampilan Layar Masuk Akun 65

Gambar 4.33 Tampilan Layar Beranda 65

Gambar 4.34 Tampilan Layar Pengelolaan Data Buku 66

Gambar 4.35 Tampilan Layar Data Kategori Buku 66

Gambar 4.36 Tampilan Layar Data Detail Buku 67

Gambar 4.37 Tampilan Layar Detail Anggota 67

Gambar 4.38 Tampilan Layar Detail Petugas 68

Gambar 4.39 Tampilan Layar Pengelolaan Data Peminjaman Buku 68

Gambar 4.40 Tampilan Layar Proses Peminjaman Buku 69

Gambar 4.41 Tampilan Layar Data Peminjaman Buku 69

Gambar 4.42 Tampilan Layar Pengelolaan Data Pengembalian Buku 70

Gambar 4.43 Tampilan Layar Proses Pengembalian Buku 70

Gambar 4.44 Tampilan Layar Data Pengembalian Buku 71

10
DAFTAR TABEL

Tabel 4.1 Tabel Struktur Petugas 54

Tabel 4.2 Tabel Struktur Detail Anggota 55

Tabel 4.3 Tabel Struktur Detail Buku 55

Tabel 4.4 Tabel Struktur Kategori Buku 56

Tabel 4.5 Tabel Struktur Peminjaman Buku 57

Tabel 4.6 Tabel Struktur Pengembalian Buku 58

11
DAFTAR LAMPIRAN

Lampiran 1 Surat Permohonan KKP dari Univesitas

Lampiran 2 Surat Keterangan Selesai KKP dari Perusahaan

Lampiran 3 Lembar Pengesahan KKP Perusahaan

Lampiran 4 Lembar Absensi Bimbingan KKP

Lampiran 5 Lembar Penilaian Akhir Dosen Pembimbing

Lampiran 6 Lembar Kehadiran KKP Perusahaan

Lampiran 7 Lembar Penilaian Kinerja KKP Perusahaan

Lampiran 8 Daftar Riwayat Hidup Penulis

Lampiran 9 Listing Program

12
BAB I

PENDAHULUAN

A. Latar Belakang

Saat ini komputer merupakan perangkat yang sangat dibutuhkan untuk

melakukan pengolahan data dan menyajikan suatu informasi secara mudah,

cepat, dan akurat. Informasi tersebut diharapkan dapat mengatasi

permasalahan dalam pengolahan data, sehingga dapat membantu

mempermudah dan memperlancar pengolahan data dan penyajian informasi.

Pemanfaatan teknologi informasi oleh sebuah organisasi dapat mempercepat

pengaksesan informasi, ketepatan pengaksesan informasi, ketepatan waktu

penyajian dan menghasilkan informasi yang akurat serta dapat memberikan

pelayanan yang efektif dan efisien.

Sekolah Dasar Negeri Cimanggis 01 adalah salah satu lembaga

pendidikan yang ada di Kabupaten Bogor. Selain penyelenggaraan

pendidikan, SDN Cimanggis 01 juga memiliki sarana-sarana lainnya yang

sangat bermanfaat salah satunya adalah sarana perpustakaan.

Sarana perpustakaan dibangun untuk menyimpan buku-buku atau

sumber bacaan lainnya. Setiap sumber bacaan akan diperbarui mengikuti

perkembangan ilmu pengetahuan. Demikian pula di lembaga pendidikan

seperti Sekolah, perpustakaan merupakan sarana wajib yang harus ada.

Perpustakaan sekolah harus dikelola dengan benar agar dapat memberikan

pelayanan yang baik kepada anggotanya. Pelayanan yang baik dapat dilihat

1
2

pada kemudahan anggota dalam mendapatkan informasi yang cepat, akurat

serta kenyamanan anggota dalam menggunakan perpustakaan.

Kendala yang sedang dihadapi oleh SDN Cimanggis 01 adalah sistem

perpustakaan masih dilakukan secara manual dalam pengolahan data seperti,

lamanya mencari buku yang dicari, kesulitan petugas dalam mengelola data

peminjaman dan pengembalian karena masih dalam bentuk catatan yang

rentan dalam kesalahan, dan tidak ter-datanya buku yang hilang.

Dengan permasalahan di atas maka penulis merancang dan membuat

sistem pengolahan data perpustakaan yang terkomputerisasi dengan judul

“Perancangan Sistem Informasi Perpustakaan Pada Sekolah Dasar

Negeri Cimanggis 01 Kabupaten Bogor” dan diharapkan dapat menjadi

solusi untuk meningkatkan kinerja pada sistem informasi.

B. Identifikasi Masalah

Berdasarkan apa yang telah di uraikan pada latar belakang diatas maka

penulis mencoba untuk mengidentifikasi permasalahan yang timbul yaitu

“Masih belum ter efisien dan efektif dalam pengelolaan data perpustakaan

pada Sekolah Dasar Cimanggis 01”.


3

C. Tujuan Penulisan

Tujuan penulisan ini adalah Untuk Merancang dan membangun Sistem

Informasi Perpustakaan yang dapat meningkatkan proses pelayanan dalam

perpustakaan, untuk mengolah data pelayanan sistem informasi perpustakaan

secara efektif dan efisien.

D. Batasan Masalah

Batasan-batasan dalam perancangan sistem ini :

1. Proses pendaftaran anggota perpustakaan yang anggotanya merupakan

siswa yang terdaftar di Sekolah Dasar Negeri Cimanggis 01.

2. Proses peminjaman dari segi individu dan kelompok berdasarkan waktu

yang ditentukan untuk masing-masing peminjaman yaitu, per minggu, per

enam bulan dan per tahun.

3. Pembuatan sistem informasi perpustakaan dengan bahasa pemrograman

java menggunakan database MySQL dan NetBeans sebagai editor java.

E. Metodologi

Dalam Laporan Kuliah Kerja Praktik ini penulis telah mengumpulkan

data-data yang diperlukan dengan beberapa metode yaitu:


4

1. Observasi

Di sini penulis terjun langsung ke SD Negeri Cimanggis 01 dengan

cara mengamati langsung terhadap objek penelitian yang tentunya akan

memudahkan untuk mendapatkan informasi yang dibutuhkan serta

menarik kesimpulan terkait permasalahan yang ada.

2. Wawancara

Penulis melakukan pengumpulan data dengan cara tatap muka

langsung dan tanya jawab dengan narasumber yaitu beberapa guru yang

menjadi wali kelas di SD Negeri Cimanggis 01 terkait sistem tabungan

yang berjalan saat ini dan beberapa masukan yang diinginkan terkait

sistem tabungan ke depannya, sehingga diperoleh penjelasan yang lebih

rinci dan jelas.

3. Studi Pustaka

Mengumpulkan data-data yang diperlukan dengan mencarinya di

buku-buku, artikel, majalah, dan file-file yang tentunya berhubungan

dengan topik.

F. Sistematika Penulisan

Pada bagian ini akan dibahas pokok-pokok penguraian penulisan agar

lebih mudah dipahami dan juga sebagai dasar pembahasan selanjutnya.

Sistematika penulisan yang disajikan dengan membagi menjadi beberapa bab

antara lain:
5

BAB I : PENDAHULUAN

Berisi tentang latar belakang, perumusan masalah, tujuan

penulisan, batasan masalah, metodologi, sistematika penulisan.

BAB II : ORGANISASI

Membahas tentang teori yang berupa sejarah sekolah, struktur

organisasi sekolah dan penjelasan unit kegiatan sekolah.

BAB III : INFRASTRUKTUR

Pada bab ini menjelaskan hal-hal yang berkaitan dengan

spesifikasi perangkat keras dan perangkat lunak komputer atau

sistem informasi yang relevan dengan tugas selama KKP.

BAB IV : PEMBAHASAN

Pada bab ini akan dijelaskan tentang sistem informasi

pengelolaan data perpustakaan, dekomposisi sistem, analisa

masukan (input), proses, dan keluaran (output), penyelesaian

masalah dengan DAD, diagram konteks, diagram nol, diagram

rinci, kamus data, spesifikasi proses, bagan terstruktur, spesifikasi

modul, ERD, spesifikasi file basisdata rancangan layar utama dan

tampilan layar.

BAB V : PENUTUP

Pada bab ini berisi tentang simpulan dan saran atas apa yang telah

di tuliskan di BAB IV.


BAB II

PERUSAHAAN DAN ORGANISASI

A. Sejarah Sekolah Dasar Cimanggis 01

Sekolah Dasar Negeri Cimanggis 01 terletak di Jl. Raya Tonjong

Kabupaten Bogor kode pos 16320, Kelurahan / Desa Cimanggis, Kecamatan

Bojong Gede, Kabupaten Bogor, Jawa Barat. Dibangun pada tahun 1962

berasal dari tanah hibah PTPN XI Bojonggede, pada awalnya bernama SD

Perkebunan lalu diserahkan kepada pemerintah kemudian berubah menjadi

SDN Bojonggede 02 Kemantren Bojonggede Kecamatan Depok Kabupaten

Bogor. Pada tahun 1970 berganti nama mejadi SDN Cimanggis 01 Kecamatan

Bojonggede sampai saat ini. Sekolah ini berada di bawah pengawasan Dinas

Pendidikan Kabupaten Bogor sebagai SD Inti Gugus II Kecamatan

Bojonggede dan Sekolah Binaan SPMI Kabupaten Bogor.

Dengan surat izin operasional pada tahun 1910, Sekolah Dasar Negeri

Cimanggis 01 bergerak di bidang pendidikan anak usia dasar di bawah

naungan Pemerintah Daerah, dengan kepala sekolah saat ini adalah Ibu

Kusmiati, S.Pd.,MM Sekolah ini memiliki luas tanah 1465 m 2 dan Akreditasi

sekolah adalah A, Tanggal Surat Keputusan Akreditasi 13 Oktober 2015,

dengan nomor 02.00/110/BAP-SM/SK/X/2015.

Sekolah Dasar Negeri Cimanggis 01 menyediakan program pendidikan

dasar bagi anak usia 7 tahun sampai memasuki pendidikan tingkat menengah.

Sekolah ini memiliki jalur pendidikan yang bertujuan untuk membantu

6
7

meletakkan dasar ke arah perkembangan sikap, pengetahuan, keterampilan,

dan daya cipta yang diperlukan oleh anak didik dalam menyesuaikan diri

dengan lingkungan dan untuk pertumbuhan serta perkembangan selanjutnya.

Usaha-usaha pelaksanaan ke arah pencapaian tersebut di atas, tentunya harus

ditunjang dengan program dan manajemen sekolah yang baik.

Penyusunan dan pelaksanaan program tahunan yang telah disusun

diusahakan mengakomodir kaidah-kaidah tujuan pendidikan Sekolah Dasar

Negeri Cimanggis 01. Program Sekolah Dasar Negeri Cimanggis 01 disusun

sebagai pedoman atau acuan pelaksanaan kegiatan sekolah agar berjalan

sesuai dengan tujuan pendidikan yang diharapkan serta optimal.

B. Struktur Organisasi Instansi KP

1. Gambaran Struktur Organisasi Instansi KP

SDN Cimanggis 01 memiliki struktur organisasi yang masing-

masing mempunyai tugas, wewenang dan tanggung jawab memberikan

pelayanan dalam peningkatan mutu bagi sekolah maupun siswa. Selain itu

dapat memberikan kemudahan dalam menjalankan usahanya. Struktur

organisasi di Sekolah Dasar Cimanggis 01 terdiri dari kepala sekolah

dibantu ketua komite bertanggung jawab kepada wali siswa dalam

kegiatan-kegiatan yang diadakan di sekolah seperti karya wisata,

perpisahan, dan lain-lain. Dibawah kepala sekolah, sebagai pengajar

dilakukan oleh seorang guru. Untuk melaksanakan tugasnya guru dan

kepala sekolah dibantu oleh 1 orang tata usaha (TU) atau bagian
8

administrasi. Untuk selanjutnya secara keseluruhan struktur organisasi

tersebut dapat dilihat pada gambar dibawah ini:

Gambar 2.1. Struktur Organisasi Sekolah Dasar Negeri Cimanggis 01


(Sumber: Sekolah Dasar Negeri Cimanggis 01)

2. Tugas Dan Tanggung Jawab Struktur Organisasi.

a. Kepala Sekolah

1) Menyusun perencanaan program kegiatan sekolah

2) Pengembangan program sekolah

3) Mengoordinasi guru sekolah

4) Mengelola administrasi sekolah

5) Melakukan evaluasi dan pembinaan terhadap kinerja guru sekolah,

melakukan evaluasi terhadap program pembelajaran sekolah,

memberi rekomendasi dan penilaian atas prestasi guru sekolah


9

6) Mengoordinasi pelaksanaan tugas membina, mengendalikan dan

mengawasi penyelenggaraan dan pengelolaan sekolah oleh semua

komponen sekolah

7) Mengoptimalkan sumber daya manusia secara optimal, dengan

memanfaatkan sarana dan prasarana milik sekolah

8) Menyusun kurikulum dan mempersiapkan tenaga serta sarana

pendidikan dan ketatausahaan sekolah

b. Komite Sekolah

1) Menampung aspirasi, ide, tuntutan dan saran kebutuhan pendidikan

yang diajukan masyarakat

2) Mendorong orang tua dan masyarakat berpartisipasi dalam

pendidikan dalam mendukung peningkatan pendidikan

3) Melakukan evaluasi dan pengawasan terhadap kebijakan program

pendidikan sekolah

4) Menyusun anggaran dasar dan anggaran rumah tangga komite

sekolah

5) Mengawasi pengeluaran dalam anggaran sekolah

6) Menyiapkan laporan keuangan secara berkala

c. Pustakawan

1) Pelayanan perpustakaan

2) Melakukan pengadaan terhadap buku/bahan pustaka dan media

elektronika

3) Perencanaan pengembangan perpustakaan


10

4) Menyusun tata tertib perpustakaan

5) Mengorganisasikan sumber daya dan dana

6) Pemeliharaan dan perbaikan buku-buku/bahan pustaka dan media

elektronika

7) Mengoordinasi dan pengawasan terhadap kegiatan perpustakaan

8) Menyusun laporan pelaksanaan kegiatan perpustakaan secara

berkala

d. Tata Usaha

1) Menyusun program kerja tata usaha

2) Mengkoordinir tugas-tugas tata usaha

3) Membina dan mengembangkan tugas-tugas ketatausahaan

4) Pengurusan dan pengembangan administrasi sekolah

5) Meneliti dan kemudian membuat surat, baik surat masuk maupun

surat keluar sesuai dengan disposisi atau instruksi kepala sekolah

6) Menyusun administrasi sekolah meliputi kurikulum, kesiswaan dan

ketenagaan

7) Mengoordinasikan dan melaksanakan 9K

8) Mengawasi dan mengendalikan penggunaan alat-alat sekolah

9) Bertanggung jawab atas penggunaan stempel sekolah

10) Menyusun laporan pelaksanaan secara berkala

e. Guru

1) Menyusun perangkat rencana pembelajaran

2) Mengelola pembelajaran sesuai dengan kelompoknya


11

3) Melaksanakan kegiatan pembelajaran

4) Mencatat perkembangan anak

5) Menyusun pelaporan perkembangan anak

6) Melakukan kerja sama dengan orang tua dalam program parenting

7) Menghadiri pertemuan-pertemuan peningkatan mutu guru (KKG)

8) Menyusun pelaksanaan kurikulum

9) Menyusun pengembangan program pembelajaran

10) Mengikuti perkembangan kurikulum

C. Penjelasan Unit Kegiatan KP

Sejak dimulainya Kuliah Kerja Praktek (KKP) ini sampai selesai, ada

beberapa kegiatan yang dilakukan. Kegiatan KKP yang dilaksanakan meliputi

kegiatan sebagai tenaga pendukung pada Sekolah Dasar Negeri Cimanggis 01.

Secara garis besar, kami melakukan kegiatan observasi dan dari hasil

observasi tersebut kami berhasil mengumpulkan data untuk dijadikan sebagai

bahan pembuatan program yang kami ingin buat untuk sekolah tersebut.

Setelah semua data terkumpul baru kami bisa membuat program tersebut yang

dapat mempermudah dan mengurangi kesalahan saat peminjaman buku siswa

yang mana ditujukan nantinya digunakan untuk keperluan siswa/siswi.

Setelah program selesai dikerjakan, kami membuat laporan kegiatan dari

hasil KKP baik kepada pendamping KKP maupun kepada Dosen

Pembimbing. Pelaporan ini dilakukan melalui pembuatan laporan kerja

praktek.
12

Sesuai dengan peyusunan Kuliah Kerja Praktek, kami akan menguraikan

secara umum sistem yang berjalan adalah sebagai berikut:

1. Siswa/siswi mendaftarkan diri kepada Petugas Pepustakaan untuk

mendapatkan kartu anggota perpustakaan

2. Setelah mendapatkan kartu anggota perpustakaan siswa dapat

peminjaman buku dengan menunjukkan kartu anggota perpustakaan dan

buku yang akan dipinjam

3. Selanjutnya petugas perpustakaan akan menginput data anggota dan data

buku yang akan dipinjam serta memberi informasi mengenai tanggal

pengembalian buku

4. Untuk pengembalian buku siswa/siswa diwajibkan membawa buku dan

kartu anggota perpustakan berdasarkan waktu yang telah ditentukkan

5. Bila peminjaman melebihi batas waktu yang ditentukan atau buku yang

dipinjam hilang maka dikenakan denda

6. Sistem perpustakaan ini digunakan untuk keperluan siswa/siswi SDN

Cimanggis 01
BAB III

INFRASTRUKTUR

A. Spesifikasi Hardware

1. Teori singkat tentang Hardware

Perangkat keras komputer atau hardware adalah perangkat pada

komputer yang berbentuk fisik dapat disentuh. Berikut ini adalah

pengelompokan perangkat keras komputer.

a. Process Device

Process device adalah komponen-komponen di dalam komputer

yang berfungsi untuk memproses data dan kemudian mengirimnya ke

perangkat output setelah data selesai diproses. Komputer menerima

data melalui perangkat input seperti keyboard dan mouse. Setelah data

diterima, data tersebut akan diproses oleh process device untuk

menghasilkan informasi yang dibutuhkan oleh pengguna. Begitu

pemrosesan data selesai, hasilnya akan langsung dikirim ke layar

monitor, printer, speaker, atau perangkat output lainnya.

1) Central Processing Unit (CPU)

CPU merupakan process device yang dianggap sebagai

otaknya komputer dan merupakan singkatan dari Central

Processing Unit. Prosesor adalah sebutan lain dari CPU. Selain

laptop dan komputer desktop, banyak perangkat lain yang juga

13
14

menggunakan CPU seperti smart TV, HP, dan smart washing

machine (Aan Zaksa: 2020).

2) Memory

Memori atau yang disebut sebagai memori fisik ataupun

memori internal adalah media yang menyimpan data atau informasi

sementara pada komputer. Memori merupakan komponen yang

penting di dalam suatu komputer yang berada di dalam CPU

(Central Processing Unit). Memori ini akan menyimpan setiap

program dan data yang diproses oleh prosesor. Memori terbagi atas

dua macam, yaitu:

a) Random Access Memory (RAM), RAM digunakan untuk

menyimpan data sementara yang dapat segera diakses oleh

prosesor saat diperlukan. Karena bersifat sementara maka

ketika komputer dimatikan maka data akan juga terhapus.

Penyimpanan data dilakukan secara acak dan pengaksesan data

oleh prosesor juga dilakukan secara acak (Nabilah Hannani :

2020).

b) Read only memory (ROM), ROM adalah media penyimpanan

yang bersifat permanen dan tidak memungkinkan data di

dalamnya dapat dimodifikasi. Artinya data pada ROM hanya

dapat diakses dan dibaca oleh pengguna tanpa bisa

dimodifikasi. Vendor komputer yang akan menyediakan ROM

pada komputer yang berisi program ataupun data. Pada


15

komputer, ROM umumnya disebut sebagai BIOS (Basic

Input/output System) atau ROM-BIOS (Nabilah Hannani :

2020).

3) Hard disk

Hard disk merupakan memori berkapasitas besar pada

komputer yang berfungsi untuk menyimpan atau membaca data

pada komputer. Data yang disimpan tersebut seperti sistem operasi

anda (windows, linux), software (browser, office, dll) serta data

pribadi anda dokumen, foto, lagu, dll (Hermawan Riyadi : 2019).

4) Motherboard

Motherboard atau disebut juga Papan sirkuit tempat berbagai

komponen elektronik saling terhubung seperti pada PC atau

Macintosh dan biasa di singkat dengan kata mobo. Motherboard

menjadi penghubung antar komponen di dalam komputer. Sebagian

besar komponen hardware komputer terpasang pada motherboard

seperti CPU, memori, video card, baterai CMOS, dan lain-lain

(Aan Zaksa : 2020).

5) Power Supply

Power Supply Unit (PSU) suatu perangkat keras pada

komputer yang berfungsi mengalirkan arus listrik. Daya yang

diambil dari luar dalam bentuk alternating current (AC) akan

dikonversi terlebih dahulu menjadi bentuk direct current (DC) lalu

kemudian disalurkan ke tiap komponen-komponen yang ada di


16

dalam casing komputer sesuai dengan jumlah tegangan yang

dibutuhkan sehingga mampu bekerja normal (Hermawan Riyadi :

2019).

6) Video Card

Video Card Suatu perangkat keras komputer yang berfungsi

untuk mengola dan menerjemahkan input an data berupa grafis

komputer kemudian mengeluarkan output berupa tampilan ke layar

monitor (Aan Zaksa : 2020).

7) Casing Unit

Casing komputer merupakan tempat atau rumah dari berbagai

komponen perangkat keras atau hardware komputer. Beberapa

komponen yang biasanya ada di dalam casing antara lain

motherboard, DVD ROM, Power Supply, Hard disk, dan lain

sebagainya (Efendi : 2021).

b. Output Device

Output device atau perangkat keluaran adalah sebuah komponen

perangkat yang merupakan bagian dari personal komputer, output

device merupakan perangkat yang bertugas untuk menampilkan data

yang telah di proses oleh bagian processor, sebelumnya data di ambil

oleh perangkat masukan atau input device. Keberadaan dari output

device atau perangkat keluaran sangatlah penting, karena termasuk

dalam perangkat primer untuk berjalannya sebuah personal komputer.

Yang termasuk dalam output device adalah:


17

1) Monitor

Monitor merupakan bagian dari perangkat keluaran karena

fungsinya yaitu menampilkan berbagai macam tampilan data yang

perlu di ketahui oleh pengguna komputer, data yang di tampilkan

monitor merupakan hasil olahan data yang di ambil dari perangkat

penyimpanan yang kemudian di salin ke penyimpanan sementara,

kemudian data tersebut di proses oleh komponen processor untuk

di tampilkan pada layar monitor (Hermawan Riyadi : 2019).

2) Speaker

Speaker adalah alat yang berfungsi untuk mengeluarkan data

berupa suara, data suara tersebut di ambil dari olahan processor

yang mengolah data digital dengan format tertentu (Hermawan

Riyadi : 2019).

3) Printer

Printer merupakan alat atau perangkat yang berfungsi untuk

mencetak dokumen maupun gambar. Printer masuk dalam bagian

perangkat keluaran karena tugasnya menampilkan data berupa hasil

cetakan yang sebelumnya berupa soft file. Data yang di keluarkan

oleh printer merupakan data yang di ambil dari perangkat

penyimpanan yang telah di olah oleh processor (Hermawan

Riyadi : 2019).
18

c. Input Device

Input device adalah perangkat masukan pada personal komputer

yang berfungsi untuk memasukan perintah dari pengguna komputer

baik berupa perintah teks, gambar, maupun suara yang nantinya akan

di olah kembali oleh perangkat processing untuk di tampilkan oleh

perangkat penampil, atau output device.

1) Keyboard

Keyboard adalah sebuah perangkat input yang bersifat

primer bagi setiap komputer, artinya setiap pengguna komputer

pasti membutuhkan yang namanya keyboard untuk

mengoperasikan komputernya, berbeda dengan mouse yang juga

sama-sama perangkat input, karena tanpa mouse sebuah komputer

masih bisa di operasikan, tapi jika tanpa adanya keyboard komputer

akan sulit untuk di operasikan (Hermawan Riyadi : 2019).

2) Mouse

Mouse adalah sebuah perangkat masukan pada komputer

untuk menjalankan pointer yang tampil di layar guna untuk

mewakili tangan pengguna dalam menjalankan fungsi-fungsi yang

terdapat pada komputer (Hermawan Riyadi : 2019).

d. Storage Device
19

Perangkat keras komputer yang berfungsi sebagai media

penyimpanan untuk menyimpan data-data komputer, yang termasuk

dalam Storage Device adalah :

1) Hard disk

Hard disk merupakan memori berkapasitas besar pada

komputer yang berfungsi untuk menyimpan atau membaca data

pada komputer. Data yang disimpan tersebut seperti sistem operasi

anda (windows, linux), software (browser, office, dll) serta data

pribadi anda dokumen, foto, lagu, dll (Hermawan Riyadi : 2019).

2) CD/DVD

Sebuah perangkat penyimpanan yang sudah tergolong lama,

namun sampai saat ini banyak pengguna yang masih

memanfaatkannya untuk menyimpan data, karena inovasi dari

perangkat ini yang terus di lakukan, buktinya ada yang berjenis

bluray dimana memiliki kapasitas yang super besar dan dapat di

gunakan untuk menyimpan data (Hermawan Riyadi : 2019).

3) Flash disk

Perangkat penyimpanan eksternal yang saat ini paling banyak

digunakan karena bisa menyimpan dan menghapus data

(Hermawan Riyadi : 2019).

2. Adapun spesifikasi hardware yang digunakan di Sekolah Dasar Cimanggis

01 sebagai berikut:
20

a. AMD A8 – 7410 APU with AMD Radeon R5 Graphics (4 CPUs),

~2.2GHz Windows 8 Pro 64-bit

b. RAM 4 GB

c. HDD 446GB

d. Printer EPSON LP210.

B. Spesifikasi Software

1. Teori singkat tentang Software

Software adalah program komputer yang menjadi jembatan antara

pengguna dengan perangkat keras. Software juga dapat didefinisikan

sebagai sebuah aplikasi yang tersusun dari sekumpulan kode-kode bahasa

pemrograman (Hermawan Riyadi : 2021).

Dilihat dari fungsinya, dalam membantu pengoperasian sistem

komputer, software mempunyai fungsi-fungsi khusus. Perangkat lunak

sistem meliputi:

a. Perangkat Lunak Sistem

1) Sistem Operasi

Sistem Operasi atau Operating System adalah software

kompleks yang memiliki banyak fungsi antara lain, mengatur

seluruh hardware secara terintegrasi dengan CPU, memberi

instruksi pada processor untuk mengerjakan permintaan users,

mengatur segala proses yang terjadi dalam CPU dan menjadi


21

platform guna menjalankan software aplikasi. (Hermawan Riyadi :

2021)

a) Windows 10 merupakan sistem operasi komputer pribadi yang

dikembangkan oleh Microsoft.

2) Bahasa Pemrograman

Bahasa pemrograman adalah instruksi dan aturan-aturan yang

tertuang dalam bentuk kode-kode yang diberikan pada komputer

untuk dapat melaksanakan tugas.

a) Java merupakan bahasa pemrograman untuk menciptakan isi

yang aktif dalam halaman Web, juga dapat dijalankan dalam

semua komputer.

3) Program Utility

Program Utility adalah perangkat lunak yang bertujuan untuk

melengkapi kinerja sistem operasi dan meningkatkan kinerja

komputer. Selain perangkat lunak sistem, komputer membutuhkan

perangkat lunak aplikasi. Perangkat lunak aplikasi adalah perangkat

lunak yang berfungsi membantu manusia menyelesaikan pekerjaan

pada bidang tertentu.

a) Xampp adalah perangkat lunak bebas, yang mendukung banyak

sistem operasi, merupakan kompilasi dari beberapa program.

Fungsinya adalah sebagai server yang berdiri sendiri.


22

b) NetBeans merupakan sebuah aplikasi Integrated Development

Environment (IDE) yang berbasiskan java dari SUN

Microsystem.

c) Java Development Kit (JDK) merupakan perangkat lunak yang

digunakan untuk melakukan proses kompilasi dari kode java ke

bytecode yang dapat dimengerti dan dapat dijalankan oleh Java

Runtime Envirotment (JRE).

b. Perangkat Lunak Aplikasi

Perangkat lunak aplikasi merupakan suatu data yang diprogram

serta disimpan secara digital dan tidak berwujud, namun berada di

dalam komputer. Ada pula yang menyebutkan bahwa software ialah

kumpulan data-data elektronik berupa program atau instruksi yang

disimpan dan dikelola oleh komputer (Hermawan Riyadi : 2021).

Banyak program aplikasi yang sudah beredar antara lain contohnya

sebagai berikut:

1) Program aplikasi pengolah kata

Program aplikasi pengolah kata digunakan untuk pengolahan

naskah - naskah, seperti surat menyurat, buku diktat, proposal

laporan kegiatan, media informasi, dan lainnya. Beberapa contoh

program pengolah kata: Microsoft Word, Word Perfect, Adobe

Page Maker, Chi Writer, dan lain-lain.

a) Microsoft Word adalah sebuah software atau program pengolah

data baik itu berupa huruf maupun angka yang sering


23

digunakan untuk keperluan pembuatan dokumen ataupun hal –

hal yang berhubungan dengan tulis menulis. Microsoft Word

mempunyai banyak kelebihan, mulai dari pemakaiannya yang

mudah (user friendly), fitur lengkap dan bisa dipakai untuk

membuat berbagai macam dokumen, antara lain buku, surat,

publikasi serta gambar sederhana (Hermawan Riyadi : 2021).

2) Program aplikasi pengolah angka

Program aplikasi pengolah angka adalah perangkat lunak

yang digunakan untuk mengerjakan segala hal yang berhubungan

dengan angka atau perhitungan.. Dengan pengolah angka, user

dapat menyajikan data secara cepat dan tepat, baik dalam bentuk

tabel maupun grafik (Hermawan Riyadi : 2021).

3) Program aplikasi pengolah presentasi

Program aplikasi pengolah presentasi adalah program

aplikasi untuk merancang slide yang biasa digunakan untuk

presentasi dalam suatu pertemuan. Hasil perancangan tersebut

dapat ditampilkan dalam berbagai bentuk media komunikasi seperti

layar monitor, layar lebar melalui infokus, Head Projector, Liquid

Crystal Display (LCD), internet dan sebagainya. Beberapa

contohnya antara lain : Microsoft Power Point, Open Office

Impress, Macromedia Authorware, dll.

4) Program aplikasi pengolah data


24

Perangkat lunak ini berfungsi mengelola data yang besar.

Dengan program pengolah data ini kita dapat secara cepat dan

akurat memasukkan dan menyunting data, menyeleksi data dengan

kriteria tertentu, membuat laporan dengan kriteria tertentu dan lain

lain. Hasil penyimpanan dari program ini biasa disebut basis data

atau database, yang biasa digunakan untuk pengolahan data

instansi-instansi atau perusahaan. Contohnya: Microsoft Access,

Dbase, FoxPro, MySQL, SqlServer dan lainnya.

a) MySQL adalah sebuah perangkat lunak sistem manajemen basis

data SQL (database management system) atau DBMS yang

multithread, multi-user. MySQL menggunakan SQL (Structure

Query Language) sebagai Bahasa dasar untuk mengakses

database (Faizal dan Irnawati : 2015).

5) Program aplikasi pengolah grafis

Program aplikasi pengolah grafis seperti namanya

diperuntukkan untuk membuat dan mengolah gambar. Program ini

cocok untuk desain, periklanan dan percetakan. Contohnya: Corel

Draw, Photoshop, Freehand dan lain-lain.

6) Program aplikasi multimedia

Seperti namanya program ini berfungsi untuk mengolah

multimedia seperti audio maupun video. Contoh: Winamp,

Windows Media Player, FLV Player dan lain-lain.


25

2. Software yang dirancang di Sekolah Dasar Negeri Cimanggis 01

Software yang dirancang adalah Sistem Informasi Perpustakaan yang

dibuat menggunakan bahasa pemrograman Java dan Database MySQL.

Adapun syarat untuk membuat aplikasi tersebut adalah :

a. System Operasi Windows 7, 8, atau 10

Operating System (OS) atau sistem operasi merupakan perangkat

lunak yang dibutuhkan agar sebuah komputer dapat berfungsi dengan

baik. OS menghubungkan antara perangkat keras dengan berbagai

perangkat yang terdapat pada komputer sehingga dapat saling

terintegrasi

Berikut ini merupakan beberapa penjabaran mengenai versi –

versi windows:

1) Windows 7

Windows 7 diluncurkan dengan misi memperbaiki berbagai

macam masalah dan kritik yang diterima oleh Windows Vista.

Microsoft menambah kemudahan pengguna dengan desain dari

Windows 7 yang lebih baik. Windows 7 dapat dijalankan dengan

lebih cepat, stabil, dan mudah, sehingga banyak pengguna yang

akhirnya beralih ke Windows 7 dari sebelumnya XP atau Vista.

2) Windows 8
26

Dipasarkan pada Oktober 2012, Microsoft berharap Windows

8 menjadi primadona baru bagi pengguna komputer (yang

sebelumnya sudah puas dengan Windows 7). Hal yang paling

mencolok dari Windows 8 adalah adanya widget untuk

menggantikan daftar berbagai program di tombol Start. Walaupun

begitu, tampilan desktop masih sedikit mirip seperti Windows 7.

Windows 8 dapat dijalankan dengan lebih cepat (terutama pada

proses booting) dibanding versi Windows sebelumnya. Windows 8

juga dilengkapi dengan USB 3.0.

3) Windows 10

Windows 10 ini dirilis pada Juli 2015. Pada Windows 10 tetap

dipertahankan tombol Start dengan desktop yang lebih seimbang.

Windows 10 ini memiliki tampilan yang elegan dan minimalis

sehingga membuat penggunanya nyaman dalam menggunakannya.

Beberapa fitur yang menarik dari Windows 10 adalah adanya

kemampuan untuk mengganti keyboard menjadi mode mouse dan

mode tablet, seperti pada komputer seperti Surface Pro 3 yang

keyboardnya dapat dilepas. Dengan berbagai kelebihan Windows

10 yang menarik dan memukau, membuat banyak pengguna yang

berbondong-bondong melakukan upgrade dari sistem operasi lama

mereka ke Windows 10.

b. NetBeans 8.2
27

NetBeans adalah salah satu aplikasi IDE (Integrated Development

Environment) yang digunakan oleh developer software komputer untuk

menulis, men compile, mencari kesalahan, dan untuk menyebarkan

program (Maya, 2015).

NetBeans merupakan salah satu IDE yang digunakan untuk

melakukan pemrograman baik menulis kode, mengkompilasi, mencari

kesalahan, dan mendistribusikan program. NetBeans juga menyediakan

paket yang lengkap dalam pemrograman dari pemrograman standar

(aplikasi desktop), pemrograman enterprise, dan pemrograman

perangkat mobile (Prabawati, 2010).

c. XAMPP 7.2.31

XAMPP adalah paket program web lengkap yang dapat anda

pakai untuk belajar pemrograman web, khususnya PHP dan MySQL,

paket ini dapat di download secara gratis dan legal (Nugroho, 2013).

XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem

operasi, merupakan kompilasi dari beberapa program (Ariadi, 2017).

Untuk menggunakan aplikasi ini komputer harus sudah dilengkapi

dengan NetBeans, Xampp, MySQL dan JDK (Java Development Kit) untuk

mengeksekusi aplikasi yang dibuat dengan NetBeans dan database

MySQL serta program JDK (Java Development Kit).


BAB IV

PEMBAHASAN

A. Proses Bisnis

Proses aplikasi sistem berjalan merupakan gambaran proses yang terjadi

pada proses aplikasi yang ada saat ini. Adapun proses aplikasi sistem berjalan

pada program kami adalah sebagai berikut:

1. Proses login

Proses ini antara lain memasukan Nama Akun dan Kata Sandi oleh

user agar dapat masuk ke halaman Aplikasi dan juga beranda.

2. Proses daftar anggota perpustakaan

Proses ini antara lain untuk menginput data lengkap dari siswa yang

akan menjadi anggota perpustakaan. Di dalam halaman ini juga dapat

dilakukan perubahan dan penghapusan data siswa.

3. Proses peminjaman buku

Proses ini antara lain untuk menginput data buku yang dipinjam,

yaitu terkait kode buku yang dipinjam, kode anggota, lama waktu

peminjaman, tanggal awal meminjam dan tanggal batas peminjaman.

4. Data peminjaman buku

Proses ini antara lain digunakan untuk mengubah serta menghapus

data peminjaman apabila terjadi kesalahan pada Proses peminjaman buku.

Di sini juga dapat mencetak laporan data peminjaman secara keseluruhan

dan juga per tanggal hari ini.

28
29

5. Proses pengembalian buku

Proses ini antara lain untuk menginput data buku yang akan

dikembalikan apabila Tanggal batas pengembalian telah melewati batas

Tanggal tersebut, maka akan ada pemberitahuan bahwa buku tersebut telat

dikembalikan. Kemudian di sini juga terdapat Keterangan kondisi buku

Ketika buku tersebut dikembalikan dan juga dapat mencetak laporan data

buku yang masih belum dikembalikan mulai dari per hari, per minggu dan

per bulan.

6. Data Pengembalian buku

Proses ini antara lain digunakan untuk mengubah dan juga

menghapus apabila ada kesalahan dalam Proses pengembalian buku. Pada

proses ini terdapat table yang berisikan buku – buku yang telah

dikembalikan dan juga dapat mencetak laporan data buku yang telah

dikembalikan secara keseluruhan dan per tanggal hari ini.

B. Sistem Berjalan Atau Proses Yang Dibahas

Sistem yang berjalan dalam Aplikasi Sistem Informasi Perpustakaan

SD Negeri Cimanggis 01 yaitu melayani peminjaman buku untuk siswa –

siswi yang mempunyai kartu anggota perpustakaan, yang digunakan sebagai

penunjang pembelajaran bagi siswa dan siswi yang ada di SD Negeri

Cimanggis 01.
30

C. Aturan Bisnis

Dalam Aplikasi Perpustakaan ini terdapat beberapa peraturan yang harus

diperhatikan. Aturan aplikasi sistem berjalan adalah sebagai berikut:

1. Admin harus login terlebih dahulu jika ingin menggunakan aplikasi.

2. Pada halaman beranda user dapat melihat data buku, data anggota, kondisi

buku, admin yang sedang login dan juga jumlah peminjaman serta

pengembalian buku pada saat admin login.

3. Admin juga dapat menambahkan data petugas, data anggota, data buku

dan juga melakukan proses peminjaman serta pengembalian.

4. Cetak laporan data peminjaman buku dapat dilakukan di halaman data

peminjaman buku dan juga proses pengembalian buku.

5. Cetak laporan data buku yang telah dikembalikan dapat dilakukan di

halaman data pengembalian buku.

D. Kebijakan Sistem

Kebijakan yang diterapkan pada Perpustakaan SDN Cimanggis 01

Bojong Gede adalah:

1. Setiap peminjam yang ingin melakukan peminjaman buku harus

memiliki kartu anggota perpustakaan.

2. Setiap anggota yang ingin meminjam buku diharuskan membawa kartu

anggota yang nantinya diserahkan kepada petugas perpustakaan untuk

melakukan pendataan peminjaman buku.


31

3. Begitupun sebaliknya, setiap anggota yang ingin melakukan

pengembalian buku diharuskan membawa kartu anggota yang nantinya

diserahkan kepada petugas perpustakaan untuk melakukan pendataan

pengembalian buku.

4. Setiap anggota yang ingin berkunjung ke perpustakaan diharapkan untuk

selalu tertib dan teratur.

5. Setiap anggota diharapkan untuk yang melakukan pengembalian buku

tepat pada waktu yang telah ditentukan.

E. Dekomposisi Fungsi

Gambar 4.1. Dekomposisi Fungsi


(Sumber: Penulis)
32

F. Hirarki Fungsi Sistem Yang Diusulkan

Gambar 4.2. Hirarki Fungsi yang diusulkan


(Sumber: Penulis)

G. Analisa Masukan (Input), Proses, dan Keluaran (Output)

1. Rancangan Masukan

a. Nama Masukan : Input Data Buku

Fungsi : Untuk mengetahui detail buku yang ada di

perpustakaan

Sumber : Petugas

Media : Komputer

Rangkap : 1 (satu)

Keterangan : Berisi tentang detail buku

b. Nama Masukan : Input Data Petugas

Fungsi : Untuk mengetahui data petugas

Sumber : Petugas

Media : Komputer

Rangkap : 1 (satu)
33

Keterangan : Berisi data petugas yang mengelola aplikasi

c. Nama Masukan : Input Data Anggota

Fungsi : Untuk mengetahui data anggota perpustakaan

Sumber : Siswa

Media : Komputer

Rangkap : 1 (satu)

Keterangan : Berisi data anggota perpustakaan

2. Rancangan Proses

a. Proses Peminjaman

Pada proses ini siswa/siswi harus sudah terdaftar dahulu sebagai

anggota perpustakaan. Jika sudah terdaftar dan mendapatkan kartu

anggota, maka siswa/siswi dapat mengambil buku yang diinginkan,

lalu petugas perpustakaan akan menginput buku apa saja yang

dipinjam dan petugas juga akan mencatat pada kartu anggota tersebut.

b. Proses Pengembalian

Pada proses ini siswa/siswa membawa buku yang ingin

dikembalikan beserta dengan kartu anggota perpustakaan. Petugas akan

menginput dan mencatatnya di kartu anggota, sehingga ada bukti

bahwa siswa/siswi sudah mengembalikan buku yang dipinjam nya.

3. Rancangan Keluaran

a. Nama Masukan : Laporan Kategori Buku

Fungsi : Untuk mengetahui buku sesuai kategorinya

Sumber : Database
34

Media : Komputer

Rangkap : 1 (satu)

Keterangan : Berisi tentang data buku berdasarkan

kategorinya masing-masing

b. Nama Masukan : Laporan Detail Buku

Fungsi : Untuk mengetahui detail data buku yang ada

di perpustakaan

Sumber : Database

Media : Komputer

Rangkap : 1 (satu)

Keterangan : Berisi tentang detail data buku

c. Nama Masukan : Laporan Data Anggota

Fungsi : Untuk mengetahui data anggota perpustakaan

Sumber : Database

Media : Komputer

Rangkap : 1 (satu)

Keterangan : Berisi data anggota perpustakaan

d. Nama Masukan : Laporan Data Peminjaman

Fungsi : Untuk mengetahui jumlah peminjam buku di

perpustakaan

Sumber : Database

Media : Komputer

Rangkap : 1 (satu)
35

Keterangan : Berisi tentang data anggota dan data buku

yang dipinjam

e. Nama Masukan : Laporan Data Pengembalian

Fungsi : Untuk mengetahui data yang sudah

mengembalikan buku

Sumber : Database

Media : Komputer

Rangkap : 1 (satu)

Keterangan : Berisi tentang data anggota dan data buku

yang sudah dikembalikan

H. Diagram Alir Data (DAD) Konteks, Nol, dan Rinci

1. Diagram Konteks

Gambar 4.3. Diagram Konteks


(Sumber: Penulis)
36

2. Diagram Nol

Gambar 4.4. Diagram Nol


(Sumber: Penulis)
37

3. Diagram Rinci

a. Diagram Rinci Proses 1.0

Gambar 4.5. Diagram Rinci Proses 1.0


(Sumber: Penulis)

b. Diagram Rinci Proses 2.0

Gambar 4.6. Diagram Rinci Proses 2.0


(Sumber: Penulis)

c. Diagram Rinci Proses 3.0

Gambar 4.7. Diagram Rinci Proses 3.0


(Sumber: Penulis)
38

d. Diagram Rinci Proses 4.0

Gambar 4.8. Diagram Rinci Proses 4.0


(Sumber: Penulis)

e. Diagram Rinci Proses 5.0

Gambar 4.9. Diagram Rinci Proses 5.0


(Sumber: Penulis)
39

f. Diagram Rinci Proses 6.0

Gambar 4.10. Diagram Rinci Proses 6.0


(Sumber: Penulis)

I. Kamus Data

Merupakan suatu katalog fakta tentang dan kebutuhan informasi dari

suatu sistem informasi yang analisis sistemnya dapat mendefinisikan data

yang mengatur dan sistem secara lengkap yang dijelaskan sebagai berikut:

1. Nama Arus : Daftar petugas

Alias :-

Bentuk Data : Dokumen

Arus Data : Petugas – proses pendataan petugas

Penjelasan : Untuk mendata petugas perpustakaan

Periode : Setiap ada penambahan petugas perpustakaan

Volume : Rata-rata 1 petugas

Struktur Data : kode_petugas + nama_petugas + tgl_lahir + nama_akun +

kata_sandi
40

2. Nama Arus : Daftar kategori buku

Alias :-

Bentuk Data : Dokumen

Arus Data : Petugas – proses pendataan buku sesuai kategori buku

Penjelasan : Untuk mendata buku sesuai kategori buku dan stok buku

Periode : Setiap ada penambahan buku perpustakaan

Volume : Rata – rata 6 bulan

Struktur Data : kode_kategori+ nama_kategori + kode_awal_kategori +

jenjang_kelas + jumlah_awal + jumlah_dipinjam +

sisa_buku

3. Nama Arus : Daftar detail buku

Alias :-

Bentuk Data : Dokumen

Arus Data : Petugas – proses pendataan buku sesuai detail buku

Penjelasan : Untuk mendata buku sesuai detail buku

Periode : Setiap ada penambahan buku perpustakaan

Volume : Rata – rata 6 bulan

Struktur Data : kode_buku + kode_kategori + judul_buku + penulis +

penerbit + status_buku + tanggal_input

4. Nama Arus : Daftar anggota

Alias : Kartu anggota

Bentuk Data : Formulir

Arus Data : Petugas – proses daftar anggota


41

Penjelasan : Untuk menginput anggota dan mencetak kartu anggota

perpustakaan

Periode : Setiap siswa mendaftar menjadi anggota perpustakaan

Volume : Rata – rata per siswa dan volume puncak adalah per kelas

Struktur Data : kode_anggota + nama_anggota + tgl_lahir + alamat +

tgl_daftar

5. Nama Arus : Input peminjaman

Alias : Bukti peminjaman

Bentuk Data : Kartu anggota

Arus Data : Petugas – proses peminjaman buku

Penjelasan : Untuk mencatat buku yang dipinjam dan mencetak bukti

peminjaman pada kartu anggota

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu volume puncak adalah 1 tahun

Struktur Data : kode_peminjaman + kode_petugas + kode_buku +

kode_anggota + waktu_pinjam + tgl_peminjaman +

tgl_batas_peminjaman + id_petugas + tgl_input

6. Nama Arus : Input pengembalian

Alias : Bukti pengembalian

Bentuk Data : Kartu anggota

Arus Data : Petugas – proses pengembalian buku

Penjelasan : Untuk mencatat buku yang dikembalikan dan mencetak

bukti pengembalian pada kartu anggota


42

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu volume puncak adalah 1 tahun

Struktur Data : kode_pengembalian + kode_peminjaman + kode_petugas

+ kode_buku + kode_anggota + kondisi_buku +

waktu_pinjam + tgl_peminjaman + tgl_batas_peminjaman

+ tgl_pengembalian + tgl_input

7. Nama Arus : Data anggota

Alias : Laporan data anggota

Bentuk Data : Dokumen

Arus Data : Petugas – proses laporan

Penjelasan : Untuk mengetahui laporan data anggota

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu

Struktur Data : kode_anggota + nama_anggota + tgl_lahir + alamat +

tgl_daftar

8. Nama Arus : Data kategori buku

Alias : Laporan kategori buku

Bentuk Data : Dokumen

Arus Data : Petugas – proses laporan

Penjelasan : Untuk mengetahui laporan stok pada kategori buku

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu

Struktur Data : kode_kategori + nama_kategori + kode_awal_kategori +


43

jenjang_kelas + jumlah_awal + jumlah_dipinjam +

sisa_buku

9. Nama Arus : Data detail buku

Alias : Laporan detail buku

Bentuk Data : Dokumen

Arus Data : Petugas – proses laporan

Penjelasan : Untuk mengetahui laporan detail buku

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu

Struktur Data : kode_buku + kode_kategori + judul_buku + penulis +

penerbit + status_buku + tanggal_input

10. Nama Arus : Data peminjaman

Alias : Laporan peminjaman buku

Bentuk Data : Dokumen

Arus Data : Petugas – proses laporan

Penjelasan : Untuk mengetahui laporan data peminjaman

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu

Struktur Data : kode_peminjaman + kode_petugas + kode_buku +

kode_anggota + waktu_pinjam + tgl_peminjaman +

tgl_batas_peminjaman + id_petugas + tgl_input

11. Nama Arus : Data pengembalian

Alias : Laporan pengembalian buku


44

Bentuk Data : Dokumen

Arus Data : Petugas – proses laporan

Penjelasan : Untuk mengetahui laporan data pengembalian

Periode : Setiap 1 minggu, 6 bulan, 1 tahun

Volume : Rata – rata 1 minggu

Struktur Data : kode_peminjaman + kode_petugas + kode_buku +

kode_anggota + waktu_pinjam + tgl_peminjaman +

tgl_batas_peminjaman + id_petugas + tgl_input

J. Spesifikasi Proses

Merupakan penjelasan deskripsi dan spesifikasi dalam setiap proses

yang paling rendah proses atomic yang ada pada sistem dengan menggunakan

notasi. Spesifikasi proses dijelaskan sebagai berikut:

1. Nomor : 1.0

Nama Proses : Pendataan petugas

Masukan : Daftar petugas

Keluaran : Data petugas

Uraian : Daftar petugas diinput dan disimpan pada data petugas

2. Nomor : 2.0

Nama Proses : Pendataan buku

Masukan : Daftar kategori buku

Keluaran : data kategori buku


45

Uraian : Daftar kategori buku diinput dan disimpan pada data

kategori buku

3. Nomor : 2.0

Nama Proses : Pendataan buku

Masukan : Daftar detail buku

Keluaran : Data detail buku

Uraian : Daftar detail buku diinput dan disimpan pada data detail

buku

4. Nomor : 3.0

Nama Proses : Registrasi

Masukan : Daftar anggota

Keluaran : Kartu anggota

Uraian : Daftar anggota dicetak dari data anggota

5. Nomor : 4.0

Nama Proses : Peminjaman buku

Masukan : Input peminjaman

Keluaran : Bukti peminjaman

Uraian : Input peminjaman dan mencetak dari data peminjaman

buku

6. Nomor : 5.0

Nama Proses : Pengembalian buku

Masukan : Input pengembalian

Keluaran : Bukti pengembalian


46

Uraian : Input pengembalian dan mencetak dari data

pengembalian

buku

7. Nomor : 6.0

Nama Proses : Laporan

Masukan : Data anggota

Keluaran : Laporan data anggota

Uraian : Laporan data anggota dicetak dari data anggota

8. Nomor : 6.0

Nama Proses : Laporan

Masukan : Data kategori buku

Keluaran : Laporan kategori buku

Uraian : Laporan kategori buku dicetak dari data kategori buku

9. Nomor : 6.0

Nama Proses : Laporan

Masukan : Data detail buku

Keluaran : Laporan detail buku

Uraian : Laporan detail buku dicetak dari data detail buku

10. Nomor : 6.0

Nama Proses : Laporan

Masukan : Data peminjaman

Keluaran : Laporan peminjaman buku

Uraian : Laporan peminjaman buku dicetak dari data peminjaman


47

buku

11. Nomor : 6.0

Nama Proses : Laporan

Masukan : Data pengembalian

Keluaran : Laporan pengembalian buku

Uraian : Laporan pengembalian buku dicetak dari data

pengembalian buku

K. Bagan Terstruktur

1. Bagan Terstruktur Proses 1

Gambar 4.11. Bagan Terstruktur Proses 1


(Sumber: Penulis)
48

2. Bagan Terstruktur Proses 2

Gambar 4.12. Bagan Terstruktur Proses 2


(Sumber: Penulis)

3. Bagan Terstruktur Proses 3

Gambar 4.13. Bagan Terstruktur Proses 3


(Sumber: Penulis)
49

4. Bagan Terstruktur Proses 4

Gambar 4.14. Bagan Terstruktur Proses 4


(Sumber: Penulis)

5. Bagan Terstruktur Proses 5

Gambar 4.15. Bagan Terstruktur Proses 5


(Sumber: Penulis)
50

6. Bagan Terstruktur Proses 6

Gambar 4.16. Bagan Terstruktur Proses 6


(Sumber: Penulis)

7. Bagan Terstruktur Proses 7

Gambar 4.17. Bagan Terstruktur Proses 7


(Sumber: Penulis)
51

L. Spesifikasi Modul

1. Modul Input Data Petugas

Begin

Do Tampilan Modul Input Data Petugas

Simpan ke Tabel Database Petugas

End do

End

2. Modul Input Kategori Buku

Begin

Do Tampilan Modul Input Kategori Buku

Simpan ke Tabel Database Kategori Buku

End do

End

3. Modul Input Detail Buku

Begin

Do Tampilan Modul Input Detail Buku

Simpan ke Tabel Database Detail Buku

End do

End

4. Modul Input Data Anggota

Begin

Do Tampilan Modul Input Anggota

Simpan ke Tabel Database Detail Anggota


52

End do

End

5. Modul Input Data Peminjaman

Begin

Do Tampilan Modul Input Peminjaman

Baca Data Tabel Database Petugas, Kategori Buku, Detail Buku,

Anggota

Simpan ke Tabel Database Peminjaman Buku

End do

End

6. Modul Input Data Pengembalian

Begin

Do Tampilan Modul Input Pengembalian

Baca Data Tabel Database Petugas, Kategori Buku, Detail Buku,

Anggota, Peminjaman

Simpan ke Tabel Database Pengembalian Buku

End do

End

7. Modul Pembuatan Laporan Data Perpustakaan

Begin

Do Button Cetak Data Laporan Perpustakaan

Baca Data Tabel Database Petugas, Kategori Buku, Detail Buku,

Anggota, Peminjaman, Pengembalian


53

Cetak Laporan Data Laporan Perpustakaan

End do

End

M. Analisa Basisdata

1. ERD (Entity Relationship Diagram)

Gambar 4.18. Entity Relationship Diagram


(Sumber: Penulis)
54

2. Spesifikasi File Basisdata

a. Nama Tabel : Petugas

Media : Harddisk

Primary Key : kode_petugas

Panjang Record : 8+40+0+20+20 = 88 Byte

Struktur Dara : kode_petugas + nama_petugas + tgl_lahir +

nama_akun + kata_sandi

Tabel 4.1.
Tabel Struktur Petugas
Nama Type Size Keterangan
Kode Petugas Varchar 8 Kode Petugas
Nama Petugas Varchar 40 Nama Petugas
Tanggal Lahir Date 0 Tanggal Lahir
Nama Akun Varchar 20 Nama Akun
Kata Sandi Varchar 20 Kata Sandi

b. Nama Tabel : Detail Anggota

Media : Harddisk

Primary Key : kode_anggota

Panjang Record : 30+50+0+300+0 = 380 Byte

Struktur Dara : kode_anggota + nama_anggota + tgl_lahir +

alamat + tgl_daftar
55

Tabel 4.2.
Tabel Struktur Detail Anggota

Nama Type Size Keterangan


Kode Anggota Varchar 30 Kode Anggota
Nama Anggota Varchar 50 Nama Anggota
Tanggal Lahir Date 0 Tanggal Lahir
Alamat Varchar 300 Alamat
Tanggal Daftar Date 0 Tanggal Daftar

c. Nama Tabel : Detail Buku

Media : Harddisk

Primary Key : kode_buku

Panjang Record : 10+10+40+30+20+20 = 130 Byte

Struktur Dara : kode_buku + kode_kategori + judul_buku +

penulis + penerbit + status_buku

Tabel 4.3.
Tabel Struktur Detail Buku

Nama Type Size Keterangan


Kode Buku Varchar 10 Kode Buku
Kode Kategori Varchar 10 Kode Kategori
Judul Buku Varchar 40 Judul Buku
Penulis Varchar 30 Penulis
Penerbit Varchar 20 Penerbit
Status Buku Varchar 20 Status Buku

d. Nama Tabel : Kategori Buku

Media : Harddisk

Primary Key : kode_kategori


56

Panjang Record : 10+50+5+2+11+11+11 = 100 Byte

Struktur Dara : kode_kategori + nama_kategori +

kode_awal_kategori +j enjang_kelas +

jumlah_awal + jumlah_dipinjam + sisa_buku

Tabel 4.4.
Tabel Struktur Kategori Buku

Nama Type Size Keterangan

Kode Kategori Varchar 10 Kode Kategori

Nama Kategori Varchar 50 Nama Kategori


Kode Awal Kode Awal
Varchar 5
Kategori Kategori
Jenjang Kelas Varchar 2 Jenjang Kelas

Jumlah Awal Int 11 Jumlah Awal


Jumlah Jumlah
Int 11
Dipinjam Dipinjam
Sisa Buku Int 11 Sisa Buku

e. Nama Tabel : Peminjaman Buku

Media : Harddisk

Primary Key : kode_peminjaman

Panjang Record : 10+10+10+10+10+0+0 = 50 Byte

Struktur Dara : kode_peminjaman + kode_petugas +

kode_buku + kode_anggota + waktu_pinjam

+ tgl_peminjaman+tgl_batas_peminjaman

Tabel 4.5
Tabel Struktur Peminjaman Buku
57

Nama Type Size Keterangan


Kode Kode
Varchar 10
Peminjaman Peminjaman
Kode Petugas Varchar 10 Kode Petugas
Kode Buku Varchar 10 Kode Buku
Kode Anggota Varchar 10 Kode Anggota
Waktu Pinjam Varchar 10 Waktu Pinjam
Tanggal Tanggal
Date 0
Peminjaman Peminjaman
Tanggal Batas Tanggal Batas
Date 0
Peminjaman Peminjaman

f. Nama Tabel : Pengembalian Buku

Media : Harddisk

Primary Key : kode_pengembalian

Panjang Record : 10+10+10+10+10+30+30+0+0+0 = 110 Byte

Struktur Dara : kode_pengembalian + kode_peminjaman +

kode_petugas + kode_buku +kode_anggota

+ kondisi_buku + waktu_pinjam +

tgl_peminjaman + tgl_batas_peminjaman +

tgl_pengembalian

Tabel 4.6
Tabel Struktur Pengembalian Buku
58

Nama Type Size Keterangan


Kode Kode
Varchar 10
Pengembalian Pengembalian
Kode Kode
Varchar 10
Peminjaman Peminjaman
Kode Petugas Varchar 10 Kode Petugas
Kode Buku Varchar 10 Kode Buku
Kode Anggota Varchar 10 Kode Anggota
Kondisi Buku Varchar 30 Kondisi Buku
Waktu Pinjam Varchar 30 Waktu Pinjam
Tanggal Tanggal
Date 0
Peminjaman Peminjaman
Tanggal Batas Tanggal Batas
Date 0
Peminjaman Peminjaman
Tanggal Tanggal
Date 0
Pengembalian Pengembalian

N. Rancangan Layar, Rancangan Form Masukan, dan Rancangan Form

Keluaran

1. Rancangan Form Masuk Akun

Gambar 4.19. Rancangan Form Masuk Akun


(Sumber: Penulis)
59

2. Rancangan Form Beranda

Gambar 4.20. Rancangan Form Beranda


(Sumber: Penulis)

3. Rancangan Form Pengelolaan Data Buku

Gambar 4.21. Rancangan Form Pengelolaan Data Buku


(Sumber: Penulis)
60

4. Rancangan Form Data Kategori Buku

Gambar 4.22. Rancangan Form Data Kategori Buku


(Sumber: Penulis)

5. R

n Form Data Detail Buku

Gambar 4.23. Rancangan Form Data Detail Buku


(Sumber: Penulis)
61

6.

Rancangan Form Data Detail Anggota

Gambar 4.24. Rancangan Form Data Detail Anggota


(Sumber: Penulis)

7. Rancangan Form Pengolahan Data Petugas

Gambar 4.25. Rancangan Form Pengelolaan Data Petugas


(Sumber: Penulis)
62

8. Rancangan Form Pengelolaan Data Peminjaman Buku

Gambar 4.26. Rancangan Form Pengelolaan Data Peminjaman Buku


Sumber: Penulis

9. R

n Form Proses Peminjaman Buku


63

Gambar 4.27. Rancangan Form Proses Peminjaman Buku


(Sumber: Penulis)

10.

Rancangan Form Data Peminjaman Buku


64

Gambar 4.28. Rancangan Form Data Peminjaman Buku


(Sumber: Penulis)

11. Rancangan Form Pengelolaan Data Pengembalian Buku

Gambar 4.29. Rancangan Form Pengelolaan Data Pengembalian Buku


(Sumber: Penulis)

12. Rancangan Form Proses Pengembalian Buku


65

Gambar 4.30. Rancangan Form Proses Pengembalian Buku


(Sumber: Penulis)

13. Rancangan Form Data Pengembalian Buku

Gambar 4.31. Rancangan Form Data Pengembalian Buku


(Sumber: Penulis)

O. Tampilan Layar

1. Tampilan Layar Masuk Akun


66

Gambar 4.32. Tampilan Layar Masuk Akun


(Sumber: Penulis)

2. Tampilan Layar Beranda

Gambar 4.33. Tampilan Layar Beranda


(Sumber: Penulis)

3. Tampilan Layar Pengelolaan Data Buku

Gambar 4.34. Tampilan Layar Pengelolaan Data Buku


(Sumber: Penulis)
67

4. Tampilan Layar Data Kategori Buku

Gambar 4.35. Tampilan Layar Pengelolaan Data Kategori Buku


Sumber: Penulis

5. Tampilan Layar Data Detail Buku

Gambar 4.36. Tampilan Layar Data Detail Buku


(Sumber: Penulis)
68

6. Tampilan Layar Detail Anggota

Gambar 4.37. Tampilan Layar Detail Anggota


(Sumber: Penulis)

7. Tampilan Layar Detail Petugas

Gambar 4.38. Tampilan Layar Detail Petugas


(Sumber: Penulis)
69

8. Tampilan Layar Pengelolaan Data Peminjaman Buku

Gambar 4.39. Tampilan Layar Pengelolaan Data Peminjaman Buku


(Sumber: Penulis)

9. Tampilan Layar Proses Peminjaman Buku


70

Gambar 4.40. Tampilan Layar Proses Peminjaman Buku


(Sumber: Penulis)

10. Tampilan Layar Data Peminjaman Buku

Gambar 4.41. Tampilan Layar Data Peminjaman Buku


(Sumber: Penulis)

11. Tampilan Layar Pengelolaan Data Pengembalian Buku

Gambar 4.42. Tampilan Layar Pengelolaan Data Pengembalian Buku


71

(Sumber: Penulis)

12. Tampilan Layar Proses Pengembalian Buku

Gambar 4.43. Tampilan Layar Proses Pengembalian Buku


(Sumber: Penulis)
72

13. Tampilan Layar Data Pengembalian Buku

Gambar 4.44. Tampilan Layar Data Pengembalian Buku


(Sumber: Penulis)
BAB V

SIMPULAN DAN SARAN

A. Simpulan

Setelah penulis mengadakan penelitian dan menganalisis data yang

diperoleh baik data yang diperoleh dari literatur maupun data dari lapangan,

maka dapat ditarik kesimpulan yakni sebagai berikut:

1. Pemanfaatan perpustakaan sekolah di SDN Cimanggis 01 belum berjalan

dengan baik, ada beberapa hal yang perlu diterapkan, diantaranya adalah

pengadaan gedung perpustakaan khusus, penataan kembali rak buku

berdasarkan kelas dan kategori, pencetakan kartu perpustakaan untuk

siswa, dan mengganti pengelola perpustakaan dengan seorang pustakawan

khusus.

2. Dari hasil penelitian yang dilakukan penulis, ada beberapa faktor yang

menghambat pemanfaatan perpustakaan sekolah yaitu sebagai berikut:

a. Tidak adanya gedung perpustakaan khusus

b. Terbatasnya lahan bangunan

c. Pengelola perpustakaannya adalah seorang guru kelas

3. Aplikasi perpustakaan yang terpadu dan terstruktur lebih efisien daripada

menggunakan beberapa aplikasi terpisah dengan database yang berbeda.

73
74

4. Aplikasi perpustakaan ini sudah mencakup pengelolaan data anggota, data

buku, transaksi peminjaman dan pengembalian serta laporan peminjaman

dan pengembalian buku.

B. Saran

Dari kesimpulan di atas dan penelitian yang dilakukan maka dapat

menemukan beberapa saran yang diharapkan dapat menjadi bahan

pertimbangan lebih lanjut dalam upaya peningkatan kualitas sistem yang telah

dibuat.

1. Saran untuk Sekolah

Pihak sekolah merupakan pihak yang berpengaruh terhadap maju

tidaknya perpustakaan sekolah. Kepala sekolah sebagai wakil dari pihak

sekolah hendaknya mempunyai perhatian yang serius terhadap

perpustakaan terutama berkaitan dengan pengadaan fasilitas-fasilitas yang

dibutuhkan. Perpustakaan sekolah dapat menjalankan fungsinya dengan

baik jika ditunjang dengan fasilitas yang lengkap, dan ini menjadi tugas

dari pihak sekolah.

2. Saran untuk Pengelola Perpustakaan

Pembina perpustakaan sebagai koordinator harus dapat

berkoordinasi dengan pihak sekolah dengan baik dan juga harus sering

berkoordinasi dengan staf-stafnya untuk melihat apa kekurangan dan

kebutuhan dari perpustakaan mereka. Demi perbaikan perpustakaan ke

depan, jika dirasa perlu pihak perpustakaan dapat menerapkan angket

kepada para pengunjung untuk melihat apa yang diinginkan oleh para
75

pengunjung. Selain pembina perpustakaan, staf perpustakaan juga dapat

meningkatkan kualitas layanannya agar para siswa dapat lebih tertarik

untuk mengunjungi perpustakaan. Untuk dapat menarik minat siswa

mengunjungi perpustakaan, petugas perpustakaan bisa membuat kegiatan-

kegiatan yang menarik bagi siswa. Seperti mengadakan pameran,

perlombaan dan lain-lain.

3. Saran terhadap sistem yang telah dibuat

a. Melakukan pembaruan pada interface dan sistem informasi karena

seiring berjalannya waktu akan lahir lagi fitur baru yang lebih

memanjakan penggunanya.

b. Penulis juga menyarankan agar dilakukan pemeliharaan pada sistem

yang dibuat agar penggunaannya dapat lebih efektif dan berkelanjutan.

c. Penulis menyarankan agar user atau petugas pustaka dapat

menggunakan sistem informasi ini sesuai dengan prosedur - prosedur

yang telah penulis sampaikan agar sistem informasi bisa dipergunakan

sesuai fungsinya.

d. Sistem ini dapat disesuaikan dengan kebutuhan serta perkembangan

dari perpustakaan Sekolah di SDN Cimanggis 01 pada masa yang akan

datang.

e. Sistem informasi ini tidak berbasis online

f. Untuk ke depannya, alangkah lebih baik jika aplikasi perpustakaan

dapat menampilkan statistik peminjam


DAFTAR PUSTAKA

Effendi. (2021). Apa itu Casing Komputer? Mengenal Pengertian Casing

Komputer. https://www.nesabamedia.com/pengertian-casing-komputer/

Hannanii, N. (2019). Pengertian Memori Beserta Fungsi, Karakteristik, Jenis-Jenis

dan Cara Kerja Memori. https://www.nesabamedia.com/pengertian-memori/

Riyada, H. (2019). Pengertian Harddisk Beserta Fungsi dan Cara Kerja Harddisk

(Pembahasan Lengkap). https://www.nesabamedia.com/pengertian-harddisk-

dan-fungsi-harddisk/

Riyadi, H. (2019). Pengertian Input Device Beserta Fungsi dan Contoh Input

Device pada Komputer. https://www.nesabamedia.com/pengertian-input-

device/

Riyadi, H. (2019). Pengertian Motherboard Beserta Fungsi dan Jenis-jenis

Motherboard. https://www.nesabamedia.com/pengertian-motherboard-dan-

fungsi-motherboard/

Riyadi, H. (2019). Pengertian Output Device Beserta Fungsi dan Contoh Output

Device pada Komputer. https://www.nesabamedia.com/pengertian-output-

device-beserta-fungsi-dan-contoh-output-device-pada-komputer/

Riyadi, H. (2019). Pengertian Power Supply dan Fungsi Power Supply Beserta

Jenis-jenis Konektornya. https://www.nesabamedia.com/pengertian-power-

supply-dan-fungsi-power-supply/

Riyadi, H. (2021). Pengertian Software Beserta Fungsi dan Jenis-jenis Software

yang Paling Umum. https://www.nesabamedia.com/pengertian-software/


Zakaria. (2019). Pengertian Windows Beserta Fungsi dan Sejarah Windows

(Mulai dari Tahun 1985). https://www.nesabamedia.com/pengertian-

windows-dan-sejarah-windows/amp/

Udaksana, A. P. C., & Kusaeri, W. R. (2018). Rancang Bangun Aplikasi Digital

School Dengan Java NetBeans IDE 8.1. Irons, 332–336.

Nugroho, Bunafit. 2013. Dasar Pemograman Web PHP – MySQL dengan

Dreamweaver. Gava Media: Yogyakarta

Th Ari Prabawati. (2010). Pengembangan aplikasi data base berbasis javaDB

dengan Netbeans. Andi: Yogyakarta.


SURAT PERMOHONAN KKP DARI UNIVERSITAS
SURAT KETERANGAN SELESAI KKP DARI PERUSAHAAN
LEMBAR PENGESAHAN KKP PERUSAHAAN
LEMBAR ABSENSI BIMBINGAN KKP
LEMBAR PENILAIAN AKHIR DOSEN PEMBIMBING
LEMBAR KEHADIRAN KKP PERUSAHAAN
LEMBAR PENILAIAN KINERJA KKP PERUSAHAAN
DAFTAR RIWAYAT HIDUP PENULIS

Daftar Riwayat Hidup

Data Pribadi
Nama : Putra Muhamad Rafly
Jenis Kelamin : Laki - Laki
Tempat, tanggal lahir : Jakarta, 31 Maret 1999
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Kp. Pitara Jl. Damai Rt 01/19 No. 93
No Telepon : 08995777146
E-mail : putramuhamadrafly31@gmail.com

Pendidikan Formal
- Tahun 2005 – 2011 SDN Pitara 2
- Tahun 2011 – 2014 MTs Sirajul Athfal
- Tahun 2014 – 2017 SMK Al-Muhtadin

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Putra Muhamad Rafly


Daftar Riwayat Hidup

Data Pribadi
Nama : Intan Dwi Rahayu
Jenis Kelamin : Perempuan
Tempat, tanggal lahir : Jakarta, 20 Febuari 1999
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Kp. Kelapa RT 001/RW 005 no 14, Desa
Rawa Panjang Kec.Bojonggede Kab. Bogor
Kode Pos 16927
No telepon : 085780231882
E-mail : intandwirahayu202@gmail.com

Pendidikan Formal
- Tahun 2005-2011 SDN Pabuaran 02
- Tahun 2011-2014 SMPN 2 Bojonggede
- Tahun 2014-2017 SMKN 1 Bojonggede

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Intan Dwi Rahayu


Daftar Riwayat Hidup

Data Pribadi
Nama : Isyqina Nurkhaleeda
Jenis Kelamin : Perempuan
Tempat, tanggal lahir : Jakarta, 10 Juli 1999
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Jl. Tb Simatupang Gg Buni
No telepon : 089603611854
E-mail : isyqinanurkhaleeda10@gmail.com

Pendidikan Formal
- Tahun 2005-2011 MI Yapimda
- Tahun 2011-2014 MTS Nurussa'adah
- Tahun 2014-2017SMK Yapimda

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Isyqina Nurkhaleeda
Daftar Riwayat Hidup

Data Pribadi
Nama : Erryza Nur Alif
Jenis Kelamin : Laki - Laki
Tempat, tanggal lahir : Bogor, 9 September 1999
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Jl. Utan Jaya RT.05 RW 04 No. 15, Citayam
No telepon : 089601025693
E-mail : erryzanuralif9@gmail.com

Pendidikan Formal
- Tahun 2005-2011 SDN Citayam 01
- Tahun 2011-2014 SMP Wira Buana
- Tahun 2014-2017 SMK Al-Basyariah

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Erryza Nur Alif


Daftar Riwayat Hidup

Data Pribadi
Nama : Rifky Putra Ramzi
Jenis Kelamin : Laki-Laki
Tempat, tanggal lahir : Jakarta, 22 Maret 2000
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Jl. Pitara Raya Gg. Citra RT. 03/19
No telepon : 085711136173
E-mail : rifkyramzi22@gmail.com

Pendidikan Formal
- Tahun 2005 – 2008 MI Al-Khairiyah
- Tahun 2008 – 2011 MI Raudlatul Falah
- Tahun 2011 – 2014 SMPN 218 Jakarta
- Tahun 2014 – 2017 SMKN 8 Jakarta

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Rifky Putra Ramzi


Daftar Riwayat Hidup

Data Pribadi
Nama : Shazia Putri Awaliyah
Jenis Kelamin : Perempuan
Tempat, tanggal lahir : Jakarta, 17 Maret 2000
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Jl. Batu Ampar Gg. H. Latif No.37
No telepon : 081845858300
E-mail : shaziaputriawaliyah@gmail.com

Pendidikan Formal
- Tahun 2005 – 2011 MI Al-Amin Tengah
- Tahun 2011 – 2014 MTs Negeri 6 Jakarta
- Tahun 2014 – 2017 SMK PGRI 28 Jakarta

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Shazia Putri Awaliyah


Daftar Riwayat Hidup

Data Pribadi
Nama : Silvi Rifayani Salam
Jenis Kelamin : Perempuan
Tempat, tanggal lahir : Jakarta, 28 November 1999
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Jl. Tole Iskandar Gg. Jaha
No telepon : 085885611260
E-mail : srifayani@gmail.com

Pendidikan Formal
- Tahun 2005 – 2011 SDN Mekarjaya 11
- Tahun 2011 – 2014 SMPN 15 Depok
- Tahun 2014 – 2017 SMA Plus PGRI Cibinong

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Silvi Rifayani Salam


Daftar Riwayat Hidup

Data Pribadi
Nama : Alda Alfianti
Jenis Kelamin : Perempuan
Tempat, tanggal lahir : Bogor, 3 Maret 1999
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Komplek Inkopad Blok R4 No. 9 RT 05/07,
Kel. Sasakpanjang, Kec. Tajurhalang, Kab.
Bogor
No telepon : 08991941265
E-mail : aldaalfianti1@gmail.com

Pendidikan Formal
- Tahun 2005-2011 SDN Kalisuren 02
- Tahun 2011-2014 SMPN 1 Tajurhalang
- Tahun 2014-2017 SMKN 1 Bojonggede

Demikian daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat saya,

Alda Alfianti
LISTING PROGRAM

A. Form Masuk Akun


1. package Program;
2. import static Program.dataPengembalian.kodeBuku;
3. import java.sql.*;
4. import koneksi.koneksi;
5. import java.sql.ResultSet;
6. import java.sql.SQLException;
7. import javax.swing.JOptionPane;
8. public class masukAkun extends javax.swing.JFrame {
9. private Connection conn = new koneksi().getkoneksi();
10. public static String idPetugas;
11. public static String getIdPetugas(){
12. return idPetugas;
13. }
14. /**
15. * Creates new form masukAkun
16. */
17. public masukAkun(){
18. initComponents();
19. this.setLocationRelativeTo(null);
20. }
21. private void btnMasukAkunMouseClicked(java.awt.event.MouseEvent evt) {
22. // TODO add your handling code here:
23. String user="", pass="";
24. user = inputNamaAkun.getText();
25. pass = inputKataSandi.getText();
26. try{
27. String sql = "SELECT * FROM petugas WHERE nama_akun='"+user+"' AND
kata_sandi='"+pass+"'";
28. java.sql.Statement stat= conn.createStatement();
29. ResultSet hasil = stat.executeQuery(sql);
30. if(user.equals("") && pass.equals("")){
31. JOptionPane.showMessageDialog(this, "Tolong isi nama akun dan password
anda");
32. }else if(user.equals("") && !(pass.equals(""))){
33. JOptionPane.showMessageDialog(this, "Tolong isi nama akun anda");
34. }else if(!(user.equals("")) && pass.equals("")){
35. JOptionPane.showMessageDialog(this, "Tolong isi password anda");
36. }
37. else{
38. if(hasil.next()){
39. if(user.equals(user) && pass.equals(pass)){
40. JOptionPane.showMessageDialog(null, "Anda Berhasil Login");
41. idPetugas = hasil.getString("kode_petugas");
42. prosesPeminjaman.kodepetugas.setText(hasil.getString(1));
43. beranda.namaPetugas.setText(hasil.getString(2));
44. beranda.namaAkun.setText(hasil.getString(4));
45. new beranda().setVisible(true);
46. this.setVisible(false);
47. }
48. }else{
49. JOptionPane.showMessageDialog(null, "Nama akun atau kata sandi anda
salah!");
50. // inputNamaAkun.setText("");
51. // inputKataSandi.setText("");
52. inputNamaAkun.requestFocus(true);
53. }
54. }
55. }catch(SQLException e){
56. JOptionPane.showMessageDialog(null, "Koneksi Database Gagal");
57. }
58. }
59. private void btnKeluarMouseClicked(java.awt.event.MouseEvent evt) {
60. // TODO add your handling code here:
61. int ok = JOptionPane.showConfirmDialog(null,"Apakah anda ingin keluar
aplikasi?","Konfirmasi",JOptionPane.YES_NO_CANCEL_OPTION);
62. if(ok == 0){
63. dispose();
64. }else{
65. JOptionPane.showMessageDialog(this, "Anda tidak keluar aplikasi");
66. }
67. }
68. /**
69. * @param args the command line arguments
70. */
71. public static void main(String args[]) {
72. java.awt.EventQueue.invokeLater(new Runnable() {
73. public void run() {
74. new masukAkun().setVisible(true);
75. }
76. });
77. }
78. // Variables declaration - do not modify
79. private javax.swing.JLabel background;
80. private javax.swing.JLabel btnKeluar;
81. private javax.swing.JLabel btnMasukAkun;
82. private javax.swing.JPasswordField inputKataSandi;
83. private javax.swing.JTextField inputNamaAkun;
84. // End of variables declaration
85. }

B. Form Beranda
1. package Program;
2. import java.sql.Connection;
3. import java.sql.PreparedStatement;
4. import java.sql.ResultSet;
5. import java.sql.SQLException;
6. import java.sql.Statement;
7. import java.text.SimpleDateFormat;
8. import java.util.Calendar;
9. import java.util.Date;
10. import java.util.GregorianCalendar;
11. import java.util.logging.Level;
12. import java.util.logging.Logger;
13. import koneksi.koneksi;
14. public class beranda extends javax.swing.JFrame {
15. private Connection conn = new koneksi().getkoneksi();
16. private String tglHariIni;
17. public static String idPetugas;
18. /**
19. * Creates new form beranda
20. */
21. public beranda() {
22. initComponents();
23. idPetugas = masukAkun.getIdPetugas();
24. tanggalHariIni();
25. tampilJumlahKategori();
26. tampilJumlahDetailAnggota();
27. tampilJumlahDetailBuku();
28. tampilJumlahDetailAnggotaHariIni();
29. totalpetugas();
30. tampilbukubagus();
31. tampilbukuhilang();
32. tampilbukurusak();
33. tampiljumlahpinjamseminggu();
34. tampiljumlahpinjambulan();
35. tampiljumlahpinjamtahun();
36. tampiljumlahpinjam();
37. tampiljumlahpengembalianminggu();
38. tampiljumlahpengembalianbulan();
39. tampiljumlahpengembaliantahun();
40. tampiljumlahpengembalian();
41. new Thread(){
42. public void run(){
43. while (true){
44. Calendar kal=new GregorianCalendar();
45. int jam= kal.get(Calendar.HOUR_OF_DAY);
46. int menit= kal.get(Calendar.MINUTE);
47. String waktu= jam+":"+menit;
48. jwaktu.setText(waktu);
49. }
50. }
51. }.start();
52. }
53. private void tanggalHariIni(){
54. try{
55. Date ys = new Date(); // membuat oject ys dari class Date
56. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
57. jtanggal.setText(s.format(ys));
58. tglHariIni = s.format(ys);
59. }catch(Exception e){
60. System.out.println(e.getMessage());
61. }
62. }
63. private void tampilJumlahKategori(){
64. try{
65. Statement s = conn.createStatement();
66. String sql = "SELECT COUNT(nama_kategori) FROM kategori_buku";
67. ResultSet rs = s.executeQuery(sql);
68. if(rs.next()){
69. jKategoriBuku.setText(rs.getString("COUNT(nama_kategori)"));
70. }
71. } catch(Exception e){
72. System.out.println(e.getMessage());
73. }
74. }
75. private void tampilJumlahDetailBuku(){
76. try{
77. Statement s = conn.createStatement();
78. String sql = "SELECT COUNT(judul_buku) FROM detail_buku";
79. ResultSet rs = s.executeQuery(sql);
80. if(rs.next()){
81. jDetailBuku.setText(rs.getString("COUNT(judul_buku)"));
82. }
83. } catch(Exception e){
84. System.out.println(e.getMessage());
85. }
86. }
87. private void tampilJumlahDetailAnggota(){
88. try{
89. Statement s = conn.createStatement();
90. String sql = "SELECT COUNT(kode_anggota) FROM detail_anggota";
91. ResultSet rs = s.executeQuery(sql);
92. if(rs.next()){
93. jDetailAnggota.setText(rs.getString("COUNT(kode_anggota)"));
94. }
95. } catch(Exception e){
96. System.out.println(e.getMessage());
97. }
98. }
99. private void tampilJumlahDetailAnggotaHariIni(){
100. try{
101. Statement s = conn.createStatement();
102. String sql = "SELECT COUNT(tgl_daftar) FROM detail_anggota where
tgl_daftar='"+jtanggal.getText()+"'";
103. ResultSet rs = s.executeQuery(sql);
104. if(rs.next()){
105. jPendaftarBaru.setText(rs.getString("COUNT(tgl_daftar)"));
106. }
107. } catch(Exception e){
108. System.out.println(e.getMessage());
109. }
110. }
111. protected void totalpetugas() {
112. try {
113. // TODO add your handling code here:
114. String sql = "select count(*) from petugas";
115. PreparedStatement stat = conn.prepareStatement(sql);
116. ResultSet rs = stat.executeQuery(sql);
117. while(rs.next()) {
118. int no = rs.getInt(1);
119. String total=(String)String.valueOf(no);
120. jDaftarPetugas.setText(total);
121. }
122. } catch (SQLException ex) {
123. Logger.getLogger(dataPetugas.class.getName()).log(Level.SEVERE, null, ex);
124. }
125. }
126. private void tampilbukubagus(){
127. try{
128. Statement s = conn.createStatement();
129. String sql = "SELECT COUNT(kondisi_buku) FROM pengembalian_buku where
kondisi_buku='bagus'";
130. ResultSet rs = s.executeQuery(sql);
131.
132. if(rs.next()){
133. jbagus.setText(rs.getString("COUNT(kondisi_buku)"));
134. }
135. } catch(Exception e){
136. System.out.println(e.getMessage());
137. }
138. }
139. private void tampilbukurusak(){
140. try{
141. Statement s = conn.createStatement();
142. String sql = "SELECT COUNT(kondisi_buku) FROM pengembalian_buku where
kondisi_buku='rusak'";
143. ResultSet rs = s.executeQuery(sql);
144. if(rs.next()){
145. jrusak.setText(rs.getString("COUNT(kondisi_buku)"));
146. }
147. } catch(Exception e){
148. System.out.println(e.getMessage());
149. }
150. }
151. private void tampilbukuhilang(){
152. try{
153. Statement s = conn.createStatement();
154. String sql = "SELECT COUNT(kondisi_buku) FROM pengembalian_buku where
kondisi_buku='hilang'";
155. ResultSet rs = s.executeQuery(sql);
156. if(rs.next()){
157. jhilang.setText(rs.getString("COUNT(kondisi_buku)"));
158. }
159. } catch(Exception e){
160. System.out.println(e.getMessage());
161. }
162. }
163. private void tampiljumlahpinjamseminggu(){
164. try{
165. Statement s = conn.createStatement();
166. String sql = "SELECT COUNT(waktu_pinjam) FROM peminjaman_buku where
waktu_pinjam='seminggu' and tgl_peminjaman='"+jtanggal.getText()+"'";
167. ResultSet rs = s.executeQuery(sql);
168. if(rs.next()){
169. pinjamseminggu.setText(rs.getString("COUNT(waktu_pinjam)"));
170. }
171. } catch(Exception e){
172. System.out.println(e.getMessage());
173. }
174. }
175. private void tampiljumlahpinjambulan(){
176. try{
177. Statement s = conn.createStatement();
178. String sql = "SELECT COUNT(waktu_pinjam) FROM peminjaman_buku where
waktu_pinjam='enam bulan' and tgl_peminjaman='"+jtanggal.getText()+"'";
179. ResultSet rs = s.executeQuery(sql);
180. if(rs.next()){
181. pinjambulan.setText(rs.getString("COUNT(waktu_pinjam)"));
182. }
183. } catch(Exception e){
184. System.out.println(e.getMessage());
185. }
186. }
187. private void tampiljumlahpinjamtahun(){
188. try{
189. Statement s = conn.createStatement();
190. String sql = "SELECT COUNT(waktu_pinjam) FROM peminjaman_buku where
waktu_pinjam='satu tahun' and tgl_peminjaman='"+jtanggal.getText()+"'";
191. ResultSet rs = s.executeQuery(sql);
192. if(rs.next()){
193. pinjamtahun.setText(rs.getString("COUNT(waktu_pinjam)"));
194. }
195. } catch(Exception e){
196. System.out.println(e.getMessage());
197. }
198. }
199. private void tampiljumlahpinjam(){
200. try{
201. Statement s = conn.createStatement();
202. String sql = "SELECT COUNT(waktu_pinjam) FROM peminjaman_buku where
tgl_peminjaman='"+jtanggal.getText()+"'";
203. ResultSet rs = s.executeQuery(sql);
204. if(rs.next()){
205. totalJumlahPeminjam.setText(rs.getString("COUNT(waktu_pinjam)"));
206. }
207. } catch(Exception e){
208. System.out.println(e.getMessage());
209. }
210. }
211. private void tampiljumlahpengembalianminggu(){
212. try{
213. Statement s = conn.createStatement();
214. String sql = "SELECT COUNT(waktu_pinjam) FROM pengembalian_buku where
waktu_pinjam='seminggu' and tgl_peminjaman='"+jtanggal.getText()+"'";
215. ResultSet rs = s.executeQuery(sql);
216. if(rs.next()){
217. pengembalianminggu.setText(rs.getString("COUNT(waktu_pinjam)"));
218. }
219. } catch(Exception e){
220. System.out.println(e.getMessage());
221. }
222. }
223. private void tampiljumlahpengembalianbulan(){
224. try{
225. Statement s = conn.createStatement();
226. String sql = "SELECT COUNT(waktu_pinjam) FROM pengembalian_buku where
waktu_pinjam='enam bulan' and tgl_peminjaman='"+jtanggal.getText()+"'";
227. ResultSet rs = s.executeQuery(sql);
228. if(rs.next()){
229. pengembalianbulan.setText(rs.getString("COUNT(waktu_pinjam)"));
230. }
231. } catch(Exception e){
232. System.out.println(e.getMessage());
233. }
234. }
235. private void tampiljumlahpengembaliantahun(){
236. try{
237. Statement s = conn.createStatement();
238. String sql = "SELECT COUNT(waktu_pinjam) FROM pengembalian_buku where
waktu_pinjam='satu tahun' and tgl_peminjaman='"+jtanggal.getText()+"'";
239. ResultSet rs = s.executeQuery(sql);
240. if(rs.next()){
241. pengembaliantahun.setText(rs.getString("COUNT(waktu_pinjam)"));
242. }
243. } catch(Exception e){
244. System.out.println(e.getMessage());
245. }
246. }
247. private void tampiljumlahpengembalian(){
248. try{
249. Statement s = conn.createStatement();
250. String sql = "SELECT COUNT(waktu_pinjam) FROM pengembalian_buku where
tgl_peminjaman='"+jtanggal.getText()+"'";
251. ResultSet rs = s.executeQuery(sql);
252. if(rs.next()){
253. totalJumlahPengembali.setText(rs.getString("COUNT(waktu_pinjam)"));
254. }
255. } catch(Exception e){
256. System.out.println(e.getMessage());
257. }
258. }
259. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
260. // TODO add your handling code here:
261. peminjamanBuku b = new peminjamanBuku();
262. b.setVisible(true);
263. this.dispose();
264. }
265. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
266. // TODO add your handling code here:
267. dataBuku a = new dataBuku();
268. a.setVisible(true);
269. this.dispose();
270. }
271. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
272. // TODO add your handling code here:
273. detailAnggota c = new detailAnggota();
274. c.setVisible(true);
275. this.dispose();
276. }
277. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
278. // TODO add your handling code here:
279. dataPetugas d = new dataPetugas();
280. d.setVisible(true);
281. this.dispose();
282. }
283. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
284. // TODO add your handling code here:
285. pengembalian e = new pengembalian();
286. e.setVisible(true);
287. this.dispose();
288. }
289. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
290. // TODO add your handling code here:
291. this.dispose();
292. }
293. /**
294. * @param args the command line arguments
295. */
296. public static void main(String args[]) {
297. /* Set the Nimbus look and feel */
298. java.awt.EventQueue.invokeLater(new Runnable() {
299. public void run() {
300. new beranda().setVisible(true);
301. }
302. });
303. }
304. // Variables declaration - do not modify
305. private javax.swing.JLabel background;
306. private javax.swing.JLabel jDaftarPetugas;
307. private javax.swing.JLabel jDaftarPetugasMasuk;
308. private javax.swing.JLabel jDendaKelompok;
309. private javax.swing.JLabel jDetailAnggota;
310. private javax.swing.JLabel jDetailBuku;
311. private javax.swing.JLabel jKategoriBuku;
312. private javax.swing.JLabel jPendaftarBaru;
313. private javax.swing.JLabel jbagus;
314. private javax.swing.JLabel jhilang;
315. private javax.swing.JLabel jrusak;
316. private javax.swing.JLabel jtanggal;
317. private javax.swing.JLabel jwaktu;
318. private javax.swing.JLabel menuBeranda;
319. private javax.swing.JLabel menuDataAnggota;
320. private javax.swing.JLabel menuDataBuku;
321. private javax.swing.JLabel menuDataPetugas;
322. private javax.swing.JLabel menuKeluarAkun;
323. private javax.swing.JLabel menuPeminjaman;
324. private javax.swing.JLabel menuPengembalian;
325. public static final javax.swing.JLabel namaAkun = new javax.swing.JLabel();
326. public static final javax.swing.JLabel namaPetugas = new javax.swing.JLabel();
327. private javax.swing.JLabel pengembalianbulan;
328. private javax.swing.JLabel pengembalianminggu;
329. private javax.swing.JLabel pengembaliantahun;
330. private javax.swing.JLabel pinjambulan;
331. private javax.swing.JLabel pinjamseminggu;
332. private javax.swing.JLabel pinjamtahun;
333. private javax.swing.JLabel totalJumlahPeminjam;
334. private javax.swing.JLabel totalJumlahPengembali;
335. // End of variables declaration
336.}

C. Form Data Buku


1. package Program;
2. public class dataBuku extends javax.swing.JFrame {
3. /**
4. * Creates new form dataBuku
5. */
6. public dataBuku() {
7. initComponents();
8. }
9. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
10. // TODO add your handling code here:
11. beranda b = new beranda();
12. b.setVisible(true);
13. this.dispose();
14. }
15. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
16. // TODO add your handling code here:
17. detailAnggota da = new detailAnggota();
18. da.setVisible(true);
19. this.dispose();
20. }
21. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
22. // TODO add your handling code here:
23. dataPetugas dp = new dataPetugas();
24. dp.setVisible(true);
25. this.dispose();
26. }
27. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
28. // TODO add your handling code here:
29. peminjamanBuku pb = new peminjamanBuku();
30. pb.setVisible(true);
31. this.dispose();
32. }
33. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
34. // TODO add your handling code here:
35. pengembalian pe = new pengembalian();
36. pe.setVisible(true);
37. this.dispose();
38. }
39. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
40. // TODO add your handling code here:
41. this.dispose();
42. }
43. private void inputKategoriBukuMouseClicked(java.awt.event.MouseEvent evt) {
44. // TODO add your handling code here:
45. kategoriBuku kb = new kategoriBuku();
46. kb.setVisible(true);
47. this.dispose();
48. }
49. private void inputDetailBukuMouseClicked(java.awt.event.MouseEvent evt) {
50. // TODO add your handling code here:
51. detailBuku db = new detailBuku();
52. db.setVisible(true);
53. this.dispose();
54. }
55. /**
56. * @param args the command line arguments
57. */
58. public static void main(String args[]) {
59. java.awt.EventQueue.invokeLater(new Runnable() {
60. public void run() {
61. new dataBuku().setVisible(true);
62. }
63. });
64. }
65. // Variables declaration - do not modify
66. private javax.swing.JLabel background;
67. private javax.swing.JLabel inputDetailBuku;
68. private javax.swing.JLabel inputKategoriBuku;
69. private javax.swing.JLabel menuBeranda;
70. private javax.swing.JLabel menuDataAnggota;
71. private javax.swing.JLabel menuDataBuku;
72. private javax.swing.JLabel menuDataPetugas;
73. private javax.swing.JLabel menuKeluarAkun;
74. private javax.swing.JLabel menuPeminjaman;
75. private javax.swing.JLabel menuPengembalian;
76. // End of variables declaration
77. }

D. Form Detail anggota


1. package Program;
2. //import com.placeholder.PlaceHolder;
3. import com.placeholder.PlaceHolder;
4. import java.io.File;
5. import java.sql.*;
6. import java.text.SimpleDateFormat;
7. import java.util.Date;
8. import java.util.Calendar;
9. import java.awt.Color;
10. import java.awt.Font;
11. import java.sql.Connection;
12. import java.sql.PreparedStatement;
13. import java.sql.ResultSet;
14. import java.sql.SQLException;
15. import java.sql.Statement;
16. import java.util.HashMap;
17. import java.util.Map;
18. import java.util.logging.Level;
19. import java.util.logging.Logger;
20. import javax.swing.JOptionPane;
21. import javax.swing.table.DefaultTableModel;
22. import koneksi.koneksi;
23. import net.sf.jasperreports.engine.JasperCompileManager;
24. import net.sf.jasperreports.engine.JasperFillManager;
25. import net.sf.jasperreports.engine.JasperPrint;
26. import net.sf.jasperreports.engine.JasperReport;
27. import net.sf.jasperreports.engine.design.JasperDesign;
28. import net.sf.jasperreports.engine.xml.JRXmlLoader;
29. import net.sf.jasperreports.view.JasperViewer;
30. public class detailAnggota extends javax.swing.JFrame {
31. private Connection conn = new koneksi().getkoneksi();
32. SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
33. private DefaultTableModel tabmode;
34. public PreparedStatement ps;
35. public String tgl, tglHariIni;
36. private String kdData = "", getKondisiCetak;
37. /**
38. * Creates new form detailAnggota
39. */
40. public detailAnggota() {
41. initComponents();
42. PlaceHolder holder1 = new PlaceHolder(fieldCariData, "masukkan kata kunci");
43. datatable();
44. kdAnggota();
45. tanggalHariIni();
46. fieldNamaAnggota.requestFocus();
47. tabelDetailAnggota.getTableHeader().setFont(new Font("Poppins Light",
Font.PLAIN, 13));
48. tabelDetailAnggota.getTableHeader().setOpaque(false);
49. tabelDetailAnggota.getTableHeader().setBackground(new Color(206, 18, 18));
50. tabelDetailAnggota.getTableHeader().setForeground(new Color(255, 255, 255));
51. }
52. private void resetInput(){
53. fieldNamaAnggota.setText("");
54. jTanggalLahir.setDate(null);
55. fieldAlamat.setText("");
56. }
57. private void tanggalHariIni(){
58. try{
59. Date ys = new Date(); // membuat oject ys dari class Date
60. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
61. tglHariIni = s.format(ys);
62. }catch(Exception e){
63. System.out.println(e.getMessage());
64. }
65. }
66. protected void datatable(){
67. try{
68. Object [] Baris = {"Kode Anggota", "Nama Anggota", "Tanggal Lahir",
"Alamat","Tanggal Daftar"};
69. DefaultTableModel tabmode = new DefaultTableModel(null,Baris);
70. tabelDetailAnggota.setModel(tabmode);
71. String sql = "SELECT * FROM detail_anggota ORDER BY kode_anggota
DESC";
72. java.sql.Statement stat = conn.createStatement();
73. ResultSet hasil = stat.executeQuery(sql);
74. while(hasil.next()){
75. String a = hasil.getString("kode_anggota");
76. String b = hasil.getString("nama_anggota");
77. String c = hasil.getString("tgl_lahir");
78. String d = hasil.getString("alamat");
79. String e = hasil.getString("tgl_daftar");
80. String[] data = {a,b,c,d,e};
81. tabmode.addRow(data);
82. }
83. tampilJumlah();
84. } catch(Exception e){
85. System.out.print(e);
86. }
87. }
88. private void tampilJumlah(){
89. try{
90. Statement s = conn.createStatement();
91. String sql = "SELECT COUNT(kode_anggota) FROM detail_anggota";
92. ResultSet rs = s.executeQuery(sql);
93. if(rs.next()){
94. JumlahAnggota.setText(rs.getString("COUNT(kode_anggota)"));
95. }
96. } catch(Exception e){
97. System.out.println(e.getMessage());
98. }
99. }
100.
101. private void editTampilJumlah(){
102. try{
103. Statement s = conn.createStatement();
104. String sql = "SELECT COUNT(kode_anggota) FROM detail_anggota WHERE
kode_anggota like '%"
105. + kodeAnggota.getText().toLowerCase() + "%'"
106. + "or nama_anggota like '%" + fieldCariData.getText().toLowerCase() +
"%'"
107. + "or tgl_lahir like '%" + fieldCariData.getText().toLowerCase() + "%'"
108. + "or alamat like '%" + fieldCariData.getText().toLowerCase() + "%' "
109. + "or tgl_daftar like '%" + fieldCariData.getText().toLowerCase() + "%'"
110. + "ORDER BY kode_anggota ASC";
111. ResultSet rs = s.executeQuery(sql);
112. if(rs.next()){
113. JumlahAnggota.setText(rs.getString("COUNT(kode_anggota)"));
114. }
115. } catch(Exception e){
116. System.out.println(e.getMessage());
117. }
118. }
119. private void kdAnggota(){
120.// String kode = "ANG0000";
121.// int i = 0;
122. try {
123. String sql="SELECT * FROM detail_anggota ORDER BY kode_anggota DESC";
124. Statement s = conn.createStatement();
125. ResultSet rs=s.executeQuery(sql);
126.// while(rs.next()){
127.// kode = rs.getString("kode_anggota");
128.// }
129.// kode = kode.substring(3);
130.// i = Integer.parseInt(kode) + 1;
131.// kode = "000" + i;
132.// kode = "ANG" + kode.substring(kode.length()-4);
133.// kodeAnggota.setText(kode);
134. if (rs.next()) {
135. String kda = rs.getString("kode_anggota").substring(4);
136. String an = "" + (Integer.parseInt(kda) + 1);
137. String nol = "";
138. if(an.length() == 1){
139. nol = "000";
140. }else if(an.length() == 2){
141. nol = "00";
142. }else if(an.length() == 3){
143. nol = "0";
144. }else if(an.length() == 4){
145. nol = "";
146. }
147. kodeAnggota.setText("ANG" + nol + an);
148. } else {
149. kodeAnggota.setText("ANG0001");
150. }
151. }catch(Exception e){
152. JOptionPane.showMessageDialog(null, e);
153. }
154. }
155.private void btnMasukkanDataMouseClicked(java.awt.event.MouseEvent evt) {
156. try {
157. if(!kdData.equals("")){
158. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
159. }else if(fieldNamaAnggota.getText().equals("") ||
jTanggalLahir.getDate().equals("") || fieldAlamat.getText().equals("")){
160. //kondisi pengecekkan jika terdapat form kosong
161. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
162. } else{
163. String sql = "INSERT INTO detail_anggota VALUES (?,?,?,?,?)";
164. PreparedStatement stat = conn.prepareStatement(sql);
165. stat.setString(1, kodeAnggota.getText());
166. stat.setString(2, fieldNamaAnggota.getText());
167. stat.setString(3, tgl);
168. stat.setString(4, fieldAlamat.getText());
169. stat.setString(5, tglHariIni);
170. stat.executeUpdate();
171. JOptionPane.showMessageDialog(null, "Data Berhasil Di Tambahkan");
172. kdAnggota();
173. resetInput();
174. datatable();
175. }
176. } catch (SQLException e) {
177. JOptionPane.showMessageDialog(null, "Data Gagal Di Tambahkan"+e);
178. }
179. }
180. private void jTanggalLahirPropertyChange(java.beans.PropertyChangeEvent evt) {
181. if (jTanggalLahir.getDate()!=null){
182. tgl = format.format(jTanggalLahir.getDate());
183. }
184. }
185. private void btnEditDataMouseClicked(java.awt.event.MouseEvent evt) {
186. try{
187. if(kdData.equals("")){
188. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi masukkan
data!");
189. }else if(fieldNamaAnggota.getText().equals("") ||
jTanggalLahir.getDate().equals("") || fieldAlamat.getText().equals("")){
190. //kondisi pengecekkan jika terdapat form kosong
191. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
192. } else{
193. String sql = "UPDATE detail_anggota SET nama_anggota = ?, tgl_lahir = ?,
alamat = ?, tgl_daftar = ? WHERE kode_anggota = ?";
194. PreparedStatement stat = conn.prepareStatement(sql);
195. stat.setString(1, fieldNamaAnggota.getText());
196. stat.setString(2, tgl);
197. stat.setString(3, fieldAlamat.getText());
198. stat.setString(4, tglHariIni);
199. stat.setString(5, kodeAnggota.getText());
200. stat.executeUpdate();
201. JOptionPane.showMessageDialog(null, "Data Berhasil Di ubah");
202. kdAnggota();
203. resetInput();
204. fieldNamaAnggota.requestFocus();
205. datatable();
206. }
207. } catch (SQLException e) {
208. JOptionPane.showMessageDialog(null, "Data Gagal Diubah "+e);
209. }
210. }
211. private void btnHapusDataMouseClicked(java.awt.event.MouseEvent evt) {
212. try{
213. String sql = "DELETE FROM detail_anggota WHERE kode_anggota ='" + kdData
+ "'";
214. PreparedStatement stat = conn.prepareStatement(sql);
215. stat.executeUpdate();
216. JOptionPane.showMessageDialog(null, "Data Berhasil DiHapus");
217. kdAnggota();
218. resetInput();
219. datatable();
220. }catch(SQLException e){
221. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
222. }
223. }
224. private void btnCariMouseClicked(java.awt.event.MouseEvent evt) {
225. try{
226. Object [] Baris = {"Kode Anggota","Nama Anggota","Tanggal
Lahir","Alamat","Tanggal Daftar"};
227. tabmode = new DefaultTableModel(null,Baris);
228. tabelDetailAnggota.setModel(tabmode);
229. String sql = "SELECT * FROM detail_anggota WHERE kode_anggota like '%" +
fieldCariData.getText() + "%' "
230. + "or nama_anggota like '%" + fieldCariData.getText() + "%' "
231. + "or tgl_lahir like '%" + fieldCariData.getText() + "%' "
232. + "or alamat like '%" + fieldCariData.getText() + "%' "
233. + "or tgl_daftar like '%" + fieldCariData.getText() + "%' "
234. + "ORDER BY kode_anggota ASC";
235. java.sql.Statement stat = conn.createStatement();
236. ResultSet hasil = stat.executeQuery(sql);
237. while(hasil.next()){
238. String a = hasil.getString("kode_anggota");
239. String b = hasil.getString("nama_anggota");
240. String c = hasil.getString("tgl_lahir");
241. String d = hasil.getString("alamat");
242. String e = hasil.getString("tgl_daftar");
243. String[] data = {a,b,c,d,e};
244. tabmode.addRow(data);
245. }
246. editTampilJumlah();
247. } catch(Exception e){
248. System.out.print(e);
249. }
250. }
251. private void btnCariKeyPressed(java.awt.event.KeyEvent evt) {
252. if(fieldCariData.getText().equals("")){
253. datatable();
254. }
255. }
256. private void fieldCariDataKeyPressed(java.awt.event.KeyEvent evt) {
257. if(fieldCariData.getText().equals("")){
258. datatable();
259. }
260. }
261. private void tabelDetailAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
262. try{
263. int table = tabelDetailAnggota.getSelectedRow();
264. kdData = tabelDetailAnggota.getValueAt(table, 0).toString();
265. Statement s = conn.createStatement();
266. String sql = "SELECT * FROM detail_anggota WHERE kode_anggota =
'"+kdData+"'";
267. ResultSet rs = s.executeQuery(sql);
268. System.out.println(table);
269. if(rs.next()){
270. kodeAnggota.setText(rs.getString("kode_anggota"));
271. fieldNamaAnggota.setText(rs.getString("nama_anggota"));
272. jTanggalLahir.setDate(rs.getDate("tgl_lahir"));
273. fieldAlamat.setText(rs.getString("alamat"));
274. }
275. } catch(Exception e){
276. System.out.println(e.getMessage());
277. }
278. }
279. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
280. // TODO add your handling code here:
281. beranda b = new beranda();
282. b.setVisible(true);
283. this.dispose();
284. }
285. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
286. // TODO add your handling code here:
287. dataBuku db = new dataBuku();
288. db.setVisible(true);
289. this.dispose();
290. }
291. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
292. // TODO add your handling code here:
293. dataPetugas dp = new dataPetugas();
294. dp.setVisible(true);
295. this.dispose();
296. }
297. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
298. // TODO add your handling code here:
299. peminjamanBuku pb = new peminjamanBuku();
300. pb.setVisible(true);
301. this.dispose();
302. }
303. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
304. // TODO add your handling code here:
305. pengembalian pe = new pengembalian();
306. pe.setVisible(true);
307. this.dispose();
308. }
309. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
310. // TODO add your handling code here:
311. this.dispose();
312. }
313. private void btnCetakKartuMouseClicked(java.awt.event.MouseEvent evt) {
314. // TODO add your handling code here:
315. String nt = JOptionPane.showInputDialog("Masukkan Kode Anggota Yang Akan
DiCetak");
316. try{
317. Map<String, Object> parameter = new HashMap <String, Object>();
318. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/CetakKartuAnggota.jrxml");
319. parameter.put("kode", nt);
320. Class.forName("com.mysql.jdbc.Driver");
321. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan","root","");
322. JasperDesign jasperDesign = JRXmlLoader.load(file);
323. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
324. JasperPrint jasperPrint = JasperFillManager.fillReport (jasperReport, parameter,
conn);
325. JasperViewer.viewReport(jasperPrint, false);
326. } catch (Exception e){
327. JOptionPane.showMessageDialog(null, "Data Tidak Dapat
DiCetak!"+e.getMessage(),"Cetak Data",JOptionPane.ERROR_MESSAGE);
328. }
329. }
330. private void btnCetakDataMouseClicked(java.awt.event.MouseEvent evt) {
331. // TODO add your handling code here:
332. try{
333. getKondisiCetak = (String) kondisiCetak.getSelectedItem();
334. if(getKondisiCetak.equals("== Pilih Kondisi ==")){
335. //kasih alert
336. JOptionPane.showMessageDialog(this, "Pilih kondisi terlebih dahulu!!");
337. }else if(getKondisiCetak.equals("Seluruh Data")){
338. //cetak semua
339. Map<String, Object> parameter2 = new HashMap <String, Object>();
340. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/DataAnggota.jrxml");
341. Class.forName("com.mysql.jdbc.Driver");
342. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
343. parameter2.put("kondisi", "%20%");
344. JasperDesign jasperDesign = JRXmlLoader.load(file);
345. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
346. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter2,
conn);
347. JasperViewer.viewReport(jasperPrint, false);
348. }else if(getKondisiCetak.equals("Data Hari Ini")){
349. //data hari ini
350. Map<String, Object> parameter1 = new HashMap <String, Object>();
351. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/DataAnggota.jrxml");
352. Class.forName("com.mysql.jdbc.Driver");
353. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
354. parameter1.put("kondisi", tglHariIni);
355. System.out.println(tglHariIni);
356. JasperDesign jasperDesign = JRXmlLoader.load(file);
357. JasperReport jasperReport
=JasperCompileManager.compileReport(jasperDesign);
358. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter1,
conn);
359. JasperViewer.viewReport(jasperPrint, false);
360. } else if(getKondisiCetak.equals("Kondisi Pencarian")){
361. //data hari ini
362. Map<String, Object> parameter = new HashMap <String, Object>();
363. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/DataAnggota.jrxml");
364. Class.forName("com.mysql.jdbc.Driver");
365. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
366. parameter.put("kondisi", fieldCariData.getText());
367. JasperDesign jasperDesign = JRXmlLoader.load(file);
368. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
369. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter,
conn);
370. JasperViewer.viewReport(jasperPrint, false);
371. }
372. }catch(Exception e){
373.// System.out.println(e);
374. JOptionPane.showMessageDialog(this, "ada kesalahan " + e);
375. }
376. }
377.public static void main(String args[]) {
378. /* Set the Nimbus look and feel */
379. /* Create and display the form */
380. java.awt.EventQueue.invokeLater(new Runnable() {
381. public void run() {
382. new detailAnggota().setVisible(true);
383. }
384. });
385. }
386. // Variables declaration - do not modify
387. private javax.swing.JLabel JumlahAnggota;
388. private javax.swing.JLabel background;
389. private javax.swing.JLabel btnCari;
390. private javax.swing.JLabel btnCetakData;
391. private javax.swing.JLabel btnCetakKartu;
392. private javax.swing.JLabel btnEditData;
393. private javax.swing.JLabel btnHapusData;
394. private javax.swing.JLabel btnMasukkanData;
395. private javax.swing.JTextArea fieldAlamat;
396. private javax.swing.JTextField fieldCariData;
397. private javax.swing.JTextField fieldNamaAnggota;
398. private javax.swing.JScrollPane jScrollPane1;
399. private javax.swing.JScrollPane jScrollPane2;
400. private com.toedter.calendar.JDateChooser jTanggalLahir;
401. private javax.swing.JLabel kodeAnggota;
402. private javax.swing.JComboBox<String> kondisiCetak;
403. private javax.swing.JLabel menuBeranda;
404. private javax.swing.JLabel menuDataAnggota;
405. private javax.swing.JLabel menuDataBuku;
406. private javax.swing.JLabel menuDataPetugas;
407. private javax.swing.JLabel menuKeluarAkun;
408. private javax.swing.JLabel menuPeminjaman;
409. private javax.swing.JLabel menuPengembalian;
410. private javax.swing.JTable tabelDetailAnggota;
411. // End of variables declaration
412.}

E. Form Kategori Buku


1. package Program;
2. //import com.placeholder.PlaceHolder;
3. import com.placeholder.PlaceHolder;
4. import java.awt.Color;
5. import java.awt.Font;
6. import java.io.File;
7. import java.io.PrintStream;
8. import java.sql.*;
9. import java.text.SimpleDateFormat;
10. import java.util.HashMap;
11. import java.util.Map;
12. import javax.swing.JOptionPane;
13. import javax.swing.table.DefaultTableModel;
14. import koneksi.koneksi;
15. import net.sf.jasperreports.engine.JasperCompileManager;
16. import net.sf.jasperreports.engine.JasperFillManager;
17. import net.sf.jasperreports.engine.JasperPrint;
18. import net.sf.jasperreports.engine.JasperReport;
19. import net.sf.jasperreports.engine.design.JasperDesign;
20. import net.sf.jasperreports.engine.xml.JRXmlLoader;
21. import net.sf.jasperreports.view.JasperViewer;
22. public class kategoriBuku extends javax.swing.JFrame {
23. private Connection conn = new koneksi().getkoneksi();
24. private DefaultTableModel tabmode;
25. private String kdData, getCombo, getKondisiCetak;
26. public String tglHariIni;
27. /**
28. * Creates new form kategoriBuku
29. */
30. public kategoriBuku() {
31. initComponents();
32. fieldNamaKategori.requestFocus();
33. PlaceHolder holder1 = new PlaceHolder(fieldCariData, "masukkan kata kunci");
34. //menjalankan fungsi pemanggilan isi table
35. datatable();
36. tanggalHariIni();
37. this.setLocationRelativeTo(null);
38. //atur table
39. table_kategori_buku.getTableHeader().setFont(new Font("Poppins Light",
Font.PLAIN, 13));
40. table_kategori_buku.getTableHeader().setOpaque(false);
41. table_kategori_buku.getTableHeader().setBackground(new Color(206, 18, 18));
42. table_kategori_buku.getTableHeader().setForeground(new Color(255, 255, 255));
43. }
44. private void resetInput(){
45. fieldNamaKategori.setText("");
46. fieldKodeAwal.setText("");
47. jenjangKelas.setSelectedIndex(0);
48. fieldJumlahAwal.setText("");
49. fieldJumlahDipinjam.setText("");
50. fieldSisaBuku.setText("");
51. }
52. private void tanggalHariIni(){
53. try{
54. java.util.Date ys = new java.util.Date(); // membuat oject ys dari class Date
55. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
56. tglHariIni = s.format(ys);
57. }catch(Exception e){
58. System.out.println(e.getMessage());
59. }
60. }
61. protected void datatable(){
62. try{
63. Object [] Baris = {"Kode Kategori","Nama Kategori","Kode Awal", "Jenjang
Kelas","Jumlah Awal","Jumlah Dipinjam","Sisa Buku", "Tanggal Input"};
64. tabmode = new DefaultTableModel(null,Baris);
65. table_kategori_buku.setModel(tabmode);
66. String sql = "SELECT * FROM kategori_buku ORDER BY kode_kategori
DESC";
67. java.sql.Statement stat = conn.createStatement();
68. ResultSet hasil = stat.executeQuery(sql);
69. while(hasil.next()){
70. String a = hasil.getString("kode_kategori");
71. String b = hasil.getString("nama_kategori");
72. String c = hasil.getString("kode_awal_kategori");
73. String d = hasil.getString("jenjang_kelas");
74. String e = hasil.getString("jumlah_awal");
75. String f = hasil.getString("jumlah_dipinjam");
76. String g = hasil.getString("sisa_buku");
77. String h = hasil.getString("tanggal_input");
78. String[] data = {a,b,c,d,e,f, g, h};
79. tabmode.addRow(data);
80. }
81. tampilJumlah();
82. } catch(Exception e){
83. System.out.print(e);
84. }
85. }
86. private void tampilJumlah(){
87. try{
88. Statement s = conn.createStatement();
89. String sql = "SELECT COUNT(nama_kategori) FROM kategori_buku";
90. ResultSet rs = s.executeQuery(sql);
91. if(rs.next()){
92. jumlah_kategori_buku.setText(rs.getString("COUNT(nama_kategori)"));
93. }
94. } catch(Exception e){
95. System.out.println(e.getMessage());
96. }
97. }
98. private void editTampilJumlah(){
99. try{
100. Statement s = conn.createStatement();
101. String sql = "SELECT COUNT(nama_kategori) FROM kategori_buku WHERE
nama_kategori like '%"
102. + fieldCariData.getText().toLowerCase() + "%'"
103. + "or jenjang_kelas like '%" + fieldCariData.getText().toLowerCase() +
"%'"
104. + "or kode_kategori like '%" + fieldCariData.getText().toLowerCase() +
"%'"
105. + "or kode_awal_kategori like '%" +
fieldCariData.getText().toLowerCase() + "%' ORDER BY jenjang_kelas ASC";
106. ResultSet rs = s.executeQuery(sql);
107. if(rs.next()){
108. jumlah_kategori_buku.setText(rs.getString("COUNT(nama_kategori)"));
109. }
110. } catch(Exception e){
111. System.out.println(e.getMessage());
112. }
113. }
114. private void editData(){
115. try{
116. if(jenjangKelas.getSelectedItem().toString().equals("semua")){
117. getCombo = "S";
118. }else{
119. getCombo = (String) jenjangKelas.getSelectedItem();
120. }
121. String query_update = "UPDATE kategori_buku SET kode_kategori = ?,
nama_kategori = ?, kode_awal_kategori = ?, jenjang_kelas = ?, jumlah_awal = ?,
jumlah_dipinjam = ?, sisa_buku = ? "
122. + "WHERE kode_kategori = '" + kdData +"'";
123. PreparedStatement stat = conn.prepareStatement(query_update);
124. String kodeAwalKategori = fieldKodeAwal.getText().toUpperCase() + getCombo;
125. stat.setString(1, kodeAwalKategori);
126. stat.setString(2, fieldNamaKategori.getText().toLowerCase());
127. stat.setString(3, fieldKodeAwal.getText().toUpperCase());
128. stat.setString(4, getCombo);
129. stat.setInt(5, Integer.valueOf(fieldJumlahAwal.getText()));
130. stat.setInt(6, Integer.valueOf(fieldJumlahDipinjam.getText()));
131. stat.setInt(7, Integer.valueOf(fieldSisaBuku.getText()));
132. stat.executeUpdate();
133. JOptionPane.showMessageDialog(null, "Data Berhasil Di Ubah");
134. resetInput();
135. datatable();
136. }catch(Exception e){
137. System.out.println(e.getMessage());
138. }
139. }
140.private void btnMasukkanDataMouseClicked(java.awt.event.MouseEvent evt) {
141. try {
142. if(jenjangKelas.getSelectedItem().toString() == "semua"){
143. getCombo = "S";
144. }else{
145. getCombo = (String) jenjangKelas.getSelectedItem();
146. }
147. if(fieldKodeAwal.getText().length() > 3 || fieldKodeAwal.getText().length() < 3){
148. //kondisi pengecekkan jumlah kode awal
149. JOptionPane.showMessageDialog(null, "Kode awal kategori harus berjumlah
tiga!");
150. }else if(getCombo.equals("== Pilih Kelas ==")){
151. //kondisi pengecekkan kelas
152. JOptionPane.showMessageDialog(null, "Pilih kelas dahulu!");
153. }else if(fieldNamaKategori.getText().equals("") ||
fieldKodeAwal.getText().equals("") || fieldJumlahAwal.getText().equals("") ||
fieldJumlahDipinjam.getText().equals("") || fieldSisaBuku.getText().equals("")){
154. //kondisi pengecekkan jika terdapat form kosong
155. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
156. }else{
157. //kondisi pengecekkan apakah kode kategori sudah digunakan atau belum
158. //ambil data kode awal kategori dan jenjang kelas yang diinputkan
159. String kodeAwalKelas = fieldKodeAwal.getText() + getCombo;
160. //select kode kategori
161. Statement s = conn.createStatement();
162. String query_select = "SELECT kode_kategori FROM kategori_buku WHERE
kode_kategori = '"+ kodeAwalKelas +"'";
163. ResultSet rs = s.executeQuery(query_select);
164. if(rs.next()){
165. //jika kode awal kategori sudah digunakan
166. JOptionPane.showMessageDialog(null, "Kode awal kategori dan jenjang
kelas sudah dibuat!");
167. }else{
168. //jika kode awal kategori belum digunakan maka masukkan data ke db
169. String sql = "INSERT INTO kategori_buku VALUES (?,?,?,?,?,?,?, ?)";
170. PreparedStatement stat = conn.prepareStatement(sql);
171. String kodeAwalKategori = fieldKodeAwal.getText().toUpperCase() +
getCombo;
172. stat.setString(1, kodeAwalKategori);
173. stat.setString(2, fieldNamaKategori.getText().toLowerCase());
174. stat.setString(3, fieldKodeAwal.getText().toUpperCase());
175. stat.setString(4, getCombo);
176. stat.setInt(5, Integer.valueOf(fieldJumlahAwal.getText()));
177. stat.setInt(6, Integer.valueOf(fieldJumlahDipinjam.getText()));
178. stat.setInt(7, Integer.valueOf(fieldSisaBuku.getText()));
179. stat.setString(8, tglHariIni);
180. stat.executeUpdate();
181. JOptionPane.showMessageDialog(null, "Data Berhasil Di Tambahkan");
182. resetInput();
183. datatable();
184. }
185. }
186. } catch(SQLException e){
187. JOptionPane.showMessageDialog(this, "Data Gagal Di Tambahkan" + e);
188. }
189. }
190. private void btnCariMouseClicked(java.awt.event.MouseEvent evt) {
191. try{
192. Object [] Baris = {"Kode Kategori","Nama Kategori","Jenjang Kelas","Jumlah
Awal","Jumlah Dipinjam","Sisa Buku"};
193. tabmode = new DefaultTableModel(null,Baris);
194. table_kategori_buku.setModel(tabmode)
195. String sql = "SELECT * FROM kategori_buku WHERE kode_kategori like '%" +
fieldCariData.getText() + "%' "
196. + "or nama_kategori like '%" + fieldCariData.getText() + "%' "
197. + "or jenjang_kelas like '%" + fieldCariData.getText() + "%' "
198. + "or kode_awal_kategori like '%" + fieldCariData.getText() + "%' "
199. + "or tanggal_input like '%" + fieldCariData.getText() + "%' "
200. + "ORDER BY jenjang_kelas ASC";
201. java.sql.Statement stat = conn.createStatement();
202. ResultSet hasil = stat.executeQuery(sql);
203. while(hasil.next()){
204. String a = hasil.getString("kode_kategori");
205. String b = hasil.getString("nama_kategori");
206. String c = hasil.getString("jenjang_kelas");
207. String d = hasil.getString("jumlah_awal");
208. String e = hasil.getString("jumlah_dipinjam");
209. String f = hasil.getString("sisa_buku");
210. String[] data = {a,b,c,d,e,f};
211. tabmode.addRow(data);
212. }
213. editTampilJumlah();
214. } catch(Exception e){
215. System.out.print(e);
216. }
217. }
218. private void btnEditDataMouseClicked(java.awt.event.MouseEvent evt) {
219. try {
220. if(jenjangKelas.getSelectedItem().toString().equals("semua")){
221. getCombo = "S";
222. }else{
223. getCombo = (String) jenjangKelas.getSelectedItem();
224. }
225. if(fieldKodeAwal.getText().length() > 3 || fieldKodeAwal.getText().length() < 3){
226. //kondisi pengecekkan jumlah kode awal
227. JOptionPane.showMessageDialog(null, "Kode awal kategori harus berjumlah
tiga!");
228. }else if(getCombo.equals("== Pilih Kelas ==")){
229. //kondisi pengecekkan kelas
230. JOptionPane.showMessageDialog(null, "Pilih kelas dahulu!");
231. }else if(fieldNamaKategori.getText().equals("") ||
fieldKodeAwal.getText().equals("") || fieldJumlahAwal.getText().equals("") ||
fieldJumlahDipinjam.getText().equals("") || fieldSisaBuku.getText().equals("")){
232. //kondisi pengecekkan jika terdapat form kosong
233. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
234. }else{
235. //pengecekkan kode kategori
236. String kodeAwalKategori = fieldKodeAwal.getText().toUpperCase() +
getCombo;
237. if(kodeAwalKategori.equals(kdData)){
238. //jika kode kategori ditentukan sama seperti sebelumnya, maka lolos untuk
edit data
239. editData();
240. }else{
241. //jika kode kategori terdapat perbedaan dari yang sebelumnya maka
242. Statement s = conn.createStatement();
243. String query_select = "SELECT kode_kategori FROM kategori_buku
WHERE kode_kategori = '"+kodeAwalKategori+"'";
244. ResultSet rs = s.executeQuery(query_select);
245. if(rs.next()){
246. //jika kode awal kategori sudah digunakan
247. JOptionPane.showMessageDialog(null, "Kode awal kategori dan jenjang
kelas sudah dibuat!");
248. }else{
249. editData();
250. }
251. }
252. }
253. } catch(SQLException e){
254. JOptionPane.showMessageDialog(rootPane, "Gagal Ubah Data");
255. }
256. }
257. private void table_kategori_bukuMouseClicked(java.awt.event.MouseEvent evt) {
258. try{
259. int table = table_kategori_buku.getSelectedRow();
260. kdData = table_kategori_buku.getValueAt(table, 0).toString();
261.
262. Statement s = conn.createStatement();
263. String sql = "SELECT * FROM kategori_buku WHERE kode_kategori =
'"+kdData+"'";
264. ResultSet rs = s.executeQuery(sql);
265. System.out.println(table);
266. if(rs.next()){
267. fieldNamaKategori.setText(rs.getString("nama_kategori"));
268. fieldKodeAwal.setText(rs.getString("kode_awal_kategori"));
269. if(rs.getString("jenjang_kelas").equals("S")){
270. jenjangKelas.setSelectedItem("semua");
271. }else{
272. jenjangKelas.setSelectedItem(rs.getString("jenjang_kelas"));
273. }
274. fieldJumlahAwal.setText(rs.getString("jumlah_awal"));
275. fieldJumlahDipinjam.setText(rs.getString("jumlah_dipinjam"));
276. fieldSisaBuku.setText(rs.getString("sisa_buku"));
277. }
278. } catch(Exception e){
279. System.out.println(e.getMessage());
280. }
281. }
282. private void btnHapusDataMouseClicked(java.awt.event.MouseEvent evt) {
283. try{
284. String sql = "DELETE FROM kategori_buku WHERE kode_kategori ='" + kdData
+ "'";
285. PreparedStatement stat = conn.prepareStatement(sql);
286. stat.executeUpdate();
287. JOptionPane.showMessageDialog(null, "Data Berhasil DiHapus");
288. resetInput();
289. datatable();
290. }catch(SQLException e){
291. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
292. }
293. }
294. private void fieldCariDataKeyPressed(java.awt.event.KeyEvent evt) {
295. if(fieldCariData.getText().equals("")){
296. datatable();
297. }
298. }
299. private void fieldCariDataInputMethodTextChanged(java.awt.event.InputMethodEvent
evt) {
300. if(fieldCariData.getText().equals("")){
301. datatable();
302. }
303. }
304. private void fieldCariDataMouseExited(java.awt.event.MouseEvent evt) {
305. if(fieldCariData.getText().equals("")){
306. datatable();
307. }
308. }
309. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
310. // TODO add your handling code here:
311. beranda b = new beranda();
312. b.setVisible(true);
313. this.dispose();
314. }
315. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
316. // TODO add your handling code here:
317. detailAnggota da = new detailAnggota();
318. da.setVisible(true);
319. this.dispose();
320. }
321. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
322. // TODO add your handling code here:
323. dataPetugas dp = new dataPetugas();
324. dp.setVisible(true);
325. this.dispose();
326. }
327. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
328. // TODO add your handling code here:
329. peminjamanBuku pb = new peminjamanBuku();
330. pb.setVisible(true);
331. this.dispose();
332. }
333. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
334. // TODO add your handling code here:
335. pengembalian pe = new pengembalian();
336. pe.setVisible(true);
337. this.dispose();
338. }
339. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
340. // TODO add your handling code here:
341. this.dispose();
342. }
343. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
344. // TODO add your handling code here:
345. dataBuku db = new dataBuku();
346. db.setVisible(true);
347. this.dispose();
348. }
349. private void btnCetakDataMouseClicked(java.awt.event.MouseEvent evt) {
350. try{
351. getKondisiCetak = (String) jComboBox1.getSelectedItem();
352. if(getKondisiCetak.equals("== Pilih Kondisi ==")){
353. //kasih alert
354. JOptionPane.showMessageDialog(this, "Pilih kondisi terlebih dahulu!!");
355. }else if(getKondisiCetak.equals("Seluruh Data")){
356. //cetak semua
357. Map<String, Object> parameter2 = new HashMap <String, Object>();
358. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/kategoriBuku.jrxml");
359. Class.forName("com.mysql.jdbc.Driver");
360. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
361. parameter2.put("kondisi", "%20%");
362. JasperDesign jasperDesign = JRXmlLoader.load(file);
363. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
364. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter2,
conn);
365. JasperViewer.viewReport(jasperPrint, false);
366. }else if(getKondisiCetak.equals("Data Hari Ini")){
367. //data hari ini
368. Map<String, Object> parameter1 = new HashMap <String, Object>();
369. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/kategoriBuku.jrxml");
370. Class.forName("com.mysql.jdbc.Driver");
371. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
372. parameter1.put("kondisi", tglHariIni);
373. JasperDesign jasperDesign = JRXmlLoader.load(file);
374. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
375. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter1,
conn);
376. JasperViewer.viewReport(jasperPrint, false);
377. } else if(getKondisiCetak.equals("Kondisi Pencarian")){
378. //data hari ini
379. Map<String, Object> parameter = new HashMap <String, Object>();
380. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/kategoriBuku.jrxml");
381. Class.forName("com.mysql.jdbc.Driver");
382. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
383. parameter.put("kondisi", fieldCariData.getText());
384. JasperDesign jasperDesign = JRXmlLoader.load(file);
385. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
386. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter,
conn);
387. JasperViewer.viewReport(jasperPrint, false);
388. }
389. }catch(Exception e){
390.// System.out.println(e);
391. JOptionPane.showMessageDialog(this, "ada kesalahan " + e);
392. }
393. }
394. /**
395. * @param args the command line arguments
396. */
397. public static void main(String args[]) {
398.java.awt.EventQueue.invokeLater(new Runnable() {
399. public void run() {
400. new kategoriBuku().setVisible(true);
401. }
402. });
403. }
404. // Variables declaration - do not modify
405. private javax.swing.JLabel background;
406. private javax.swing.JLabel btnCari;
407. private javax.swing.JLabel btnCetakData;
408. private javax.swing.JLabel btnEditData;
409. private javax.swing.JLabel btnHapusData;
410. private javax.swing.JLabel btnMasukkanData;
411. private javax.swing.JTextField fieldCariData;
412. private javax.swing.JTextField fieldJumlahAwal;
413. private javax.swing.JTextField fieldJumlahDipinjam;
414. private javax.swing.JTextField fieldKodeAwal;
415. private javax.swing.JTextField fieldNamaKategori;
416. private javax.swing.JTextField fieldSisaBuku;
417. private javax.swing.JComboBox<String> jComboBox1;
418. private javax.swing.JScrollPane jScrollPane1;
419. private javax.swing.JComboBox<String> jenjangKelas;
420. private javax.swing.JLabel jumlah_kategori_buku;
421. private javax.swing.JLabel menuBeranda;
422. private javax.swing.JLabel menuDataAnggota;
423. private javax.swing.JLabel menuDataBuku;
424. private javax.swing.JLabel menuDataPetugas;
425. private javax.swing.JLabel menuKeluarAkun;
426. private javax.swing.JLabel menuPeminjaman;
427. private javax.swing.JLabel menuPengembalian;
428. private javax.swing.JTable table_kategori_buku;
429. // End of variables declaration
430.}

F. Form Detail Buku


1. package Program;
2. //import com.placeholder.PlaceHolder;
3. import com.placeholder.PlaceHolder;
4. import java.awt.Color;
5. import java.awt.Font;
6. import java.io.File;
7. import java.sql.Connection;
8. import java.sql.DriverManager;
9. import java.sql.PreparedStatement;
10. import java.sql.ResultSet;
11. import java.sql.SQLException;
12. import java.sql.Statement;
13. import java.text.SimpleDateFormat;
14. import java.util.Date;
15. import java.util.HashMap;
16. import java.util.Map;
17. import java.util.logging.Level;
18. import java.util.logging.Logger;
19. import javax.swing.JOptionPane;
20. import javax.swing.table.DefaultTableModel;
21. import koneksi.koneksi;
22. import net.sf.jasperreports.engine.JasperCompileManager;
23. import net.sf.jasperreports.engine.JasperFillManager;
24. import net.sf.jasperreports.engine.JasperPrint;
25. import net.sf.jasperreports.engine.JasperReport;
26. import net.sf.jasperreports.engine.design.JasperDesign;
27. import net.sf.jasperreports.engine.xml.JRXmlLoader;
28. import net.sf.jasperreports.view.JasperViewer;
29. public class detailBuku extends javax.swing.JFrame {
30. Connection conn = new koneksi().getkoneksi();
31. private String kdkategori, kdBuku = "", getCombo, getKondisiCetak;
32. private DefaultTableModel tabmode;
33. SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
34. String getNamaKategori;
35. String getJenjangKelas;
36. public String tgl, tglHariIni;
37. public detailBuku() {
38. initComponents();
39. fieldJudulBuku.requestFocus();
40. //membuat placeholder
41. PlaceHolder holder1 = new PlaceHolder(fieldCariData, "masukkan kata kunci");
42. //isi data ke select option nama kategori dan jenjang kelas
43. showNamaKelaskategori();
44. //menjalankan fungsi pemanggilan isi table
45. datatable();
46. this.setLocationRelativeTo(null);
47. tanggalHariIni();
48. //atur table
49. table_detail_buku.getTableHeader().setFont(new Font("Poppins Light", Font.PLAIN,
13));
50. table_detail_buku.getTableHeader().setOpaque(false);
51. table_detail_buku.getTableHeader().setBackground(new Color(206, 18, 18));
52. table_detail_buku.getTableHeader().setForeground(new Color(255, 255, 255));
53. }
54. private void resetInput(){
55. selectNamaKategori.setSelectedIndex(0);
56. selectJenjangKelas.setSelectedIndex(0);
57. fieldJudulBuku.setText("");
58. fieldPenulis.setText("");
59. fieldPenerbit.setText("");
60. selectStatusBuku.setSelectedIndex(0);
61. }
62. private void tanggalHariIni(){
63. try{
64. Date ys = new Date(); // membuat oject ys dari class Date
65. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
66. tglHariIni = s.format(ys);
67. }catch(Exception e){
68. System.out.println(e.getMessage());
69. }
70. }
71. private void resetKodeBuku(){
72. try{
73. getNamaKategori = (String) selectNamaKategori.getSelectedItem();
74. getJenjangKelas = (String) selectJenjangKelas.getSelectedItem();
75. String getStatusBuku = (String) selectStatusBuku.getSelectedItem();
76. if(getNamaKategori.equals("pilih nama kat") && getJenjangKelas.equals("pilih
kelas")){
77. labelKodeBuku.setText("xxxxxx");
78. }else if(getNamaKategori.equals("pilih nama kat") || !
getJenjangKelas.equals("pilih kelas")){
79. labelKodeBuku.setText("Kategori Belum Dibuat");
80. }else if(!getNamaKategori.equals("pilih nama kat") ||
getJenjangKelas.equals("pilih kelas")){
81. labelKodeBuku.setText("Kategori Belum Dibuat");
82. }else{
83. labelKodeBuku.setText("xxxxxx");
84. }
85. }catch(Exception e){
86. System.out.println(e);
87. }
88. }
89. protected void datatable(){
90. try{
91. Object [] Baris = {"Kode Buku", "Kode Kategori", "Judul Buku",
"Penulis","Penerbit","Status Buku", "Tanggal Input"};
92. tabmode = new DefaultTableModel(null,Baris);
93. table_detail_buku.setModel(tabmode);
94.
95. String sql = "SELECT * FROM detail_buku ORDER BY tanggal_input DESC";
96. java.sql.Statement stat = conn.createStatement();
97. ResultSet hasil = stat.executeQuery(sql);
98. while(hasil.next()){
99. String a = hasil.getString("kode_buku");
100. String b = hasil.getString("kode_kategori");
101. String c = hasil.getString("judul_buku");
102. String d = hasil.getString("penulis");
103. String e = hasil.getString("penerbit");
104. String f = hasil.getString("status_buku");
105. String g = hasil.getString("tanggal_input");
106. String[] data = {a,b,c,d,e,f, g};
107. tabmode.addRow(data);
108. }
109. tampilJumlah();
110. } catch(Exception e){
111. System.out.print(e);
112. }
113. }
114. private void tampilJumlah(){
115. try{
116. Statement s = conn.createStatement();
117. String sql = "SELECT COUNT(judul_buku) FROM detail_buku";
118. ResultSet rs = s.executeQuery(sql);
119.
120. if(rs.next()){
121. jumlahDetailBuku.setText(rs.getString("COUNT(judul_buku)"));
122. }
123. } catch(Exception e){
124. System.out.println(e.getMessage());
125. }
126. }
127. private void editTampilJumlah(){
128. try{
129. Statement s = conn.createStatement();
130. String sql = "SELECT COUNT(kode_buku) FROM detail_buku WHERE
kode_buku like '%" + fieldCariData.getText() + "%' "
131. + "or kode_kategori like '%" + fieldCariData.getText() + "%' "
132. + "or judul_buku like '%" + fieldCariData.getText() + "%' "
133. + "or penulis like '%" + fieldCariData.getText() + "%' "
134. + "or penerbit like '%" + fieldCariData.getText() + "%' "
135. + "or status_buku like '%" + fieldCariData.getText() + "%' "
136. + "ORDER BY kode_buku DESC";
137. ResultSet rs = s.executeQuery(sql);
138. if(rs.next()){
139. jumlahDetailBuku.setText(rs.getString("COUNT(kode_buku)"));
140. }
141. } catch(Exception e){
142. System.out.println(e.getMessage());
143. }
144. }
145. private void showNamaKelaskategori(){
146. try{
147. //select data nama kategori lalu menampilkan di select option
148. Statement stm_nama_kategri = conn.createStatement();
149. String select_nama_kategori = "SELECT DISTINCT nama_kategori FROM
kategori_buku ORDER BY nama_kategori ASC";
150. ResultSet rs_nama_kategori =
stm_nama_kategri.executeQuery(select_nama_kategori);
151. while(rs_nama_kategori.next()){
152. selectNamaKategori.addItem(rs_nama_kategori.getString("nama_kategori"));
153. }
154. //select data jenjang kelas lalu menampilkan di select option
155. Statement stm_jenjang_kelas = conn.createStatement();
156. String select_jenjang_kelas = "SELECT DISTINCT jenjang_kelas FROM
kategori_buku ORDER BY jenjang_kelas ASC";
157. ResultSet rs_jenjang_kelas =
stm_jenjang_kelas.executeQuery(select_jenjang_kelas);
158.
159. while(rs_jenjang_kelas.next()){
160. if(rs_jenjang_kelas.getString("jenjang_kelas").equals("S")){
161. selectJenjangKelas.addItem("semua");
162. }else{
163. selectJenjangKelas.addItem(rs_jenjang_kelas.getString("jenjang_kelas"));
164. }
165. }
166. }catch(Exception e){
167. System.out.println(e);
168. }
169. }
170. private void findKodeKategori(){
171. try{
172. //ambil data dari select option
173. getNamaKategori = (String) selectNamaKategori.getSelectedItem();
174. getJenjangKelas = (String) selectJenjangKelas.getSelectedItem();
175.
176. if(getJenjangKelas.equals("semua")){
177. getJenjangKelas = "S";
178. }else{
179. getJenjangKelas = (String) selectJenjangKelas.getSelectedItem();
180. }
181. //cari kode kategori di table kategori buku berdasarkan data dari select option
182. Statement stm = conn.createStatement();
183. String query_select = "SELECT kode_kategori from kategori_buku where
nama_kategori = '"+ getNamaKategori +"' AND jenjang_kelas = '"+ getJenjangKelas +"'";
184. ResultSet rs = stm.executeQuery(query_select);
185. if(rs.next()){
186. //klo kategori buku sudah dibuat sebelumnya, maka masukkan data ke var lalu
panggil method
187. kdkategori = rs.getString("kode_kategori");
188. makeKodeBuku();
189. }else{
190. //jika belum maka tampilkan dilabel dengan tulisan
191.// labelKodeBuku.setText("Kategori Belum Dibuat");
192. resetKodeBuku();
193. }
194. }catch(Exception e){
195. System.out.println(e);
196. }
197. }
198. private void makeKodeBuku(){
199. try{
200. Statement stm = conn.createStatement();
201. ResultSet rs_select_kdData = stm.executeQuery("SELECT kode_buku,
kode_kategori FROM detail_buku WHERE kode_buku = '" + kdBuku + "'");
202. //untuk fungsi edit agar kode buku nilainya tidak naik
203. //jika kode buku sudah terdapat didb dan
204. //jika kode kategori yang terdapat di select option sama seperti yng diambil di db
205. //maka cetak kode yg dikasih dari tabel
206. if(rs_select_kdData.next() &&
rs_select_kdData.getString("kode_kategori").equals(kdkategori)){
207. labelKodeBuku.setText(kdBuku);
208. }else{
209. //untuk input data baru
210. //dan juga untuk fungsi edit jika kode kategori yang terdapat di select option
berbeda seperti yng diambil di db
211. //maka ubah kode buku
212. ResultSet rs = stm.executeQuery("SELECT kode_buku FROM detail_buku
WHERE kode_kategori = '" + kdkategori + "' ORDER BY kode_buku DESC");
213.
214. if(rs.next()){
215. String noKode = rs.getString("kode_buku").substring(5);
216. String an = "" + (Integer.parseInt(noKode) + 1);
217. String nol = "";
218. if(an.length() == 1){
219. nol = "000";
220. }else if(an.length() == 2){
221. nol = "00";
222. }else if(an.length() == 3){
223. nol = "0";
224. }else if(an.length() == 4){
225. nol = "";
226. }
227. labelKodeBuku.setText(kdkategori + "-" + nol + an);
228. }else{
229. //jika belum terdapat kode buku
230. labelKodeBuku.setText(kdkategori + "-" + "0001");
231. }
232. }
233. }catch(Exception e){
234. System.out.println(e.getMessage());
235. }
236. }
237.private void selectNamaKategoriActionPerformed(java.awt.event.ActionEvent evt) {
238. findKodeKategori();
239. }
240. private void selectJenjangKelasActionPerformed(java.awt.event.ActionEvent evt) {
241. findKodeKategori();
242. }
243. private void btnMasukkanDataMouseClicked(java.awt.event.MouseEvent evt) {
244. try {
245. String getStatusBuku = (String) selectStatusBuku.getSelectedItem();
246. getNamaKategori = (String) selectNamaKategori.getSelectedItem();
247. getJenjangKelas = (String) selectJenjangKelas.getSelectedItem();
248. if(selectJenjangKelas.getSelectedItem().toString().equals("semua")){
249. getCombo = "S";
250. }else{
251. getCombo = (String) selectJenjangKelas.getSelectedItem();
252. }
253. if(!kdBuku.equals("")){
254. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
255. }else if(labelKodeBuku.getText().equals("xxxxxx") ||
labelKodeBuku.getText().equals("Kategori Belum Dibuat")){
256. //kondisi jika kodebuku masih nilai default
257. JOptionPane.showMessageDialog(null, "Atur kode buku terlebih dahulu!");
258. }else if(getNamaKategori.equals("= pilih nama kat =") ||
getJenjangKelas.equals("= pilih kelas =")){
259. //kondisi pengecekkan nama kategori dan kelas
260. JOptionPane.showMessageDialog(null, "Tentukan nama kategori dan jenjang
kelas dahulu!");
261. }else if(fieldJudulBuku.getText().equals("") || fieldPenulis.getText().equals("") ||
fieldPenerbit.getText().equals("")){
262. //kondisi pengecekkan jika terdapat form kosong
263. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
264. }else if(getStatusBuku.equals("= pilih status =")){
265. //kondisi pengecekkan nama kategori dan kelas
266. JOptionPane.showMessageDialog(null, "Tentukan status buku dahulu!");
267. }else{
268. String sql = "INSERT INTO detail_buku VALUES (?,?,?,?,?,?,?)";
269. PreparedStatement stat = conn.prepareStatement(sql);
270. stat.setString(1, labelKodeBuku.getText());
271. stat.setString(2, kdkategori);
272. stat.setString(3, fieldJudulBuku.getText());
273. stat.setString(4, fieldPenulis.getText());
274. stat.setString(5, fieldPenerbit.getText());
275. stat.setString(6, getStatusBuku);
276. stat.setString(7, tglHariIni);
277. stat.executeUpdate();
278.// JOptionPane.showMessageDialog(null, "Data Berhasil Di Tambahkan");
279. kdBuku = "";
280. resetKodeBuku();
281. datatable();
282. }
283. } catch(SQLException e){
284. JOptionPane.showMessageDialog(this, "Data Gagal Di Tambahkan" + e);
285. }
286. }
287. private void table_detail_bukuMouseClicked(java.awt.event.MouseEvent evt) {
288. try{
289. int table = table_detail_buku.getSelectedRow();
290. kdBuku = table_detail_buku.getValueAt(table, 0).toString();
291. Statement s = conn.createStatement();
292. String sql = "SELECT detail_buku.kode_buku, kategori_buku.nama_kategori,
kategori_buku.jenjang_kelas, detail_buku.judul_buku, "
293. + "detail_buku.penulis, detail_buku.penerbit, detail_buku.status_buku "
294. + "FROM kategori_buku, detail_buku WHERE kategori_buku.kode_kategori
= detail_buku.kode_kategori AND "
295. + "detail_buku.kode_buku = '"+kdBuku+"'";
296. ResultSet rs = s.executeQuery(sql);
297. if(rs.next()){
298. labelKodeBuku.setText(rs.getString("detail_buku.kode_buku"));
299.selectNamaKategori.setSelectedItem(rs.getString("kategori_buku.nama_kategori"));
300. if(rs.getString("kategori_buku.jenjang_kelas").equals("S")){
301. selectJenjangKelas.setSelectedItem("semua");
302. }else{
303.selectJenjangKelas.setSelectedItem(rs.getString("kategori_buku.jenjang_kelas"));
304. }
305. fieldJudulBuku.setText(rs.getString("detail_buku.judul_buku"));
306. fieldPenulis.setText(rs.getString("detail_buku.penulis"));
307. fieldPenerbit.setText(rs.getString("detail_buku.penerbit"));
308. selectStatusBuku.setSelectedItem(rs.getString("detail_buku.status_buku"));
309. }
310. } catch(Exception e){
311. System.out.println(e.getMessage());
312. }
313. }
314. private void btnHapusDataMouseClicked(java.awt.event.MouseEvent evt) {
315. try{
316. String sql = "DELETE FROM detail_buku WHERE kode_buku ='" + kdBuku +
"'";
317. PreparedStatement stat = conn.prepareStatement(sql);
318. stat.executeUpdate();
319. JOptionPane.showMessageDialog(null, "Data Berhasil DiHapus");
320. resetKodeBuku();
321. resetInput();
322. datatable();
323. }catch(SQLException e){
324. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
325. }
326. }
327. private void btnEditDataMouseClicked(java.awt.event.MouseEvent evt) {
328. try {
329. String getStatusBuku = (String) selectStatusBuku.getSelectedItem();
330. getNamaKategori = (String) selectNamaKategori.getSelectedItem();
331. getJenjangKelas = (String) selectJenjangKelas.getSelectedItem();
332. if(kdBuku.equals("")){
333. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi masukkan
data!");
334. }else if(labelKodeBuku.getText().equals("xxxxxx") ||
labelKodeBuku.getText().equals("Kategori Belum Dibuat")){
335. //kondisi jika kodebuku masih nilai default
336. JOptionPane.showMessageDialog(null, "Atur kode buku terlebih dahulu!");
337. }else if(getNamaKategori.equals("= pilih nama kat =") ||
getJenjangKelas.equals("= pilih kelas =")){
338. //kondisi pengecekkan nama kategori dan kelas
339. JOptionPane.showMessageDialog(null, "Tentukan nama kategori dan jenjang
kelas dahulu!");
340. }else if(fieldJudulBuku.getText().equals("") || fieldPenulis.getText().equals("") ||
fieldPenerbit.getText().equals("")){
341. //kondisi pengecekkan jika terdapat form kosong
342. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
343. }else if(getStatusBuku.equals("= pilih status =")){
344. //kondisi pengecekkan nama kategori dan kelas
345. JOptionPane.showMessageDialog(null, "Tentukan status buku dahulu!");
346. }else{
347. String query_update = "UPDATE detail_buku SET kode_buku = ?,
kode_kategori = ?, judul_buku = ?, penulis = ?, penerbit = ?, status_buku = ? "
348. + "WHERE kode_buku = '" + kdBuku +"'";
349. PreparedStatement stat = conn.prepareStatement(query_update);
350. stat.setString(1, labelKodeBuku.getText());
351. stat.setString(2, kdkategori);
352. stat.setString(3, fieldJudulBuku.getText());
353. stat.setString(4, fieldPenulis.getText());
354. stat.setString(5, fieldPenerbit.getText());
355. stat.setString(6, getStatusBuku);
356. stat.executeUpdate();
357. JOptionPane.showMessageDialog(null, "Data Berhasil Di Ubah");
358. resetKodeBuku();
359. resetInput();
360. datatable();
361. }
362. }catch(Exception e){
363. JOptionPane.showMessageDialog(this, "Data Gagal Di Ubah" + e);
364. }
365. }
366. private void btnCariMouseClicked(java.awt.event.MouseEvent evt) {
367. try{
368. Object [] Baris = {"Kode Buku","Kode Kategori","Judul
Buku","Penulis","Penerbit","Status Buku"};
369. tabmode = new DefaultTableModel(null,Baris);
370. table_detail_buku.setModel(tabmode);
371. String sql = "SELECT * FROM detail_buku WHERE kode_buku like '%" +
fieldCariData.getText() + "%' "
372. + "or kode_kategori like '%" + fieldCariData.getText() + "%' "
373. + "or judul_buku like '%" + fieldCariData.getText() + "%' "
374. + "or penulis like '%" + fieldCariData.getText() + "%' "
375. + "or penerbit like '%" + fieldCariData.getText() + "%' "
376. + "or status_buku like '%" + fieldCariData.getText() + "%' "
377. + "ORDER BY kode_buku ASC";
378. java.sql.Statement stat = conn.createStatement();
379. ResultSet hasil = stat.executeQuery(sql);
380. while(hasil.next()){
381. String a = hasil.getString("kode_buku");
382. String b = hasil.getString("kode_kategori");
383. String c = hasil.getString("judul_buku");
384. String d = hasil.getString("penulis");
385. String e = hasil.getString("penerbit");
386. String f = hasil.getString("status_buku");
387. String[] data = {a,b,c,d,e,f};
388. tabmode.addRow(data);
389. }
390. editTampilJumlah();
391. } catch(Exception e){
392. System.out.print(e);
393. }
394. }
395. private void btnCariKeyPressed(java.awt.event.KeyEvent evt) {
396. if(fieldCariData.getText().equals("")){
397. datatable();
398. }
399. }
400. private void fieldCariDataKeyPressed(java.awt.event.KeyEvent evt) {
401. if(fieldCariData.getText().equals("")){
402. datatable();
403. }
404. }
405. private void btnEditDataMouseEntered(java.awt.event.MouseEvent evt) {
406. // TODO add your handling code here:
407. }
408. private void btnMasukkanDataMouseEntered(java.awt.event.MouseEvent evt) {
409. // TODO add your handling code here:
410. }
411. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
412. // TODO add your handling code here:
413. beranda b = new beranda();
414. b.setVisible(true);
415. this.dispose();
416. }
417. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
418. // TODO add your handling code here:
419. detailAnggota da = new detailAnggota();
420. da.setVisible(true);
421. this.dispose();
422. }
423. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
424. // TODO add your handling code here:
425. dataPetugas dp = new dataPetugas();
426. dp.setVisible(true);
427. this.dispose();
428. }
429. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
430. // TODO add your handling code here:
431. peminjamanBuku pb = new peminjamanBuku();
432. pb.setVisible(true);
433. this.dispose();
434. }
435. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
436. // TODO add your handling code here:
437. pengembalian pe = new pengembalian();
438. pe.setVisible(true);
439. this.dispose();
440. }
441. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
442. // TODO add your handling code here:
443. this.dispose();
444. }
445. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
446. // TODO add your handling code here:
447. dataBuku db = new dataBuku();
448. db.setVisible(true);
449. this.dispose();
450. }
451. private void btnCetakDataMouseClicked(java.awt.event.MouseEvent evt) {
452. try{
453. getKondisiCetak = (String) kondisiCetak.getSelectedItem();
454. if(getKondisiCetak.equals("== Pilih Kondisi ==")){
455. //kasih alert
456. JOptionPane.showMessageDialog(this, "Pilih kondisi terlebih dahulu!!");
457. }else if(getKondisiCetak.equals("Seluruh Data")){
458. //cetak semua
459. Map<String, Object> parameter2 = new HashMap <String, Object>();
460. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/detailBuku.jrxml");
461. Class.forName("com.mysql.jdbc.Driver");
462. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
463. parameter2.put("kondisi", "%20%");
464. JasperDesign jasperDesign = JRXmlLoader.load(file);
465. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
466. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter2,
conn);
467. JasperViewer.viewReport(jasperPrint, false);
468. }else if(getKondisiCetak.equals("Data Hari Ini")){
469. //data hari ini
470. Map<String, Object> parameter1 = new HashMap <String, Object>();
471. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/detailBuku.jrxml");
472. Class.forName("com.mysql.jdbc.Driver");
473. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
474. parameter1.put("kondisi", tglHariIni);
475. System.out.println(tglHariIni);
476. JasperDesign jasperDesign = JRXmlLoader.load(file);
477. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
478. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter1,
conn);
479. JasperViewer.viewReport(jasperPrint, false);
480. } else if(getKondisiCetak.equals("Kondisi Pencarian")){
481. //data hari ini
482. Map<String, Object> parameter = new HashMap <String, Object>();
483. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/detailBuku.jrxml");
484. Class.forName("com.mysql.jdbc.Driver");
485. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
486. parameter.put("kondisi", fieldCariData.getText());
487. JasperDesign jasperDesign = JRXmlLoader.load(file);
488. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
489. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter,
conn);
490. JasperViewer.viewReport(jasperPrint, false);
491. }
492. }catch(Exception e){
493.// System.out.println(e);
494. JOptionPane.showMessageDialog(this, "ada kesalahan " + e);
495. }
496. }
497. private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {
498. resetInput();
499. }
500. /**
501. * @param args the command line arguments
502. */
503. public static void main(String args[]) {
504.java.awt.EventQueue.invokeLater(new Runnable() {
505. public void run() {
506. new detailBuku().setVisible(true);
507. }
508. });
509. }
510. // Variables declaration - do not modify
511. private javax.swing.JLabel background;
512. private javax.swing.JLabel btnCari;
513. private javax.swing.JLabel btnCetakData;
514. private javax.swing.JLabel btnEditData;
515. private javax.swing.JLabel btnHapusData;
516. private javax.swing.JLabel btnMasukkanData;
517. private javax.swing.JTextField fieldCariData;
518. private javax.swing.JTextField fieldJudulBuku;
519. private javax.swing.JTextField fieldPenerbit;
520. private javax.swing.JTextField fieldPenulis;
521. private javax.swing.JLabel jLabel1;
522. private javax.swing.JScrollPane jScrollPane1;
523. private javax.swing.JLabel jumlahDetailBuku;
524. private javax.swing.JComboBox<String> kondisiCetak;
525. private javax.swing.JLabel labelKodeBuku;
526. private javax.swing.JLabel menuBeranda;
527. private javax.swing.JLabel menuDataAnggota;
528. private javax.swing.JLabel menuDataBuku;
529. private javax.swing.JLabel menuDataPetugas;
530. private javax.swing.JLabel menuKeluarAkun;
531. private javax.swing.JLabel menuPeminjaman;
532. private javax.swing.JLabel menuPengembalian;
533. private javax.swing.JComboBox<String> selectJenjangKelas;
534. private javax.swing.JComboBox<String> selectNamaKategori;
535. private javax.swing.JComboBox<String> selectStatusBuku;
536. private javax.swing.JTable table_detail_buku;
537. // End of variables declaration
538.}

G. Form Data Petugas


1. package Program;
2. import com.placeholder.PlaceHolder;
3. import java.sql.*;
4. import java.util.logging.Level;
5. import java.util.logging.Logger;
6. import javax.swing.JOptionPane;
7. import javax.swing.table.DefaultTableModel;
8. import koneksi.koneksi;
9. import java.util.Date;
10. import java.awt.Color;
11. import java.awt.Font;
12. import java.io.*;
13. import java.util.Calendar;
14. import java.util.GregorianCalendar;
15. import java.text.SimpleDateFormat;
16. public class dataPetugas extends javax.swing.JFrame {
17. private Connection conn = new koneksi().getkoneksi();
18. private DefaultTableModel tabmode;
19. SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
20. public String tgl;
21. private String kdData = "";
22. protected void kosong() {
23. fieldnamapetugas.setText("");
24. // tgl_lahir.setDateFormatString("");
25. fieldnamaakun.setText("");
26. fieldkatasandi.setText("");
27. }
28. protected void totalpetugas() {
29. try {
30. // TODO add your handling code here:
31. String sql = "select count(*) from petugas";
32. PreparedStatement stat = conn.prepareStatement(sql);
33. ResultSet rs = stat.executeQuery(sql);
34. while(rs.next()) {
35. int no = rs.getInt(1);
36. String total=(String)String.valueOf(no);
37. jml_petugas.setText(total);
38. }
39. } catch (SQLException ex) {
40. Logger.getLogger(dataPetugas.class.getName()).log(Level.SEVERE, null, ex);
41. }
42. }
43. private void kode_petugas_otomatis() {
44. try {
45. String sql = "select max(right(kode_petugas,3)) from petugas";
46. PreparedStatement stat = conn.prepareStatement(sql);
47. ResultSet rs = stat.executeQuery(sql);
48. while(rs.next()) {
49. String kode;
50. if (rs.first() == false) {
51. Kodepetugas.setText("PGS001");
52. } else {
53. rs.last();
54. int set_no = rs.getInt(1)+1;
55. String no = String.valueOf(set_no);
56. int no_next = no.length();
57. for(int a=0; a<3 - no_next; a++) {
58. no = "0"+no;
59. }
60. kode="PGS";
61. Kodepetugas.setText(kode+no);
62. }
63. }
64. } catch (SQLException ex) {
65. Logger.getLogger(dataPetugas.class.getName()).log(Level.SEVERE, null, ex);
66. }
67. }
68. protected void datapetugas() {
69. Object[] baris = {"Kode Petugas","Nama Petugas","Tanggal Lahir","Nama
Akun","Kata Sandi"};
70. tabmode = new DefaultTableModel(null,baris);
71. tabelpetugas.setModel(tabmode);
72. String sql = "select * from petugas";
73. try {
74. java.sql.Statement stat = conn.createStatement();
75. ResultSet hasil = stat.executeQuery(sql);
76. while (hasil.next()){
77. String a = hasil.getString("kode_petugas");
78. String b = hasil.getString("nama_petugas");
79. String c = hasil.getString("tgl_lahir");
80. String d = hasil.getString("nama_akun");
81. String e = hasil.getString("kata_sandi");
82. Object[] data = {a,b,c,d,e};
83. tabmode.addRow(data);
84. }
85. } catch (Exception e){
86. }
87. }
88. public dataPetugas() {
89. initComponents();
90. PlaceHolder holder1 = new PlaceHolder(fieldcari, "masukkan kata kunci");
91. datapetugas();
92. totalpetugas();
93. kode_petugas_otomatis();
94. tabelpetugas.getTableHeader().setFont(new Font("Poppins Light", Font.PLAIN, 13));
95. tabelpetugas.getTableHeader().setOpaque(false);
96. tabelpetugas.getTableHeader().setBackground(new Color(206, 18, 18));
97. tabelpetugas.getTableHeader().setForeground(new Color(255, 255, 255));
98. }
99. private void btncariMouseClicked(java.awt.event.MouseEvent evt) {
100. // TODO add your handling code here:
101. Object[] baris = {"Kode Petugas","Nama Petugas","Tanggal Lahir","Nama
Akun","Kata Sandi"};
102. tabmode = new DefaultTableModel(null,baris);
103. tabelpetugas.setModel(tabmode);
104. String sql = "select kode_petugas, nama_petugas, tgl_lahir, nama_akun, kata_sandi
from petugas where kode_petugas like '%"+fieldcari.getText()+"%'"
105. + " or nama_petugas like '%"+fieldcari.getText()+"%' or nama_akun like
'%"+fieldcari.getText()+"%' ";
106. try {
107. java.sql.Statement stat = conn.createStatement();
108. ResultSet hasil = stat.executeQuery(sql);
109. while (hasil.next()){
110. String a = hasil.getString("kode_petugas");
111. String b = hasil.getString("nama_petugas");
112. String c = hasil.getString("tgl_lahir");
113. String d = hasil.getString("nama_akun");
114. String e = hasil.getString("kata_sandi");
115. Object[] data = {a,b,c,d,e};
116. tabmode.addRow(data);
117. fieldcari.setText("");
118. kode_petugas_otomatis();
119. kosong();
120. }
121. } catch (Exception e){
122. }
123. }
124. private void btnmasukkandataMouseClicked(java.awt.event.MouseEvent evt) {
125. // TODO add your handling code here:
126. try {
127. if(!kdData.equals("")){
128. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
129. }else if(fieldnamapetugas.getText().equals("") ||
jTanggalLahir.getDate().equals("") || fieldnamaakun.getText().equals("") ||
fieldkatasandi.getText().equals("")){
130. //kondisi pengecekkan jika terdapat form kosong
131. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
132. } else{
133. String sql = "INSERT INTO petugas VALUES (?,?,?,?,?)";
134. PreparedStatement stat = conn.prepareStatement(sql);
135. stat.setString(1, Kodepetugas.getText());
136. stat.setString(2, fieldnamapetugas.getText());
137. stat.setString(3, tgl);
138. stat.setString(4, fieldnamaakun.getText());
139. stat.setString(5, fieldkatasandi.getText());
140. stat.executeUpdate();
141. JOptionPane.showMessageDialog(null, "Data Berhasil Di Tambahkan");
142. kode_petugas_otomatis();
143. kosong();
144. datapetugas();
145. totalpetugas();
146. jTanggalLahir.setDate(null);
147. }
148. } catch (SQLException e) {
149. JOptionPane.showMessageDialog(null, "Data Gagal Di Tambahkan"+e);
150. }
151. }
152. private void btnhapusMouseClicked(java.awt.event.MouseEvent evt) {
153. // TODO add your handling code here:
154. try{
155. String sql = "DELETE FROM petugas WHERE kode_petugas ='" + kdData + "'";
156. PreparedStatement stat = conn.prepareStatement(sql);
157. stat.executeUpdate();
158. JOptionPane.showMessageDialog(null, "Data Berhasil DiHapus");
159. kosong();
160. datapetugas();
161. totalpetugas();
162. jTanggalLahir.setDate(null);
163. }catch(SQLException e){
164. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
165. }
166. }
167. private void btneditdataMouseClicked(java.awt.event.MouseEvent evt) {
168. // TODO add your handling code here:
169. try{
170. if(kdData.equals("")){
171. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi masukkan
data!");
172. }else if(fieldnamapetugas.getText().equals("") ||
jTanggalLahir.getDate().equals("") || fieldnamaakun.getText().equals("") ||
fieldkatasandi.getText().equals("")){
173. //kondisi pengecekkan jika terdapat form kosong
174. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
175. } else{
176. String sql = "UPDATE petugas SET nama_petugas = ?, tgl_lahir = ?, nama_akun =
?, kata_sandi = ? WHERE kode_petugas = ?";
177. PreparedStatement stat = conn.prepareStatement(sql);
178. stat.setString(1, fieldnamapetugas.getText());
179. stat.setString(2, tgl);
180. stat.setString(3, fieldnamaakun.getText());
181. stat.setString(4, fieldkatasandi.getText());
182. stat.setString(5, Kodepetugas.getText());
183. stat.executeUpdate();
184. JOptionPane.showMessageDialog(null, "Data Berhasil Di ubah");
185. kosong();
186. fieldcari.requestFocus();
187. datapetugas();
188. totalpetugas();
189. jTanggalLahir.setDate(null);
190. }
191. } catch (SQLException e) {
192. JOptionPane.showMessageDialog(null, "Data Gagal Diubah "+e);
193. }
194. }
195. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
196. // TODO add your handling code here:
197. beranda b = new beranda();
198. b.setVisible(true);
199. this.dispose();
200. }
201. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
202. // TODO add your handling code here:
203. dataBuku db = new dataBuku();
204. db.setVisible(true);
205. this.dispose();
206. }
207. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
208. // TODO add your handling code here:
209. detailAnggota da = new detailAnggota();
210. da.setVisible(true);
211. this.dispose();
212. }
213.
214. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
215. // TODO add your handling code here:
216. peminjamanBuku pb = new peminjamanBuku();
217. pb.setVisible(true);
218. this.dispose();
219. }
220.
221. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
222. // TODO add your handling code here:
223. pengembalian pe = new pengembalian();
224. pe.setVisible(true);
225. this.dispose();
226. }
227.
228. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
229. // TODO add your handling code here:
230. this.dispose();
231. }
232. private void tabelpetugasMouseClicked(java.awt.event.MouseEvent evt) {
233. try{
234. int table = tabelpetugas.getSelectedRow();
235. kdData = tabelpetugas.getValueAt(table, 0).toString();
236. Statement s = conn.createStatement();
237. String sql = "SELECT * FROM petugas WHERE kode_petugas = '"+kdData+"'";
238. ResultSet rs = s.executeQuery(sql);
239. System.out.println(table);
240. if(rs.next()){
241. Kodepetugas.setText(rs.getString("kode_petugas"));
242. fieldnamapetugas.setText(rs.getString("nama_petugas"));
243. jTanggalLahir.setDate(rs.getDate("tgl_lahir"));
244. fieldnamaakun.setText(rs.getString("nama_akun"));
245. fieldkatasandi.setText(rs.getString("kata_sandi"));
246. }
247. } catch(Exception e){
248. System.out.println(e.getMessage());
249. }
250. }
251. private void jTanggalLahirPropertyChange(java.beans.PropertyChangeEvent evt) {
252. if (jTanggalLahir.getDate()!=null){
253. tgl = format.format(jTanggalLahir.getDate());
254. }
255. }
256. /**
257. * @param args the command line arguments
258. */
259. public static void main(String args[]) {
260.java.awt.EventQueue.invokeLater(new Runnable() {
261. public void run() {
262. new dataPetugas().setVisible(true);
263. }
264. });
265. }
266. // Variables declaration - do not modify
267. private javax.swing.JLabel Kodepetugas;
268. private javax.swing.JLabel background;
269. private javax.swing.JLabel btncari;
270. private javax.swing.JLabel btneditdata;
271. private javax.swing.JLabel btnhapus;
272. private javax.swing.JLabel btnmasukkandata;
273. private javax.swing.JTextField fieldcari;
274. private javax.swing.JPasswordField fieldkatasandi;
275. private javax.swing.JTextField fieldnamaakun;
276. private javax.swing.JTextField fieldnamapetugas;
277. private javax.swing.JScrollPane jScrollPane1;
278. private com.toedter.calendar.JDateChooser jTanggalLahir;
279. private javax.swing.JLabel jml_petugas;
280. private javax.swing.JLabel menuBeranda;
281. private javax.swing.JLabel menuDataAnggota;
282. private javax.swing.JLabel menuDataBuku;
283. private javax.swing.JLabel menuDataPetugas;
284. private javax.swing.JLabel menuKeluarAkun;
285. private javax.swing.JLabel menuPeminjaman;
286. private javax.swing.JLabel menuPengembalian;
287. private javax.swing.JTable tabelpetugas;
288. // End of variables declaration
289.}

H. Form Peminjaman Buku


1. package Program;
2. public class peminjamanBuku extends javax.swing.JFrame {
3. /**
4. * Creates new form peminjamanBuku
5. */
6. public peminjamanBuku() {
7. initComponents();
8. }
9. private void keluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
10. // TODO add your handling code here:
11. this.dispose();
12. }
13. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
14. // TODO add your handling code here:
15. dataPetugas dp = new dataPetugas();
16. dp.setVisible(true);
17. this.dispose();
18. }
19. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
20. // TODO add your handling code here:
21. detailAnggota da = new detailAnggota();
22. da.setVisible(true);
23. this.dispose();
24. }
25. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
26. // TODO add your handling code here:
27. dataBuku db = new dataBuku();
28. db.setVisible(true);
29. this.dispose();
30. }
31. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
32. // TODO add your handling code here:
33. beranda b = new beranda();
34. b.setVisible(true);
35. this.dispose();
36. }
37. private void peminjamanIndividuMouseClicked(java.awt.event.MouseEvent evt) {
38. // TODO add your handling code here:
39. prosesPeminjaman pp = new prosesPeminjaman();
40. pp.setVisible(true);
41. this.dispose();
42. }
43. private void peminjamanKelompokMouseClicked(java.awt.event.MouseEvent evt) {
44. // TODO add your handling code here:
45. dataPeminjaman dp = new dataPeminjaman();
46. dp.setVisible(true);
47. this.dispose();
48. }
49. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
50. // TODO add your handling code here:
51. pengembalian pe = new pengembalian();
52. pe.setVisible(true);
53. this.dispose();
54. }
55. public static void main(String args[]) {
56. java.awt.EventQueue.invokeLater(new Runnable() {
57. public void run() {
58. new peminjamanBuku().setVisible(true);
59. }
60. });
61. }
62. // Variables declaration - do not modify
63. private javax.swing.JLabel Background;
64. private javax.swing.JLabel keluarAkun;
65. private javax.swing.JLabel menuBeranda;
66. private javax.swing.JLabel menuDataAnggota;
67. private javax.swing.JLabel menuDataBuku;
68. private javax.swing.JLabel menuDataPetugas;
69. private javax.swing.JLabel menuPeminjaman;
70. private javax.swing.JLabel menuPengembalian;
71. private javax.swing.JLabel peminjamanIndividu;
72. private javax.swing.JLabel peminjamanKelompok;
73. // End of variables declaration
74. }

I. Form Data Peminjaman


1. package Program;
2. import static Program.prosesPeminjaman.tglHariIni;
3. import com.placeholder.PlaceHolder;
4. import java.sql.*;
5. import java.text.SimpleDateFormat;
6. import java.util.Date;
7. import java.util.Calendar;
8. import java.awt.Color;
9. import java.awt.Font;
10. import java.io.File;
11. import java.sql.Connection;
12. import java.sql.PreparedStatement;
13. import java.sql.ResultSet;
14. import java.sql.SQLException;
15. import java.sql.Statement;
16. import java.util.ArrayList;
17. import java.util.HashMap;
18. import java.util.List;
19. import java.util.Map;
20. import java.util.logging.Level;
21. import java.util.logging.Logger;
22. import javax.swing.JOptionPane;
23. import javax.swing.table.DefaultTableModel;
24. import koneksi.koneksi;
25. import net.sf.jasperreports.engine.JasperCompileManager;
26. import net.sf.jasperreports.engine.JasperFillManager;
27. import net.sf.jasperreports.engine.JasperPrint;
28. import net.sf.jasperreports.engine.JasperReport;
29. import net.sf.jasperreports.engine.design.JasperDesign;
30. import net.sf.jasperreports.engine.xml.JRXmlLoader;
31. import net.sf.jasperreports.view.JasperViewer;
32. public class dataPeminjaman extends javax.swing.JFrame {
33. private Connection conn = new koneksi().getkoneksi();
34. private String kdPeminjaman, kdDataPinjam = "", kdBuku, kdAnggota, kdPetugas,
waktuPinjam,getKondisiCetak;
35. private DefaultTableModel tabmode;
36. public String tglPinjam, tglBatasPinjam, tglHariIni;
37. SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
38. Statement stm;
39. ResultSet rs;
40. public String tgl;
41. public dataPeminjaman() {
42. initComponents();
43. PlaceHolder holder1 = new PlaceHolder(fieldCariData, "masukkan kata kunci");
44. datatable();
45. tampilJumlah();
46. tampilPeminjam();
47. tanggalHariIni();
48. kode_kategori.hide();
49. tabel_datapeminjaman.getTableHeader().setFont(new Font("Poppins Light",
Font.PLAIN, 13));
50. tabel_datapeminjaman.getTableHeader().setOpaque(false);
51. tabel_datapeminjaman.getTableHeader().setBackground(new Color(206, 18, 18));
52. tabel_datapeminjaman.getTableHeader().setForeground(new Color(255, 255, 255));
53. }
54. private void resetInput(){
55. //resetKodePeminjaman();
56. labelKodePeminjaman.setText("XXXXX");
57. fieldKodeBuku.setText("");
58. kode_kategori.setText("");
59. fieldWaktuPeminjaman.setText("");
60. jTanggalBatasPinjam.setDate(null);
61. }
62. private void tampilJumlah(){
63. try{
64. Statement s = conn.createStatement();
65. String sql = "SELECT COUNT(kode_buku) FROM peminjaman_buku ";
66. ResultSet rs = s.executeQuery(sql);
67.
68. if(rs.next()){
69. jumlahBukuDipinjam.setText(rs.getString("COUNT(kode_buku)"));
70. }
71. } catch(Exception e){
72. System.out.println(e.getMessage());
73. }
74. }
75. private void tanggalHariIni(){
76. try{
77. Date ys = new Date(); // membuat oject ys dari class Date
78. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
79. tglHariIni = s.format(ys);
80. }catch(Exception e){
81. System.out.println(e.getMessage());
82. }
83. }
84. private void tampilPeminjam(){
85. try{
86. Statement s = conn.createStatement();
87. String sql = "SELECT COUNT(DISTINCT kode_peminjaman) FROM
peminjaman_buku";
88. ResultSet rs = s.executeQuery(sql);
89.
90. while(rs.next()){
91. System.out.println(rs.getString("COUNT(DISTINCT kode_peminjaman)"));
92. jumlahPeminjaman.setText(rs.getString("COUNT(DISTINCT
kode_peminjaman)"));
93. }
94. } catch(Exception e){
95. System.out.println(e.getMessage());
96. }
97. }
98. protected void datatable(){
99. try{
100. Object [] Baris = {"Kode Pinjam","Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
101. tabmode = new DefaultTableModel(null,Baris);
102. tabel_datapeminjaman.setModel(tabmode);
103. String sql = "SELECT * FROM peminjaman_buku ";
104. java.sql.Statement stat = conn.createStatement();
105. ResultSet hasil = stat.executeQuery(sql);
106. while(hasil.next()){
107. String a = hasil.getString("kode_peminjaman");
108. String b = hasil.getString("kode_petugas");
109. String c = hasil.getString("kode_buku");
110. String d = hasil.getString("kode_anggota");
111. String e = hasil.getString("waktu_pinjam");
112. String f = hasil.getString("tgl_peminjaman");
113. String g = hasil.getString("tgl_batas_peminjaman");
114. String[] data = {a,b,c,d,e,f,g};
115. tabmode.addRow(data);
116. }
117. tampilJumlah();
118. } catch(Exception e){
119. System.out.print(e);
120. }
121. }
122. private int cekstok(){
123. int stok=0;
124. String qtotal= "SELECT jumlah_awal FROM kategori_buku WHERE kode_kategori
='"+kode_kategori.getText()+"'";
125. try{
126. Statement s = conn.createStatement();
127. rs = s.executeQuery(qtotal);
128. while(rs.next()){
129. stok = Integer.parseInt(rs.getString(1));
130. }
131. } catch(Exception ex){
132. JOptionPane.showMessageDialog(null, ex.getMessage());
133. }
134. return stok;
135. }
136.private int jumlah_pinjam(){
137. int jml=0;
138. String qtotal= "SELECT jumlah_dipinjam FROM kategori_buku WHERE
kode_kategori ='"+kode_kategori.getText()+"'";
139. try{
140. Statement s = conn.createStatement();
141. rs = s.executeQuery(qtotal);
142.
143. while(rs.next()){
144. jml = Integer.parseInt(rs.getString(1));
145. }
146. } catch(Exception ex){
147. JOptionPane.showMessageDialog(null, ex.getMessage());
148. }
149. return jml;
150. }
151.private int sisabuku(){
152. int sisa=0;
153. String qtotal= "SELECT jumlah_awal FROM kategori_buku WHERE kode_kategori
='"+kode_kategori.getText()+"'";
154. try{
155. Statement s = conn.createStatement();
156. rs = s.executeQuery(qtotal);
157.
158. while(rs.next()){
159. sisa = Integer.parseInt(rs.getString(1));
160. }
161. } catch(Exception ex){
162. JOptionPane.showMessageDialog(null, ex.getMessage());
163. }
164. return sisa;
165. }
166.private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
167. // TODO add your handling code here:
168. beranda b = new beranda();
169. b.setVisible(true);
170. this.dispose();
171. }
172. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
173. // TODO add your handling code here:
174. dataBuku db = new dataBuku();
175. db.setVisible(true);
176. this.dispose();
177. }
178. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
179. // TODO add your handling code here:
180. detailAnggota da = new detailAnggota();
181. da.setVisible(true);
182. this.dispose();
183. }
184. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
185. // TODO add your handling code here:
186. dataPetugas dp = new dataPetugas();
187. dp.setVisible(true);
188. this.dispose();
189. }
190. private void keluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
191. // TODO add your handling code here:
192. this.dispose();
193. }
194. private void btncariMouseClicked(java.awt.event.MouseEvent evt) {
195. // TODO add your handling code here:
196. try{
197. Object [] Baris = {"Kode Pinjam", "Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
198. tabmode = new DefaultTableModel(null,Baris);
199. tabel_datapeminjaman.setModel(tabmode);
200. String sql = "SELECT kode_peminjaman, kode_petugas, kode_buku,
kode_anggota, waktu_pinjam, tgl_peminjaman, tgl_batas_peminjaman FROM
peminjaman_buku WHERE kode_peminjaman like '%" + fieldCariData.getText() + "%' "
201. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
202. + "or kode_anggota like '%" + fieldCariData.getText() + "%' "
203. + "or waktu_pinjam like '%" + fieldCariData.getText() + "%' "
204. + "or tgl_peminjaman like '%" + fieldCariData.getText() + "%' "
205. + "or tgl_batas_peminjaman like '%" + fieldCariData.getText() + "%' ";
206. java.sql.Statement stat = conn.createStatement();
207. ResultSet hasil = stat.executeQuery(sql);
208. while(hasil.next()){
209. String a = hasil.getString("kode_peminjaman");
210. String b = hasil.getString("kode_petugas");
211. String c = hasil.getString("kode_buku");
212. String d = hasil.getString("kode_anggota");
213. String e = hasil.getString("waktu_pinjam");
214. String f = hasil.getString("tgl_peminjaman");
215. String g = hasil.getString("tgl_batas_peminjaman");
216. String[] data = {a,b,c,d,e,f,g};
217. tabmode.addRow(data);
218. }
219. tampilJumlah();
220. } catch(Exception e){
221. System.out.print(e);
222. }
223.private void tabel_datapeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
224. // TODO add your handling code here:
225. try{
226. int table = tabel_datapeminjaman.getSelectedRow();
227. kdPeminjaman = tabel_datapeminjaman.getValueAt(table, 0).toString();
228. kdBuku = tabel_datapeminjaman.getValueAt(table, 2).toString();
229. Statement s = conn.createStatement();
230. String sql = "SELECT * FROM peminjaman_buku WHERE kode_peminjaman =
'"+kdPeminjaman+"' AND kode_buku ='"+kdBuku+"'";
231. ResultSet rs = s.executeQuery(sql);
232. System.out.println("kode peminjamannya = " + kdPeminjaman);
233. System.out.println("kode bukunya = " + kdBuku);
234. if(rs.next()){
235. labelKodePeminjaman.setText(rs.getString("kode_peminjaman"));
236. fieldKodeBuku.setText(rs.getString("kode_buku"));
237. fieldWaktuPeminjaman.setText(rs.getString("waktu_pinjam"));
238. jTanggalBatasPinjam.setDate(rs.getDate("tgl_batas_peminjaman"));
239. }
240. } catch(Exception e){
241. System.out.println(e.getMessage());
242. }
243. }
244. private void jTanggalBatasPinjamPropertyChange(java.beans.PropertyChangeEvent
evt) {
245. // TODO add your handling code here:
246. if (jTanggalBatasPinjam.getDate()!=null){
247. tgl = format.format(jTanggalBatasPinjam.getDate());
248. }
249. }
250. private void btnUbahDataMouseClicked(java.awt.event.MouseEvent evt) {
251. // TODO add your handling code here:
252. kdBuku = fieldKodeBuku.getText();
253. try{
254.// int table = tabel_datapeminjaman.getSelectedRow();
255.// tglHariIni = tabel_datapeminjaman.getValueAt(table, 6).toString();
256. if(!kdDataPinjam.equals("")){
257. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
258. }else if(fieldKodeBuku.getText().equals("") ||
fieldWaktuPeminjaman.getText().equals("")){
259. JOptionPane.showMessageDialog(null, "Tentukan kurun waktu peminjaman
dahulu!");
260. }else if(jTanggalBatasPinjam.getDate().equals("") ){
261. JOptionPane.showMessageDialog(null, "Tentukan tanggal peminjaman dan
tanggal batas waktu peminjaman dahulu!");
262. }else{
263. String sql = "UPDATE peminjaman_buku SET kode_buku =?, waktu_pinjam = ?,
tgl_batas_peminjaman =? WHERE kode_peminjaman =? ";
264. PreparedStatement stat = (PreparedStatement) conn.prepareStatement(sql);
265. stat.setString(1, kdBuku);
266. stat.setString(2, fieldWaktuPeminjaman.getText());
267. stat.setString(3, tgl);
268. stat.setString(4, labelKodePeminjaman.getText());
269. stat.executeUpdate();
270. JOptionPane.showMessageDialog(null, "Data Berhasil Di ubah");
271. datatable();
272. }
273. } catch (SQLException ex) {
274. Logger.getLogger(dataPeminjaman.class.getName()).log(Level.SEVERE, null,
ex);
275. }
276. }
277.private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
278. // TODO add your handling code here:
279. pengembalian p = new pengembalian();
280. p.setVisible(true);
281. this.dispose();
282. }
283. private void backgroundMouseClicked(java.awt.event.MouseEvent evt) {
284. // TODO add your handling code here:
285. this.dispose();
286.private void fieldCariDataKeyTyped(java.awt.event.KeyEvent evt) {
287. // TODO add your handling code here:
288. try{
289. Object [] Baris = {"Kode Pinjam", "Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
290. tabmode = new DefaultTableModel(null,Baris);
291. tabel_datapeminjaman.setModel(tabmode);
292. String sql = "SELECT kode_peminjaman, kode_petugas, kode_buku,
kode_anggota, waktu_pinjam, tgl_peminjaman, tgl_batas_peminjaman FROM
peminjaman_buku WHERE kode_peminjaman like '%" + fieldCariData.getText() + "%' "
293. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
294. + "or kode_anggota like '%" + fieldCariData.getText() + "%' "
295. + "or waktu_pinjam like '%" + fieldCariData.getText() + "%' "
296. + "or tgl_peminjaman like '%" + fieldCariData.getText() + "%' "
297. + "or tgl_batas_peminjaman like '%" + fieldCariData.getText() + "%' ";
298. java.sql.Statement stat = conn.createStatement();
299. ResultSet hasil = stat.executeQuery(sql);
300. while(hasil.next()){
301. String a = hasil.getString("kode_peminjaman");
302. String b = hasil.getString("kode_petugas");
303. String c = hasil.getString("kode_buku");
304. String d = hasil.getString("kode_anggota");
305. String e = hasil.getString("waktu_pinjam");
306. String f = hasil.getString("tgl_peminjaman");
307. String g = hasil.getString("tgl_batas_peminjaman");
308. String[] data = {a,b,c,d,e,f,g};
309. tabmode.addRow(data);
310. }
311. tampilJumlah();
312. } catch(Exception e){
313. System.out.print(e);
314. }
315. }
316.private void btnHapusDataMouseClicked(java.awt.event.MouseEvent evt) {
317. // TODO add your handling code here:
318. int stokbaru=0;
319. int jml_pinjam=0;
320. int sisa_buku=0;
321. try{
322. String sql = "DELETE FROM peminjaman_buku WHERE kode_buku ='"+
fieldKodeBuku.getText() +"'";
323.// + "kode_anggota ='"+ fieldKodeAnggota.getText() +"' AND"
324.// + "waktu_pinjam ='"+ selectKurunWaktu.getSelectedItem() +"'";
325. PreparedStatement stat = conn.prepareStatement(sql);
326. stat.executeUpdate();
327. stokbaru = cekstok() + 1;
328. stat.executeUpdate("UPDATE kategori_buku SET jumlah_awal="+stokbaru+"
WHERE kode_kategori='"+kode_kategori.getText()+"'");
329. jml_pinjam = jumlah_pinjam() - 1;
330. stat.executeUpdate("UPDATE kategori_buku SET
jumlah_dipinjam="+jml_pinjam+" WHERE kode_kategori='"+kode_kategori.getText()
+"'");
331. sisa_buku= sisabuku();
332. stat.executeUpdate("UPDATE kategori_buku SET sisa_buku="+sisa_buku+"
WHERE kode_kategori='"+kode_kategori.getText()+"'");
333. JOptionPane.showMessageDialog(null, "Data Berhasil DiHapus");
334. resetInput();
335. tampilPeminjam();
336. tampilJumlah();
337. datatable();
338. }catch(SQLException e){
339. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
340. }
341. }
342.private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
343. // TODO add your handling code here:
344. peminjamanBuku pb = new peminjamanBuku();
345. pb.setVisible(true);
346. this.dispose();
347. }
348. private void btnCetakDataMouseClicked(java.awt.event.MouseEvent evt) {
349. // TODO add your handling code here:
350. try{
351. getKondisiCetak = (String) urutkanData.getSelectedItem();
352. if(getKondisiCetak.equals("== Pilih Kondisi ==")){
353. //kasih alert
354. JOptionPane.showMessageDialog(this, "Pilih kondisi terlebih dahulu!!");
355. }else if(getKondisiCetak.equals("Seluruh Data")){
356. //cetak semua
357. Map<String, Object> parameter2 = new HashMap <String, Object>();
358. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/LaporanPeminjaman.jrxml");
359. Class.forName("com.mysql.jdbc.Driver");
360. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
361. parameter2.put("kondisi", "%20%");
362. JasperDesign jasperDesign = JRXmlLoader.load(file);
363. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
364. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter2,
conn);
365. JasperViewer.viewReport(jasperPrint, false);
366.
367. }else if(getKondisiCetak.equals("Data Hari Ini")){
368. //data hari ini
369. Map<String, Object> parameter1 = new HashMap <String, Object>();
370. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/LaporanPeminjaman.jrxml");
371. Class.forName("com.mysql.jdbc.Driver");
372. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
373. parameter1.put("kondisi", tglHariIni);
374. System.out.println(tglHariIni);
375. JasperDesign jasperDesign = JRXmlLoader.load(file);
376. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
377. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter1,
conn);
378. JasperViewer.viewReport(jasperPrint, false);
379. } else if(getKondisiCetak.equals("Kondisi Pencarian")){
380. //data hari ini
381. Map<String, Object> parameter = new HashMap <String, Object>();
382. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/LaporanPeminjaman.jrxml");
383. Class.forName("com.mysql.jdbc.Driver");
384. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
385. parameter.put("kondisi", fieldCariData.getText());
386. JasperDesign jasperDesign = JRXmlLoader.load(file);
387. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
388. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter,
conn);
389. JasperViewer.viewReport(jasperPrint, false);
390. }
391. }catch(Exception e){
392.// System.out.println(e);
393. JOptionPane.showMessageDialog(this, "ada kesalahan " + e);
394. }
395. }
396.private void fieldCariDataKeyReleased(java.awt.event.KeyEvent evt) {
397. // TODO add your handling code here:
398. // TODO add your handling code here:
399. try{
400. Object [] Baris = {"Kode Pinjam", "Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
401. tabmode = new DefaultTableModel(null,Baris);
402. tabel_datapeminjaman.setModel(tabmode);
403. String sql = "SELECT kode_peminjaman, kode_petugas, kode_buku,
kode_anggota, waktu_pinjam, tgl_peminjaman, tgl_batas_peminjaman FROM
peminjaman_buku WHERE kode_peminjaman like '%" + fieldCariData.getText() + "%' "
404. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
405. + "or kode_anggota like '%" + fieldCariData.getText() + "%' "
406. + "or waktu_pinjam like '%" + fieldCariData.getText() + "%' "
407. + "or tgl_peminjaman like '%" + fieldCariData.getText() + "%' "
408. + "or tgl_batas_peminjaman like '%" + fieldCariData.getText() + "%' ";
409. java.sql.Statement stat = conn.createStatement();
410. ResultSet hasil = stat.executeQuery(sql);
411. while(hasil.next()){
412. String a = hasil.getString("kode_peminjaman");
413. String b = hasil.getString("kode_petugas");
414. String c = hasil.getString("kode_buku");
415. String d = hasil.getString("kode_anggota");
416. String e = hasil.getString("waktu_pinjam");
417. String f = hasil.getString("tgl_peminjaman");
418. String g = hasil.getString("tgl_batas_peminjaman");
419. String[] data = {a,b,c,d,e,f,g};
420. tabmode.addRow(data);
421. }
422. tampilJumlah();
423. } catch(Exception e){
424. System.out.print(e);
425. }
426. }
427. private void fieldCariDataKeyPressed(java.awt.event.KeyEvent evt) {
428. // TODO add your handling code here:
429. // TODO add your handling code here:
430. try{
431. Object [] Baris = {"Kode Pinjam", "Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
432. tabmode = new DefaultTableModel(null,Baris);
433. tabel_datapeminjaman.setModel(tabmode);
434. String sql = "SELECT kode_peminjaman, kode_petugas, kode_buku,
kode_anggota, waktu_pinjam, tgl_peminjaman, tgl_batas_peminjaman FROM
peminjaman_buku WHERE kode_peminjaman like '%" + fieldCariData.getText() + "%' "
435. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
436. + "or kode_anggota like '%" + fieldCariData.getText() + "%' "
437. + "or waktu_pinjam like '%" + fieldCariData.getText() + "%' "
438. + "or tgl_peminjaman like '%" + fieldCariData.getText() + "%' "
439. + "or tgl_batas_peminjaman like '%" + fieldCariData.getText() + "%' ";
440. java.sql.Statement stat = conn.createStatement();
441. ResultSet hasil = stat.executeQuery(sql);
442. while(hasil.next()){
443. String a = hasil.getString("kode_peminjaman");
444. String b = hasil.getString("kode_petugas");
445. String c = hasil.getString("kode_buku");
446. String d = hasil.getString("kode_anggota");
447. String e = hasil.getString("waktu_pinjam");
448. String f = hasil.getString("tgl_peminjaman");
449. String g = hasil.getString("tgl_batas_peminjaman");
450. String[] data = {a,b,c,d,e,f,g};
451. tabmode.addRow(data);
452. }
453. tampilJumlah();
454. } catch(Exception e){
455. System.out.print(e);
456. }
457. }
458. /**
459. * @param args the command line arguments
460. */
461. public static void main(String args[]) {
462. java.awt.EventQueue.invokeLater(new Runnable() {
463. public void run() {
464. new dataPeminjaman().setVisible(true);
465. }
466. });
467. }
468. // Variables declaration - do not modify
469. private javax.swing.JLabel background;
470. private javax.swing.JLabel btnCetakData;
471. private javax.swing.JLabel btnHapusData;
472. private javax.swing.JLabel btnUbahData;
473. private javax.swing.JLabel btncari;
474. private javax.swing.JTextField fieldCariData;
475. private javax.swing.JTextField fieldKodeBuku;
476. private javax.swing.JTextField fieldWaktuPeminjaman;
477. private javax.swing.JScrollPane jScrollPane1;
478. private com.toedter.calendar.JDateChooser jTanggalBatasPinjam;
479. private javax.swing.JLabel jumlahBukuDipinjam;
480. private javax.swing.JLabel jumlahPeminjaman;
481. private javax.swing.JLabel keluarAkun;
482. private javax.swing.JTextField kode_kategori;
483. private javax.swing.JLabel labelKodePeminjaman;
484. private javax.swing.JLabel menuBeranda;
485. private javax.swing.JLabel menuDataAnggota;
486. private javax.swing.JLabel menuDataBuku;
487. private javax.swing.JLabel menuDataPetugas;
488. private javax.swing.JLabel menuPeminjaman;
489. private javax.swing.JLabel menuPengembalian;
490. private javax.swing.JTable tabel_datapeminjaman;
491. private javax.swing.JComboBox<String> urutkanData;
492. // End of variables declaration
493.}

J. Form Proses Peminjaman


1. package Program;
2. import static Program.prosesPengembalian.idPetugas;
3. import com.placeholder.PlaceHolder;
4. import java.sql.*;
5. import java.text.SimpleDateFormat;
6. import java.util.Date;
7. import java.util.Calendar;
8. import java.awt.Color;
9. import java.awt.Font;
10. import java.sql.Connection;
11. import java.sql.PreparedStatement;
12. import java.sql.ResultSet;
13. import java.sql.SQLException;
14. import java.sql.Statement;
15. import java.util.ArrayList;
16. import java.util.List;
17. import java.util.logging.Level;
18. import java.util.logging.Logger;
19. import javax.swing.JOptionPane;
20. import javax.swing.table.DefaultTableModel;
21. import koneksi.koneksi;
22. public class prosesPeminjaman extends javax.swing.JFrame {
23. private Connection conn = new koneksi().getkoneksi();
24. private String kdkategori, kdDataPinjam = "", getKondisiCetak;
25. private DefaultTableModel tabmode;
26. public String kdPeminjaman, kdBuku, kdAnggota,tglPinjam, tglBatasPinjam;
27. String getKurunPeminjaman;
28. SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
29. Statement stm;
30. ResultSet rs;
31. public static String idPetugas , tglHariIni;
32. public prosesPeminjaman() {
33. initComponents();
34. idPetugas = masukAkun.getIdPetugas();
35. loadData();
36. tampillabel();
37. tampilKdPinjam();
38. tanggalHariIni();
39. labelKodePeminjaman.requestFocus();
40. tabel_peminjaman_buku.getTableHeader().setFont(new Font("Poppins Light",
Font.PLAIN, 13));
41. tabel_peminjaman_buku.getTableHeader().setOpaque(false);
42. tabel_peminjaman_buku.getTableHeader().setBackground(new Color(206, 18, 18));
43. tabel_peminjaman_buku.getTableHeader().setForeground(new Color(255, 255,
255));
44. }
45. public void tampillabel() {
46. fieldKodeBuku.setVisible(true);
47. labelkodebuku.setVisible(false);
48. }
49. private void tanggalHariIni(){
50. try{
51. Date ys = new Date(); // membuat oject ys dari class Date
52. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
53. tglHariIni = s.format(ys);
54. }catch(Exception e){
55. System.out.println(e.getMessage());
56. }
57. private void tampilKdPinjam(){
58. try {
59. String sql="SELECT kode_peminjaman FROM peminjaman_buku ORDER BY
kode_peminjaman DESC";
60. Statement s = conn.createStatement();
61. ResultSet rs=s.executeQuery(sql);
62. if (rs.next()) {
63. String kda = rs.getString("kode_peminjaman").substring(4);
64. String an = "" + (Integer.parseInt(kda) + 1);
65. String nol = "";
66. if(an.length() == 1){
67. nol = "000";
68. }else if(an.length() == 2){
69. nol = "00";
70. }else if(an.length() == 3){
71. nol = "0";
72. }else if(an.length() == 4){
73. nol = "";
74. }
75. labelKodePeminjaman.setText("PJM" + nol + an);
76. } else {
77. labelKodePeminjaman.setText("PJM0001");
78. }
79. }catch(Exception e){
80. JOptionPane.showMessageDialog(null, e);
81. }
82. }
83. private void resetInput(){
84. fieldKodeBuku.setText("");
85. fieldKodeAnggota.setText("");
86. selectKurunWaktu.setSelectedIndex(0);
87. jTanggalPinjam.setDate(null);
88. jTanggalBatasPinjam.setDate(null);
89. }
90. private void resetKodePeminjaman(){
91. try{
92. getKurunPeminjaman= (String) selectKurunWaktu.getSelectedItem();
93. if(getKurunPeminjaman.equals("=Pilih Waktu Peminjaman=")){
94. labelKodePeminjaman.setText("xxxxxx");
95. }else{
96. labelKodePeminjaman.setText("xxxxxx");
97. }
98. }catch(Exception e){
99. System.out.println(e);
100. }
101. }
102.public void loadData(){
103. try{
104. Object [] Baris = {"Kode Peminjaman", "Kode Buku", "Kode Anggota", "Waktu
Pinjam", "Tanggal Peminjaman", "Tanggal Batas Peminjaman"};
105. tabmode = new DefaultTableModel(null, Baris);
106. tabel_peminjaman_buku.setModel(tabmode);
107. String sql = "SELECT * FROM peminjaman_buku WHERE kode_peminjaman =
'"+labelKodePeminjaman.getText()+"'";
108. Statement s = conn.createStatement();
109. ResultSet r = s.executeQuery(sql);
110. while(r.next()){
111. String a = r.getString("kode_peminjaman");
112. String b = r.getString("kode_buku");
113. String c = r.getString("kode_anggota");
114. String d = r.getString("waktu_pinjam");
115. String e = r.getString("tgl_peminjaman");
116. String f = r.getString("tgl_batas_peminjaman");
117. String[] data = {a, b, c, d, e, f};
118. tabmode.addRow(data);
119. }
120. tampilJumlah();
121. }catch(Exception e){
122. System.out.println("Terjadi Kesalahan di table");
123. }
124. }
125. private void tampilJumlah(){
126. try{
127. Statement s = conn.createStatement();
128. String sql = "SELECT COUNT(kode_buku) FROM peminjaman_buku WHERE
kode_peminjaman='"+labelKodePeminjaman.getText()+"'";
129. ResultSet rs = s.executeQuery(sql);
130. if(rs.next()){
131. System.out.println("tampil jumlah");
132. jumlahPinjamBuku.setText(rs.getString("COUNT(kode_buku)"));
133. }
134. } catch(Exception e){
135. System.out.println(e.getMessage());
136. }
137. }
138.private void btnMasukkanDataMouseClicked(java.awt.event.MouseEvent evt) {
139. try{
140. if(!kdDataPinjam.equals("")){
141. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
142. }else if(fieldKodeBuku.getText().equals("") ||
fieldKodeAnggota.getText().equals("") ||
143. selectKurunWaktu.equals("=Pilih Waktu Peminjaman=") ||
jTanggalPinjam.getDate().equals("") ||
144. jTanggalBatasPinjam.getDate().equals("")){
145. //kondisi pengecekkan jika terdapat form kosong
146. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
147. } else{
148. //input data ke table peminjaman_buku
149. String sql = "INSERT INTO peminjaman_buku VALUES (?, ?, ?, ?, ?, ?, ?,?)";
150. PreparedStatement stat = conn.prepareStatement(sql);
151. stat.setString(1, labelKodePeminjaman.getText());
152. stat.setString(2, idPetugas);
153. stat.setString(3, fieldKodeBuku.getText());
154. stat.setString(4, fieldKodeAnggota.getText());
155. stat.setString(5, selectKurunWaktu.getSelectedItem().toString());
156. stat.setString(6, tglPinjam);
157. stat.setString(7, tglBatasPinjam);
158. stat.setString(8, tglHariIni);
159. stat.executeUpdate();
160. //pengubahan jumlah_dipinjam dan sisa_buku ditable kategori_buku
161. //select data dahulu
162. String kdKategoriBuku = fieldKodeBuku.getText().substring(0,4);
163. Statement stm_select = conn.createStatement();
164. String sql_select = "SELECT * FROM kategori_buku WHERE kode_kategori =
'"+ kdKategoriBuku +"'";
165. ResultSet rs_select = stm_select.executeQuery(sql_select);
166. if(rs_select.next()){
167. int jumlah_dipinjam = Integer.parseInt(rs_select.getString("jumlah_dipinjam"));
168. int sisa_buku = Integer.parseInt(rs_select.getString("sisa_buku"));
169. //proses ubah data
170. String sql_update = "UPDATE kategori_buku SET jumlah_dipinjam = ?,
sisa_buku = ? WHERE kode_kategori = '" + kdKategoriBuku +"'";
171. PreparedStatement stat_update = conn.prepareStatement(sql_update);
172. jumlah_dipinjam = jumlah_dipinjam + 1;
173. sisa_buku = sisa_buku - 1;
174. stat_update.setInt(1, jumlah_dipinjam);
175. stat_update.setInt(2, sisa_buku);
176. stat_update.executeUpdate();
177. JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan");
178. loadData();
179. resetInput();
180. }
181. }
182. }catch (Exception e) {
183. JOptionPane.showMessageDialog(null, "Data tidak tersimpan"+e);
184. }
185. }
186.private void btnEditDataMouseClicked(java.awt.event.MouseEvent evt) {
187. getKurunPeminjaman= (String) selectKurunWaktu.getSelectedItem();
188. try{
189. if(!kdDataPinjam.equals("")){
190. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
191. }else if(fieldKodeBuku.getText().equals("") ||
fieldKodeAnggota.getText().equals("")){
192. //kondisi pengecekkan jika terdapat form kosong
193. JOptionPane.showMessageDialog(null, "Form tidak boleh kosong!");
194. }else if(getKurunPeminjaman.equals("Pilih Kurun Waktu Peminjaman")){
195. //kondisi pengecekkan kurun waktu peminjaman
196. JOptionPane.showMessageDialog(null, "Tentukan kurun waktu peminjaman
dahulu!");
197. }else if(jTanggalPinjam.getDate().equals("") ||
jTanggalBatasPinjam.getDate().equals("")){
198. JOptionPane.showMessageDialog(null, "Tentukan tanggal peminjaman dan
tanggal batas waktu peminjaman dahulu!");
199. }else{
200. String sql = "UPDATE peminjaman_buku "
201. + "SET kode_buku = ?, kode_anggota = ?, waktu_pinjam = ?,
tgl_peminjaman= ?, tgl_batas_peminjaman = ? , tgl_input = ?"
202. + "WHERE kode_peminjaman = '"+ kdPeminjaman +"' AND kode_buku =
'"+ kdBuku +"' AND kode_anggota = '"+ kdAnggota +"'";
203. PreparedStatement stat = (PreparedStatement) conn.prepareStatement(sql);
204. stat.setString(1, fieldKodeBuku.getText());
205. stat.setString(2, fieldKodeAnggota.getText());
206. stat.setString(3, (String) selectKurunWaktu.getSelectedItem());
207. stat.setString(4, tglPinjam);
208. stat.setString(5, tglBatasPinjam);
209. stat.setString(6, tglHariIni);
210. stat.executeUpdate();
211. JOptionPane.showMessageDialog(null, "Data Berhasil Di ubah");
212. loadData();
213. resetInput();
214. }
215. } catch (SQLException e) {
216. JOptionPane.showMessageDialog(null, "Data Gagal Diubah "+e);
217. }
218. }
219.private void btnHapusDataMouseClicked(java.awt.event.MouseEvent evt) {
220. try{
221. //proses delete data dari table peminjaman_buku
222. String sql_delete = "DELETE FROM peminjaman_buku WHERE "
223. + "kode_peminjaman = '"+ kdPeminjaman +"' AND kode_buku = '"+ kdBuku
+"' AND kode_anggota = '"+ kdAnggota +"'";
224. PreparedStatement stat_delete = conn.prepareStatement(sql_delete);
225. stat_delete.executeUpdate();
226. //pengubahan jumlah_dipinjam dan sisa_buku ditable kategori_buku
227. //select data dahulu
228. String kdKategoriBuku = kdBuku.substring(0,4);
229. Statement stm_select = conn.createStatement();
230. String sql_select = "SELECT * FROM kategori_buku WHERE kode_kategori =
'"+ kdKategoriBuku +"'";
231. ResultSet rs_select = stm_select.executeQuery(sql_select);
232. if(rs_select.next()){
233. int jumlah_dipinjam = Integer.parseInt(rs_select.getString("jumlah_dipinjam"));
234. int sisa_buku = Integer.parseInt(rs_select.getString("sisa_buku"));
235. //proses ubah data
236. String sql_update = "UPDATE kategori_buku SET jumlah_dipinjam = ?,
sisa_buku = ? WHERE kode_kategori = '" + kdKategoriBuku +"'";
237. PreparedStatement stat_update = conn.prepareStatement(sql_update);
238. jumlah_dipinjam = jumlah_dipinjam - 1;
239. sisa_buku = sisa_buku + 1;
240. stat_update.setInt(1, jumlah_dipinjam);
241. stat_update.setInt(2, sisa_buku);
242. stat_update.executeUpdate();
243. loadData();
244. resetInput();
245. tampillabel();
246. }
247. }catch(SQLException e){
248. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
249. }
250. }
251. private void btnSelesaiTambahkanDataMouseClicked(java.awt.event.MouseEvent evt)
{
252. int ok = JOptionPane.showConfirmDialog(null,"Apakah anda yakin menyelesaikan
peminjaman","Konfirmasi Dialog",JOptionPane.YES_NO_CANCEL_OPTION);
253. if(ok == 0){
254. JOptionPane.showMessageDialog(this, "Berhasil meminjam buku");
255. tampilKdPinjam();
256. loadData();
257. resetInput();
258. tampillabel();
259. }else{
260. JOptionPane.showMessageDialog(this, "Gagal meminjam buku");
261. }
262. }
263.private void jTanggalPinjamPropertyChange(java.beans.PropertyChangeEvent evt) {
264. // TODO add your handling code here:
265. if (jTanggalPinjam.getDate()!=null){
266. tglPinjam = format.format(jTanggalPinjam.getDate());
267. }
268. }
269. private void jTanggalBatasPinjamPropertyChange(java.beans.PropertyChangeEvent
evt) {
270. // TODO add your handling code here:
271. if (jTanggalBatasPinjam.getDate()!=null){
272. tglBatasPinjam = format.format(jTanggalBatasPinjam.getDate());
273. }
274. }
275.private void tabel_peminjaman_bukuMouseClicked(java.awt.event.MouseEvent evt) {
276. try{
277. int table = tabel_peminjaman_buku.getSelectedRow();
278. kdPeminjaman = tabel_peminjaman_buku.getValueAt(table, 0).toString();
279. kdBuku = tabel_peminjaman_buku.getValueAt(table, 1).toString();
280. kdAnggota = tabel_peminjaman_buku.getValueAt(table, 2).toString();
281. Statement s = conn.createStatement();
282. String sql = "SELECT * FROM peminjaman_buku WHERE kode_buku =
'"+kdBuku+"' OR kode_peminjaman = '"+ kdPeminjaman +"'";
283. ResultSet rs = s.executeQuery(sql);
284. if(rs.next()){
285. fieldKodeBuku.setVisible(false);
286. labelkodebuku.setVisible(true);
287. labelKodePeminjaman.setText(rs.getString("kode_peminjaman"));
288. labelkodebuku.setText(rs.getString("kode_buku"));
289. fieldKodeAnggota.setText(rs.getString("kode_anggota"));
290. selectKurunWaktu.setSelectedItem(rs.getString("waktu_pinjam"));
291. jTanggalPinjam.setDate(rs.getDate("tgl_peminjaman"));
292. jTanggalBatasPinjam.setDate(rs.getDate("tgl_batas_peminjaman"));
293. }
294. } catch(Exception e){
295. System.out.println(e.getMessage());
296. }
297. }
298.private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
299. // TODO add your handling code here:
300. beranda b = new beranda();
301. b.setVisible(true);
302. this.dispose();
303. }
304. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
305. // TODO add your handling code here:
306. dataBuku db = new dataBuku();
307. db.setVisible(true);
308. this.dispose();
309. }
310. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
311. // TODO add your handling code here:
312. dataPetugas dp = new dataPetugas();
313. dp.setVisible(true);
314. this.dispose();
315. }
316. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
317. // TODO add your handling code here:
318. detailAnggota da = new detailAnggota();
319. da.setVisible(true);
320. this.dispose();
321. }
322. private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
323. // TODO add your handling code here:
324. pengembalian pe = new pengembalian();
325. pe.setVisible(true);
326. this.dispose();
327. }
328.private void MenuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
329. // TODO add your handling code here:
330. peminjamanBuku pb = new peminjamanBuku();
331. pb.setVisible(true);
332. this.dispose();
333. }
334. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
335. // TODO add your handling code here:
336. this.dispose();
337. }
338.public static void main(String args[]) {
339.java.awt.EventQueue.invokeLater(new Runnable() {
340. public void run() {
341. new prosesPeminjaman().setVisible(true);
342. }
343. });
344.// Variables declaration - do not modify
345. private javax.swing.JLabel MenuPeminjaman;
346. private javax.swing.JLabel background;
347. private javax.swing.JLabel btnEditData;
348. private javax.swing.JLabel btnHapusData;
349. private javax.swing.JLabel btnMasukkanData;
350. private javax.swing.JLabel btnSelesaiTambahkanData;
351. private javax.swing.JTextField fieldKodeAnggota;
352. private javax.swing.JTextField fieldKodeBuku;
353. private javax.swing.JScrollPane jScrollPane1;
354. private com.toedter.calendar.JDateChooser jTanggalBatasPinjam;
355. private com.toedter.calendar.JDateChooser jTanggalPinjam;
356. private javax.swing.JLabel jumlahPinjamBuku;
357. public static final javax.swing.JLabel kodepetugas = new javax.swing.JLabel();
358. private javax.swing.JLabel labelKodePeminjaman;
359. private javax.swing.JLabel labelkodebuku;
360. private javax.swing.JLabel menuBeranda;
361. private javax.swing.JLabel menuDataAnggota;
362. private javax.swing.JLabel menuDataBuku;
363. private javax.swing.JLabel menuDataPetugas;
364. private javax.swing.JLabel menuKeluarAkun;
365. private javax.swing.JLabel menuPengembalian;
366. private javax.swing.JComboBox<String> selectKurunWaktu;
367. private javax.swing.JTable tabel_peminjaman_buku;
368. // End of variables declaration
369.}

K. Form Pengembalian
1. package Program;
2. public class pengembalian extends javax.swing.JFrame {
3. /**
4. * Creates new form pengembalian
5. */
6. public pengembalian() {
7. initComponents();
8. }
9. private void inputPengembalianIndividuMouseClicked(java.awt.event.MouseEvent evt) {
10. // TODO add your handling code here:
11. prosesPengembalian pp = new prosesPengembalian();
12. pp.setVisible(true);
13. this.dispose();
14. }
15. private void inputPengembalianKelompokMouseClicked(java.awt.event.MouseEvent
evt) {
16. // TODO add your handling code here:
17. dataPengembalian dp = new dataPengembalian();
18. dp.setVisible(true);
19. this.dispose();
20. }
21. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
22. // TODO add your handling code here:
23. beranda b = new beranda();
24. b.setVisible(true);
25. this.dispose();
26. }
27. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
28. // TODO add your handling code here:
29. dataBuku db = new dataBuku();
30. db.setVisible(true);
31. this.dispose();
32. }
33. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
34. // TODO add your handling code here:
35. detailAnggota da = new detailAnggota();
36. da.setVisible(true);
37. this.dispose();
38. }
39. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
40. // TODO add your handling code here:
41. dataPetugas dp = new dataPetugas();
42. dp.setVisible(true);
43. this.dispose();
44. }
45. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
46. // TODO add your handling code here:
47. peminjamanBuku pb = new peminjamanBuku();
48. pb.setVisible(true);
49. this.dispose();
50. }
51. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
52. // TODO add your handling code here:
53. this.dispose();
54. }
55. /**
56. * @param args the command line arguments
57. */
58. public static void main(String args[]) {
59. /* Create and display the form */
60. java.awt.EventQueue.invokeLater(new Runnable() {
61. public void run() {
62. new pengembalian().setVisible(true);
63. }
64. });
65. }
66. // Variables declaration - do not modify
67. private javax.swing.JLabel background;
68. private javax.swing.JLabel inputPengembalianIndividu;
69. private javax.swing.JLabel inputPengembalianKelompok;
70. private javax.swing.JLabel menuBeranda;
71. private javax.swing.JLabel menuDataAnggota;
72. private javax.swing.JLabel menuDataBuku;
73. private javax.swing.JLabel menuDataPetugas;
74. private javax.swing.JLabel menuKeluarAkun;
75. private javax.swing.JLabel menuPeminjaman;
76. private javax.swing.JLabel menuPengembalian;
77. // End of variables declaration
78. }

L. Form Proses Pengembalian


1. package Program;
2. import static Program.prosesPeminjaman.kodepetugas;
3. import com.placeholder.PlaceHolder;
4. import java.sql.*;
5. import java.util.Calendar;
6. import java.awt.Color;
7. import java.awt.Font;
8. import java.sql.Connection;
9. import java.sql.PreparedStatement;
10. import java.sql.ResultSet;
11. import java.sql.SQLException;
12. import java.sql.Statement;
13. import java.util.GregorianCalendar;
14. import javax.swing.JOptionPane;
15. import javax.swing.table.DefaultTableModel;
16. import java.text.SimpleDateFormat;
17. import java.util.Date;
18. import koneksi.koneksi;
19. public class prosesPengembalian extends javax.swing.JFrame {
20. private Connection conn = new koneksi().getkoneksi();
21. private String kdPeminjaman, kdPetugas, kodeBuku, kdAnggota, waktuPeminjaman,
tglPinjam, tglBatasPinjam;
22. private String kdDataPinjam = "", tglHariIni;
23. private DefaultTableModel tabmode;
24. Statement stm;
25. ResultSet rs;
26. public static String idPetugas;
27. /** Creates new form prosesPengembalian */
28. public prosesPengembalian() {
29. initComponents();
30. idPetugas = masukAkun.getIdPetugas();
31. PlaceHolder holder1 = new PlaceHolder(cariData, "masukkan kata kunci");
32. tampilPeminjam();
33. datatable();
34. tablePengembalian.getTableHeader().setFont(new Font("Poppins Light",
Font.PLAIN, 13));
35. tablePengembalian.getTableHeader().setOpaque(false);
36. tablePengembalian.getTableHeader().setBackground(new Color(206, 18, 18));
37. tablePengembalian.getTableHeader().setForeground(new Color(255, 255, 255));
38. tanggalHariIni();
39. tanggalBatasPinjam.setText("0000-00-00");
40. kodePengembalian.setText("xxxxxxx");
41. }
42. private void tanggalHariIni(){
43. try{
44. Date ys = new Date(); // membuat oject ys dari class Date
45. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
46. tanggalPengembalian.setText(s.format(ys));
47. tglHariIni = s.format(ys);
48. }catch(Exception e){
49. System.out.println(e.getMessage());
50. }
51. }
52. private void tampilJumlahBuku(){
53. try{
54. Statement s = conn.createStatement();
55. String sql = "SELECT COUNT(kode_buku) FROM peminjaman_buku";
56. ResultSet rs = s.executeQuery(sql);
57. if(rs.next()){
58. jumlahBukuDipinjam.setText(rs.getString("COUNT(kode_buku)"));
59. }
60. } catch(Exception e){
61. System.out.println(e.getMessage());
62. }
63. }
64. private void tampilPeminjam(){
65. try{
66. Statement s = conn.createStatement();
67. String sql = "SELECT COUNT(DISTINCT kode_peminjaman) FROM
peminjaman_buku";
68. ResultSet rs = s.executeQuery(sql);
69. while(rs.next()){
70. System.out.println(rs.getString("COUNT(DISTINCT kode_peminjaman)"));
71. jumlahPeminjaman.setText(rs.getString("COUNT(DISTINCT
kode_peminjaman)"));
72. }
73. } catch(Exception e){
74. System.out.println(e.getMessage());
75. }
76. }
77. protected void datatable(){
78. try{
79. Object [] Baris = {"Kode Pinjam","Kode Petugas" ,"Kode Buku","Kode
Anggota","Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
80. tabmode = new DefaultTableModel(null,Baris);
81. tablePengembalian.setModel(tabmode);
82. String sql = "SELECT * FROM peminjaman_buku ";
83. java.sql.Statement stat = conn.createStatement();
84. ResultSet hasil = stat.executeQuery(sql);
85. while(hasil.next()){
86. String a = hasil.getString("kode_peminjaman");
87. String b = hasil.getString("kode_petugas");
88. String c = hasil.getString("kode_buku");
89. String d = hasil.getString("kode_anggota");
90. String e = hasil.getString("waktu_pinjam");
91. String f = hasil.getString("tgl_peminjaman");
92. String g = hasil.getString("tgl_batas_peminjaman");
93. String[] data = {a,b,c,d,e,f,g};
94. tabmode.addRow(data);
95. }
96. tampilJumlahBuku();
97. } catch(Exception e){
98. System.out.print(e);
99. }
100. }
101.private void pernyataanPengembalian(){
102. try{
103. //menentukan pernyataan telat/tidak dalam mengembalikan buku
104. int tahunBatasPengembalian = Integer.parseInt(tglBatasPinjam.substring(0,4));
105. int bulanBatasPengembalian = Integer.parseInt(tglBatasPinjam.substring(5,7));
106. int hariBatasPengembalian = Integer.parseInt(tglBatasPinjam.substring(8));
107. int tahunHariIni = Integer.parseInt(tglHariIni.substring(0,4));
108. int bulanHariIni = Integer.parseInt(tglHariIni.substring(5,7));
109. int hariIni = Integer.parseInt(tglHariIni.substring(8));
110. //cek tahun
111. boolean telatTahun = false;
112. if(tahunBatasPengembalian >= tahunHariIni){
113. telatTahun = false;
114. }else{
115. telatTahun = true;
116. }
117. //cek bulan
118. boolean telatBulan = false;
119. if(bulanBatasPengembalian >= bulanHariIni){
120. telatBulan = false;
121. }else{
122. telatBulan = true;
123. }
124. //cek hari
125. boolean telatHari = false;
126. if(hariBatasPengembalian >= hariIni){
127. telatHari = false;
128. }else{
129. telatHari = true;
130. }
131. if(telatTahun == false && telatBulan == false && telatHari == false){
132. keteranganPengembalian.setText("ANGGOTA TIDAK TERLAMBAT
MENGEMBALIKAN BUKU");
133. }else{
134. keteranganPengembalian.setText("ANGGOTA TERLAMBAT
MENGEMBALIKAN BUKU!!");
135. }
136. }catch(Exception e){
137. System.out.println(e);
138. }
139. }
140. private void menentukanKodePengembalian(){
141. try{
142. Statement s = conn.createStatement();
143. String sql = "SELECT kode_pengembalian FROM pengembalian_buku WHERE "
144. + "kode_peminjaman = '"+ kdPeminjaman +"' AND kode_anggota = '"+
kdAnggota +"' "
145. + "AND tgl_peminjaman = '"+ tglPinjam +"'";
146. ResultSet rs = s.executeQuery(sql);
147.
148. if(rs.next()){
149. kodePengembalian.setText(rs.getString("kode_pengembalian"));
150. }else{
151. newKodePengembalian();
152. }
153. }catch(Exception e){
154. System.out.println(e);
155. }
156. }
157. private void newKodePengembalian(){
158. try{
159. Statement s = conn.createStatement();
160. String sql = "SELECT kode_pengembalian FROM pengembalian_buku ORDER
BY kode_pengembalian DESC";
161. ResultSet rs = s.executeQuery(sql);
162. if(rs.next()){
163. String noKode = rs.getString("kode_pengembalian").substring(5);
164. String an = "" + (Integer.parseInt(noKode) + 1);
165. String nol = "";
166. if(an.length() == 1){
167. nol = "000";
168. }else if(an.length() == 2){
169. nol = "00";
170. }else if(an.length() == 3){
171. nol = "0";
172. }else if(an.length() == 4){
173. nol = "";
174. }
175. kodePengembalian.setText("PBI" + nol + an);
176. }else{
177. kodePengembalian.setText("PBI0001");
178. }
179. }catch(Exception e){
180. System.out.println(e);
181. }
182. }
183. private void resetElement(){
184. tanggalHariIni();
185. tampilPeminjam();
186. tampilJumlahBuku();
187. datatable();
188. keteranganPengembalian.setText("");
189. tanggalBatasPinjam.setText("0000-00-00");
190. kodePengembalian.setText("xxxxxxx");
191. kondisiBuku.setSelectedIndex(0);
192. }
193.private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
194.// // TODO add your handling code here:
195. beranda b = new beranda();
196. b.setVisible(true);
197. this.dispose();
198. }
199.private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
200. // TODO add your handling code here:
201. dataBuku db = new dataBuku();
202. db.setVisible(true);
203. this.dispose();
204. }
205.private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
206. // TODO add your handling code here:
207. detailAnggota da = new detailAnggota();
208. da.setVisible(true);
209. this.dispose();
210. }
211.private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
212. // TODO add your handling code here:
213. dataPetugas dp = new dataPetugas();
214. dp.setVisible(true);
215. this.dispose();
216. }
217.private void btncariMouseClicked(java.awt.event.MouseEvent evt) {
218. // TODO add your handling code here:
219. try{
220. Object [] Baris = {"Kode Pinjam", "Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
221. tabmode = new DefaultTableModel(null,Baris);
222. tablePengembalian.setModel(tabmode);
223. String sql = "SELECT kode_peminjaman, kode_petugas, kode_buku,
kode_anggota, waktu_pinjam, tgl_peminjaman, tgl_batas_peminjaman FROM
peminjaman_buku WHERE "
224. + "kode_peminjaman like '%" + cariData.getText() + "%' "
225. + "or kode_buku like '%" + cariData.getText() + "%' "
226. + "or kode_anggota like '%" + cariData.getText() + "%' ";
227. java.sql.Statement stat = conn.createStatement();
228. ResultSet hasil = stat.executeQuery(sql);
229. while(hasil.next()){
230. String a = hasil.getString("kode_peminjaman");
231. String b = hasil.getString("kode_petugas");
232. String c = hasil.getString("kode_buku");
233. String d = hasil.getString("kode_anggota");
234. String e = hasil.getString("waktu_pinjam");
235. String f = hasil.getString("tgl_peminjaman");
236. String g = hasil.getString("tgl_batas_peminjaman");
237. String[] data = {a,b,c,d,e,f,g};
238. tabmode.addRow(data);
239. }
240. tampilJumlahBuku();
241. } catch(Exception e){
242. System.out.print(e);
243. }
244. }
245.private void cariDataKeyTyped(java.awt.event.KeyEvent evt) {
246. // TODO add your handling code here:
247. try{
248. Object [] Baris = {"Kode Pinjam", "Kode Petugas", "Kode Buku", "Kode
Anggota", "Waktu Peminjaman","Tanggal Pinjam","Tanggal Batas Pinjam"};
249. tabmode = new DefaultTableModel(null,Baris);
250. tablePengembalian.setModel(tabmode);
251.
252. String sql = "SELECT kode_peminjaman, kode_petugas, kode_buku,
kode_anggota, waktu_pinjam, tgl_peminjaman, tgl_batas_peminjaman FROM
peminjaman_buku WHERE kode_peminjaman like '%" + cariData.getText() + "%' "
253. + "or kode_buku like '%" + cariData.getText() + "%' "
254. + "or kode_anggota like '%" + cariData.getText() + "%' ";
255. java.sql.Statement stat = conn.createStatement();
256. ResultSet hasil = stat.executeQuery(sql);
257. while(hasil.next()){
258. String a = hasil.getString("kode_peminjaman");
259. String b = hasil.getString("kode_petugas");
260. String c = hasil.getString("kode_buku");
261. String d = hasil.getString("kode_anggota");
262. String e = hasil.getString("waktu_pinjam");
263. String f = hasil.getString("tgl_peminjaman");
264. String g = hasil.getString("tgl_batas_peminjaman");
265. String[] data = {a,b,c,d,e,f,g};
266. tabmode.addRow(data);
267. }
268. tampilJumlahBuku();
269. } catch(Exception e){
270. System.out.print(e);
271. }
272. }
273.private void btnSelesaiPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
274. try{
275. if(kodePengembalian.getText().equals("xxxxxxx")){
276. JOptionPane.showMessageDialog(null, "Pilih data pada tabel!");
277. } else if(kondisiBuku.getSelectedItem().toString() == "- pilih -"){
278. JOptionPane.showMessageDialog(null, "Pilih kondisi buku");
279. } else {
280. //input data ke table pengembalian_buku
281. String sql_insert = "INSERT INTO pengembalian_buku VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
282. PreparedStatement stat_insert = conn.prepareStatement(sql_insert);
283. stat_insert.setString(1, kodePengembalian.getText());
284. stat_insert.setString(2, kdPeminjaman);
285. stat_insert.setString(3, idPetugas);
286. stat_insert.setString(4, kodeBuku);
287. stat_insert.setString(5, kdAnggota);
288. stat_insert.setString(6, kondisiBuku.getSelectedItem().toString());
289. stat_insert.setString(7, waktuPeminjaman);
290. stat_insert.setString(8, tglPinjam);
291. stat_insert.setString(9, tglBatasPinjam);
292. stat_insert.setString(10, tanggalPengembalian.getText());
293. stat_insert.executeUpdate();
294. //hapus data di table peminjaman_buku
295. String sql_delete = "DELETE FROM peminjaman_buku WHERE "
296. + "kode_peminjaman = '"+ kdPeminjaman +"' AND "
297. + "kode_buku = '"+ kodeBuku +"' AND "
298. + "kode_anggota = '"+ kdAnggota+"' AND "
299. + "tgl_batas_peminjaman = '"+ tglBatasPinjam +"'";
300. PreparedStatement stat_delete = conn.prepareStatement(sql_delete);
301. stat_delete.executeUpdate();
302. //ubah data jumlah_dipinjam dan sisa_buku pada table kategori_buku
303. //cari data dahulu di table kategori_buku
304. String kdkategori = kodeBuku.substring(0,4);
305. Statement s = conn.createStatement();
306. String sql_select = "SELECT * FROM kategori_buku WHERE kode_kategori =
'"+ kdkategori +"'";
307. ResultSet rs_select = s.executeQuery(sql_select);
308. System.out.println(kdkategori);
309. if(rs_select.next()){
310. System.out.println("masuk if select btn");
311. int jumlah_dipinjam = Integer.parseInt(rs_select.getString("jumlah_dipinjam"));
312. int sisa_buku = Integer.parseInt(rs_select.getString("sisa_buku"));
313. //proses ubah data
314. String sql_update = "UPDATE kategori_buku SET jumlah_dipinjam = ?,
sisa_buku = ? WHERE kode_kategori = '" + kdkategori +"'";
315. PreparedStatement stat = conn.prepareStatement(sql_update);
316. jumlah_dipinjam = jumlah_dipinjam - 1;
317. sisa_buku = sisa_buku + 1;
318. System.out.println(jumlah_dipinjam);
319. System.out.println(sisa_buku);
320. stat.setInt(1, jumlah_dipinjam);
321. stat.setInt(2, sisa_buku);
322. stat.executeUpdate();
323. resetElement();
324. JOptionPane.showMessageDialog(null, "Berhasil Dikembalikan");
325. }else{
326. JOptionPane.showMessageDialog(null, "Gagal Dikembalikan");
327. }
328. }
329. }catch(Exception e){
330. System.out.println(e);
331. }
332. }
333. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
334. // TODO add your handling code here:
335. peminjamanBuku da = new peminjamanBuku();
336. da.setVisible(true);
337. this.dispose();
338. }
339.private void tablePengembalianMouseClicked(java.awt.event.MouseEvent evt) {
340. try{
341. int table = tablePengembalian.getSelectedRow();
342. kdPeminjaman = tablePengembalian.getValueAt(table, 0).toString();
343. kodeBuku = tablePengembalian.getValueAt(table, 2).toString();
344. kdAnggota = tablePengembalian.getValueAt(table, 3).toString();
345. waktuPeminjaman = tablePengembalian.getValueAt(table, 4).toString();
346. tglPinjam = tablePengembalian.getValueAt(table, 5).toString();
347. tglBatasPinjam = tablePengembalian.getValueAt(table, 6).toString();
348. tanggalBatasPinjam.setText(tglBatasPinjam);
349. pernyataanPengembalian();
350. menentukanKodePengembalian();
351. } catch(Exception e){
352. System.out.println(e.getMessage());
353. }
354.private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
355. // TODO add your handling code here:
356. pengembalian pe = new pengembalian();
357. pe.setVisible(true);
358. this.dispose();
359. }
360.public static void main(String args[]) {
361.java.awt.EventQueue.invokeLater(new Runnable() {
362. public void run() {
363. new prosesPengembalian().setVisible(true);
364. }
365. });
366. }
367.
368. // Variables declaration - do not modify
369. private javax.swing.JLabel background;
370. private javax.swing.JLabel btnSelesaiPengembalian;
371. private javax.swing.JLabel btncari;
372. private javax.swing.JTextField cariData;
373. private javax.swing.JPanel jPanel2;
374. private javax.swing.JScrollPane jScrollPane1;
375. private javax.swing.JLabel jumlahBukuDipinjam;
376. private javax.swing.JLabel jumlahPeminjaman;
377. private javax.swing.JLabel keluarAkun;
378. private javax.swing.JLabel keteranganPengembalian;
379. private javax.swing.JLabel kodePengembalian;
380. private javax.swing.JComboBox<String> kondisiBuku;
381. private javax.swing.JLabel menuBeranda;
382. private javax.swing.JLabel menuDataAnggota;
383. private javax.swing.JLabel menuDataBuku;
384. private javax.swing.JLabel menuDataPetugas;
385. private javax.swing.JLabel menuPeminjaman;
386. private javax.swing.JLabel menuPengembalian;
387. private javax.swing.JTable tablePengembalian;
388. private javax.swing.JLabel tanggalBatasPinjam;
389. private javax.swing.JLabel tanggalPengembalian;
390. // End of variables declaration
391.}

M. Form Data Pengembalian


1. package Program;
2. import static Program.prosesPengembalian.idPetugas;
3. import com.placeholder.PlaceHolder;
4. import java.sql.*;
5. import java.util.Calendar;
6. import java.awt.Color;
7. import java.awt.Font;
8. import java.io.File;
9. import java.sql.Connection;
10. import java.sql.PreparedStatement;
11. import java.sql.ResultSet;
12. import java.sql.SQLException;
13. import java.sql.Statement;
14. import java.util.GregorianCalendar;
15. import javax.swing.JOptionPane;
16. import javax.swing.table.DefaultTableModel;
17. import java.text.SimpleDateFormat;
18. import java.util.Date;
19. import java.util.HashMap;
20. import java.util.Map;
21. import java.util.logging.Level;
22. import java.util.logging.Logger;
23. import koneksi.koneksi;
24. import net.sf.jasperreports.engine.JasperCompileManager;
25. import net.sf.jasperreports.engine.JasperFillManager;
26. import net.sf.jasperreports.engine.JasperPrint;
27. import net.sf.jasperreports.engine.JasperReport;
28. import net.sf.jasperreports.engine.design.JasperDesign;
29. import net.sf.jasperreports.engine.xml.JRXmlLoader;
30. import net.sf.jasperreports.view.JasperViewer;
31. public class dataPengembalian extends javax.swing.JFrame {
32. private Connection conn = new koneksi().getkoneksi();
33. ///cek lagi bagian var nya. sama atau kaga
34. private String kdDataPengembalian= "", kdKondisi, tglHariIni;
35. private String kdPengembalian,kdPeminjaman, kdBuku, kdAnggota,
tglPengembalianBefore, getKondisiCetak, kndsiBuku;
36. private DefaultTableModel tabmode;
37. ///tambahin yg ini
38. public String tglPengembalian;
39. SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd");
40. ///
41. Statement stm;
42. ResultSet rs;
43. public static String kodeBuku;
44. public dataPengembalian() {
45. initComponents();
46. PlaceHolder holder1 = new PlaceHolder(fieldCariData, "masukkan kata kunci");
47. tampilPengembalian();
48. tampilBukuDikembalikan();
49. tanggalHariIni();
50. datatable();
51. kode_kategori.hide();
52. tabelPengembalian.getTableHeader().setFont(new Font("Poppins Light",
Font.PLAIN, 13));
53. tabelPengembalian.getTableHeader().setOpaque(false);
54. tabelPengembalian.getTableHeader().setBackground(new Color(206, 18, 18));
55. tabelPengembalian.getTableHeader().setForeground(new Color(255, 255, 255));
56. }
57. private void resetInput(){
58. tampilPengembalian();
59. tampilBukuDikembalikan();
60. datatable();
61. labelKodePengembalian.setText("XXXXX");
62. kode_kategori.setText("");
63. kondisiBuku.setSelectedIndex(0);
64. }
65. private void tanggalHariIni(){
66. try{
67. Date ys = new Date(); // membuat oject ys dari class Date
68. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd"); //membuat object
s dari class SimpleDateFormat dengan format (dd-MM-yyyy)yaitu (tanggal-bulan-tahun).
69. tglHariIni = s.format(ys);
70. }catch(Exception e){
71. System.out.println(e.getMessage());
72. }
73. }
74. private void tampilPengembalian(){
75. try{
76. Statement s = conn.createStatement();
77. String sql = "SELECT COUNT(DISTINCT kode_pengembalian) FROM
pengembalian_buku";
78. ResultSet rs = s.executeQuery(sql);
79. while(rs.next()){
80. System.out.println(rs.getString("COUNT(DISTINCT kode_pengembalian)"));
81. jumlahPengembalian.setText(rs.getString("COUNT(DISTINCT
kode_pengembalian)"));
82. }
83. } catch(Exception e){
84. System.out.println(e.getMessage());
85. }
86. }
87. private void tampilBukuDikembalikan(){
88. try{
89. Statement s = conn.createStatement();
90. String sql = "SELECT COUNT(kode_buku) FROM pengembalian_buku";
91. ResultSet rs = s.executeQuery(sql);
92. while(rs.next()){
93. jumlahBukuDikembalikan.setText(rs.getString("COUNT(kode_buku)"));
94. }
95. }catch(Exception e){
96. System.out.println(e.getMessage());
97. }
98. }
99. protected void datatable(){
100. try{
101. Object [] Baris = {"Kode Pengembalian","Kode Pinjam","Kode Petugas","Kode
Buku","Kode Anggota","Kondisi Buku","Tanggal Pengembalian"};
102. tabmode = new DefaultTableModel(null,Baris);
103. tabelPengembalian.setModel(tabmode);
104. String sql = "SELECT * FROM pengembalian_buku ORDER BY
kode_pengembalian ASC";
105. java.sql.Statement stat = conn.createStatement();
106. ResultSet hasil = stat.executeQuery(sql);
107. while(hasil.next()){
108. String a = hasil.getString("kode_pengembalian");
109. String b = hasil.getString("kode_peminjaman");
110. String c = hasil.getString("kode_petugas");
111. String d = hasil.getString("kode_buku");
112. String e = hasil.getString("kode_anggota");
113. String f = hasil.getString("kondisi_buku");
114. String g = hasil.getString("tgl_pengembalian");
115. String[] data = {a,b,c,d,e,f,g};
116. tabmode.addRow(data);
117. }
118. tampilBukuDikembalikan();
119. }catch(Exception e){
120. System.out.print(e);
121. }
122. }
123.private void btncariMouseClicked(java.awt.event.MouseEvent evt) {
124. // TODO add your handling code here:
125. try{
126. Object [] Baris = {"Kode Pengembalian","Kode Pinjam","Kode Petugas","Kode
Buku","Kode Anggota","Kondisi Buku","Tanggal Pengembalian"};
127. tabmode = new DefaultTableModel(null,Baris);
128. tabelPengembalian.setModel(tabmode);
129. String sql = "SELECT * FROM pengembalian_buku WHERE kode_pengembalian
like '%" + fieldCariData.getText() + "%' "
130. + "or kode_peminjaman like '%" + fieldCariData.getText() + "%' "
131. + "or kode_anggota like '%" + fieldCariData.getText() + "%' "
132. + "or tgl_pengembalian like '%" + fieldCariData.getText() + "%' ";
133. java.sql.Statement stat = conn.createStatement();
134. ResultSet hasil = stat.executeQuery(sql);
135. while(hasil.next()){
136. String a = hasil.getString("kode_pengembalian");
137. String b = hasil.getString("kode_peminjaman");
138. String c = hasil.getString("kode_petugas");
139. String d = hasil.getString("kode_buku");
140. String e = hasil.getString("kode_anggota");
141. String f = hasil.getString("kondisi_buku");
142. String g = hasil.getString("tgl_pengembalian");
143. String[] data = {a,b,c,d,e,f,g};
144. tabmode.addRow(data);
145. }
146. }catch(Exception e){
147. System.out.print(e);
148. }
149. }
150.private void fieldCariDataKeyTyped(java.awt.event.KeyEvent evt) {
151. // TODO add your handling code here:
152. try{
153. Object [] Baris = {"Kode Pengembalian","Kode Pinjam","Kode Petugas","Kode
Buku","Kode Anggota","Kondisi Buku","Tanggal Pengembalian"};
154. tabmode = new DefaultTableModel(null,Baris);
155. tabelPengembalian.setModel(tabmode);
156. String sql = "SELECT * FROM pengembalian_buku WHERE kode_pengembalian
like '%" + fieldCariData.getText() + "%' "
157. + "or kode_peminjaman like '%" + fieldCariData.getText() + "%' "
158. + "or kode_petugas like '%" + fieldCariData.getText() + "%' "
159. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
160. + "or kondisi_buku like '%" + fieldCariData.getText() + "%' "
161. + "or tgl_pengembalian like '%" + fieldCariData.getText() + "%' "
162. + "or kode_anggota like '%" + fieldCariData.getText() + "%' ";
163. // + "ORDER BY kode_anggota ASC";
164. java.sql.Statement stat = conn.createStatement();
165. ResultSet hasil = stat.executeQuery(sql);
166. while(hasil.next()){
167. String a = hasil.getString("kode_pengembalian");
168. String b = hasil.getString("kode_peminjaman");
169. String c = hasil.getString("kode_petugas");
170. String d = hasil.getString("kode_buku");
171. String e = hasil.getString("kode_anggota");
172. String f = hasil.getString("kondisi_buku");
173. String g = hasil.getString("tgl_pengembalian");
174. String[] data = {a,b,c,d,e,f,g};
175. tabmode.addRow(data);
176. }
177. }catch(Exception e){
178. System.out.print(e);
179. }
180. }
181.private void btnUbahDataMouseClicked(java.awt.event.MouseEvent evt) {
182. // TODO add your handling code here:
183. kdKondisi = (String) kondisiBuku.getSelectedItem();
184. try{
185. if(!kdDataPengembalian.equals("")){
186. JOptionPane.showMessageDialog(null, "hanya bisa melakukan aksi edit data!");
187. }else if(kondisiBuku.getSelectedItem().toString() == "- pilih -"){
188. JOptionPane.showMessageDialog(null, "Pilih kondisi buku");
189. }else{
190. ///tambahin yg ini
191. String sql = "UPDATE pengembalian_buku SET kondisi_buku = ?,
tgl_pengembalian = ? "
192. + "WHERE kode_pengembalian = ? AND kode_peminjaman = ? AND
kode_buku = ? "
193. + "AND kode_anggota = ? AND tgl_pengembalian = ?";
194. PreparedStatement stat = (PreparedStatement) conn.prepareStatement(sql);
195. stat.setString(1, kdKondisi);
196. stat.setString(2, tglPengembalian);
197. stat.setString(3, kdPengembalian);
198. stat.setString(4, kdPeminjaman);
199. stat.setString(5, kdBuku);
200. stat.setString(6, kdAnggota);
201. stat.setString(7, tglPengembalianBefore);
202. stat.executeUpdate();
203. JOptionPane.showMessageDialog(null, "Data Berhasil Di ubah");
204. datatable();
205. tampilPengembalian();
206. tampilBukuDikembalikan();
207. }
208. }catch (SQLException ex) {
209. Logger.getLogger(dataPeminjaman.class.getName()).log(Level.SEVERE, null,
ex);
210. }
211. }
212.private void btnHapusDataMouseClicked(java.awt.event.MouseEvent evt) {
213. // TODO add your handling code here:
214. try{
215. int table = tabelPengembalian.getSelectedRow();
216. kodeBuku = tabelPengembalian.getValueAt(table, 3).toString();
217. int ok = JOptionPane.showConfirmDialog(null,"Apakah anda yakin akan
menghapus data?","Konfirmasi",JOptionPane.YES_NO_CANCEL_OPTION);
218. if(ok == 0){
219. String sql = "DELETE FROM pengembalian_buku WHERE kode_buku
='"+kodeBuku+"'";
220. PreparedStatement stat = conn.prepareStatement(sql);
221. stat.executeUpdate();
222. JOptionPane.showMessageDialog(this, "Data Berhasil DiHapus");
223. resetInput();
224. tampilPengembalian();
225. tampilBukuDikembalikan();
226. datatable();
227. }else{
228. JOptionPane.showMessageDialog(this, "Anda tidak jadi menghapus data");
229. }
230. }catch(SQLException e){
231. JOptionPane.showMessageDialog(null, "Data Gagal DiHapus" + e);
232. }
233. }
234.private void menuPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
235. // TODO add your handling code here:
236. pengembalian p = new pengembalian();
237. p.setVisible(true);
238. this.dispose();
239. }
240. private void menuBerandaMouseClicked(java.awt.event.MouseEvent evt) {
241. // TODO add your handling code here:
242. beranda b = new beranda();
243. b.setVisible(true);
244. this.dispose();
245. }
246. private void menuDataBukuMouseClicked(java.awt.event.MouseEvent evt) {
247. // TODO add your handling code here:
248. dataBuku db = new dataBuku();
249. db.setVisible(true);
250. this.dispose();
251. }
252. private void menuDataAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
253. // TODO add your handling code here:
254. detailAnggota da = new detailAnggota();
255. da.setVisible(true);
256. this.dispose();
257. }
258. private void menuDataPetugasMouseClicked(java.awt.event.MouseEvent evt) {
259. // TODO add your handling code here:
260. dataPetugas dp = new dataPetugas();
261. dp.setVisible(true);
262. this.dispose();
263. }
264. private void menuPeminjamanMouseClicked(java.awt.event.MouseEvent evt) {
265. // TODO add your handling code here:
266. peminjamanBuku pb = new peminjamanBuku();
267. pb.setVisible(true);
268. this.dispose();
269. }
270. private void tabelPengembalianMouseClicked(java.awt.event.MouseEvent evt) {
271. try{
272. int table = tabelPengembalian.getSelectedRow();
273. kdPengembalian = tabelPengembalian.getValueAt(table, 0).toString();
274. ///tambahin yg ini
275. kdPeminjaman = tabelPengembalian.getValueAt(table, 1).toString();
276. kdBuku = tabelPengembalian.getValueAt(table, 3).toString();
277. kdAnggota = tabelPengembalian.getValueAt(table, 4).toString();
278. kndsiBuku = tabelPengembalian.getValueAt(table, 5).toString();
279. tglPengembalianBefore = tabelPengembalian.getValueAt(table, 6).toString();
280. ///tambahin yg ini
281. Statement s = conn.createStatement();
282. String sql = "SELECT * FROM pengembalian_buku WHERE kode_pengembalian
= '"+ kdPengembalian +"' "
283. + "AND kode_buku = '"+ kdBuku +"' "
284. + "AND kode_anggota = '"+ kdAnggota +"'";
285. ResultSet rs = s.executeQuery(sql);
286. System.out.println("mulai tampil = " + kdPengembalian);
287. System.out.println(kdPeminjaman);
288. System.out.println(kdBuku);
289. System.out.println(kdAnggota);
290. System.out.println(tglPengembalianBefore);
291. System.out.println(kndsiBuku);
292. if(rs.next()){
293. labelKodePengembalian.setText(rs.getString("kode_pengembalian"));
294. kondisiBuku.setSelectedItem(rs.getString("kondisi_buku"));
295. ///tambahin yg ini
296. jTanggalPengembalian.setDate(rs.getDate("tgl_pengembalian"));
297. ///
298. }
299. }catch(Exception e){
300. System.out.println(e.getMessage());
301. }
302. }
303.private void jTanggalPengembalianPropertyChange(java.beans.PropertyChangeEvent evt)
{
304. ///tambahin yg ini
305. if(jTanggalPengembalian.getDate() != null){
306. tglPengembalian = format.format(jTanggalPengembalian.getDate());
307. }
308. }
309. private void menuKeluarAkunMouseClicked(java.awt.event.MouseEvent evt) {
310. // TODO add your handling code here:
311. this.dispose();
312. }
313.private void btnCetakDataMouseClicked(java.awt.event.MouseEvent evt) {
314. // TODO add your handling code here:
315. try{
316. getKondisiCetak = (String) urutkanData.getSelectedItem();
317. if(getKondisiCetak.equals("== Pilih Kondisi ==")){
318. //kasih alert
319. JOptionPane.showMessageDialog(this, "Pilih kondisi terlebih dahulu!!");
320. }else if(getKondisiCetak.equals("Seluruh Data")){
321. //cetak semua
322. Map<String, Object> parameter2 = new HashMap <String, Object>();
323. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/LaporanPengembalian.jrxml");
324. Class.forName("com.mysql.jdbc.Driver");
325. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
326. parameter2.put("kondisi", "%20%");
327. JasperDesign jasperDesign = JRXmlLoader.load(file);
328. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
329. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter2,
conn);
330. JasperViewer.viewReport(jasperPrint, false);
331.
332. }else if(getKondisiCetak.equals("Data Hari Ini")){
333. //data hari ini
334. Map<String, Object> parameter1 = new HashMap <String, Object>();
335. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/LaporanPengembalian.jrxml");
336. Class.forName("com.mysql.jdbc.Driver");
337. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
338. parameter1.put("kondisi", tglHariIni);
339. System.out.println(tglHariIni);
340. JasperDesign jasperDesign = JRXmlLoader.load(file);
341. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
342. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter1,
conn);
343. JasperViewer.viewReport(jasperPrint, false);
344. }else if(getKondisiCetak.equals("Kondisi Pencarian")){
345. //data hari ini
346. Map<String, Object> parameter = new HashMap <String, Object>();
347. File file = new File("D:/Project
KKP/perpustakaanSDNCimanggis01/src/Laporan/LaporanPengembalian.jrxml");
348. Class.forName("com.mysql.jdbc.Driver");
349. Connection conn = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost/perpustakaan", "root", "");
350. parameter.put("kondisi", fieldCariData.getText());
351. JasperDesign jasperDesign = JRXmlLoader.load(file);
352. JasperReport jasperReport =
JasperCompileManager.compileReport(jasperDesign);
353. JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameter,
conn);
354. JasperViewer.viewReport(jasperPrint, false);
355. }
356. }catch(Exception e){
357.// System.out.println(e);
358. JOptionPane.showMessageDialog(this, "ada kesalahan " + e);
359. }
360. }
361.private void fieldCariDataKeyPressed(java.awt.event.KeyEvent evt) {
362. // TODO add your handling code here:
363. try{
364. Object [] Baris = {"Kode Pengembalian","Kode Pinjam","Kode Petugas","Kode
Buku","Kode Anggota","Kondisi Buku","Tanggal Pengembalian"};
365. tabmode = new DefaultTableModel(null,Baris);
366. tabelPengembalian.setModel(tabmode);
367.
368. String sql = "SELECT * FROM pengembalian_buku WHERE kode_pengembalian
like '%" + fieldCariData.getText() + "%' "
369. + "or kode_peminjaman like '%" + fieldCariData.getText() + "%' "
370. + "or kode_petugas like '%" + fieldCariData.getText() + "%' "
371. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
372. + "or kondisi_buku like '%" + fieldCariData.getText() + "%' "
373. + "or tgl_pengembalian like '%" + fieldCariData.getText() + "%' "
374. + "or kode_anggota like '%" + fieldCariData.getText() + "%' ";
375. // + "ORDER BY kode_anggota ASC";
376. java.sql.Statement stat = conn.createStatement();
377. ResultSet hasil = stat.executeQuery(sql);
378. while(hasil.next()){
379. String a = hasil.getString("kode_pengembalian");
380. String b = hasil.getString("kode_peminjaman");
381. String c = hasil.getString("kode_petugas");
382. String d = hasil.getString("kode_buku");
383. String e = hasil.getString("kode_anggota");
384. String f = hasil.getString("kondisi_buku");
385. String g = hasil.getString("tgl_pengembalian");
386. String[] data = {a,b,c,d,e,f,g};
387. tabmode.addRow(data);
388. }
389. }catch(Exception e){
390. System.out.print(e);
391. }
392. }
393.private void fieldCariDataKeyReleased(java.awt.event.KeyEvent evt) {
394. // TODO add your handling code here:
395. try{
396. Object [] Baris = {"Kode Pengembalian","Kode Pinjam","Kode Petugas","Kode
Buku","Kode Anggota","Kondisi Buku","Tanggal Pengembalian"};
397. tabmode = new DefaultTableModel(null,Baris);
398. tabelPengembalian.setModel(tabmode);
399. String sql = "SELECT * FROM pengembalian_buku WHERE kode_pengembalian
like '%" + fieldCariData.getText() + "%' "
400. + "or kode_peminjaman like '%" + fieldCariData.getText() + "%' "
401. + "or kode_petugas like '%" + fieldCariData.getText() + "%' "
402. + "or kode_buku like '%" + fieldCariData.getText() + "%' "
403. + "or kondisi_buku like '%" + fieldCariData.getText() + "%' "
404. + "or tgl_pengembalian like '%" + fieldCariData.getText() + "%' "
405. + "or kode_anggota like '%" + fieldCariData.getText() + "%' ";
406. // + "ORDER BY kode_anggota ASC";
407. java.sql.Statement stat = conn.createStatement();
408. ResultSet hasil = stat.executeQuery(sql);
409. while(hasil.next()){
410. String a = hasil.getString("kode_pengembalian");
411. String b = hasil.getString("kode_peminjaman");
412. String c = hasil.getString("kode_petugas");
413. String d = hasil.getString("kode_buku");
414. String e = hasil.getString("kode_anggota");
415. String f = hasil.getString("kondisi_buku");
416. String g = hasil.getString("tgl_pengembalian");
417. String[] data = {a,b,c,d,e,f,g};
418. tabmode.addRow(data);
419. }
420. }catch(Exception e){
421. System.out.print(e);
422. }
423. }
424. /**
425. * @param args the command line arguments
426. */
427. public static void main(String args[]) {
428.java.awt.EventQueue.invokeLater(new Runnable() {
429. public void run() {
430. new dataPengembalian().setVisible(true);
431. }
432. });
433. }
434. // Variables declaration - do not modify
435. private javax.swing.JLabel background;
436. private javax.swing.JLabel btnCetakData;
437. private javax.swing.JLabel btnHapusData;
438. private javax.swing.JLabel btnUbahData;
439. private javax.swing.JLabel btncari;
440. private javax.swing.JTextField fieldCariData;
441. private javax.swing.JScrollPane jScrollPane1;
442. private com.toedter.calendar.JDateChooser jTanggalPengembalian;
443. private javax.swing.JLabel jumlahBukuDikembalikan;
444. private javax.swing.JLabel jumlahPengembalian;
445. private javax.swing.JTextField kode_kategori;
446. private javax.swing.JComboBox<String> kondisiBuku;
447. private javax.swing.JLabel labelKodePengembalian;
448. private javax.swing.JLabel menuBeranda;
449. private javax.swing.JLabel menuDataAnggota;
450. private javax.swing.JLabel menuDataBuku;
451. private javax.swing.JLabel menuDataPetugas;
452. private javax.swing.JLabel menuKeluarAkun;
453. private javax.swing.JLabel menuPeminjaman;
454. private javax.swing.JLabel menuPengembalian;
455. private javax.swing.JTable tabelPengembalian;
456. private javax.swing.JComboBox<String> urutkanData;
457. // End of variables declaration
458.}

Anda mungkin juga menyukai