Anda di halaman 1dari 141

LAPORAN TUGAS AKHIR

PEMROGRAMAN BERORIENTASI OBJEK


“PROGRAM MANAGEMENT PERPUSTAKAAN”

Disusun untuk Memenuhi Matakuliah Pemrograman Berorientasi Objek


Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom.

Oleh:
Ginanjar Bagus Wijaya 190533646859
Lailatul Islamia 190533646806
Ardiansyah Putra Pradana 190533646888

S1 PTI’19 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Mei 2019

1
DAFTAR ISI
Halaman

HALAMAN SAMPUL i
DAFTAR ISI ii
BAB I. PENDAHULUAN 3
1.1 Latar Belakang 4
1.2 Rumusan Masalah 4
1.3 Tujuan 4
1.4 Batasan Sistem 4
1.5 Manfaat 5
BAB II. KAJIAN PUSTAKA 6
2.1 Konsep Dasar Sistem 6
2.2 Alat Bantu Pengembangan Sistem 7
2.3 Algoritma Sistem 8
BAB III. ANALISIS DAN PERANCANGAN 3
3.1 Tahap Pengembangan 3
3.2 Analisis Kebutuhan 3
3.3 Desain Sistem 3
3.3.1 Desain Flowchart
3.3.2 Desain Interface
3.4 Penjadwalan Sistem 3
BAB IV. IMPLEMENTASI 4
4.1 Deskripsi Sistem 4
4.2 Source Code Sistem 4
4.3 Interface Sistem 4
4.4 Pengujian Sistem 4
4.5 Analisis Sistem 4
BAB V. PENUTUP 5
5.1 Kesimpulan 5
5.2 Saran 5
DAFTAR PUSTAKA 6

2
BAB I
PENDAHULUAN

1.1 Latar Belakang

Dengan perkembangan teknologi yang semakin berkembang pesat di


segala aspek bidang termasuk pendidikan. Pendidikan merupakan suatu faktor
penting yang sangat berpengaruh terhadap setiap manusia. Untuk mewujudkan
kualitas pendidikan yang baik dibutuhkan sebuah pengetahuan dan ilmu. Untuk
mendapatkannya kita bisa pergi ke tempat yang bernama perputakaan.

Perpustakaan merupakaan salah satu sarana penting yang harus ada


dalam lembaga pendidikan dan berfungsi sebagai penunjang kegiatan belajar
mengajar. Pentingnya perpustakaan dapat dilihat dalam UU No.43 Tahun 2007
tentang perpustakaan , dalam UU tersebut BAB 1 pasal 1 ayat 1 disebutkan
bahwa perpustakaan adalah institusi pengelolaan koleksi karya tulis , karya
cetak, dan atau karya rekam secara professional dengan sistem yang baku guna
memenuhi kebutuhan pendidikan, penelitian, pelestarian, informasi, dan rekreasi
para pemustaka.

Adanya banyak pengunjung atau pembaca membuat petugas


perpustaakan harus menyiapkan sebuah buku untuk menampung data peminjam
buku. Mulai dari nama peminjam, buku yang di pinjam, tanggal peminjaman,
serta tanggal pengembalian.

Dengan berkembangnya teknologi di berbagai bidang, khususnya dalam


bidang pendidikan dibutuhkan suatu inovasi yang memudahkan para petugas
perpustakaan untuk mendata atau memanagement buku buku di perpustakaan
dengan adanya pendaataan berbasis desktop merupakan trobosan baru yang dulu
hanya dapat melakukan pendataan dengan tulisandiatas kertas, sekarang hanya
dengan menggunakan laptop ataupun computer sudah dapat mendata
peminjaman buku kapanpun dengan efisien, tempat dan waktu yang hemat dan
praktis.

3
Dengan adanya program management perpustakaan ini yang dibuat
menggunakan pemrograman Java berbasis GUI agar dapat mempermudah
petugas perpustakaan untuk melakukan pendataan pemunjaman buku di
perpustakaan yang kecanggihan teknologinya sekarang dapat mempermudah
petugas perpustakaan menggunakan media telekominakasi saja.

1.2 Rumusan Masalah


1) Bagaimana perancangan aplikasi untuk mengola masing – masing data
peminjam buku yang terdapat pada perpustakaan tersebut?
2) Bagaimana membuat program yang dapat di aplikasikan sesuai dengan
kebutuhan petugas perpustakaan yang ingin menginput data peminjam
buku ?
3) Aplikasi apa saja kah yang diperlukan dalam mengenmbangkan sistem ?
1.3 Tujuan
1) Menghasilkan suatu program yang menggunakan Bahasa pemrograman
Java yang dapat membantu dalam mendata peminjam buku di sebuah
perpustakaan dan SQL sebagai penyimpan datanya.
2) Mengetahui bagaiman meramncang aplikasi tersebut sehingga dapat
digunakaan.
3) Mampu mempermudah pekerjaan seorang petugas perpustakaan dalam
menangani masalah management perpustkaan.
4) Memenuhi tugas akhir matakuliah Pemrograman Berorientasi Objek
yang dibimbing oleh bapak Heru Wahyu Herwanto,S.T.,M.Kom.

1.4 Batasan Sistem


1) Perancangan program ini menggunkan Bahasa pemograman Java dan
menggunakan compiler NetBeans IDE.
2) Penyimpanan menggunakan array dan sistem menggunakan XAMPP dan
mempunyai record serta database.
3) Sistem akan secara otomatis mendektesi data yang di input. Jika sudah
dimasukkan data akan tersimpan di database.
4) Dibutuhkan xampp dan phpmyadmin sebagai server data, sehingga bila
tidak terhubung database maka program tidak bisa dijalankan

4
1.5 Manfaat
1) Memberikan pemahaman terhadap konsep - konsep yang sudah
diterapkan di dalam pemrograman berbasis objek.
2) Memberikan bentuk nyata dari penerapan modul-modul yang telah
dipelajari dalam suatu aplikasi berbasis GUI dengan menggunakan
Bahasa pemrograman Java.
3) Memberikan kemudahan pada user agar dapat menggunakan aplikasi ini
dengan baik dan benar sesuai dengan alur program yang telah diterapkan.
4) Sebagai salah satu cara memudahkan proses managing peminjaman buku
pada perpustakaan.
5) Wadah praktik pembelajaran PBO satu semester serta penerapannya

5
BAB II

KAJIAN PUSTAKA

2.1 Konsep Dasar Sistem

Konsep awal dari program ini yaitu untuk mengembangkan suatu bentuk
pembelajaran serta pengetahuan di bidang informatika karena di era digital ini
teknologi sangat berkembang dengan pesat. Maka dibuatlah aplikasi berbasis
GUI dengan bahasa pemrograman Java dan editor NetBeans IDE 8.2 serta
EXAMPP control panel.

Java merupakan bahasa berorientasi objek (OOP) yaitu cara ampuh


dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP,
program komputer sebagai kelompok objek yang saling berinteraksi. Deskripsi
ringkas OOP adalah mengorganisasikan program sebagai kumpulan komponen,
disebut objek. Objek-objek ini ada secara independen, mempunyai aturan-aturan
berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna
meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu. Kelas
bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan,
program menciptakan objek-objek yang merupakan instan-instan kelas. Kelas
dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun
menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang
lebih elegan.

Netbeans IDE 8.2 merupakan suatu aplikasi yang dikembangkan oleh


Apache dan Oracle. Aplikasi ini merupakan suatu pengembangan perangkat
lunak dengan menggunakan bahasa pemrograman Java. Awalnya aplikasi ini
dikembangkan untuk pemrograman Java. Namun, aplikasi ini mendukung
program-program dengan bahasa pemrograman lainnya seperti C/C++, PHP, dan
HTML yang dapat dijalankan oleh Mesin Virtual Java.

6
Database adalah kumpulan informasi yang disimpan di dalam komputer
secara sistematik sehingga dapat diperiksa menggunakan suatu program
komputer untuk memperoleh informasi dari basis data tersebut. Database adalah
representasi kumpulan fakta yang saling berhubungan disimpan secara bersama
sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk
memenuhi berbagai kebutuhan.

XAMPP adalah sebuah paket perangkat lunak (software) komputer yang


sistem penamaannya diambil dari akronim kata Apache, MySQL (dulu) /
MariaDB (sekarang), PHP, dan Perl. Sementara imbuhan huruf “X” yang
terdapat pada awal kata berasal dari istilah cross platform sebagai simbol bahwa
aplikasi ini bisa dijalankan di empat sistem operasi berbeda, seperti OS Linux,
OS Windows, Mac OS, dan juga Solaris.

2.2 Alat Bantu Pengembangan Sistem

Untuk mengembangkan sistem, program ini menggunakan Bahasa


pemrograman Java dan editor NetBeans IDE 8.2 , karena NetBeans IDE
mempunyai kelebihan dibandingkan dengan menggunakan Notepad++ karena di
NetBeans IDE 8.2,  terkenal dengan kelengkapan library/perpustakaan
(kumpulan program program yang disertakan dalam pemrograman java) yang
sangat memudahkan dalam penggunaan oleh para pemrogram untuk
membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan
keberadaan komunitas Java yang besar yang terus menerus membuat
perpustakaanperpustakaan baru untuk melingkupi seluruh kebutuhan
pembangunan aplikasi. Selain itu NetBeans IDE 8.2  dapat dijalankan di
beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali,
jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah
program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia
menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas
beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah
program berbasis java dikerjakan diatas operating system Linux tetapi
dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung
sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris.

7
Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-
sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode
tersebut.

Selain itu digunakan XAMPP, dengan menggunakan XAMPP kita tidak


perlu menginstal dan mengkonfigurasi server web Apache, PHP, dan MySQL
secara manual. Karena aplikasi ini akan menginstal dan mengonfigurasinya
secara otomatis untuk kita atau konfigurasi otomatis.

2.3 Algoritma Sistem

1. Mulai
2. Menu Login
Mengisikan Nama Penggunan dan Password. Kemudian terdapat button
login atau keluar. Jika login maka akan lanjut ke menu selanjutnya dan
jika keluar maka program akan menampilkan massagebox yang berupa
konfirmasi bahwa user akan keluar atau tidak.Jika nama pengguna dan
password yang di inputkan sesuai database maka akan masuk ke program
aplikasi tersebut. Sebaliknya jika nama pengguna dan password yang di
input tidak sesuai dengan database maka akan keluar massagebox yang
berupa peringatan bahwa user salah menginputkan data.

3. Masuk pada Menu Utama


Berisikan 3 menu button diantaranya Peminjaman, Kelola buku, dan
Kelola siswa. Jika salah satu menu button ditekan maka akan
menampilkan database dan beberapa fitur didalamnya.
4. Masuk pada Menu Peminjaman
Pada menu ini akan tampil data dari database peminjaman. Selain itu
terdapat beberapa fitur diantaranya :
1) Fitur pencarian data yang berguna untuk mempermudah dalam
pencarian data, cara kerjanya dengan memasukkan salah satu data
bisa berupa NIS, Nama, Jurusan, Kode Buku, Judul Buku, atau
Tanggal Peminjaman.

8
2) Fitur tambah data yang berguna untuk menambahkan data pada menu
ini, cara kerjanya user menekan button (tambah data). Kemudian
akan muncul database siswa dan database buku, selain itu, ada fitur
cari murid dan cari buku. Untuk menambah data pinjaman, pertama
user mengisi nama siswa pada textbox cari murid atau menekan nama
siswa yang di cari pada data yang tampil di bagian kanan textbox
tersebut. Kedua, user mengisi nama buku pada textbox cari buku atau
menekan nama buku yang di cari pada data yang tampil di bagian
kanan textbox tersebut. Kemudian, klik button simpan tanpa harus
menginput tanggal peminjaman karena sudah terisi otomatis sesuai
tanggal penggunaan aplikasi. Jika berhasil maka akan menculkan
massagebox (Data BERHASIL Ditambahkan) lalu klik ok, maka data
akan otomatis terinput pada database dan akan tampil pada menu
peminjaman.
3) Fitur ubah data yang berguna untuk mengubah data yang ada di menu
peminjaman. Cara kerjanya dengan memilih terlebih dahulu data
yang akan diubah, jika data belum dipilih maka akan massagebox
(Anda belum memilih data yang akan diubah!). Kemudian setelah
memilih data akan muncul database siswa dan database buku. Selain
itu, ada fitur cari murid dan cari buku. Untuk mengubah data
pinjaman, pertama user mengisi nama siswa pada textbox cari murid
atau menekan nama siswa yang di cari pada data yang tampil di
bagian kanan textbox tersebut yang akan diubah. Kedua, user
mengisi nama buku pada textbox cari buku atau menekan nama buku
yang di cari pada data yang tampil di bagian kanan textbox tersebut.
Kemudian, klik button simpan tanpa harus menginput tanggal
peminjaman karena sudah terisi otomatis sesuai tanggal penggunaan
aplikasi. Jika ingin mengembalikan data ke data awal maka tekan
button resset sehingga data kembali ke data sebelum diubah. Jika
berhasil maka akan menculkan massagebox (Data BERHASIL
Diubah) lalu klik ok, maka data akan otomatis terinput pada database
dan akan tampil pada menu peminjaman.

9
4) Fitur hapus data yang berguna untuk menghapus atau menghilangkan
data dari database. Cara kerjanya dengan memilih terlebih dahulu
data yang akan dihapus, jika data belum dipilih maka akan muncul
massagebox (Anda belum memilih data yang akan dihapus!).
Kemudian setelah memilih data akan muuncul massagebox
konfirmasi yang berisi data peminjaman buku yang akan dihapus.
Jika yakin tekan yes maka data akan terhapus dari tampilan menu dan
data base peminjaman. Jika tidak tekan no, maka data tidak terhapus.
5) Fitur segarkan table yang berguna untuk merefresh data. Cara
kerjanya dengan cara menekan button segarkan tabel.
5. Masuk pada Menu Kelola Buku
Pada menu ini akan tampil data dari database kelola buku. Selain itu
terdapat beberapa fitur diantaranya :
1) Fitur pencarian data yang berguna untuk mempermudah dalam
pencarian data, cara kerjanya dengan memasukkan salah satu data
bisa berupa kode buku, judul buku, jenis buku, tanggal terbit, atau
pengarang buku.
2) Fitur tambah data yang berguna untuk menambah data pada menu
ini. Cara kerjanya user menekan button (tambah data). Kemudian
akan muncul sebuah textbox. Kemudian tinggal isi judul buku, pilih
jenis buku, isi pengarang, kemudian tanggal terbitnya. User tidak
perlu mengisi kode buku karena kode bukunya sudah otomatis
muncul ketika user ingin menambah data ini. Jika user tidak lengkap
atau belum mengisi data tersebut maka jika di tekan button simpan
maka akan muncul massagebox(Data yang Anda masukkan belum
lengkap!). Jika user sudah mengisi semua yang perlu diisi, lanjut
dengan menekan button simpan. Setelah itu akan munjul
messagebox(Data berhasil Ditambahkan!) maka data yang diinputkan
tadi akan tersimpan pada database Kelola Buku.
3) Fitur ubah data yang berguna untuk mengubah data pada menu ini.
Cara kerjanya dengan memilih terlebih dahulu data yang akan
diubah, jika data belum dipilih maka akan massagebox (Anda belum

10
memilih data yang akan diubah!). Kemudian setelah memilih data
akan muncul sebuah textbox. Untuk mengubah data buku, pertama
user tinggal ubah data yang ingin diubah. User tidak bisa mengubah
kode buku dan judul buku. User hanya bisa mengubah jenis buku,
pengarang, atau tanggal terbit. Setelah user telah mengubahnya
kemudian tekan simpan maka akan muncul messagebox (Data
berhasil diubah) dan data yang ada di database kelola buku akan
berubah. Jika user ingin mengenmbalikan data kesemula maka tekan
button reset maka data akan kembali ke data awal.
4) Fitur hapus data yang berguna untuk menghapus atau menghilangkan
data dari database. Cara kerjanya dengan memilih terlebih dahulu
data yang akan dihapus, jika data belum dipilih maka akan muncul
massagebox (Anda belum memilih data yang akan dihapus!).
Kemudian setelah memilih data akan muuncul massagebox
konfirmasi yang berisi data buku yang akan dihapus. Jika yakin tekan
yes maka data akan terhapus dari tampilan menu dan data base kelola
buku. Data peminjaman dengan siswa ini juga akan ikut terhapus.
Jika tidak tekan no, maka data tidak terhapus.
5) Fitur segarkan table yang berguna untuk merefresh data. Cara
kerjanya dengan cara menekan button segarkan tabel.
6. Masuk pada Menu Kelola Siswa
Pada menu ini akan tampil data dari database kelola siswa. Selain itu
terdapat beberapa fitur diantaranya :
1) Fitur pencarian data yang berguna untuk mempermudah dalam
pencarian data, cara kerjanya dengan memasukkan salah satu data
bisa berupa NIS, nama lengkap, tempat lahir, tanggal lahir, jurusan,
atau tanggal masuk.
2) Fitur tambah data yang berguna untuk menambah data pada menu
ini. Cara kerjanya user menekan button (tambah data). Kemudian
akan muncul sebuah textbox. Kemudian tinggal isi NIS, nama
lengkap, pilih jurusan, isi tanggal siswa masuk, tempat lahir, serta
tanggal lahir. Jika user tidak lengkap atau belum mengisi data

