Oleh:
Ginanjar Bagus Wijaya 190533646859
Lailatul Islamia 190533646806
Ardiansyah Putra Pradana 190533646888
S1 PTI’19 OFF A
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
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.
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
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.
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.
7
Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-
sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode
tersebut.
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.
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
13
pengguna dan passwordnya kemudian akan muncul menu utama dan menu menu
yang didalamnya memiliki fungsi masing masing.
14
3.3.2 Desain Interface
15
BAB IV
IMPLEMENTASI
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.
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 {
/**
* 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() {
18
setDefaultCloseOperation(javax.swing.WindowConstants.EX
IT_ON_CLOSE);
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);
}
});
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))
);
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
};
result_peminjaman.setFont(new java.awt.Font("Tahoma",
0, 12)); // NOI18N
result_peminjaman.setHorizontalAlignment(javax.swing.Sw
ingConstants.LEFT);
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);
}
});
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);
}
});
21
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);
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);
}
});
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);
}
});
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)
);
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())
);
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
};
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);
}
});
25
Layout.Alignment.LEADING)
.addComponent(tambah2_value,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);
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);
}
});
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);
}
});
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_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);
}
});
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())
);
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
};
29
result_siswa.setFont(new java.awt.Font("Tahoma", 0,
12)); // NOI18N
result_siswa.setHorizontalAlignment(javax.swing.SwingCo
nstants.LEFT);
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);
}
});
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);
}
});
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_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);
}
});
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
}
});
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())
);
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);
tab.getAccessibleContext().setAccessibleName("");
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
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();
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
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();
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
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();
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>
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");
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";
}
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");
43
System.exit(0);
dispose();
}
}
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");
if (!query.equals("")) {
result_peminjaman.setText("Hasil pencarian
dari: '"+query+"'");
} else {
result_peminjaman.setText("");
}
} catch (Exception e) {}
}
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";
}
if (!query.equals("")) {
result_buku.setText("Hasil pencarian dari:
45
'"+query+"'");
} else {
result_buku.setText("");
}
} catch (Exception e) {}
}
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");
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 {
/**
* 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() {
setDefaultCloseOperation(javax.swing.WindowConstants.EX
IT_ON_CLOSE);
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);
}
});
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))
);
50
java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent
evt) {
submitMouseClicked(evt);
}
});
jLabel1.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/rsz_1rsz_ummmm-
picsay.png"))); // NOI18N
jLabel1.setText("hvcnsdjdsvjinvdjdsnvjkdsvn");
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))
);
52
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();
}
}
/**
* @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>
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());
}
}
}
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 {
/**
* 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() {
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)));
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);
}
});
jLabel1.setText("Kode Buku");
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");
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))
);
pack();
}// </editor-fold>
private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}
61
// TODO add your handling code here:
this.setVisible(false);
}
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>
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));
}
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 {
/**
* 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() {
setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);
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);
}
});
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);
}
});
jLabel1.setText("NIS");
jLabel2.setText("Nama");
68
nama.setBackground(new java.awt.Color(204, 204, 204));
jLabel3.setText("Jurusan");
69
jLabel4.setText("Kode Buku");
jLabel5.setText("Jenis Buku");
jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));
jLabel6.setText("Judul Buku");
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())
);
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))
);
pack();
}// </editor-fold>
private void
close_btnMouseClicked(java.awt.event.MouseEvent 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();
}
73
evt) {
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_murid();
}
}
/**
* @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>
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");
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");
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) {}
}
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) {}
}
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){}
}
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) {}
}
}
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 {
/**
* 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() {
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)));
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);
}
});
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");
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))
);
85
pack();
}// </editor-fold>
private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}
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) {}
}
}
/**
* @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>
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 {
/**
* 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() {
setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);
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);
}
});
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");
jLabel3.setText("Judul Buku");
jLabel4.setText("Jenis Buku");
jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));
jLabel5.setText("Pengarang");
91
save_btnLayout.setVerticalGroup(
save_btnLayout.createParallelGroup(javax.swing.Grou
pLayout.Alignment.LEADING)
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);
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))
);
pack();
}// </editor-fold>
94
private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}
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);
}
}
/**
* @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>
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);
}
}
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 {
/**
* 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() {
setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);
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);
}
});
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);
}
});
jLabel1.setText("NIS");
101
jLabel2.setText("Nama");
jLabel3.setText("Jurusan");
102
data_buku.setBorder(javax.swing.BorderFactory.createTit
ledBorder("Data Buku"));
jLabel4.setText("Kode Buku");
jLabel5.setText("Jenis Buku");
jenis.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[]
{ "Ensiklopedia", "Novel", "Komik", "Biografi", "Dongeng",
"Karya Ilmiah" }));
jLabel6.setText("Judul Buku");
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())
);
104
.addComponent(save,
javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
);
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");
pack();
}// </editor-fold>
107
// TODO add your handling code here:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
search_book();
}
}
private void
tbl_muridMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
clicktbl_murid();
}
private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}
/**
* @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>
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);
}
}
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");
110
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Gagal
Menampilkan DATA!", "Kesalahan", JOptionPane.ERROR_MESSAGE);
this.setVisible(false);
}
}
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");
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");
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");
nis.setText((String)tbl2.getValueAt(baris, 0));
nama.setText((String)tbl2.getValueAt(baris, 1));
112
jurusan.setText((String)tbl2.getValueAt(baris, 2));
}
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) {}
}
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);
}
}
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 {
/**
* 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() {
setDefaultCloseOperation(javax.swing.WindowConstants.DI
SPOSE_ON_CLOSE);
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);
}
});
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");
118
);
reset_btnLayout.setVerticalGroup(
reset_btnLayout.createParallelGroup(javax.swing.Gro
upLayout.Alignment.LEADING)
.addComponent(reset,
javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
);
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))
);
pack();
}// </editor-fold>
private void
close_btnMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}
121
// TODO add your handling code here:
}
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);
}
}
}
/**
* @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>
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);
}
}
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;
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);
}
@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);
}
127
public search(Document doc, String text, int columns) {
super(doc, text, columns);
initListener();
}
@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);
}
129
public String getPlaceholder() {
return placeholder;
}
@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);
}
@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);
}
132
public username(int columns) {
initListener();
}
@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
}
Gambar 1
134
Gambar 2
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.
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
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
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