11
tersebut , jika di tekan button simpan maka akan muncul
massagebox(Data yang Anda masukkan belum lengkap!). Jika user
sudah mengisi semua yang perlu diisi, lanjut dengan menekan button
simpan. Setelah itu akan munjul messagebox(Data berhasil
Ditambahkan!) maka data yang diinputkan tadi akan tersimpan pada
database Kelola Siswa.
3) Fitur ubah data yang berguna untuk mengubah data pada menu ini.
Cara kerjanya dengan memilih terlebih dahulu data yang akan
diubah, jika data belum dipilih maka akan massagebox (Anda belum
memilih data yang akan diubah!). Kemudian setelah memilih data
akan muncul sebuah textbox. Untuk mengubah data siswa, pertama
user tinggal ubah data yang ingin diubah. User tidak bisa mengubah
NIS dan tanggal siswa masuk. User hanya bisa mengubah nama
lengkap, jurusan, tempat lahir atau tanggal terbit. Setelah user telah
mengubahnya kemudian tekan simpan maka akan muncul
messagebox (Data berhasil diubah) dan data yang ada di database
kelola siswa akan berubah. Jika user ingin mengenmbalikan data
kesemula maka tekan button reset maka data akan kembali ke data
awal.
4) Fitur hapus data yang berguna untuk menghapus atau menghilangkan
data dari database. Cara kerjanya dengan memilih terlebih dahulu
data yang akan dihapus, jika data belum dipilih maka akan muncul
massagebox (Anda belum memilih data yang akan dihapus!).
Kemudian setelah memilih data akan muuncul massagebox
konfirmasi yang berisi data siswa yang akan dihapus. Jika yakin
tekan yes maka data akan terhapus dari tampilan menu dan data base
kelola buku.Data peminjaman dengan siswa ini juga akan ikut
terhapus. Jika tidak tekan no, maka data tidak terhapus.
5) Fitur segarkan table yang berguna untuk merefresh data. Cara
kerjanya dengan cara menekan button segarkan tabel.
7. Button (X)

12
Button ini digunakan untuk keluar dari program ini. Cara kerjanya yaitu
dengan menekan button (X) pada bagian pojok kanan atas program ini.
Maka akan muncul messagebox (Anda yakin ingin keluar dari program?)
jika iya tekan yes maka anda akan keluar dari program ini. Jika tidak
tekan no maka anda akan kembali ke menu sebelumnya.
8. Selesai

BAB III

ANALISIS DAN PERANCANGAN

3.1 Tahapan Pengembangan

Terdapat beberapa tahapan pengembangan sistem yaitu planning,


analisis, design, implementasi dan use dengan mengunakan penerapan model
pengembangan perangkat lunak yaitu SDLC ( System Development Life
Cycle ). Pada tahapan planning digunakan untuk merumuskan kebijakan atau
perancangan sistem yang berupa tujuan sistem ini dibangun yaitu karena untuk
memenuhi kebutuhan user pemakain agar dapat memudahkan user untuk
melakukan pendataaan peminjaman buku di perpustakaan. Adanya
permasalahan juga merupakan faktor terbentuknya program ini karena kurang
efisienmya dalam mendata peminjam buku di sebuah perpustaaknan.

Terdapat pula tahapan pengembangan yaitu analisis dengan


menggambarkan sistem yang dibuat ini secara global dengan mengola data yang
ada didalam program tersebut agar dapat dipahami oleh user serta dapat
digunakan dengan baik dan benar

Terdapat pula tahapan pengembangan yaitu design yang berguna untuk


menata tampilan pada program yang dibuat sesuai dengan kemauan
programmer. Dengan design awal sistem yaitu dengan menginputkan nama

13
pengguna dan passwordnya kemudian akan muncul menu utama dan menu menu
yang didalamnya memiliki fungsi masing masing.

Terdapat pula tahapan pengembangan yaitu implementasi dengan


membuat dan menguji program tersebut. Karena program ini dibuat dengan
meng-coding sistem yang akan dipakai oleh user dengan menguji program
tersebut agar dapat di compile dan berjalan dengan baik. Kemudian yang
terakhir terdapat tahap pengembangan yaitu use/system dengan menerapkan
sistem tersebut dan dikembangkan sesuai kebutuhan user.

3.2 Analisis Kebutuhan

 Analisis kebutuhan Fungsional


 Sistem mampu mengelola data nama pengguna ( user ) dengan sistem
informasi yang ada pada saat melakukan login sehingga otomatis
akan menampilkan menu utama.
 Sistem mampu menyediakan fasilitas yang mempermudah petugas
perpustakaan memperolah informasi mengenai data pada
perpustakaan, mengecek buku yang sudah dipinjam serta siswa yang
meminjam buku tersebut.
 Sistem mampu menampilkan data peminjam setelah melakukan
peminjaman data, sehingga user bisa melihat buku yang di pinjam.
 Analisis kebutuhan non Fungsional
 Informasi
Digunakan untuk menampilkan informasi data peminjaman.
 Biaya, Waktu dan Tempat
Lebih efisien karena bisa mengakses dimanapun kapanpun tanpa
mengeluarkan biaya berlebihan karena di dalam program sudah
terdapat data yang diinputkan.

3.3 Desain Sistem

3.3.1 Desain Flowchart

14
3.3.2 Desain Interface

3.4 Penjadwalan Sistem

AKTIVITAS KETERANGAN DURASI


(HARI)
A Menentukan tema dan topik permasalahan 1
B Merancang desain program 3
C Menentukan komponen yang diperlukan 1
D Menentukan penerapan fungsi dari setiap modul 2
E Implementasi rancangan program (pengodingan) 1
F Menguji program 1
G Pembuatan laporan dan paper 3
TOTAL PEMBUATAN PROGRAM 12

15
BAB IV

IMPLEMENTASI

4.1 Deskripsi Sistem

Program diatas berfungsi untuk memudahakan proses manage


peminjaman buku di perpustakaan. Dengan menggun tabPane yang didalamnya
berisi Table yang berisi atribut seperti data siswa, buku dan peminjaman.
Program ini memiliki dasar 2 Jframe yang terdiri dari Login dan Home. Yang
mana didalam home terdiri dari 3 tab: Peminjaman, kelola murid, dan kelola
buku. Yang mana tiap Tap berisi table-table yang berisi data sesuai Tab.

Pada Tab peminjaman akan ditampilkan data siswa dan buku yang
dipinjam secra detail yang disertai dengna tanggal dan kode buku. Disini admin
juga dapat merubah data dan menghapus data sesuai dengan kehendak dan
kondisi. Kemudian pada tab berikutnya ada kelola buku dan siswa dimana dalam
tab ini kita bisa membuat mengubah dan menambahkan data buku dan siswa.

4.2 Source Code Sistem

Default Package

File home.java

16
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import java.util.logging.*;
import javax.swing.*;
import javax.swing.table.*;
import pages.*;

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author User
*/
public class home extends javax.swing.JFrame {

DefaultTableModel tbl1 = new DefaultTableModel() {


public boolean isCellEditable(int row, int column) {
return false;
}
};
DefaultTableModel tbl2 = new DefaultTableModel() {
public boolean isCellEditable(int row, int column) {
return false;
}
};
DefaultTableModel tbl3 = new DefaultTableModel() {
public boolean isCellEditable(int row, int column) {
return false;
}
};

/**
* Creates new form home
*/
public home() {
super("Tugas Akhir");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(screen.width,screen.height);
setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
setResizable(false);
this.setUndecorated(true);

initComponents();
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

tampil_peminjaman();
tampil_buku();
tampil_siswa();
}

17
/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
title = new javax.swing.JLabel();
close_btn = new javax.swing.JLabel();
tab = new javax.swing.JTabbedPane();
peminjaman = new javax.swing.JPanel();
search_peminjaman = new placeholder.search();
jScrollPane1 = new javax.swing.JScrollPane();
tb_peminjaman = new javax.swing.JTable();
result_peminjaman = new javax.swing.JLabel();
tambah1 = new javax.swing.JPanel();
tambah1_value = new javax.swing.JLabel();
ubah1 = new javax.swing.JPanel();
ubah1_value = new javax.swing.JLabel();
hapus1 = new javax.swing.JPanel();
hapus1_value = new javax.swing.JLabel();
segarkan1 = new javax.swing.JPanel();
segarkan1_value = new javax.swing.JLabel();
kelolabuku = new javax.swing.JPanel();
search_buku = new placeholder.search();
jScrollPane2 = new javax.swing.JScrollPane();
tb_buku = new javax.swing.JTable();
result_buku = new javax.swing.JLabel();
tambah2 = new javax.swing.JPanel();
tambah2_value = new javax.swing.JLabel();
ubah2 = new javax.swing.JPanel();
ubah2_value = new javax.swing.JLabel();
hapus2 = new javax.swing.JPanel();
hapus2_value = new javax.swing.JLabel();
segarkan2 = new javax.swing.JPanel();
segarkan2_value = new javax.swing.JLabel();
kelolasiswa = new javax.swing.JPanel();
search_siswa = new placeholder.search();
jScrollPane3 = new javax.swing.JScrollPane();
tb_siswa = new javax.swing.JTable();
result_siswa = new javax.swing.JLabel();
tambah3 = new javax.swing.JPanel();
tambah3_value = new javax.swing.JLabel();
ubah3 = new javax.swing.JPanel();
ubah3_value = new javax.swing.JLabel();
hapus3 = new javax.swing.JPanel();
hapus3_value = new javax.swing.JLabel();
segarkan3 = new javax.swing.JPanel();
segarkan3_value = new javax.swing.JLabel();
footer = new javax.swing.JPanel();
copyright = new javax.swing.JLabel();

18
setDefaultCloseOperation(javax.swing.WindowConstants.EX
IT_ON_CLOSE);

body.setBackground(new java.awt.Color(255, 255, 255));


body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

header.setBackground(new java.awt.Color(204, 0, 0));

title.setFont(new java.awt.Font("Tahoma", 1, 24)); //


NOI18N
title.setForeground(new java.awt.Color(255, 255, 255));
title.setText("PERPUSTAKAAN ELKTRO");
title.setToolTipText("TUGAS AKHIR");

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap()
.addComponent(title,
javax.swing.GroupLayout.PREFERRED_SIZE, 328,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)

19
.addGroup(headerLayout.createParallelGroup(javax.sw
ing.GroupLayout.Alignment.BASELINE)
.addComponent(title,
javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

tab.setBackground(new java.awt.Color(255, 242, 188));

peminjaman.setBackground(new java.awt.Color(255, 242,


188));

search_peminjaman.setToolTipText("Cari Data");
search_peminjaman.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
search_peminjamanKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
search_peminjamanKeyTyped(evt);
}
});

tb_peminjaman.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null}
},
new String [] {
"NIS", "Nama", "Jurusan", "Kode Buku", "Judul
Buku", "Tanggal Pinjam"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false
};

public boolean isCellEditable(int rowIndex, int


columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(tb_peminjaman);

result_peminjaman.setFont(new java.awt.Font("Tahoma",
0, 12)); // NOI18N
result_peminjaman.setHorizontalAlignment(javax.swing.Sw
ingConstants.LEFT);

tambah1.setBackground(new java.awt.Color(204, 0, 0));

tambah1_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N

20
tambah1_value.setForeground(new java.awt.Color(255,
255, 255));
tambah1_value.setHorizontalAlignment(javax.swing.SwingC
onstants.CENTER);
tambah1_value.setText("Tambah Data");
tambah1_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
tambah1_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout tambah1Layout = new


javax.swing.GroupLayout(tambah1);
tambah1.setLayout(tambah1Layout);
tambah1Layout.setHorizontalGroup(
tambah1Layout.createParallelGroup(javax.swing.Group
Layout.Alignment.LEADING)
.addComponent(tambah1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
tambah1Layout.setVerticalGroup(
tambah1Layout.createParallelGroup(javax.swing.Group
Layout.Alignment.LEADING)
.addComponent(tambah1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

ubah1.setBackground(new java.awt.Color(204, 0, 0));

ubah1_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
ubah1_value.setForeground(new java.awt.Color(255, 255,
255));
ubah1_value.setHorizontalAlignment(javax.swing.SwingCon
stants.CENTER);
ubah1_value.setText("Ubah Data");
ubah1_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
ubah1_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout ubah1Layout = new


javax.swing.GroupLayout(ubah1);
ubah1.setLayout(ubah1Layout);
ubah1Layout.setHorizontalGroup(
ubah1Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING)
.addComponent(ubah1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
ubah1Layout.setVerticalGroup(
ubah1Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING)
.addComponent(ubah1_value,

21
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

hapus1.setBackground(new java.awt.Color(204, 0, 0));

hapus1_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
hapus1_value.setForeground(new java.awt.Color(255, 255,
255));
hapus1_value.setHorizontalAlignment(javax.swing.SwingCo
nstants.CENTER);
hapus1_value.setText("Hapus Data");
hapus1_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
hapus1_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout hapus1Layout = new


javax.swing.GroupLayout(hapus1);
hapus1.setLayout(hapus1Layout);
hapus1Layout.setHorizontalGroup(
hapus1Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(hapus1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
hapus1Layout.setVerticalGroup(
hapus1Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(hapus1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

segarkan1.setBackground(new java.awt.Color(204, 0, 0));

segarkan1_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
segarkan1_value.setForeground(new java.awt.Color(255,
255, 255));
segarkan1_value.setHorizontalAlignment(javax.swing.Swin
gConstants.CENTER);
segarkan1_value.setText("Segarkan Tabel");
segarkan1_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
segarkan1_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout segarkan1Layout = new


javax.swing.GroupLayout(segarkan1);
segarkan1.setLayout(segarkan1Layout);
segarkan1Layout.setHorizontalGroup(
segarkan1Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)

22
.addComponent(segarkan1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
segarkan1Layout.setVerticalGroup(
segarkan1Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(segarkan1_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout peminjamanLayout = new


javax.swing.GroupLayout(peminjaman);
peminjaman.setLayout(peminjamanLayout);
peminjamanLayout.setHorizontalGroup(
peminjamanLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addGroup(peminjamanLayout.createSequentialGroup()
.addContainerGap()
.addGroup(peminjamanLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(peminjamanLayout.createSequential
Group()
.addComponent(result_peminjaman,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(search_peminjaman,
javax.swing.GroupLayout.PREFERRED_SIZE, 320,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 983, Short.MAX_VALUE)
.addGroup(peminjamanLayout.createSequential
Group()
.addComponent(tambah1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(ubah1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(hapus1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(segarkan1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);

23
peminjamanLayout.setVerticalGroup(
peminjamanLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addGroup(peminjamanLayout.createSequentialGroup()
.addContainerGap()
.addGroup(peminjamanLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(search_peminjaman,
javax.swing.GroupLayout.DEFAULT_SIZE, 37, Short.MAX_VALUE)
.addComponent(result_peminjaman,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(peminjamanLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tambah1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ubah1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hapus1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(segarkan1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);

tab.addTab("Peminjaman", null, peminjaman,


"Peminjaman");
peminjaman.getAccessibleContext().setAccessibleName("Pe
minjaman");

kelolabuku.setBackground(new java.awt.Color(255, 242,


188));

search_buku.setToolTipText("Cari Data");
search_buku.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
search_bukuKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
search_bukuKeyTyped(evt);
}
});

24
tb_buku.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null}
},
new String [] {
"Kode Buku", "Judul Buku", "Jenis", "Tanggal
Terbit", "Pengarang"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false
};

public boolean isCellEditable(int rowIndex, int


columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane2.setViewportView(tb_buku);

result_buku.setBackground(new java.awt.Color(255, 242,


188));
result_buku.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
result_buku.setHorizontalAlignment(javax.swing.SwingCon
stants.LEFT);

tambah2.setBackground(new java.awt.Color(204, 0, 0));

tambah2_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
tambah2_value.setForeground(new java.awt.Color(255,
255, 255));
tambah2_value.setHorizontalAlignment(javax.swing.SwingC
onstants.CENTER);
tambah2_value.setText("Tambah Data");
tambah2_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
tambah2_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout tambah2Layout = new


javax.swing.GroupLayout(tambah2);
tambah2.setLayout(tambah2Layout);
tambah2Layout.setHorizontalGroup(
tambah2Layout.createParallelGroup(javax.swing.Group
Layout.Alignment.LEADING)
.addComponent(tambah2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
tambah2Layout.setVerticalGroup(
tambah2Layout.createParallelGroup(javax.swing.Group

25
Layout.Alignment.LEADING)
.addComponent(tambah2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

ubah2.setBackground(new java.awt.Color(204, 0, 0));

ubah2_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
ubah2_value.setForeground(new java.awt.Color(255, 255,
255));
ubah2_value.setHorizontalAlignment(javax.swing.SwingCon
stants.CENTER);
ubah2_value.setText("Ubah Data");
ubah2_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
ubah2_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout ubah2Layout = new


javax.swing.GroupLayout(ubah2);
ubah2.setLayout(ubah2Layout);
ubah2Layout.setHorizontalGroup(
ubah2Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING)
.addComponent(ubah2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
ubah2Layout.setVerticalGroup(
ubah2Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING)
.addComponent(ubah2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

hapus2.setBackground(new java.awt.Color(204, 0, 0));

hapus2_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
hapus2_value.setForeground(new java.awt.Color(255, 255,
255));
hapus2_value.setHorizontalAlignment(javax.swing.SwingCo
nstants.CENTER);
hapus2_value.setText("Hapus Data");
hapus2_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
hapus2_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout hapus2Layout = new


javax.swing.GroupLayout(hapus2);
hapus2.setLayout(hapus2Layout);
hapus2Layout.setHorizontalGroup(

26
hapus2Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(hapus2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
hapus2Layout.setVerticalGroup(
hapus2Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(hapus2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

segarkan2.setBackground(new java.awt.Color(204, 0, 0));

segarkan2_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
segarkan2_value.setForeground(new java.awt.Color(255,
255, 255));
segarkan2_value.setHorizontalAlignment(javax.swing.Swin
gConstants.CENTER);
segarkan2_value.setText("Segarkan Tabel");
segarkan2_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
segarkan2_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout segarkan2Layout = new


javax.swing.GroupLayout(segarkan2);
segarkan2.setLayout(segarkan2Layout);
segarkan2Layout.setHorizontalGroup(
segarkan2Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(segarkan2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
segarkan2Layout.setVerticalGroup(
segarkan2Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(segarkan2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout kelolabukuLayout = new


javax.swing.GroupLayout(kelolabuku);
kelolabuku.setLayout(kelolabukuLayout);
kelolabukuLayout.setHorizontalGroup(
kelolabukuLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addGroup(kelolabukuLayout.createSequentialGroup()
.addContainerGap()
.addGroup(kelolabukuLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(kelolabukuLayout.createSequential
Group()
.addComponent(result_buku,
javax.swing.GroupLayout.DEFAULT_SIZE,

27
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(search_buku,
javax.swing.GroupLayout.PREFERRED_SIZE, 320,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 983, Short.MAX_VALUE)
.addGroup(kelolabukuLayout.createSequential
Group()
.addComponent(tambah2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(ubah2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(hapus2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(segarkan2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
kelolabukuLayout.setVerticalGroup(
kelolabukuLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addGroup(kelolabukuLayout.createSequentialGroup()
.addContainerGap()
.addGroup(kelolabukuLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(search_buku,
javax.swing.GroupLayout.DEFAULT_SIZE, 37, Short.MAX_VALUE)
.addComponent(result_buku,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(kelolabukuLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tambah2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)

28
.addComponent(ubah2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hapus2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(segarkan2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);

tab.addTab("Kelola Buku", null, kelolabuku, "Kelola


Buku");
kelolabuku.getAccessibleContext().setAccessibleName("Ke
lola Buku");

kelolasiswa.setBackground(new java.awt.Color(255, 242,


188));

search_siswa.setToolTipText("Cari Data");
search_siswa.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
search_siswaKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
search_siswaKeyTyped(evt);
}
});

tb_siswa.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null},
{null, null, null, null, null, null}
},
new String [] {
"NIS", "Nama Lengkap", "Tempat Lahir", "Tanggal
Lahir", "Jurusan", "Tanggal Terdaftar"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, true, true, false
};

public boolean isCellEditable(int rowIndex, int


columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane3.setViewportView(tb_siswa);

29
result_siswa.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
result_siswa.setHorizontalAlignment(javax.swing.SwingCo
nstants.LEFT);

tambah3.setBackground(new java.awt.Color(204, 0, 0));

tambah3_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
tambah3_value.setForeground(new java.awt.Color(255,
255, 255));
tambah3_value.setHorizontalAlignment(javax.swing.SwingC
onstants.CENTER);
tambah3_value.setText("Tambah Data");
tambah3_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
tambah3_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout tambah3Layout = new


javax.swing.GroupLayout(tambah3);
tambah3.setLayout(tambah3Layout);
tambah3Layout.setHorizontalGroup(
tambah3Layout.createParallelGroup(javax.swing.Group
Layout.Alignment.LEADING)
.addComponent(tambah3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
tambah3Layout.setVerticalGroup(
tambah3Layout.createParallelGroup(javax.swing.Group
Layout.Alignment.LEADING)
.addComponent(tambah3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

ubah3.setBackground(new java.awt.Color(204, 0, 0));

ubah3_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
ubah3_value.setForeground(new java.awt.Color(255, 255,
255));
ubah3_value.setHorizontalAlignment(javax.swing.SwingCon
stants.CENTER);
ubah3_value.setText("Ubah Data");
ubah3_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
ubah3_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout ubah3Layout = new


javax.swing.GroupLayout(ubah3);
ubah3.setLayout(ubah3Layout);
ubah3Layout.setHorizontalGroup(

30
ubah3Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING)
.addComponent(ubah3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
ubah3Layout.setVerticalGroup(
ubah3Layout.createParallelGroup(javax.swing.GroupLa
yout.Alignment.LEADING)
.addComponent(ubah3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

hapus3.setBackground(new java.awt.Color(204, 0, 0));

hapus3_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
hapus3_value.setForeground(new java.awt.Color(255, 255,
255));
hapus3_value.setHorizontalAlignment(javax.swing.SwingCo
nstants.CENTER);
hapus3_value.setText("Hapus Data");
hapus3_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
hapus3_valueMouseClicked(evt);
}
});

javax.swing.GroupLayout hapus3Layout = new


javax.swing.GroupLayout(hapus3);
hapus3.setLayout(hapus3Layout);
hapus3Layout.setHorizontalGroup(
hapus3Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(hapus3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
hapus3Layout.setVerticalGroup(
hapus3Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(hapus3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

segarkan3.setBackground(new java.awt.Color(204, 0, 0));

segarkan3_value.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
segarkan3_value.setForeground(new java.awt.Color(255,
255, 255));
segarkan3_value.setHorizontalAlignment(javax.swing.Swin
gConstants.CENTER);
segarkan3_value.setText("Segarkan Tabel");
segarkan3_value.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
segarkan3_valueMouseClicked(evt);

31
}
});

javax.swing.GroupLayout segarkan3Layout = new


javax.swing.GroupLayout(segarkan3);
segarkan3.setLayout(segarkan3Layout);
segarkan3Layout.setHorizontalGroup(
segarkan3Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(segarkan3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)
);
segarkan3Layout.setVerticalGroup(
segarkan3Layout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(segarkan3_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout kelolasiswaLayout = new


javax.swing.GroupLayout(kelolasiswa);
kelolasiswa.setLayout(kelolasiswaLayout);
kelolasiswaLayout.setHorizontalGroup(
kelolasiswaLayout.createParallelGroup(javax.swing.G
roupLayout.Alignment.LEADING)
.addGroup(kelolasiswaLayout.createSequentialGroup()
.addContainerGap()
.addGroup(kelolasiswaLayout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(kelolasiswaLayout.createSequentia
lGroup()
.addComponent(result_siswa,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(search_siswa,
javax.swing.GroupLayout.PREFERRED_SIZE, 320,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane3,
javax.swing.GroupLayout.DEFAULT_SIZE, 983, Short.MAX_VALUE)
.addGroup(kelolasiswaLayout.createSequentia
lGroup()
.addComponent(tambah3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(ubah3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(hapus3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)

32
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(segarkan3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
kelolasiswaLayout.setVerticalGroup(
kelolasiswaLayout.createParallelGroup(javax.swing.G
roupLayout.Alignment.LEADING)
.addGroup(kelolasiswaLayout.createSequentialGroup()
.addContainerGap()
.addGroup(kelolasiswaLayout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(search_siswa,
javax.swing.GroupLayout.DEFAULT_SIZE, 37, Short.MAX_VALUE)
.addComponent(result_siswa,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jScrollPane3,
javax.swing.GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(kelolasiswaLayout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tambah3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ubah3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hapus3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(segarkan3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);

tab.addTab("Kelola Siswa", null, kelolasiswa, "Kelola


Siswa");
kelolasiswa.getAccessibleContext().setAccessibleName("K
elola Siswa");

footer.setBackground(new java.awt.Color(204, 0, 0));

copyright.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
copyright.setForeground(new java.awt.Color(255, 255,
255));

33
copyright.setHorizontalAlignment(javax.swing.SwingConst
ants.CENTER);

javax.swing.GroupLayout footerLayout = new


javax.swing.GroupLayout(footer);
footer.setLayout(footerLayout);
footerLayout.setHorizontalGroup(
footerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(copyright,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
footerLayout.setVerticalGroup(
footerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(copyright,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, 40,
javax.swing.GroupLayout.PREFERRED_SIZE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tab)
.addComponent(footer,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(tab)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(footer,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
);

tab.getAccessibleContext().setAccessibleName("");

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());

34
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int x = JOptionPane.showConfirmDialog(null, "Anda yakin
ingin keluar dari program?", "Keluar",
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
System.exit(0);
dispose();
}
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
int x = JOptionPane.showConfirmDialog(null, "Anda yakin
ingin keluar dari program?", "Keluar",
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
System.exit(0);
dispose();
}
}

private void
search_peminjamanKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
search_peminjaman();
}

private void
search_peminjamanKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_peminjaman();
}
}

private void
segarkan1_valueMouseClicked(java.awt.event.MouseEvent evt) {

35
// TODO add your handling code here:
search_peminjaman.setText("");
result_peminjaman.setText("");
tampil_peminjaman();
}

private void
hapus1_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tb_peminjaman.getSelectedRow();
if (baris >= 0) {
String nis = tbl1.getValueAt(baris, 0).toString();
String kode = tbl1.getValueAt(baris, 3).toString();
String tanggal = tbl1.getValueAt(baris,
5).toString();

int x = JOptionPane.showConfirmDialog(null, "Data


Peminjaman Buku dengan\n\nKode Buku: "+kode+"\nNIS Siswa:
"+nis+"\nTanggal Peminjaman: "+tanggal+"\n\nakan Anda hapus,
yakin?", "Konfirmasi", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
try {
Connection con = new
database.connection().configDB();
String sql = "DELETE FROM peminjaman WHERE
nis = '"+nis+"' AND kode = '"+kode+"' AND tanggal =
'"+tanggal+"'";
java.sql.Statement st =
con.createStatement();
st.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Data
berhasil dihapus!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
tampil_peminjaman();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menghapus data!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
}
} else {
JOptionPane.showMessageDialog(null, "Anda belum
memilih data yang akan dihapus!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}

private void
ubah1_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tb_peminjaman.getSelectedRow();
if (baris >= 0) {
String nis = tbl1.getValueAt(baris, 0).toString();
String kode = tbl1.getValueAt(baris, 3).toString();
String tanggal = tbl1.getValueAt(baris,
5).toString();

try{

36
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM peminjaman WHERE
nis = '"+nis+"' AND kode = '"+kode+"' AND tanggal =
'"+tanggal+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

if (rs.next()) {
String id = rs.getString("id");
new pages.edit_peminjaman(this,
rootPaneCheckingEnabled, id).setVisible(true);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menyeleksi data!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Anda belum
memilih data yang akan diubah!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}

private void
tambah1_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
new pages.add_peminjaman(this,
rootPaneCheckingEnabled).setVisible(true);
}

private void search_bukuKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_buku();
}
}

private void search_bukuKeyTyped(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
search_buku();
}

private void
tambah2_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
new pages.add_buku(this,
rootPaneCheckingEnabled).setVisible(true);
}

private void
ubah2_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tb_buku.getSelectedRow();
if (baris >= 0) {
String kode = tbl2.getValueAt(baris, 0).toString();

37
try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE kode =
'"+kode+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

if (rs.next()) {
String id = rs.getString("id");
new pages.edit_buku(this,
rootPaneCheckingEnabled, id).setVisible(true);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menyeleksi data!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Anda belum
memilih data yang akan diubah!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}

private void
hapus2_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tb_buku.getSelectedRow();
if (baris >= 0) {
String kode = tbl2.getValueAt(baris, 0).toString();
String judul = tbl2.getValueAt(baris,
1).toString();

int x = JOptionPane.showConfirmDialog(null, "Data


Buku dengan\n\nJudul: "+judul+"\nKode Buku: "+kode+"\n\nakan
Anda hapus, yakin?\nData peminjaman dengan BUKU ini juga akan
ikut terhapus!", "Konfirmasi", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
try {
Connection con = new
database.connection().configDB();
String sql = "DELETE FROM buku WHERE kode =
'"+kode+"'";
String sql2 = "DELETE FROM peminjaman WHERE
kode = '"+kode+"' AND judul = '"+judul+"'";
java.sql.Statement st =
con.createStatement();
st.executeUpdate(sql);
st.executeUpdate(sql2);
JOptionPane.showMessageDialog(null, "Data
berhasil dihapus!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
tampil_buku();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menghapus data!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}

38
}
} else {
JOptionPane.showMessageDialog(null, "Anda belum
memilih data yang akan dihapus!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}

private void
segarkan2_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
search_buku.setText("");
result_buku.setText("");
tampil_buku();
}

private void search_siswaKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_siswa();
}
}

private void search_siswaKeyTyped(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
search_siswa();
}

private void
tambah3_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
new pages.add_siswa(this,
rootPaneCheckingEnabled).setVisible(true);
}

private void
ubah3_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tb_siswa.getSelectedRow();
if (baris >= 0) {
String nis = tbl3.getValueAt(baris, 0).toString();
try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid WHERE nis =
'"+nis+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

if (rs.next()) {
String id = rs.getString("id");
new pages.edit_siswa(this,
rootPaneCheckingEnabled, id).setVisible(true);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal

39
menyeleksi data!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Anda belum
memilih data yang akan diubah!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}

private void
hapus3_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tb_siswa.getSelectedRow();
if (baris >= 0) {
String nis = tbl3.getValueAt(baris, 0).toString();
String nama = tbl3.getValueAt(baris, 1).toString();

int x = JOptionPane.showConfirmDialog(null, "Data


Siswa dengan\n\nNIS: "+nis+"\nNama Lengkap: "+nama+"\n\nakan
Anda hapus, yakin?\nData peminjaman dengan SISWA ini juga akan
ikut terhapus!", "Konfirmasi", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
try {
Connection con = new
database.connection().configDB();
String sql = "DELETE FROM murid WHERE nis =
'"+nis+"'";
String sql2 = "DELETE FROM peminjaman WHERE
nis = '"+nis+"'";
java.sql.Statement st =
con.createStatement();
st.executeUpdate(sql);
st.executeUpdate(sql2);
JOptionPane.showMessageDialog(null, "Data
berhasil dihapus!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
tampil_siswa();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menghapus data!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
}
} else {
JOptionPane.showMessageDialog(null, "Anda belum
memilih data yang akan dihapus!", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}

private void
segarkan3_valueMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
search_siswa.setText("");
result_siswa.setText("");
tampil_siswa();
}

/**

40
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(home.class.getNa
me()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(home.class.getNa
me()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(home.class.getNa
me()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(home.class.getNa
me()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new home().setVisible(true);
}
});
}

private void tampil_peminjaman() {


Object []baris = {"NIS", "Nama", "Jurusan", "Kode
Buku", "Judul Buku", "Tanggal Peminjaman"};
tbl1 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tb_peminjaman.setModel(tbl1);
try {
Connection con = new
database.connection().configDB();

41
String sql = "SELECT * FROM peminjaman ORDER BY id
ASC";
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet hasil = stat.executeQuery(sql);

while (hasil.next()) {
String nis = hasil.getString("nis");
String nama = hasil.getString("nama");
String jurusan = hasil.getString("jurusan");
String kode = hasil.getString("kode");
String judul = hasil.getString("judul");
String tanggal = hasil.getString("tanggal");

String[] data = {nis, nama, jurusan, kode,


judul, tanggal};
tbl1.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
System.exit(0);
dispose();
}
}

private void tampil_buku() {


Object []baris = {"Kode Buku", "Judul Buku", "Jenis",
"Tanggal Terbit", "Pengarang"};
tbl2 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tb_buku.setModel(tbl2);
try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku ORDER BY id ASC";
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet hasil = stat.executeQuery(sql);

while (hasil.next()) {
String jenis = null;
String kode = hasil.getString("kode");
String judul = hasil.getString("judul");
String tanggal = hasil.getString("tanggal");
String pengarang =
hasil.getString("pengarang");

if (hasil.getString("jenis").equals("1")) {
jenis = "Ensiklopedia";
} else if
(hasil.getString("jenis").equals("2")) {
jenis = "Novel";
} else if
(hasil.getString("jenis").equals("3")) {
jenis = "Komik";

42
} else if
(hasil.getString("jenis").equals("4")) {
jenis = "Biografi";
} else if
(hasil.getString("jenis").equals("5")) {
jenis = "Dongeng";
} else if
(hasil.getString("jenis").equals("6")) {
jenis = "Karya Ilmiah";
}

String[] data = {kode, judul, jenis, tanggal,


pengarang};
tbl2.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
System.exit(0);
dispose();
}
}

private void tampil_siswa() {


Object []baris = {"NIS", "Nama Lengkap", "Tempat
Lahir", "Tanggal Lahir", "Jurusan", "Tanggal Masuk"};
tbl3 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tb_siswa.setModel(tbl3);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid ORDER BY id ASC";
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet hasil = stat.executeQuery(sql);

while (hasil.next()) {
String nis = hasil.getString("nis");
String nama = hasil.getString("nama");
String tempat_lahir =
hasil.getString("tempat_lahir");
String tanggal_lahir =
hasil.getString("tanggal_lahir");
String jurusan = hasil.getString("jurusan");
String tanggal = hasil.getString("tanggal");

String[] data = {nis, nama, tempat_lahir,


tanggal_lahir, jurusan, tanggal};
tbl3.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);

43
System.exit(0);
dispose();
}
}

private void search_peminjaman() {


String query = search_peminjaman.getText();

Object []baris = {"NIS", "Nama", "Jurusan", "Kode


Buku", "Judul Buku", "Tanggal Peminjaman"};
tbl1 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tb_peminjaman.setModel(tbl1);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM peminjaman WHERE BINARY
"
+ "nis LIKE '%"+query+"%' "
+ "OR nama LIKE '%"+query+"%' "
+ "OR jurusan LIKE '%"+query+"%' "
+ "OR kode LIKE '%"+query+"%' "
+ "OR judul LIKE '%"+query+"%' "
+ "OR tanggal LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String nis = hasil.getString("nis");
String nama = hasil.getString("nama");
String jurusan = hasil.getString("jurusan");
String kode = hasil.getString("kode");
String judul = hasil.getString("judul");
String tanggal = hasil.getString("tanggal");

String[] data = {nis, nama, jurusan, kode,


judul, tanggal};
tbl1.addRow(data);
}

if (!query.equals("")) {
result_peminjaman.setText("Hasil pencarian
dari: '"+query+"'");
} else {
result_peminjaman.setText("");
}
} catch (Exception e) {}
}

private void search_buku() {


String query = search_buku.getText();

44
Object []baris = {"Kode Buku", "Judul Buku", "Jenis",
"Tanggal Terbit", "Pengarang"};
tbl2 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tb_buku.setModel(tbl2);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE BINARY "
+ "kode LIKE '%"+query+"%' "
+ "OR judul LIKE '%"+query+"%' "
+ "OR tanggal LIKE '%"+query+"%' "
+ "OR pengarang LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String jenis = null;
String kode = hasil.getString("kode");
String judul = hasil.getString("judul");
String tanggal = hasil.getString("tanggal");
String pengarang =
hasil.getString("pengarang");

if (hasil.getString("jenis").equals("1")) {
jenis = "Ensiklopedia";
} else if
(hasil.getString("jenis").equals("2")) {
jenis = "Novel";
} else if
(hasil.getString("jenis").equals("3")) {
jenis = "Komik";
} else if
(hasil.getString("jenis").equals("4")) {
jenis = "Biografi";
} else if
(hasil.getString("jenis").equals("5")) {
jenis = "Dongeng";
} else if
(hasil.getString("jenis").equals("6")) {
jenis = "Karya Ilmiah";
}

String[] data = {kode, judul, jenis, tanggal,


pengarang};
tbl2.addRow(data);
}

if (!query.equals("")) {
result_buku.setText("Hasil pencarian dari:

45
'"+query+"'");
} else {
result_buku.setText("");
}
} catch (Exception e) {}
}

private void search_siswa() {


String query = search_siswa.getText();

Object []baris = {"NIS", "Nama Lengkap", "Tempat


Lahir", "Tanggal Lahir", "Jurusan", "Tanggal Masuk"};
tbl3 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tb_siswa.setModel(tbl3);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid WHERE BINARY "
+ "nis LIKE '%"+query+"%' "
+ "OR nama LIKE '%"+query+"%' "
+ "OR tempat_lahir LIKE '%"+query+"%' "
+ "OR tanggal_lahir LIKE '%"+query+"%' "
+ "OR jurusan LIKE '%"+query+"%' "
+ "OR tanggal LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String nis = hasil.getString("nis");
String nama = hasil.getString("nama");
String tempat_lahir =
hasil.getString("tempat_lahir");
String tanggal_lahir =
hasil.getString("tanggal_lahir");
String jurusan = hasil.getString("jurusan");
String tanggal = hasil.getString("tanggal");

String[] data = {nis, nama, tempat_lahir,


tanggal_lahir, jurusan, tanggal};
tbl3.addRow(data);
}

if (!query.equals("")) {
result_siswa.setText("Hasil pencarian dari:
'"+query+"'");
} else {
result_siswa.setText("");
}
} catch (Exception e) {}
}

46
// Variables declaration - do not modify
private javax.swing.JPanel body;
private javax.swing.JLabel close_btn;
private javax.swing.JLabel copyright;
private javax.swing.JPanel footer;
private javax.swing.JPanel hapus1;
private javax.swing.JLabel hapus1_value;
private javax.swing.JPanel hapus2;
private javax.swing.JLabel hapus2_value;
private javax.swing.JPanel hapus3;
private javax.swing.JLabel hapus3_value;
private javax.swing.JPanel header;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JPanel kelolabuku;
private javax.swing.JPanel kelolasiswa;
private javax.swing.JPanel peminjaman;
private javax.swing.JLabel result_buku;
private javax.swing.JLabel result_peminjaman;
private javax.swing.JLabel result_siswa;
private javax.swing.JTextField search_buku;
private javax.swing.JTextField search_peminjaman;
private javax.swing.JTextField search_siswa;
private javax.swing.JPanel segarkan1;
private javax.swing.JLabel segarkan1_value;
private javax.swing.JPanel segarkan2;
private javax.swing.JLabel segarkan2_value;
private javax.swing.JPanel segarkan3;
private javax.swing.JLabel segarkan3_value;
private javax.swing.JTabbedPane tab;
private javax.swing.JPanel tambah1;
private javax.swing.JLabel tambah1_value;
private javax.swing.JPanel tambah2;
private javax.swing.JLabel tambah2_value;
private javax.swing.JPanel tambah3;
private javax.swing.JLabel tambah3_value;
private javax.swing.JTable tb_buku;
private javax.swing.JTable tb_peminjaman;
private javax.swing.JTable tb_siswa;
private javax.swing.JLabel title;
private javax.swing.JPanel ubah1;
private javax.swing.JLabel ubah1_value;
private javax.swing.JPanel ubah2;
private javax.swing.JLabel ubah2_value;
private javax.swing.JPanel ubah3;
private javax.swing.JLabel ubah3_value;
// End of variables declaration
}

Login.java

import com.sun.glass.events.KeyEvent;
import java.awt.*;

47
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.logging.*;

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author User
*/
public class login extends javax.swing.JFrame {

private static Point point = new Point();

/**
* Creates new form login
*/
public login() {
super("Tugas Akhir");
setSize(642, 443);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated

48
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
title = new javax.swing.JLabel();
close_btn = new javax.swing.JLabel();
label2 = new javax.swing.JLabel();
username = new placeholder.username();
password = new placeholder.password();
button = new javax.swing.JPanel();
submit = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EX
IT_ON_CLOSE);

body.setBackground(new java.awt.Color(255, 242, 188));


body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));
body.setForeground(new java.awt.Color(255, 255, 255));

header.setBackground(new java.awt.Color(204, 0, 0));

title.setFont(new java.awt.Font("Tahoma", 1, 17)); //


NOI18N
title.setForeground(new java.awt.Color(255, 255, 255));
title.setText("PERPUSTAKAAN ELEKTRO");
title.setToolTipText("TUGAS AKHIR");

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAUL

49
T_SIZE, Short.MAX_VALUE)
.addComponent(title)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(14, 14, 14))
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createParallelGroup(javax.sw
ing.GroupLayout.Alignment.BASELINE)
.addComponent(title,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

label2.setFont(new java.awt.Font("Tahoma", 1, 28)); //


NOI18N
label2.setForeground(new java.awt.Color(204, 0, 0));
label2.setText("SIPADU");

username.setToolTipText("masukkan nama pengguna kamu");


username.addKeyListener(new java.awt.event.KeyAdapter()
{
public void keyPressed(java.awt.event.KeyEvent evt)
{
usernameKeyPressed(evt);
}
});

password.setToolTipText("masukkan kata sandi kamu");


password.addKeyListener(new java.awt.event.KeyAdapter()
{
public void keyPressed(java.awt.event.KeyEvent evt)
{
passwordKeyPressed(evt);
}
});

button.setBackground(new java.awt.Color(204, 0, 0));


button.setPreferredSize(new java.awt.Dimension(205,
31));

submit.setBackground(new java.awt.Color(255, 255,


255));
submit.setFont(new java.awt.Font("Tahoma", 1, 14)); //
NOI18N
submit.setForeground(new java.awt.Color(255, 255,
255));
submit.setHorizontalAlignment(javax.swing.SwingConstant
s.CENTER);
submit.setText("Login");
submit.setToolTipText("Masuk Ke TUKHIR");
submit.addMouseListener(new

50
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
submitMouseClicked(evt);
}
});

javax.swing.GroupLayout buttonLayout = new


javax.swing.GroupLayout(button);
button.setLayout(buttonLayout);
buttonLayout.setHorizontalGroup(
buttonLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(buttonLayout.createSequentialGroup()
.addGap(40, 40, 40)
.addComponent(submit,
javax.swing.GroupLayout.PREFERRED_SIZE, 123,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(42, Short.MAX_VALUE))
);
buttonLayout.setVerticalGroup(
buttonLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(submit,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
);

jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/rsz_1rsz_ummmm-
picsay.png"))); // NOI18N
jLabel1.setText("hvcnsdjdsvjinvdjdsnvjkdsvn");

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addGroup(bodyLayout.createSequentialGroup()
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGap(23, 23, 23)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(password)
.addComponent(username)
.addComponent(button,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(bodyLayout.createSequentialGroup(
)
.addGap(72, 72, 72)
.addComponent(label2))
.addGroup(bodyLayout.createSequentialGroup(

51
)
.addGap(63, 63, 63)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 128,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(26, Short.MAX_VALUE))
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(81, 81, 81)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 128,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(label2)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.UNRELATED)
.addComponent(username,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(password,
javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.UNRELATED)
.addComponent(button,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(24, 24, 24))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

52
pack();
}// </editor-fold>

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
int x = JOptionPane.showConfirmDialog(null, "Anda yakin
ingin keluar dari program?", "Keluar",
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
System.exit(0);
dispose();
}
}

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int x = JOptionPane.showConfirmDialog(null, "Anda yakin
ingin keluar dari program?", "Keluar",
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
if (x == JOptionPane.YES_OPTION) {
System.exit(0);
dispose();
}
}

private void passwordKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
submit();
}
}

private void usernameKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
submit();
}
}

private void submitMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
submit();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see

53
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(login.class.getN
ame()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(login.class.getN
ame()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(login.class.getN
ame()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(login.class.getN
ame()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new login().setVisible(true);
}
});
}

private void submit() {


if (username.getText().equals("") ||
password.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Nama pengguna
dan Kata sandi tidak boleh kosong!", "Peringatan",
JOptionPane.WARNING_MESSAGE);
} else {
try {
String sql = "SELECT * FROM admin WHERE
username = '"+username.getText()+"' AND password =
'"+password.getText()+"'";
Connection con = new
database.connection().configDB();
java.sql.Statement stat =
con.createStatement();
java.sql.ResultSet rs = stat.executeQuery(sql);

if (rs.next()) {
if
(username.getText().equals(rs.getString("username")) &&
password.getText().equals(rs.getString("password"))) {
home n = new home();

54
n.setVisible(true);
this.setVisible(false);
}
} else {
JOptionPane.showMessageDialog(null, "Nama
pengguna atau Kata sandi yang Anda masukkan salah.",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
e.getMessage());
}
}
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JPanel button;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel header;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel label2;
private javax.swing.JTextField password;
private javax.swing.JLabel submit;
private javax.swing.JLabel title;
private javax.swing.JTextField username;
// End of variables declaration
}

Package Database

Connection.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package database;

import java.sql.*;
import javax.swing.*;

/**
*
* @author User
*/
public class connection {
static Connection mysqlconfig;
static Statement mysqldata;
public Connection configDB() {
try {
String url =

55
"jdbc:mysql://localhost:3306/tugasakhiruas?
zeroDateTimeBehavior=convertToNull";
String user = "root";
String pass = "";
DriverManager.registerDriver(new
com.mysql.jdbc.Driver());
mysqlconfig = DriverManager.getConnection(url,
user, pass);
mysqldata = mysqlconfig.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Koneksi
GAGAL!\n"+e);
}
return mysqlconfig;
}
}

Package Pages

Add_buku.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pages;

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;

/**
*
* @author User
*/
public class add_buku extends javax.swing.JDialog {

private static Point point = new Point();

private char[] chars =


"12ABCDEF34GHIJKL56MNOPQR78STUVW90XYZ".toCharArray();
private StringBuilder stringBuilder = new StringBuilder();
private Random random = new Random();
private String output;

/**
* Creates new form add_buku
*/
public add_buku(java.awt.Frame parent, boolean modal) {
super(parent, modal);

56
setSize(540, 225);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();
thisdate();

kode.setText(getRandom());
kode.setEnabled(false);
}

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
close_btn = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
kode = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
judul = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jenis = new javax.swing.JComboBox<>();
jLabel5 = new javax.swing.JLabel();
pengarang = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
tanggal = new javax.swing.JTextField();
save_btn = new javax.swing.JPanel();
save = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);

57
body.setBackground(new java.awt.Color(255, 255, 255));
body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

header.setBackground(new java.awt.Color(204, 0, 0));


header.setPreferredSize(new java.awt.Dimension(718,
47));

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(512, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(close_btn)
);

jLabel1.setText("Kode Buku");

jLabel2.setForeground(new java.awt.Color(204, 0, 0));


jLabel2.setText("?");
jLabel2.setToolTipText("Dibuat secara acak dan
otomatis");

kode.setBackground(new java.awt.Color(204, 204, 204));

jLabel3.setText("Judul Buku");

58
jLabel4.setText("Jenis Buku");

jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));

jLabel5.setText("Pengarang");

jLabel6.setText("Tanggal Terbit (YYYY-MM-DD)");

save_btn.setBackground(new java.awt.Color(204, 0, 0));

save.setForeground(new java.awt.Color(255, 255, 255));


save.setHorizontalAlignment(javax.swing.SwingConstants.
CENTER);
save.setText("Simpan");
save.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent
evt) {
saveMouseClicked(evt);
}
});

javax.swing.GroupLayout save_btnLayout = new


javax.swing.GroupLayout(save_btn);
save_btn.setLayout(save_btnLayout);
save_btnLayout.setHorizontalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
);
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
.addGroup(bodyLayout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jenis, 0, 245,
Short.MAX_VALUE)
.addComponent(jLabel4)
.addComponent(judul)
.addComponent(jLabel3)

59
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jLabel2))
.addComponent(kode))
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGap(11, 11, 11)
.addComponent(jLabel5))
.addGroup(bodyLayout.createSequentialGroup(
)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.UNRELATED)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(pengarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(javax.swing.GroupLayout.Alignment
.TRAILING, bodyLayout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(pengarang,
javax.swing.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
.addComponent(kode))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)

60
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(tanggal,
javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addComponent(judul))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.TRAILING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jenis,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(19, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {

61
// TODO add your handling code here:
this.setVisible(false);
}

private void saveMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
String getkode, getjudul, getpengarang, gettanggal;

getkode = kode.getText();
getjudul = judul.getText();
getpengarang = pengarang.getText();
gettanggal = tanggal.getText();
int getjenis = jenis.getSelectedIndex()+1;

if (empty(getjudul) || empty(gettanggal) ||
empty(getpengarang)) {
JOptionPane.showMessageDialog(null, "Data yang Anda
masukkan belum lengkap!", "Peringatan!",
JOptionPane.WARNING_MESSAGE);
} else {
try {
Connection con = new
database.connection().configDB();
String get = "SELECT * FROM buku WHERE judul =
'"+getjudul+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet hasil =
st.executeQuery(get);

if (hasil.next()) {
JOptionPane.showMessageDialog(null, "Judul
buku tidak boleh ada yang sama.", "Kesalahan",
JOptionPane.ERROR_MESSAGE);
} else {
try {
String sql = "INSERT INTO buku VALUES
(null, ?, ?, ?, ?, ?)";
java.sql.PreparedStatement stat =
(PreparedStatement)con.prepareStatement(sql);
stat.setString(1, getkode);
stat.setString(2, getjenis+"");
stat.setString(3, getjudul);
stat.setString(4, gettanggal);
stat.setString(5, getpengarang);
stat.executeUpdate();

this.setVisible(false);
JOptionPane.showMessageDialog(null,
"Data BERHASIL Ditambahkan", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"GAGAL Menambahkan Data", "Kesalahan",
JOptionPane.ERROR_MESSAGE);
}
}
} catch (Exception e) {}

62
}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(add_buku.class.g
etName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(add_buku.class.g
etName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(add_buku.class.g
etName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(add_buku.class.g
etName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
add_buku dialog = new add_buku(new
javax.swing.JFrame(), true);
dialog.addWindowListener(new
java.awt.event.WindowAdapter() {
@Override
public void
windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

63
private void thisdate() {
java.util.Date sekarang = new java.util.Date();
java.text.SimpleDateFormat kal = new
java.text.SimpleDateFormat("yyyy-MM-dd") ;
tanggal.setText(""+kal.format(sekarang));
}

private String getRandom() {


for (int length = 0; length < 8; length++) {
Character character =
chars[random.nextInt(chars.length)];
stringBuilder.append(character);
}
output = stringBuilder.toString();
stringBuilder.delete(0, 9);
return output;
}

private static boolean empty(final String s) {


return s == null || s.trim().isEmpty();
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel header;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JComboBox<String> jenis;
private javax.swing.JTextField judul;
private javax.swing.JTextField kode;
private javax.swing.JTextField pengarang;
private javax.swing.JLabel save;
private javax.swing.JPanel save_btn;
private javax.swing.JTextField tanggal;
// End of variables declaration
}

Add_peminjaman.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pages;

64
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;

/**
*
* @author User
*/
public class add_peminjaman extends javax.swing.JDialog {

private static Point point = new Point();

DefaultTableModel tbl1 = new DefaultTableModel() {


public boolean isCellEditable(int row, int column) {
return false;
}
};
DefaultTableModel tbl2 = new DefaultTableModel() {
public boolean isCellEditable(int row, int column) {
return false;
}
};

/**
* Creates new form add_peminjaman
*/
public add_peminjaman(java.awt.Frame parent, boolean modal)
{
super(parent, modal);

setSize(760, 578);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();

nis.setEnabled(false);
nama.setEnabled(false);
jurusan.setEnabled(false);

65
kode.setEnabled(false);
judul.setEnabled(false);
jenis.setEnabled(false);

tampil_buku();
tampil_murid();
thisdate();
}

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
close_btn = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
tbl_murid = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
tbl_buku = new javax.swing.JTable();
cari_murid = new placeholder.search_student();
cari_buku = new placeholder.search_book();
data_murid = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
nis = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
nama = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jurusan = new javax.swing.JTextField();
data_buku = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
kode = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jenis = new javax.swing.JComboBox<>();
jLabel6 = new javax.swing.JLabel();
judul = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
tanggal = new javax.swing.JTextField();
save_btn = new javax.swing.JPanel();
save = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);

body.setBackground(new java.awt.Color(255, 255, 255));


body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

header.setBackground(new java.awt.Color(204, 0, 0));


header.setPreferredSize(new java.awt.Dimension(718,

66
47));

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(732, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(close_btn)
);

tbl_murid.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"NIS", "Nama", "Jurusan"
}
));
tbl_murid.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
tbl_muridMouseClicked(evt);

67
}
});
jScrollPane1.setViewportView(tbl_murid);

tbl_buku.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Kode Buku", "Judul Buku", "Tanggal Terbit"
}
));
tbl_buku.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
tbl_bukuMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tbl_buku);

cari_murid.setToolTipText("Cari Murid");
cari_murid.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
cari_muridKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
cari_muridKeyTyped(evt);
}
});

cari_buku.setToolTipText("Cari Buku");
cari_buku.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
cari_bukuKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
cari_bukuKeyTyped(evt);
}
});

data_murid.setBackground(new java.awt.Color(255, 255,


255));
data_murid.setBorder(javax.swing.BorderFactory.createTi
tledBorder("Data Murid"));

jLabel1.setText("NIS");

nis.setBackground(new java.awt.Color(204, 204, 204));

jLabel2.setText("Nama");

68
nama.setBackground(new java.awt.Color(204, 204, 204));

jLabel3.setText("Jurusan");

jurusan.setBackground(new java.awt.Color(204, 204,


204));

javax.swing.GroupLayout data_muridLayout = new


javax.swing.GroupLayout(data_murid);
data_murid.setLayout(data_muridLayout);
data_muridLayout.setHorizontalGroup(
data_muridLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addComponent(nis)
.addComponent(nama)
.addGroup(data_muridLayout.createSequentialGroup()
.addGroup(data_muridLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jurusan)
);
data_muridLayout.setVerticalGroup(
data_muridLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addGroup(data_muridLayout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(nis,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(nama,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jurusan,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);

data_buku.setBackground(new java.awt.Color(255, 255,


255));
data_buku.setBorder(javax.swing.BorderFactory.createTit
ledBorder("Data Buku"));

69
jLabel4.setText("Kode Buku");

kode.setBackground(new java.awt.Color(204, 204, 204));

jLabel5.setText("Jenis Buku");

jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));

jLabel6.setText("Judul Buku");

judul.setBackground(new java.awt.Color(204, 204, 204));

jLabel7.setText("Tanggal Peminjaman (YYYY-MM-DD)");

javax.swing.GroupLayout data_bukuLayout = new


javax.swing.GroupLayout(data_buku);
data_buku.setLayout(data_bukuLayout);
data_bukuLayout.setHorizontalGroup(
data_bukuLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(kode)
.addComponent(jenis, 0,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(judul)
.addGroup(data_bukuLayout.createSequentialGroup()
.addGroup(data_bukuLayout.createParallelGroup(j
avax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel7)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addContainerGap(179, Short.MAX_VALUE))
.addComponent(tanggal)
);
data_bukuLayout.setVerticalGroup(
data_bukuLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addGroup(data_bukuLayout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(kode,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jenis,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel6)

70
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(judul,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);

save_btn.setBackground(new java.awt.Color(204, 0, 0));

save.setForeground(new java.awt.Color(255, 255, 255));


save.setHorizontalAlignment(javax.swing.SwingConstants.
CENTER);
save.setText("Simpan");
save.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent
evt) {
saveMouseClicked(evt);
}
});

javax.swing.GroupLayout save_btnLayout = new


javax.swing.GroupLayout(save_btn);
save_btn.setLayout(save_btnLayout);
save_btnLayout.setHorizontalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
);
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE, 758, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILIN
G, bodyLayout.createSequentialGroup()
.addContainerGap()
.addGroup(bodyLayout.createParallelGroup(javax.

71
swing.GroupLayout.Alignment.LEADING)
.addComponent(cari_murid)
.addComponent(cari_buku)
.addComponent(data_murid,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(data_buku,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addGroup(bodyLayout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addComponent(save_btn,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.UNRELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(cari_murid,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(cari_buku,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(data_murid,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(data_buku,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))

72
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 247,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void
tbl_muridMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
clicktbl_murid();
}

private void cari_muridKeyPressed(java.awt.event.KeyEvent

73
evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_murid();
}
}

private void cari_muridKeyTyped(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
search_murid();
}

private void cari_bukuKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_book();
}
}

private void cari_bukuKeyTyped(java.awt.event.KeyEvent evt)


{
// TODO add your handling code here:
search_book();
}

private void saveMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
save();
}

private void tbl_bukuMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
clicktbl_buku();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;

74
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(add_peminjaman.c
lass.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(add_peminjaman.c
lass.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(add_peminjaman.c
lass.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(add_peminjaman.c
lass.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
add_peminjaman dialog = new add_peminjaman(new
javax.swing.JFrame(), true);
dialog.addWindowListener(new
java.awt.event.WindowAdapter() {
@Override
public void
windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

private void thisdate() {


java.util.Date sekarang = new java.util.Date();
java.text.SimpleDateFormat kal = new
java.text.SimpleDateFormat("yyyy-MM-dd") ;
tanggal.setText(""+kal.format(sekarang));
}

private void tampil_buku() {


Object []baris = {"Kode Buku", "Judul Buku", "Tanggal
Terbit"};
tbl1 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_buku.setModel(tbl1);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku ORDER BY id ASC";

75
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

while (rs.next()) {
String kode = rs.getString("kode");
String judul = rs.getString("judul");
String tanggal = rs.getString("tanggal");

String[] data = {kode, judul, tanggal};


tbl1.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private void tampil_murid() {


Object []baris = {"NIS", "Nama", "Jurusan"};
tbl2 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_murid.setModel(tbl2);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid ORDER BY id ASC";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

while (rs.next()) {
String nis = rs.getString("nis");
String nama = rs.getString("nama");
String jurusan = rs.getString("jurusan");

String[] data = {nis, nama, jurusan};


tbl2.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private void search_book() {


String query = cari_buku.getText();

Object []baris = {"Kode Buku", "Judul Buku", "Tanggal


Terbit"};
tbl1 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)

76
{
return false;
}
};
tbl_buku.setModel(tbl1);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE BINARY "
+ "kode LIKE '%"+query+"%' "
+ "OR judul LIKE '%"+query+"%' "
+ "OR tanggal LIKE '%"+query+"%' "
+ "OR pengarang LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String kode = hasil.getString("kode");
String judul = hasil.getString("judul");
String tanggal = hasil.getString("tanggal");
String[] data = {kode, judul, tanggal};
tbl1.addRow(data);
}
} catch (Exception e) {}
}

private void search_murid() {


String query = cari_murid.getText();

Object []baris = {"NIS", "Nama", "Jurusan"};


tbl2 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_murid.setModel(tbl2);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid WHERE BINARY "
+ "nis LIKE '%"+query+"%' "
+ "OR nama LIKE '%"+query+"%' "
+ "OR jurusan LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String nis = hasil.getString("nis");
String nama = hasil.getString("nama");
String jurusan = hasil.getString("jurusan");
String[] data = {nis, nama, jurusan};
tbl2.addRow(data);

77
}
} catch (Exception e) {}
}

private void clicktbl_murid() {


int baris = tbl_murid.getSelectedRow();
nis.setText((String)tbl2.getValueAt(baris, 0));
nama.setText((String)tbl2.getValueAt(baris, 1));
jurusan.setText((String)tbl2.getValueAt(baris, 2));
}
private void clicktbl_buku() {
int baris = tbl_buku.getSelectedRow();

kode.setText((String)tbl1.getValueAt(baris, 0));
judul.setText((String)tbl1.getValueAt(baris, 1));
thisdate();

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE kode = '"+
(String)tbl1.getValueAt(baris,0)+"'";
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet rs = stat.executeQuery(sql);
if (rs.next()){
jenis.setSelectedIndex(rs.getInt("jenis")-1);
}
} catch (Exception e){}
}

private void save() {


String id, getnis, getnama, getjurusan, getkode,
getjudul, gettanggal;

getnis = nis.getText();
getnama = nama.getText();
getjurusan = jurusan.getText();
getkode = kode.getText();
getjudul = judul.getText();
gettanggal = tanggal.getText();

if (empty(getnis) || empty(getkode) ||
empty(gettanggal)) {
JOptionPane.showMessageDialog(null, "Data yang Anda
masukkan belum lengkap!", "Peringatan!",
JOptionPane.WARNING_MESSAGE);
} else {
try {
Connection con = new
database.connection().configDB();
String get = "SELECT * FROM peminjaman WHERE
nis = '"+getnis+"' AND kode = '"+getkode+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet hasil =
st.executeQuery(get);

if (hasil.next()) {

78
JOptionPane.showMessageDialog(null, "Data
seperti ini sudah pernah Anda masukkan sebelumnya.",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else {
try {
String sql = "INSERT INTO peminjaman
VALUES (null, ?, ?, ?, ?, ?, ?)";
java.sql.PreparedStatement stat =
(PreparedStatement)con.prepareStatement(sql);
stat.setString(1, getnis);
stat.setString(2, getnama);
stat.setString(3, getjurusan);
stat.setString(4, getkode);
stat.setString(5, getjudul);
stat.setString(6, gettanggal);
stat.executeUpdate();

this.setVisible(false);
JOptionPane.showMessageDialog(null,
"Data BERHASIL Ditambahkan", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"GAGAL Menambahkan Data", "Kesalahan",
JOptionPane.ERROR_MESSAGE);
}
}
} catch (Exception e) {}
}
}

private static boolean empty(final String s) {


return s == null || s.trim().isEmpty();
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JTextField cari_buku;
private javax.swing.JTextField cari_murid;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel data_buku;
private javax.swing.JPanel data_murid;
private javax.swing.JPanel header;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JComboBox<String> jenis;
private javax.swing.JTextField judul;
private javax.swing.JTextField jurusan;
private javax.swing.JTextField kode;
private javax.swing.JTextField nama;
private javax.swing.JTextField nis;

79
private javax.swing.JLabel save;
private javax.swing.JPanel save_btn;
private javax.swing.JTextField tanggal;
private javax.swing.JTable tbl_buku;
private javax.swing.JTable tbl_murid;
// End of variables declaration
}

Add_siswa.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pages;

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.util.regex.*;
import javax.swing.text.*;

/**
*
* @author User
*/
public class add_siswa extends javax.swing.JDialog {

private static Point point = new Point();

/**
* Creates new form add_siswa
*/
public add_siswa(java.awt.Frame parent, boolean modal) {
super(parent, modal);

setSize(540, 281);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {

80
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();

((AbstractDocument)nis.getDocument()).setDocumentFilter
(new DocumentFilter() {
Pattern regEx = Pattern.compile("\\d*");

@Override
public void replace(FilterBypass fb, int offset,
int length, String text, AttributeSet attrs) throws
BadLocationException {
Matcher matcher = regEx.matcher(text);
if (!matcher.matches()) {
return;
}
super.replace(fb, offset, length, text, attrs);
}
});
}

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
close_btn = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
nis = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
nama = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jurusan = new javax.swing.JComboBox<>();
jLabel5 = new javax.swing.JLabel();
tempat_lahir = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
tanggal_lahir = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
tanggal = new javax.swing.JTextField();
save_btn = new javax.swing.JPanel();
save = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);

81
body.setBackground(new java.awt.Color(255, 255, 255));
body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

header.setBackground(new java.awt.Color(204, 0, 0));


header.setPreferredSize(new java.awt.Dimension(718,
47));

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(512, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(close_btn)
);

jLabel1.setText("NIS");

nis.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
nisKeyPressed(evt);
}
});

jLabel3.setText("Nama Lengkap");

82
jLabel4.setText("Jurusan");

jurusan.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] {"S1 Pendidikan
Teknik Elektro", "S1 Pendidikan TI", "S1 Teknik Elektro", "S1
Teknik Informatika", "D3 Elektronika" }));

jLabel5.setText("Tempat Lahir");

jLabel6.setText("Tanggal Lahir (YYYY-MM-DD)");

jLabel2.setText("Tanggal Siswa Masuk (YYYY-MM-DD)");

save_btn.setBackground(new java.awt.Color(204, 0, 0));

save.setForeground(new java.awt.Color(255, 255, 255));


save.setHorizontalAlignment(javax.swing.SwingConstants.
CENTER);
save.setText("Simpan");
save.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent
evt) {
saveMouseClicked(evt);
}
});

javax.swing.GroupLayout save_btnLayout = new


javax.swing.GroupLayout(save_btn);
save_btn.setLayout(save_btnLayout);
save_btnLayout.setHorizontalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
);
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
.addGroup(bodyLayout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)

83
.addComponent(jLabel2)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jurusan, 0, 245,
Short.MAX_VALUE)
.addComponent(jLabel4)
.addComponent(nama)
.addComponent(jLabel3)
.addComponent(jLabel1)
.addComponent(nis))
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(bodyLayout.createSequenti
alGroup()
.addGap(11, 11, 11)
.addComponent(jLabel5))
.addGroup(bodyLayout.createSequenti
alGroup()
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.UNRELATED)
.addGroup(bodyLayout.createPara
llelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tanggal_lahir
, javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(tempat_lahir,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(javax.swing.GroupLayout.A
lignment.TRAILING, bodyLayout.createSequentialGroup()
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(tempat_lahir,

84
javax.swing.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
.addComponent(nis))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(tanggal_lahir,
javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addComponent(nama))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.TRAILING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jurusan,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(19, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

85
pack();
}// </editor-fold>

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void saveMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
String getnis, getnama, gettempat, gettl, getjurusan,
gettanggal;
getnis = nis.getText();
getnama = nama.getText();
gettempat = tempat_lahir.getText();
gettl = tanggal_lahir.getText();
getjurusan = (String)jurusan.getSelectedItem();
gettanggal = tanggal.getText();

if (empty(getnis) || empty(getnama) || empty(gettempat)


|| empty(gettl) || empty(gettanggal)) {
JOptionPane.showMessageDialog(null, "Data yang Anda
masukkan belum lengkap!", "Kesalahan",
JOptionPane.ERROR_MESSAGE);
} else if (getnis.length() >=6 || getnis.length() <= 4)
{
JOptionPane.showMessageDialog(null, "Panjang NIS
harus 5 karakter!", "Peringatan!",
JOptionPane.WARNING_MESSAGE);
} else {
try {
Connection con = new
database.connection().configDB();
String get = "SELECT * FROM murid WHERE nis =
'"+getnis+"' OR nama = '"+getnama+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet hasil =
st.executeQuery(get);

if (hasil.next()) {
JOptionPane.showMessageDialog(null, "Data
seperti ini sudah pernah Anda masukkan sebelumnya.",
"Kesalahan", JOptionPane.ERROR_MESSAGE);
} else {
try{
String sql = "INSERT INTO murid VALUES
(null, ?, ?, ?, ?, ?, ?)";
java.sql.PreparedStatement stat =
(PreparedStatement)con.prepareStatement(sql);

86
stat.setString(1, getnis);
stat.setString(2, getnama);
stat.setString(3, gettempat);
stat.setString(4, gettl);
stat.setString(5, getjurusan);
stat.setString(6, gettanggal);
stat.executeUpdate();

this.setVisible(false);
JOptionPane.showMessageDialog(null,
"Data BERHASIL Ditambahkan", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"GAGAL Menambahkan Data", "Kesalahan",
JOptionPane.ERROR_MESSAGE);
}
}
} catch (Exception e) {}
}
}

private void nisKeyPressed(java.awt.event.KeyEvent evt) {


// TODO add your handling code here:
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(add_siswa.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(add_siswa.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(add_siswa.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {

87
java.util.logging.Logger.getLogger(add_siswa.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
add_siswa dialog = new add_siswa(new
javax.swing.JFrame(), true);
dialog.addWindowListener(new
java.awt.event.WindowAdapter() {
@Override
public void
windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

private static boolean empty(final String s) {


return s == null || s.trim().isEmpty();
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel header;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JComboBox<String> jurusan;
private javax.swing.JTextField nama;
private javax.swing.JTextField nis;
private javax.swing.JLabel save;
private javax.swing.JPanel save_btn;
private javax.swing.JTextField tanggal;
private javax.swing.JTextField tanggal_lahir;
private javax.swing.JTextField tempat_lahir;
// End of variables declaration
}

Add_buku.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

88
package pages;

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;

/**
*
* @author User
*/
public class edit_buku extends javax.swing.JDialog {

private static Point point = new Point();

/**
* Creates new form edit_buku
*/
public edit_buku(java.awt.Frame parent, boolean modal,
String id) {
super(parent, modal);

setSize(540, 225);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();

tampilin(id);
idnya.setText(id);
idnya.setVisible(false);
kode.setEnabled(false);
judul.setEnabled(false);
}

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.

89
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
close_btn = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
kode = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
judul = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jenis = new javax.swing.JComboBox<>();
jLabel5 = new javax.swing.JLabel();
pengarang = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
tanggal = new javax.swing.JTextField();
save_btn = new javax.swing.JPanel();
save = new javax.swing.JLabel();
idnya = new javax.swing.JLabel();
reset_btn = new javax.swing.JPanel();
reset = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);

body.setBackground(new java.awt.Color(255, 255, 255));


body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

header.setBackground(new java.awt.Color(204, 0, 0));


header.setPreferredSize(new java.awt.Dimension(718,
47));

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);

90
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(512, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(close_btn)
);

jLabel1.setText("Kode Buku");

kode.setBackground(new java.awt.Color(204, 204, 204));

jLabel3.setText("Judul Buku");

judul.setBackground(new java.awt.Color(204, 204, 204));

jLabel4.setText("Jenis Buku");

jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));

jLabel5.setText("Pengarang");

jLabel6.setText("Tanggal Terbit (YYYY-MM-DD)");

save_btn.setBackground(new java.awt.Color(204, 0, 0));

save.setForeground(new java.awt.Color(255, 255, 255));


save.setHorizontalAlignment(javax.swing.SwingConstants.
CENTER);
save.setText("Simpan");
save.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent
evt) {
saveMouseClicked(evt);
}
});

javax.swing.GroupLayout save_btnLayout = new


javax.swing.GroupLayout(save_btn);
save_btn.setLayout(save_btnLayout);
save_btnLayout.setHorizontalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
);

91
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

reset_btn.setBackground(new java.awt.Color(204, 0, 0));

reset.setForeground(new java.awt.Color(255, 255, 255));


reset.setHorizontalAlignment(javax.swing.SwingConstants
.CENTER);
reset.setText("Reset");
reset.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
resetMouseClicked(evt);
}
});

javax.swing.GroupLayout reset_btnLayout = new


javax.swing.GroupLayout(reset_btn);
reset_btn.setLayout(reset_btnLayout);
reset_btnLayout.setHorizontalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
);
reset_btnLayout.setVerticalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
.addGroup(bodyLayout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jenis, 0, 245,
Short.MAX_VALUE)
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(idnya))
.addComponent(judul)

92
.addComponent(jLabel3)
.addComponent(jLabel1)
.addComponent(kode))
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGap(11, 11, 11)
.addComponent(jLabel5))
.addGroup(bodyLayout.createSequentialGroup(
)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.UNRELATED)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(pengarang,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(javax.swing.GroupLayout.Alignment
.TRAILING, bodyLayout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(reset_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(pengarang,
javax.swing.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
.addComponent(kode))
.addPreferredGap(javax.swing.LayoutStyle.Compon

93
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(tanggal,
javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addComponent(judul))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.TRAILING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(idnya))
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jenis,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(19, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

94
private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void saveMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
String getpengarang, gettanggal;
getpengarang = pengarang.getText();
gettanggal = tanggal.getText();
int getjenis = jenis.getSelectedIndex()+1;

if (!empty(gettanggal)) {
try {
Connection con = new
database.connection().configDB();
String sql = "UPDATE buku SET jenis = ?,
tanggal = ?, pengarang = ? WHERE id = '"+idnya.getText()+"'";
java.sql.PreparedStatement stat =
con.prepareStatement(sql);
stat.setString(1, getjenis+"");
stat.setString(2, gettanggal);
stat.setString(3, getpengarang);
stat.executeUpdate();

this.setVisible(false);
JOptionPane.showMessageDialog(null, "Data
BERHASIL Diubah", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "GAGAL
Mengubah Data", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Silahkan
masukkan Tanggal Peminjaman!", "Peringatan!",
JOptionPane.WARNING_MESSAGE);
}
}

private void resetMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
tampilin(idnya.getText());
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

95
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(edit_buku.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(edit_buku.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(edit_buku.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(edit_buku.class.
getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
edit_buku dialog = new edit_buku(new
javax.swing.JFrame(), true, "0");
dialog.addWindowListener(new
java.awt.event.WindowAdapter() {
@Override
public void
windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

private void tampilin(String id) {


try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE id =
'"+id+"'";

96
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet hasil = stat.executeQuery(sql);

if (hasil.next()) {
kode.setText(hasil.getString("kode"));
judul.setText(hasil.getString("judul"));
pengarang.setText(hasil.getString("pengarang"))
;
tanggal.setText(hasil.getString("tanggal"));
jenis.setSelectedIndex(hasil.getInt("jenis")-
1);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menampilkan Frame!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private static boolean empty(final String s) {


return s == null || s.trim().isEmpty();
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel header;
private javax.swing.JLabel idnya;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JComboBox<String> jenis;
private javax.swing.JTextField judul;
private javax.swing.JTextField kode;
private javax.swing.JTextField pengarang;
private javax.swing.JLabel reset;
private javax.swing.JPanel reset_btn;
private javax.swing.JLabel save;
private javax.swing.JPanel save_btn;
private javax.swing.JTextField tanggal;
// End of variables declaration
}

Edit_peminjaman.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pages;

import java.awt.*;

97
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;

/**
*
* @author User
*/
public class edit_peminjaman extends javax.swing.JDialog {

private static Point point = new Point();

DefaultTableModel tbl1 = new DefaultTableModel() {


public boolean isCellEditable(int row, int column) {
return false;
}
};
DefaultTableModel tbl2 = new DefaultTableModel() {
public boolean isCellEditable(int row, int column) {
return false;
}
};

/**
* Creates new form edit_peminjaman
*/
public edit_peminjaman(java.awt.Frame parent, boolean
modal, String id) {
super(parent, modal);

setSize(760, 578);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();

nis.setEnabled(false);
nama.setEnabled(false);
jurusan.setEnabled(false);
kode.setEnabled(false);
judul.setEnabled(false);

98
jenis.setEnabled(false);
id_peminjaman.setVisible(false);

tampil_data(id);
tampil_buku();
tampil_murid();
}

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
close_btn = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
tbl_murid = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
tbl_buku = new javax.swing.JTable();
cari_murid = new placeholder.search_student();
cari_buku = new placeholder.search_book();
data_murid = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
nis = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
nama = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jurusan = new javax.swing.JTextField();
data_buku = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
kode = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jenis = new javax.swing.JComboBox<>();
jLabel6 = new javax.swing.JLabel();
judul = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
tanggal = new javax.swing.JTextField();
id_peminjaman = new javax.swing.JLabel();
save_btn = new javax.swing.JPanel();
save = new javax.swing.JLabel();
reset_btn = new javax.swing.JPanel();
reset = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);

body.setBackground(new java.awt.Color(255, 255, 255));


body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

99
header.setBackground(new java.awt.Color(204, 0, 0));
header.setPreferredSize(new java.awt.Dimension(718,
47));

close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(732, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(close_btn)
);

tbl_murid.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"NIS", "Nama", "Jurusan"
}
));
tbl_murid.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent

100
evt) {
tbl_muridMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tbl_murid);

tbl_buku.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Kode Buku", "Judul Buku", "Tanggal Terbit"
}
));
tbl_buku.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
tbl_bukuMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tbl_buku);

cari_murid.setToolTipText("Cari Murid");
cari_murid.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
cari_muridKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
cari_muridKeyTyped(evt);
}
});

cari_buku.setToolTipText("Cari Buku");
cari_buku.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
cari_bukuKeyPressed(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
cari_bukuKeyTyped(evt);
}
});

data_murid.setBackground(new java.awt.Color(255, 255,


255));
data_murid.setBorder(javax.swing.BorderFactory.createTi
tledBorder("Data Murid"));

jLabel1.setText("NIS");

nis.setBackground(new java.awt.Color(204, 204, 204));

101
jLabel2.setText("Nama");

nama.setBackground(new java.awt.Color(204, 204, 204));

jLabel3.setText("Jurusan");

jurusan.setBackground(new java.awt.Color(204, 204,


204));

javax.swing.GroupLayout data_muridLayout = new


javax.swing.GroupLayout(data_murid);
data_murid.setLayout(data_muridLayout);
data_muridLayout.setHorizontalGroup(
data_muridLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addComponent(nis)
.addComponent(nama)
.addGroup(data_muridLayout.createSequentialGroup()
.addGroup(data_muridLayout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(jurusan)
);
data_muridLayout.setVerticalGroup(
data_muridLayout.createParallelGroup(javax.swing.Gr
oupLayout.Alignment.LEADING)
.addGroup(data_muridLayout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(nis,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(nama,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jurusan,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);

data_buku.setBackground(new java.awt.Color(255, 255,


255));

102
data_buku.setBorder(javax.swing.BorderFactory.createTit
ledBorder("Data Buku"));

jLabel4.setText("Kode Buku");

kode.setBackground(new java.awt.Color(204, 204, 204));

jLabel5.setText("Jenis Buku");

jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));

jLabel6.setText("Judul Buku");

judul.setBackground(new java.awt.Color(204, 204, 204));

jLabel7.setText("Tanggal Peminjaman (YYYY-MM-DD)");

javax.swing.GroupLayout data_bukuLayout = new


javax.swing.GroupLayout(data_buku);
data_buku.setLayout(data_bukuLayout);
data_bukuLayout.setHorizontalGroup(
data_bukuLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(kode)
.addComponent(jenis, 0,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(judul)
.addGroup(data_bukuLayout.createSequentialGroup()
.addGroup(data_bukuLayout.createParallelGroup(j
avax.swing.GroupLayout.Alignment.LEADING)
.addGroup(data_bukuLayout.createSequentialG
roup()
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(id_peminjaman))
.addGroup(data_bukuLayout.createSequentialG
roup()
.addGroup(data_bukuLayout.createParalle
lGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
.addComponent(tanggal)
);
data_bukuLayout.setVerticalGroup(
data_bukuLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addGroup(data_bukuLayout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(kode,

103
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jenis,
javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(judul,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(data_bukuLayout.createParallelGroup(j
avax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(id_peminjaman))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);

save_btn.setBackground(new java.awt.Color(204, 0, 0));

save.setForeground(new java.awt.Color(255, 255, 255));


save.setHorizontalAlignment(javax.swing.SwingConstants.
CENTER);
save.setText("Simpan");
save.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent
evt) {
saveMouseClicked(evt);
}
});

javax.swing.GroupLayout save_btnLayout = new


javax.swing.GroupLayout(save_btn);
save_btn.setLayout(save_btnLayout);
save_btnLayout.setHorizontalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
);
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)

104
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
);

reset_btn.setBackground(new java.awt.Color(204, 0, 0));

reset.setForeground(new java.awt.Color(255, 255, 255));


reset.setHorizontalAlignment(javax.swing.SwingConstants
.CENTER);
reset.setText("Reset");
reset.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
resetMouseClicked(evt);
}
});

javax.swing.GroupLayout reset_btnLayout = new


javax.swing.GroupLayout(reset_btn);
reset_btn.setLayout(reset_btnLayout);
reset_btnLayout.setHorizontalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
);
reset_btnLayout.setVerticalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE, 758, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILIN
G, bodyLayout.createSequentialGroup()
.addContainerGap()
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addComponent(cari_murid)
.addComponent(cari_buku)
.addComponent(data_murid,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(data_buku,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)

105
.addGroup(bodyLayout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment
.TRAILING, bodyLayout.createSequentialGroup()
.addComponent(reset_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.UNRELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(cari_murid,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(cari_buku,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(data_murid,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(data_buku,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(bodyLayout.createSequentialGroup(
)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)

106
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(bodyLayout.createSequenti
alGroup()
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 247,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(reset_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);

data_murid.getAccessibleContext().setAccessibleName("Ub
ah Data");

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

private void saveMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
save();
}

private void cari_bukuKeyTyped(java.awt.event.KeyEvent evt)


{
// TODO add your handling code here:
search_book();
}

private void cari_bukuKeyPressed(java.awt.event.KeyEvent


evt) {

107
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_book();
}
}

private void cari_muridKeyTyped(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
search_murid();
}

private void cari_muridKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_murid();
}
}

private void
tbl_muridMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
clicktbl_murid();
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void resetMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
String id = id_peminjaman.getText();
tampil_data(id);
}

private void tbl_bukuMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
clicktbl_buku();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not

108
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(edit_peminjaman.
class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(edit_peminjaman.
class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(edit_peminjaman.
class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(edit_peminjaman.
class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
edit_peminjaman dialog = new
edit_peminjaman(new javax.swing.JFrame(), true, 0+"");
dialog.addWindowListener(new
java.awt.event.WindowAdapter() {
@Override
public void
windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

private void tampil_data(String id) {


id_peminjaman.setText(id);
try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM peminjaman WHERE id =
'"+id+"'";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

109
if (rs.next()) {
nis.setText(rs.getString("nis"));
nama.setText(rs.getString("nama"));
jurusan.setText(rs.getString("jurusan"));
kode.setText(rs.getString("kode"));
judul.setText(rs.getString("judul"));
tanggal.setText(rs.getString("tanggal"));

try {
String sql2 = "SELECT * FROM buku WHERE
kode = '"+rs.getString("kode")+"'";
java.sql.ResultSet hasil =
st.executeQuery(sql2);

if (hasil.next()) {
jenis.setSelectedIndex(hasil.getInt("je
nis")-1);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menampilkan Frame!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menampilkan Frame!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private void tampil_buku() {


Object []baris = {"Kode Buku", "Judul Buku", "Tanggal
Terbit"};
tbl1 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_buku.setModel(tbl1);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku ORDER BY id ASC";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

while (rs.next()) {
String kode = rs.getString("kode");
String judul = rs.getString("judul");
String tanggal = rs.getString("tanggal");

String[] data = {kode, judul, tanggal};


tbl1.addRow(data);
}

110
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private void tampil_murid() {


Object []baris = {"NIS", "Nama", "Jurusan"};
tbl2 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_murid.setModel(tbl2);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid ORDER BY id ASC";
java.sql.Statement st = con.createStatement();
java.sql.ResultSet rs = st.executeQuery(sql);

while (rs.next()) {
String nis = rs.getString("nis");
String nama = rs.getString("nama");
String jurusan = rs.getString("jurusan");

String[] data = {nis, nama, jurusan};


tbl2.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private void search_book() {


String query = cari_buku.getText();

Object []baris = {"Kode Buku", "Judul Buku", "Tanggal


Terbit"};
tbl1 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_buku.setModel(tbl1);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE BINARY "
+ "kode LIKE '%"+query+"%' "

111
+ "OR judul LIKE '%"+query+"%' "
+ "OR tanggal LIKE '%"+query+"%' "
+ "OR pengarang LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String kode = hasil.getString("kode");
String judul = hasil.getString("judul");
String tanggal = hasil.getString("tanggal");

String[] data = {kode, judul, tanggal};


tbl1.addRow(data);
}
} catch (Exception e) {}
}

private void search_murid() {


String query = cari_murid.getText();

Object []baris = {"NIS", "Nama", "Jurusan"};


tbl2 = new DefaultTableModel(null, baris) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
tbl_murid.setModel(tbl2);

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid WHERE BINARY "
+ "nis LIKE '%"+query+"%' "
+ "OR nama LIKE '%"+query+"%' "
+ "OR jurusan LIKE '%"+query+"%' "
+ "ORDER BY id ASC";
java.sql.Statement stmt = con.createStatement();
java.sql.ResultSet hasil = stmt.executeQuery(sql);

while (hasil.next()) {
String nis = hasil.getString("nis");
String nama = hasil.getString("nama");
String jurusan = hasil.getString("jurusan");

String[] data = {nis, nama, jurusan};


tbl2.addRow(data);
}
} catch (Exception e) {}
}

private void clicktbl_murid() {


int baris = tbl_murid.getSelectedRow();

nis.setText((String)tbl2.getValueAt(baris, 0));
nama.setText((String)tbl2.getValueAt(baris, 1));

112
jurusan.setText((String)tbl2.getValueAt(baris, 2));
}

private void clicktbl_buku() {


int baris = tbl_buku.getSelectedRow();

kode.setText((String)tbl1.getValueAt(baris, 0));
judul.setText((String)tbl1.getValueAt(baris, 1));

try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM buku WHERE kode = '"+
(String)tbl1.getValueAt(baris, 0)+"'";
java.sql.Statement stat = con.createStatement();
java.sql.ResultSet rs = stat.executeQuery(sql);

if (rs.next()) {
jenis.setSelectedIndex(rs.getInt("jenis")-1);
}

} catch (Exception e) {}
}

private void save() {


String id, getnis, getnama, getjurusan, getkode,
getjudul, gettanggal;

getnis = nis.getText();
getnama = nama.getText();
getjurusan = jurusan.getText();
getkode = kode.getText();
getjudul = judul.getText();
gettanggal = tanggal.getText();

id = id_peminjaman.getText();

if (!empty(gettanggal)) {
try {
Connection con = new
database.connection().configDB();
String sql = "UPDATE peminjaman SET nis = ?,
nama = ?, jurusan = ?, kode = ?, judul = ?, tanggal = ? WHERE
id = '"+id+"'";
java.sql.PreparedStatement stat =
con.prepareStatement(sql);
stat.setString(1, getnis);
stat.setString(2, getnama);
stat.setString(3, getjurusan);
stat.setString(4, getkode);
stat.setString(5, getjudul);
stat.setString(6, gettanggal);
stat.executeUpdate();

this.setVisible(false);
JOptionPane.showMessageDialog(null, "Data
BERHASIL Diubah", "Informasi",

113
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "GAGAL
Mengubah Data", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(null, "Silahkan
masukkan Tanggal Peminjaman!", "Peringatan!",
JOptionPane.WARNING_MESSAGE);
}
}

private static boolean empty(final String s) {


return s == null || s.trim().isEmpty();
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JTextField cari_buku;
private javax.swing.JTextField cari_murid;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel data_buku;
private javax.swing.JPanel data_murid;
private javax.swing.JPanel header;
private javax.swing.JLabel id_peminjaman;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JComboBox<String> jenis;
private javax.swing.JTextField judul;
private javax.swing.JTextField jurusan;
private javax.swing.JTextField kode;
private javax.swing.JTextField nama;
private javax.swing.JTextField nis;
private javax.swing.JLabel reset;
private javax.swing.JPanel reset_btn;
private javax.swing.JLabel save;
private javax.swing.JPanel save_btn;
private javax.swing.JTextField tanggal;
private javax.swing.JTable tbl_buku;
private javax.swing.JTable tbl_murid;
// End of variables declaration
}

Edit_siswa.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates

114
* and open the template in the editor.
*/
package pages;

import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.util.regex.*;
import javax.swing.text.*;

/**
*
* @author User
*/
public class edit_siswa extends javax.swing.JDialog {

private static Point point = new Point();

/**
* Creates new form edit_siswa
*/
public edit_siswa(java.awt.Frame parent, boolean modal,
String id) {
super(parent, modal);

setSize(540, 281);
setResizable(false);
setLocationRelativeTo(null);
this.setUndecorated(true);

this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = getLocation();
setLocation(p.x + e.getX() - point.x, p.y +
e.getY() - point.y);
}
});

initComponents();

((AbstractDocument)nis.getDocument()).setDocumentFilter
(new DocumentFilter() {
Pattern regEx = Pattern.compile("\\d*");

@Override
public void replace(DocumentFilter.FilterBypass fb,
int offset, int length, String text, AttributeSet attrs) throws
BadLocationException {

115
Matcher matcher = regEx.matcher(text);
if (!matcher.matches()) {
return;
}
super.replace(fb, offset, length, text, attrs);
}
});

nis.setEnabled(false);
idnya.setVisible(false);
tanggal.setEnabled(false);
idnya.setText(id);
tampil(id);
}

/**
* This method is called from within the constructor to
initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

body = new javax.swing.JPanel();


header = new javax.swing.JPanel();
close_btn = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
nis = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
nama = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jurusan = new javax.swing.JComboBox<>();
jLabel5 = new javax.swing.JLabel();
tempat_lahir = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
tanggal_lahir = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
tanggal = new javax.swing.JTextField();
save_btn = new javax.swing.JPanel();
save = new javax.swing.JLabel();
reset_btn = new javax.swing.JPanel();
reset = new javax.swing.JLabel();
idnya = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);

body.setBackground(new java.awt.Color(255, 255, 255));


body.setBorder(javax.swing.BorderFactory.createLineBord
er(new java.awt.Color(0, 0, 0)));

header.setBackground(new java.awt.Color(204, 0, 0));


header.setPreferredSize(new java.awt.Dimension(718,
47));

116
close_btn.setFont(new java.awt.Font("Tahoma", 1,
20)); // NOI18N
close_btn.setForeground(new java.awt.Color(255, 255,
255));
close_btn.setText("×");
close_btn.setToolTipText("Keluar?");
close_btn.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
close_btnMouseClicked(evt);
}
});
close_btn.addKeyListener(new
java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
close_btnKeyPressed(evt);
}
});

javax.swing.GroupLayout headerLayout = new


javax.swing.GroupLayout(header);
header.setLayout(headerLayout);
headerLayout.setHorizontalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(headerLayout.createSequentialGroup()
.addContainerGap(512, Short.MAX_VALUE)
.addComponent(close_btn,
javax.swing.GroupLayout.PREFERRED_SIZE, 16,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
headerLayout.setVerticalGroup(
headerLayout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addComponent(close_btn)
);

jLabel1.setText("NIS");

nis.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt)
{
nisKeyPressed(evt);
}
});

jLabel3.setText("Nama Lengkap");

jLabel4.setText("Jurusan");

jurusan.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "S1
Pendidikan Teknik Informatika", "S1 Pendidikan Teknik Elektro",
"S1 Teknik Elektro", "S1 Teknik Informatika", "D3
Elektronika" }));

117
jLabel5.setText("Tempat Lahir");

jLabel6.setText("Tanggal Lahir (YYYY-MM-DD)");

jLabel2.setText("Tanggal Siswa Masuk (YYYY-MM-DD)");

save_btn.setBackground(new java.awt.Color(204, 0, 0));

save.setForeground(new java.awt.Color(255, 255, 255));


save.setHorizontalAlignment(javax.swing.SwingConstants.
CENTER);
save.setText("Simpan");
save.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent
evt) {
saveMouseClicked(evt);
}
});

javax.swing.GroupLayout save_btnLayout = new


javax.swing.GroupLayout(save_btn);
save_btn.setLayout(save_btnLayout);
save_btnLayout.setHorizontalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)
);
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

reset_btn.setBackground(new java.awt.Color(204, 0, 0));

reset.setForeground(new java.awt.Color(255, 255, 255));


reset.setHorizontalAlignment(javax.swing.SwingConstants
.CENTER);
reset.setText("Reset");
reset.addMouseListener(new
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
resetMouseClicked(evt);
}
});

javax.swing.GroupLayout reset_btnLayout = new


javax.swing.GroupLayout(reset_btn);
reset_btn.setLayout(reset_btnLayout);
reset_btnLayout.setHorizontalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE)

118
);
reset_btnLayout.setVerticalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);

javax.swing.GroupLayout bodyLayout = new


javax.swing.GroupLayout(body);
body.setLayout(bodyLayout);
bodyLayout.setHorizontalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addComponent(header,
javax.swing.GroupLayout.DEFAULT_SIZE, 538, Short.MAX_VALUE)
.addGroup(bodyLayout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jurusan, 0, 245,
Short.MAX_VALUE)
.addGroup(bodyLayout.createSequenti
alGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(idnya))
.addComponent(nama)
.addComponent(jLabel3)
.addComponent(jLabel1)
.addComponent(nis))
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(bodyLayout.createSequenti
alGroup()
.addGap(11, 11, 11)
.addComponent(jLabel5))
.addGroup(bodyLayout.createSequenti
alGroup()
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.UNRELATED)
.addGroup(bodyLayout.createPara
llelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tanggal_lahir
, javax.swing.GroupLayout.PREFERRED_SIZE, 245,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(tempat_lahir,
javax.swing.GroupLayout.PREFERRED_SIZE, 245,

119
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(javax.swing.GroupLayout.A
lignment.TRAILING, bodyLayout.createSequentialGroup()
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.RELATED)
.addComponent(reset_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.La
youtStyle.ComponentPlacement.RELATED)
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(javax.swing.GroupLayout.DEFAUL
T_SIZE, Short.MAX_VALUE))
);
bodyLayout.setVerticalGroup(
bodyLayout.createParallelGroup(javax.swing.GroupLay
out.Alignment.LEADING)
.addGroup(bodyLayout.createSequentialGroup()
.addComponent(header,
javax.swing.GroupLayout.PREFERRED_SIZE, 25,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(tempat_lahir,
javax.swing.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
.addComponent(nis))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.LEADING, false)
.addComponent(tanggal_lahir,
javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addComponent(nama))
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addGroup(bodyLayout.createParallelGroup(javax.
swing.GroupLayout.Alignment.TRAILING)
.addGroup(bodyLayout.createSequentialGroup(
)
.addGroup(bodyLayout.createParallelGrou
p(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)

120
.addComponent(idnya))
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jurusan,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyl
e.ComponentPlacement.RELATED)
.addComponent(tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(save_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset_btn,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(19, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addComponent(body,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
}// </editor-fold>

private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void close_btnKeyPressed(java.awt.event.KeyEvent


evt) {
// TODO add your handling code here:
this.setVisible(false);
}

private void nisKeyPressed(java.awt.event.KeyEvent evt) {

121
// TODO add your handling code here:
}

private void saveMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
String getnis = nis.getText();
String getnama = nama.getText();
String gettempat = tempat_lahir.getText();
String gettl = tanggal_lahir.getText();
String getjurusan = (String)jurusan.getSelectedItem();
String gettanggal = tanggal.getText();

if (!empty(getnama) || !empty(gettempat) || !
empty(gettl) || !empty(gettanggal)) {
try {
Connection con = new
database.connection().configDB();
String sql = "UPDATE murid SET nama = ?,
tempat_lahir = ?, tanggal_lahir = ?, jurusan = ?, tanggal = ?
WHERE id = '"+idnya.getText()+"'";
java.sql.PreparedStatement stat =
con.prepareStatement(sql);
stat.setString(1, getnama);
stat.setString(2, gettempat);
stat.setString(3, gettl);
stat.setString(4, getjurusan);
stat.setString(5, gettanggal);
stat.executeUpdate();
String sql2 = "UPDATE peminjaman SET nama = ?
WHERE nis = '"+getnis+"'";
java.sql.PreparedStatement stat2 =
con.prepareStatement(sql2);
stat2.setString(1, getnama);
stat2.executeUpdate();

this.setVisible(false);
JOptionPane.showMessageDialog(null, "Data
BERHASIL Diubah", "Informasi",
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "GAGAL
Mengubah Data", "Kesalahan", JOptionPane.ERROR_MESSAGE);
}
}
}

private void resetMouseClicked(java.awt.event.MouseEvent


evt) {
// TODO add your handling code here:
tampil(idnya.getText());
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */

122
//<editor-fold defaultstate="collapsed" desc=" Look and
feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.g
etClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(edit_siswa.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(edit_siswa.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(edit_siswa.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {
java.util.logging.Logger.getLogger(edit_siswa.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the dialog */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
edit_siswa dialog = new edit_siswa(new
javax.swing.JFrame(), true, "0");
dialog.addWindowListener(new
java.awt.event.WindowAdapter() {
@Override
public void
windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}

public void tampil(String id) {


try {
Connection con = new
database.connection().configDB();
String sql = "SELECT * FROM murid WHERE id =
'"+id+"'";
java.sql.Statement stat = con.createStatement();

123
java.sql.ResultSet hasil = stat.executeQuery(sql);

if (hasil.next()) {
nis.setText(hasil.getString("nis"));
nama.setText(hasil.getString("nama"));
tempat_lahir.setText(hasil.getString("tempat_la
hir"));
tanggal_lahir.setText(hasil.getString("tanggal_
lahir"));
jurusan.setSelectedItem(hasil.getString("jurusa
n"));
tanggal.setText(hasil.getString("tanggal"));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
menampilkan Frame!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}

private static boolean empty(final String s) {


return s == null || s.trim().isEmpty();
}

// Variables declaration - do not modify


private javax.swing.JPanel body;
private javax.swing.JLabel close_btn;
private javax.swing.JPanel header;
private javax.swing.JLabel idnya;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JComboBox<String> jurusan;
private javax.swing.JTextField nama;
private javax.swing.JTextField nis;
private javax.swing.JLabel reset;
private javax.swing.JPanel reset_btn;
private javax.swing.JLabel save;
private javax.swing.JPanel save_btn;
private javax.swing.JTextField tanggal;
private javax.swing.JTextField tanggal_lahir;
private javax.swing.JTextField tempat_lahir;
// End of variables declaration
}

Package Placeholder

Limit.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates

124
* and open the template in the editor.
*/
package placeholder;

import javax.swing.text.*;

/**
*
* @author User
*/
public class limit extends PlainDocument {
private int max;

public limit(int max) {


super();
this.max = max;
}

public void insertString(int offset, String str,


AttributeSet attr) throws BadLocationException {
if (str == null) {
return;
}
if ((getLength() + str.length()) <= max) {
super.insertString(offset, str, attr);
}
}
}

Password.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package placeholder;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;

/**
*
* @author User
*/
public class password extends JTextField {
private String placeholder = " Kata Sandi";
private Image icon = null;

public password() {
initListener();

125
setOpaque(false);
setForeground(Color.BLACK);
setCaretColor(Color.black);
setHorizontalAlignment(LEFT);
}

public password(String text) {


initListener();
}

public password(int columns) {


initListener();
}

public password(String text, int columns) {


super(text, columns);
initListener();
}

public password(Document doc, String text, int columns) {


super(doc, text, columns);
initListener();
}

private void initListener() {


addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
repaint();
}
});
}

public String getPlaceholder() {


return placeholder;
}

public void setPlaceholder(String placeholder) {


this.placeholder = placeholder;
repaint();
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(getBackground());
super.paintComponent(g2);
g2.dispose();
super.paintComponent(g);
if (getText().trim().equals("")) {
Font font =
getFont().deriveFont(Font.PLAIN).deriveFont(Font.PLAIN);
Graphics2D g2d = (Graphics2D)g;
FontMetrics fontMetrics = g2d.getFontMetrics(font);

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASIN

126
G, RenderingHints.VALUE_ANTIALIAS_OFF);
g2d.setColor(Color.GRAY);
g2d.setFont(font);
java.awt.geom.Rectangle2D rect =
fontMetrics.getStringBounds(placeholder, g2d);
int textHeight = (int)rect.getHeight();
g2d.drawString(placeholder, 1, textHeight+5);
}
}
}

Search.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package placeholder;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;

/**
*
* @author User
*/
public class search extends JTextField {
private String placeholder = " Cari Data...";
private Image icon = null;

public search() {
initListener();
setOpaque(false);
setForeground(Color.BLACK);
setCaretColor(Color.black);
setHorizontalAlignment(LEFT);
}

public search(String text) {


initListener();
}

public search(int columns) {


initListener();
}

public search(String text, int columns) {


super(text, columns);
initListener();
}

127
public search(Document doc, String text, int columns) {
super(doc, text, columns);
initListener();
}

private void initListener() {


addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
repaint();
}
});
}

public String getPlaceholder() {


return placeholder;
}

public void setPlaceholder(String placeholder) {


this.placeholder = placeholder;
repaint();
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(getBackground());
g2.fillRect(0,0,getWidth(),getHeight());
super.paintComponent(g2);
g2.dispose();
super.paintComponent(g);
if (getText().trim().equals("")) {
Font font =
getFont().deriveFont(Font.PLAIN).deriveFont(Font.PLAIN);
Graphics2D g2d = (Graphics2D)g;
FontMetrics fontMetrics = g2d.getFontMetrics(font);

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASIN
G, RenderingHints.VALUE_ANTIALIAS_OFF);
g2d.setColor(Color.GRAY);
g2d.setFont(font);
java.awt.geom.Rectangle2D rect =
fontMetrics.getStringBounds(placeholder, g2d);
int textHeight = (int)rect.getHeight();
g2d.drawString(placeholder, 1, textHeight+8);
}
}
}

Search_book.java

/*
* To change this license header, choose License Headers in
Project Properties.

128
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package placeholder;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;

/**
*
* @author User
*/
public class search_book extends JTextField {
private String placeholder = " Cari Buku...";
private Image icon = null;

public search_book() {
initListener();
setOpaque(false);
setForeground(Color.BLACK);
setCaretColor(Color.black);
setHorizontalAlignment(LEFT);
}

public search_book(String text) {


initListener();
}

public search_book(int columns) {


initListener();
}

public search_book(String text, int columns) {


super(text, columns);
initListener();
}

public search_book(Document doc, String text, int columns)


{
super(doc, text, columns);
initListener();
}

private void initListener() {


addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
repaint();
}
});
}

129
public String getPlaceholder() {
return placeholder;
}

public void setPlaceholder(String placeholder) {


this.placeholder = placeholder;
repaint();
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(getBackground());
g2.fillRect(0,0,getWidth(),getHeight());
super.paintComponent(g2);
g2.dispose();
super.paintComponent(g);
if (getText().trim().equals("")) {
Font font =
getFont().deriveFont(Font.PLAIN).deriveFont(Font.PLAIN);
Graphics2D g2d = (Graphics2D)g;
FontMetrics fontMetrics = g2d.getFontMetrics(font);

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASIN
G, RenderingHints.VALUE_ANTIALIAS_OFF);
g2d.setColor(Color.GRAY);
g2d.setFont(font);
java.awt.geom.Rectangle2D rect =
fontMetrics.getStringBounds(placeholder, g2d);
int textHeight = (int)rect.getHeight();
g2d.drawString(placeholder, 1, textHeight+4);
}
}
}

Search_student.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package placeholder;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;

/**
*
* @author User
*/

130
public class search_student extends JTextField {
private String placeholder = " Cari Murid...";
private Image icon = null;

public search_student() {
initListener();
setOpaque(false);
setForeground(Color.BLACK);
setCaretColor(Color.black);
setHorizontalAlignment(LEFT);
}

public search_student(String text) {


initListener();
}

public search_student(int columns) {


initListener();
}

public search_student(String text, int columns) {


super(text, columns);
initListener();
}

public search_student(Document doc, String text, int


columns) {
super(doc, text, columns);
initListener();
}

private void initListener() {


addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
repaint();
}
});
}

public String getPlaceholder() {


return placeholder;
}

public void setPlaceholder(String placeholder) {


this.placeholder = placeholder;
repaint();
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(getBackground());
g2.fillRect(0,0,getWidth(),getHeight());
super.paintComponent(g2);
g2.dispose();

131
super.paintComponent(g);
if (getText().trim().equals("")) {
Font font =
getFont().deriveFont(Font.PLAIN).deriveFont(Font.PLAIN);
Graphics2D g2d = (Graphics2D)g;
FontMetrics fontMetrics = g2d.getFontMetrics(font);

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASIN
G, RenderingHints.VALUE_ANTIALIAS_OFF);
g2d.setColor(Color.GRAY);
g2d.setFont(font);
java.awt.geom.Rectangle2D rect =
fontMetrics.getStringBounds(placeholder, g2d);
int textHeight = (int)rect.getHeight();
g2d.drawString(placeholder, 1, textHeight+4);
}
}
}

Username.java

/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package placeholder;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;

/**
*
* @author User
*/
public class username extends JTextField {
private String placeholder = " Nama Pengguna";
private Image icon = null;

public username() {
initListener();
setOpaque(false);
setForeground(Color.BLACK);
setCaretColor(Color.black);
setHorizontalAlignment(LEFT);
}

public username(String text) {


initListener();
}

132
public username(int columns) {
initListener();
}

public username(String text, int columns) {


super(text, columns);
initListener();
}

public username(Document doc, String text, int columns) {


super(doc, text, columns);
initListener();
}

private void initListener() {


addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
repaint();
}
});
}

public String getPlaceholder() {


return placeholder;
}

public void setPlaceholder(String placeholder) {


this.placeholder = placeholder;
repaint();
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(getBackground());
g2.fillRect(0,0,getWidth(),getHeight());
super.paintComponent(g2);
g2.dispose();
super.paintComponent(g);
if (getText().trim().equals("")) {
Font font =
getFont().deriveFont(Font.PLAIN).deriveFont(Font.PLAIN);
Graphics2D g2d = (Graphics2D)g;
FontMetrics fontMetrics = g2d.getFontMetrics(font);

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASIN
G, RenderingHints.VALUE_ANTIALIAS_OFF);
g2d.setColor(Color.GRAY);
g2d.setFont(font);
java.awt.geom.Rectangle2D rect =
fontMetrics.getStringBounds(placeholder, g2d);
int textHeight = (int)rect.getHeight();
g2d.drawString(placeholder, 1, textHeight+5);
}
}

133
}

4.3 Interface Sistem

Gambar 1

Mengisikan Nama Penggunan dan Password. Kemudian terdapat button login


atau keluar. Jika login maka akan lanjut ke menu selanjutnya dan jika keluar
maka program akan menampilkan massagebox yang berupa konfirmasi bahwa
user akan keluar atau tidak.Jika nama pengguna dan passwordyang di inputkan
sesuai database maka akan masuk ke program aplikasi tersebut. Sebaliknya jika
nama pengguna dan password yang di input tidak sesuai dengan database maka
akan keluar massagebox yang berupa peringatan bahwa user salah menginputkan
data.

134
Gambar 2

Berisikan 3 menu button diantaranya Peminjaman, Kelola buku, dan Kelola


siswa. Jika salah satu menu button ditekan maka akan menampilkan database
dan beberapa fitur didalamnya.

Gambar 3

Pada menu peminjaman akan tampil data dari database peminjaman. Selain itu
terdapat beberapa fitur lainnya seperti cari data, tambah data, ubah data, hapus
data, dan refresh data.

135
Gambar 4

Pada menu kelola buku akan tampil data dari database kelola buku. Selain itu
terdapat beberapa fitur seperti pada penjelasan sebelumnya.

Gambar 5

Pada menu ini akan tampil data dari database kelola siswa. Selain itu terdapat
beberapa fitur seperti pada penjelasan sebelumnya

136
Gambar 6

Button ini digunakan untuk keluar dari program ini. Cara kerjanya yaitu dengan
menekan button (X) pada bagian pojok kanan atas program ini. Maka akan
muncul messagebox (Anda yakin ingin keluar dari program?) jika iya tekan yes
maka anda akan keluar dari program ini. Jika tidak tekan no maka anda akan
kembali ke menu sebelumnya.

4.4 Pengujian Sistem

A. Pengujian terhadap frame login

No Skenario Test Case Hasil yang Hasil Kesim


Pengujian diharapkan Pengujian pulan
1 Mengisi Username System menolak Sesuai Valid
Username dan masuk karena harapan
dan password password data inputan
kosong kosong kosong
2 Mengisi Username System menolak Sesuai Valid
Username dan masuk karena harapan
dan password password data tidak sesuai
salah salah database
3 Mengisi Username Login berhasil Sesuai Valid
Username dan karena sesuai harapan
dan password password datanya dengna
benar benar database
4 Klik tombol Button Frame tertutup Sesuai Valid
keluar keluar yang dan sistem Harapan
dimasukkan otomatis berhenti
perintah
system exit

B. Pengujian dengna frame home

No Skenario Pengujian Test Case Hasil yang Hasil Kesim


diharapkan Pengujian pulan
1 Klik tombol Test tombol Muncul Sesuai Valid
Tambah data pada tambah window add Harapan
tab Peminjaman peminjaman peminjaman
2 Klik tombol Hapus Test tombol Muncul Sesuai Valid
data pada tab hapus window Harapan
Peminjaman peminjaman hapus data

137
3 Klik tombol Ubah Test tombol Muncul Sesuai Valid
data pada tab kelola ubah window Harapan
siswa peminjaman ubah data
4 Klik tombol Test tombol Muncul Sesuai Valid
Tambah data pada tambah window add Harapan
tab kelola siswa siswa siswa
5 Klik tombol Hapus Test tombol Muncul Sesuai Valid
data pada tab kelola hapus siswa window Harapan
siswa hapus data
siswa
6 Klik tombol Ubah Test tombol Muncul Sesuai Valid
data pada tab kelola ubah siswa window Harapan
siswa ubah data
siswa
7 Klik tombol Test tombol Muncul Sesuai Valid
Tambah data pada tambah window add Harapan
tab kelola buku buku buku
8 Klik tombol Test tombol Muncul Sesuai Valid
Tambah data pada hapus buku window Harapan
tab kelola buku hapus data
buku
9 Klik tombol Test tombol Muncul Sesuai Valid
Hapus data pada tab ubah buku window Harapan
kelola buku ubah data
buku
10 Klik tombol Button Frame Sesuai Valid
keluar keluar yang tertutup dan Harapan
dimasukkan sistem
perintah otomatis
system exit berhenti

4.5 Analisis Sistem

Program banayk menggunakan frame, kebanyakan digunakan untuk fitur


seperti search, tambah, ubah, dan hapus data. Pada bagian menu home
menggunakan 3 Tab dan table disetiap tab nya.

Selanjutnya pada menu tambah data peminjaman admin akan diminta


memasukan data yang sudah tersedia. disini dasaranya terdapat 3 tab yang berisi
table di setiap tab nya yang pada dasarnya setiap table memiliki tiga fungsi
utama: tambah data, ubah data dan hapus data.

138
pada tambah data peminjam di sini program akan mengakses database
kelola siswa dan kelola buku sesuai dengan data yang ada di sini kita hanya
perlu mengklik data nama siswa dan judul buku yang sudah ada yang akan
ditangani oleh selektif program di mana akan tampil pada daftar siswa dan daftar
buku lalu disimpan

Kemudian untuk ubah dan hapus tidak jauh beda kalau upah untuk
merubah data sedangkan hapus untuk menghapus data. Untuk tabel kelola siswa
dan buku programnya sama flowchart-nya juga sama yakni ada tambah data
hapus data dan ubah data di mana siswa untuk mengolah data siswa dan buku
untuk mengolah buku. Merancang sesederhana mungkin dengan tampilan yang
tidak bertele-tele tetapi kaya akan fungsional

BAB V

PENUTUP

5.1 Kesimpulan

Dari semua penjelasan yang telah disampaikan baik dari proses awal
perancangan sampai dengan pengujian program, dapat ditarik kesimpulan bahwa
program ini merupakan program yang dibuat menggunakan Bahasa
pemrograman Java berbasis GUI dan dibuat menggunakan NetBeans IDE 8.2

139
serta XAMPP yang dapat menghasilkan suatu program agar dapat melakukan
pendataan pemanjaman perpustakaan. Pada program ini menyedikan beberapa
pilihan menu serta fitur fitur yang dapat dilihat serta digunakan yaitu menu
peminjaman, Kelola buku, Kelola siswa.Program yang kami buat ini guna untuk
mempermudah user atau petugas perpustakaan untuk mendata data buku yang
dipinjam dan siswa yang meminjam sehingga user dapat mendata dan tau data
yang sudah tersimpan di persutakaan tersebut.

5.2 Saran

Kami berharap sistem ini dapat berkembang lebih baik dan lebih bagus
dalam tampilan kedepannya sehingga dapat memperbaiki hal hal yang perlu
diperbaiki dalam segi menu yang ditampilkan maupun tampilan data yang
tersimpan. Dikarenakan sempitnya waktu dan akses internet yang kurang
mewadahi membuat pembuatan laporan menjadi sedikit terkendala. Maka
perlunya frame yang lenih tertata sehingga enak dilihat.

DAFTAR PUSTAKA

1. Indra,Didi.2009.Bahasa Pemrograman Java.


https://didiindra.wordpress.com/tag/pengertian-java/ (5 Mei 2010)
2. Setiawan,Samish.2020.Pengertian Database Dan Perangkat Lunak.
https://www.gurupendidikan.co.id/pengertian-database/ (5 Mei 2020)
3. Andy.2019.Pengertian XAMPP Lengkap dengan Fungsi dan Cara Instalasi.
https://qwords.com/blog/pengertian-xampp/ (5 Mei 2020)
4. Mita.2017.APA SAJA KELEBIHAN NETBEANS SEBAGAI IDE
PEMROGRAMAN JAVA? & SEBUTKAN EDITOR LAIN YANG DAPAT
DIGUNAKAN PROGRAM JAVA.

140
http://mitaarfyani.blogspot.com/2017/09/apa-saja-kelebih-netbeans-sebagai-
ide.html (5 Mei 2020)
5. Aguatina,Yolanda.2020.Pengertian XAMPP. https://ruangguru.co/pengertian-
xampp/ (5 Mei 2020)
6. Purwanto.2017.Metodologi Aystem Development Life Cycle (SDLC).
https://medium.com/@purwanto.dev/metodologi-system-development-life-
cycle-sdlc-2f0349df1364 (5 Mei 2020)

141

Anda mungkin juga menyukai