Anda di halaman 1dari 53

PEMOGRAMAN BERORIENTASI OBJEK II (SWING TOOLKIT)

STUDI KASUS “PROGRAM PEMINJAMAN BUKU


PERPUSTAKAAN”

Oleh :
Nur Siti Rahma ( 43191003 )

PROGRAM STUDI MANAJEMEN INFORMATIKA


AKADEMI MANAJEMEN INFORMATIKA DAN KOMPUTER
(AMIK) GARUT
2021
A. Analisis Masalah

SMP Pasundan 2 Garut adalah salah satu sekolah menengah pertama swasta yang
sangat terkenal di Garut. Biasanya para siswa mengerjakan tugas maupun membaca buku
pasti ke perpustakaan. Perpustakaan di Sekolah ini adalah salah satu sarana di sekolah
dengan fasilitas lengkap. Selama ini sistem yang ada masih belum sesuai dengan kebutuhan
baik siswa maupun admin. Diantaranya sebagai berikut.
1. Pada proses peminjaman buku, permasalahan yang timbul adalah ketika anggota akan
Meminjam buku di perpustakaan seringkali buku tersebut stoknya sudah tidak tersedia
Karena sudah di pinjam orang lain. Sehingga pengunjung tidak mendapatkan buku yang
Diinginkan.

2. Proses pengolahan data peminjaman buku masih ditulis di dalam buku peminjaman yang
masih menggunakan pencatatan pada buku sehingga proses kerja dibutuhkan waktu yang
cukup lama dan menjadi tidak optimal.
3. Tidak adanya katalog buku untuk mengetahui buku yang tersedia di perpustakaan,
Sehingga anggota harus mencari buku yang di inginkan pada rak – rak perpustakaan.
4. Pada proses pendaftaran anggota perpustakaan masih ditulis di dalam kartu
perpustakaan. Ini beralasan karena mungkin pihak sekolah tidak menggunakan software
Microsoft office baik Excel maupun Word.

B. Tujuan
Pada pembuatan program ini pembuat bertujuan untuk, sebagai berikut :
1. Memudahkan admin dalam menerapkan OOP pada peminjaman buku perpustakaan
2. Mengamankan akun admin dan siswa agar tidak dipakai oleh bukan pihaknya.
3. Memudahkan siswa dan siswi dalam pencarian buku yang akan dipinjam.
C. Struktur Menu
Struktur menu program adalah kerangka yang menggambarkan hubungan antara
fungsi yang terdapat dalam suatu program. Untuk struktur menu ini Sebelum ke menu utama,
saya akan menempatkan halaman login diletakkan di atas menu utama. Dibawah ini
merupakan struktur menu program peminjaman buku perpustakaan yang akan dibuat.

Login Login Page Registrasi

Menu Utama

Data About Tata tertib di perpustakaan Siswa


pembuat Admin Keluar

Syarat-syarat anggota
perpustakaan
Biodata Login
Cara peminjaman Admin Peminjaman
Buku
Tata tertib selama
di dalam Databuku
perpustakaan

Anggota
Sanksi-sanksi
di dalam
perpustakaan
Peminjaman
Buku

Gambar 1.1 Struktur Menu Program


D. Perangkat yang Didukung
Perangkat keras yang digunakan dalam melakukan pembuatan program aplikasi ini
berupa sebuah PC dengan spesifikasi berikut :
1. Personal Computer : HP 280 G4 MT Bussiness PC
2. Processor : Intel Core i7-8700 CPU @ 3.20 GHz 3.19 GHz
3. System Type : 64-bit OS
4. RAM : 8 GB
5. Hardisk : 1 TB
Sedangkan perangkat lunak yang dibutuhkan dalam mengembangkan pembuatan
program aplikasi ini yaitu sebagai berikut :
1. Sistem Operasi yang digunakan yaitu Windows 10 Pro
2. Java Netbeans IDE 8.0.2 dimana software ini digunakan sebagai pembuatan program
aplikasi nya.
3. XAMPP 3.3.0 dimana software ini digunakan untuk menghubungkan atau
mengkoneksikan database ke program Java.
E. Design Menu Program
Dibawah ini merupakan gambaran sebuah program yang akan dibuat atau bisa disebut juga
desain tampilan program peminjaman buku perpustakaan, sebelum pembuatan program
aplikasi nya.

Peminjaman Buku Perpustakaan SMP


Pasundan 2 Garut
TATA TERTIB PERPUSTAKAAN

DATA PEMBUAT ADMIN

ABOUT SISWA

Exit

Gambar 1.2 Design Menu Utama


Sub menu Data Pembuat

BIODATA

NAMA : NUR SITI RAHMA

NIM : 43191003

JURUSAN : MANAJEMEN INFORMATIKA

KELAS : REGULER

SEMESTER : 4A
Kembali

Gambar 1.3 Design Menu Data Pembuat

Tentang

Kembali

Gambar 1.4 Design Menu About

Syarat-syarat anggota perpustakaan

Cara peminjaman

Tata Tertib membaca di perpustakaan

Sanksi di Perpustakaan
Design Form Sanksi di Perpustakaan
Kembali

Gambar 1.5 Design Menu Tata Tertib Perpustakaan


VI. Sanksi-sanksi:
a. Angota yang dengan sengaja atau tidak sengaja melanggar tata tertib atau melalaikan
kewajibannya, dapat dikenakan sanksi sbb :

1. Dikeluarkan dan ruangan perpustakaan

2. Tidak diperkenankan menggunakan haknya sebagai anggota perpustakaan untuk             


sementara waktu

3. Dicabut tanda anggotanya

4. Dijatuhi hukuman ganti rugi atau denda sesuai dengan peraturan yang berlaku.

b. Ketentuan khusus tentang sanksi:

1. Keterlambatan mengembalikan buku dikenakan denda sebesar Rp.500,- perhari/perbuku.

2. Kerusakan buku dikenakan sanksi membayar ongkos perbaikan kerusakan buku tsb.

3. Kehilangan buku dikenakan sanksi berupa:

 Diganti dengan buku yang sama

 Diganti dengan uang yang besarnya:1 x harga buku untuk terbitan dalam negeri yang
bukunya mudah diperoleh ditambah biaya administrasi

 2 x harga buku, untuk terbitan dalam negeri tetapi termasuk buku langka

 3 x barga buku. untuk buku terbitan luar negeri

Catatan:

1. Bagi siswa kelas 3 yang akan keluar/telah lulus wajib memiliki surat bukti bebas
perpustakaan.

2. Bagi siswa anggota / perpustakaan yang pindah wajib lapon kepetugas perpustakaan.

3. Bagi siswa kelas 3 yang telah lulus, diwajibkan untuk menyumbangkan buku ke
perpustakaan (akhir tahun pelajaran).

Kembali

Gambar 1.6 Design Menu Sanksi-sanksi di dalam perpustakaan


I. Syarat-syarat Menjadi Anggota Perpustakaan :

1.  Yang menjadi anggota perpustakaan SMP Paundan 2 Garut: siswa. guru,karyawan, Tata
Usaha, masyarakat umum yang telah mendapat izin khusus dari pihak perpustakaan.

2. Mengisi formulir anggota perpustakaan

3. Menyerahkan 3 buah pas photo ukuran 2×3.

Kembali

Gambar 1.7 Design Menu Syarat-syarat menjadi anggota perpustakaan

II. Cara Peminjaman :

1. Seluruh anggota perpustakaan SMP Pasundan 2 Garut berhak menggunakan / meminjam


koleksi-koleksi yang ada di perpustakaan.

2. Anggota yang meminjam harus memperlihatkan kartu anggotanya.

3. Anggota yang akan memperpanjang pinjaman, bukunya harus dibawa.

4. Anggota dapat meminjam buku paling banyak 3 buah (untuk pinjaman harian.

5. Lamanya Pinjaman:

Untuk siswa selama 1 minggu dan dapat diperpanjang selama 2 kali masa peminjaman.

6. Lamanya peminjaman buku paket selama 1 tahun

7. Setiap peminjam wajib memenksa keutuhan bahan yang akan dipinjamnya sebelum dibawa
keluar perpustakaan.

Kembali

Gambar 1.8 Design Menu Cara Peminjaman


Tata tertib Membaca di Perpustakaan :

1. Setiap pengunjung wajib mengisi daftar pengunjung yang telah disediakan.

2. Meletakan tas, jaket, dan barang bawaan lainnya di tempat penyimpanan

3. Harus berpakaian rapih dan sopan

4. Dilarang membawa makanan, minuman, dan merokok di ruangan

5. Pembaca boleh mengambil buku atau majalab langsung dan rak dengan

sepengathuan petugas.

6. Buku/majalah yang akan dibaca di luar perpustakaan harus terlebih dahulu dicatat

petugas perpustakaan

7. Buku/majalah/surat kabar yang telah selesai dibaca harus disimpan kembali pada rak

8. Turut menjaga kesopanan, ketertiban, dan kebersihan mangan perpustakaan

Kembali

Gambar 1.9 Design Menu Tata Tertib Membaca di Perpustakaan

LOGIN PAGE

Username :

Password :

Login Keluar Registrasi

Gambar 1.10 Design Menu Login Page


Login Admin

Username :

Password :

Login
Kembali Keluar

Gambar 1.11 Design Menu Login Admin

Registration Form
Nama :

Username :

Password :

Konfirmasi Password :
Design Form Data Buku

Save

Gambar 1.12 Design Menu Registration Form

DATA ANGGOTA

Search Refresh
Nama :

NIM

TTL Edit Delete

Jenis Kelamin :

Alamat :
Save Exit
Kelas :
Title 1 Title 2 Title 3 Title 4
Gambar 1.13 Design Menu Anggota

Data Buku

Kode Buku
Search Refresh
Nama Buku

Pengarang Edit Delete


Penerbit

Tahun Terbit Save Exit

Title 1 Title 2 Title 3 Title 4

Gambar 1.14 Design Menu Data Buku

Peminjaman Buku
Tabel Data Buku
NIS :
Search Refresh
Nama :

Kode Buku : Edit Delete

Nama Buku : Save Exit


Tanggal Pinjam :

Tanggal Pengembalian
Table Data Peminjam
Title 1 Title 2 Title 3 Title 4

Gambar 1.15 Design Menu Peminjaman


F. Tampilan Desain Program Dan Listing Program
Disini merupakan tampilan desain dan listing program peminjaman buku
perpustakaan yang dibuat sesuai dengan desain yang dibuat sebelum nya.

Gambar 1.16 Tampilan Menu Login

package perpustakaan;

import javax.swing.JoptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class login extends javax.swing.Jframe {

public login() {

initComponents();

}
private void loginActionPerformed(java.awt.event.ActionEvent evt) {
String username = user.getText();
String password = pass.getText();
this.setVisible(false);
// TODO add your handling code here:
try {
Class.forName(“com.mysql.jdbc.Driver”);
Connection
con=DriverManager.getConnection(“jdbc:mysql://127.0.0.1/database_perpustakaan”, “root”,
“”);
Statement stat=con.createStatement();
ResultSet res= stat.executeQuery(“Select * from login where
Username=”+”’”+username+”’”+”and Password=’”+password+”’”);
System.out.println(“Koneksi Berhasil!!”);
if (res.next()){
JoptionPane.showMessageDialog(null, “Login Berhasil”,”Informasi”,
JoptionPane.INFORMATION_MESSAGE);
new menuutama().setVisible(true);
this.dispose();
}
else {
JoptionPane.showMessageDialog(null, “Maaf Username atau Password salah”,”Informasi”,
JoptionPane.INFORMATION_MESSAGE);

}
}

catch(Exception e){
JoptionPane.showMessageDialog(null, “Gagal, Silakan ulangi”,”Informasi”,
JoptionPane.INFORMATION_MESSAGE);
}
}
private void exitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (JoptionPane.showConfirmDialog(null, “Apakah No. ingin keluar?”,”Yakin”,
JoptionPane.YES_NO_OPTION)==JoptionPane.YES_OPTION)
System.exit(0);
}
private void regActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JoptionPane.showConfirmDialog(null, “Apakah No. ingin membuat akun baru?”,”IYA”,
JoptionPane.YES_NO_OPTION)==JoptionPane.YES_OPTION){
new akun().show();
this.dispose();
}
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new login().setVisible(true);
}
});
}

// Variables declaration – do not modify


private javax.swing.Jbutton exit;
private javax.swing.Jlabel jLabel1;
private javax.swing.Jlabel jLabel2;
private javax.swing.Jlabel jLabel3;
private javax.swing.Jlabel label1;
private javax.swing.Jlabel label2;
private javax.swing.Jbutton login;
private javax.swing.JpasswordField pass;
private javax.swing.Jbutton reg;
private javax.swing.JtextField user;
// End of variables declaration
}

Gambar 1.17 Tampilan Menu Akun Registrasi


package perpustakaan;
import javax.swing.JoptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class akun extends javax.swing.Jframe {


String Nama;
String User;
String Pass;
String Conf;
Connection con;
Statement stat;
ResultSet res;
private void namaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void userActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void passActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void konfirmActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void saveActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try {
stat.executeUpdate(“insert into login values (“
+ “’” + nama.getText ()+”’,”
+ “’” + user.getText ()+”’,”
+ “’” + pass.getText ()+”’,”
+ “’” + konfirm.getText()+”’)”);
bersih();
JoptionPane.showMessageDialog(null, “Pendaftaran Berhasil”);
this.dispose();
new login().setVisible(true);
} catch (Exception e) {
JoptionPane.showMessageDialog(null, “Perintah Salah: “+e);
}
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new akun().setVisible(true);
}
});
}

Gambar 1.18 Tampilkan Menu Program Menu Utama


package perpustakaan;
import javax.swing.JoptionPane;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class menuutama extends javax.swing.Jframe {
Connection con;
Statement stat;
ResultSet res;

/**
* Creates new form menuutama
*/
public menuutama() {
initComponents();
setLocationRelativeTo(null);

}
private void exitActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (JoptionPane.showConfirmDialog(null, “Apakah No. ingin keluar?”,”Yakin”,
JoptionPane.YES_NO_OPTION)==JoptionPane.YES_OPTION)
System.exit(0);
}

private void adminActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
this.dispose();
new loginadmin().setVisible(true);

}
private void siswaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
new peminjaman().setVisible(true);

private void TataTertibPerpusActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
this.dispose();
new peminjaman().setVisible(true);
}

private void DPActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
this.dispose();
new pembuat().setVisible(true);
}

private void aboutActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
this.dispose();
new peminjaman().setVisible(true);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */

/* Create and display the form */


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

// Variables declaration – do not modify


private javax.swing.Jbutton DP;
private javax.swing.Jbutton TataTertibPerpus;
private javax.swing.Jbutton about;
private javax.swing.Jbutton admin;
private javax.swing.Jbutton exit;
private javax.swing.Jlabel jLabel1;
private javax.swing.Jlabel jLabel2;
private javax.swing.Jbutton siswa;
// End of variables declaration

Gambar 1.19 Tampilan Menu Login Admin

package perpustakaan;
import javax.swing.JoptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;

public class loginadmin extends javax.swing.Jframe {


Connection con;
Statement stat;
ResultSet res;
PreparedStatement st;

/**
* Creates new form loginadmin
*/
public loginadmin() {
initComponents();
setLocationRelativeTo(null);
}
private void loginActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(user.getText().equals(“Admin1”)){
if(pass.getText().equals(“Databuku”))
{
new databuku().show();
this.dispose();
}}
if(user.getText().equals(“Admin1”)){
if(pass.getText().equals(“Anggota”)){
new anggota().show();
this.dispose();
}}
if(user.getText().equals(“Admin1”)){
if(pass.getText().equals(“Peminjam”)){
new peminjaman().show();
this.dispose();
}}
}

private void exitActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
if (JoptionPane.showConfirmDialog(null, “Apakah No. ingin keluar?”,”Yakin”,
JoptionPane.YES_NO_OPTION)==JoptionPane.YES_OPTION)
System.exit(0);
}

private void BackActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
new menuutama().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new loginadmin().setVisible(true);
}
});
}

// Variables declaration – do not modify


private javax.swing.Jbutton Back;
private javax.swing.Jbutton exit;
private javax.swing.Jlabel jLabel2;
private javax.swing.Jlabel label1;
private javax.swing.Jlabel label2;
private javax.swing.Jbutton login;
private javax.swing.JpasswordField pass;
private javax.swing.JtextField user;
// End of variables declaration
}

Gambar 1.20 Tampilan Menu Tata Tertib Perpustakaan


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new Syarat().setVisible(true);
this.dispose();
}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
new menuutama().setVisible(true);
this.dispose();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new Cara_Peminjaman().setVisible(true);
this.dispose();
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new Tata_tertib_membaca_diperpustakaan().setVisible(true);
this.dispose();
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new Sanksi_sanksi().setVisible(true);
this.dispose();
}

Gambar 1.21 Tampilan Sub Menu Syarat-syarat menjadi anggota Perpustakaan


private void KembaliActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new tatatertibperpus().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Syarat().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JButton Kembali;
private javax.swing.JScrollPane jScrollPane1;
public javax.swing.JTextArea jTextArea1;
// End of variables declaration
}

Gambar 1.22 Tampilan Sub Menu Cara Peminjaman


private void KembaliActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new tatatertibperpus().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Cara_Peminjaman().setVisible(true);

});

// Variables declaration - do not modify

public javax.swing.JButton Kembali;

private javax.swing.JScrollPane jScrollPane1;

public javax.swing.JTextArea jTextArea1;

// End of variables declaration

Gambar 1.23 Tampilan Sub Menu Tata Tertib Membaca di Perpustakaan


private void KembaliActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new tatatertibperpus().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tata_tertib_membaca_diperpustakaan().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JButton Kembali;
private javax.swing.JScrollPane jScrollPane1;
public javax.swing.JTextArea jTextArea1;
// End of variables declaration
}

Gambar 1.24 Tampilan Sub Menu Sanksi-sanksi di Perpustakaan


private void kembaliActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new tatatertibperpus().setVisible(true);
this.dispose();
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Sanksi_sanksi().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
public javax.swing.JTextArea jTextArea1;
public javax.swing.JButton kembali;
// End of variables declaration
}
Gambar 1.25 Tampilan Sub Menu Anggota

Gambar 1.26 Tampilan Input Dialog Masukan Gambar 1.27 Tampilan Message Dialog
NIS pada button search di Menu Anggota OK pada button Search

Gambar 1.28 Tampilan Confirmation Dialog pada Gambar 1.29 Tampilan Message Dialog
button edit di Menu Anggota Yes pada button edit
Gambar 1.30 Tampilan Message Dialog Gambar 1.31 Tampilan Message Dialog Data
Koneksi Gagal Tersimpan pada Button Save

Gambar 1.32 Tampilan Message Dialog Gambar 1.33 Tampilan Message Dialog Data
Data telah dihapus pada button Delete tidak ditemukan pada button Search
package perpustakaan;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.table.DefaultTableModel;
public class anggota extends javax.swing.JFrame {
Connection con;
Statement stat;
ResultSet res;
PreparedStatement st;

private void loaddata() {


DefaultTableModel t= new DefaultTableModel();
t.addColumn("NIS");
t.addColumn("Nama");
t.addColumn("TTL");
t.addColumn("Jenis_Kelamin");
t.addColumn("Alamat");
t.addColumn("Kelas");
tata.setModel (t);
try{ res=stat.executeQuery("Select * from anggota");
while (res.next()) {
t.addRow (new Object []
{res.getString("NIS"),
res.getString("Nama"),
res.getString("TTL"),
res.getString("Jenis_Kelamin"),
res.getString("Alamat"),
res.getString("Kelas")
});
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e);
}
}
/**
* Creates new form anggota
*/
public anggota() {
initComponents();
setLocationRelativeTo (null);
koneksi();
loaddata();
}
private void koneksi() {
try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1/database_perpustakaan", "root",
"");
stat=con.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void searchActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String x=JOptionPane.showInputDialog(null, "Masukan NIS!!");
try {
String cari = "select * from anggota where NIS='"+x+"'";
res=stat.executeQuery(cari);
if (res.next()) {
System.out.print(res.getString(1));
JOptionPane.showMessageDialog(null, "Data ditemukan");
nis.setText(res.getString(1));
nama.setText(res.getString(2));
ttl.setText(res.getString(3));
jk.setText(res.getString(4));
alamat.setText(res.getString(5));
kelas.setText(res.getString(6));
} else {
JOptionPane.showMessageDialog(null, "Data tidak ditemukan");
}
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}

private void refreshActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
nis.setText(null);
nama.setText(null);
ttl.setText(null);
jk.setText(null);
alamat.setText(null);
kelas.setText(null);
}

private void editActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
int coba=JOptionPane.showConfirmDialog(null, "Yakin untuk mengubah data
ini?","Confirmation",JOptionPane.YES_NO_OPTION);
try {
String sql="update anggota set
NIS=?,Nama=?,TTL=?,Jenis_Kelamin=?,Alamat=?,Kelas=? where "+"NIS='"+nis.getText()
+"'";
st=con.prepareStatement(sql);
if(coba==0) {
try {
st.setString(1,nis.getText());
st.setString(2,nama.getText());
st.setString(3,ttl.getText());
st.setString(4,jk.getText());
st.setString(5,alamat.getText());
st.setString(6,kelas.getText());
st.executeUpdate();
JOptionPane.showMessageDialog(null, "Update data sukses");
loaddata();
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null, "Update data gagal"+e);
}
}
}catch (HeadlessException | SQLException e) {}
}

private void deleteActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String x = nis.getText();
try {
String sql="delete from anggota where NIS='"+x+"'";
stat.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Data telah dihapus");
loaddata();
nis.setText(null);
nama.setText(null);
ttl.setText(null);
jk.setText(null);
alamat.setText(null);
kelas.setText(null);
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}
private void saveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String sqlnya=("insert into anggota values ('"
+nis.getText()+"','"
+nama.getText()+"','"
+ttl.getText()+"','"
+jk.getText()+"','"
+alamat.getText()+"','"
+kelas.getText()+"')");
stat.executeUpdate(sqlnya);
JOptionPane.showMessageDialog(null, "Data Tersimpan");
loaddata();
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}

private void exitActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
if (JOptionPane.showConfirmDialog(null, "Apakah anda ingin keluar?","Yakin",
JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{this.dispose();
new menuutama().show();
}
}

private void kelasActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void nisActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String x=nis.getText();
try {
String cari = "select * from anggota where NIS='"+x+"'";
res=stat.executeQuery(cari);
if (res.next()) {
System.out.print(res.getString(1));
JOptionPane.showMessageDialog(edit, "Data ditemukan");
loaddata();
nis.setText(res.getString(1));
nama.setText(res.getString(2));
ttl.setText(res.getString(3));
jk.setText(res.getString(4));
alamat.setText(res.getString(5));
kelas.setText(res.getString(6));
} else {
JOptionPane.showMessageDialog(null, "Data tidak ada");
}
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}

private void ttlActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}
private void tataMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int i = tata.getSelectedRow();
if(i==-1){ return; }
String code = (String)tata.getValueAt(i,0);
String code1 = (String)tata.getValueAt(i,1);
String code2 = (String)tata.getValueAt(i,2);
String code3 = (String)tata.getValueAt(i,3);
String code4 = (String)tata.getValueAt(i,4);
String code5 = (String)tata.getValueAt(i,5);
nis.setText(code);
nama.setText(code1);
ttl.setText(code2);
jk.setText(code3);
alamat.setText(code4);
kelas.setText(code5);
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new anggota().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JTextField alamat;
private javax.swing.JButton delete;
private javax.swing.JButton edit;
private javax.swing.JButton exit;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField jk;
private javax.swing.JTextField kelas;
private javax.swing.JTextField nama;
private javax.swing.JTextField nis;
private javax.swing.JButton refresh;
private javax.swing.JButton save;
private javax.swing.JButton search;
private javax.swing.JTable tata;
private javax.swing.JTextField ttl;
// End of variables declaration
}
Gambar 1.34 Tampilan Menu Data Buku
package perpustakaan;
import javax.swing.JOptionPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;
import javax.swing.table.DefaultTableModel;
public class databuku extends javax.swing.JFrame {
Connection con;
Statement stat;
ResultSet res;
PreparedStatement st;

private void loaddata(){


DefaultTableModel t= new DefaultTableModel();
t.addColumn("Kode_Buku");
t.addColumn("Nama_Buku");
t.addColumn("Nama_Pengarang");
t.addColumn("Penerbit");
t.addColumn("Tahun_Terbit");
tabuk.setModel (t);
try{ res=stat.executeQuery("Select * from data_buku");
while (res.next()) {
t.addRow (new Object []
{res.getString("Kode_Buku"),
res.getString("Nama_Buku"),
res.getString("Nama_Pengarang"),
res.getString("Penerbit"),
res.getString("Tahun_Terbit")
});
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e);
}
}

/**
* Creates new form databuku
*/
public databuku() {
initComponents();
setLocationRelativeTo(null);
koneksi();
loaddata();
}

private void koneksi() {


try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1/database_perpustakaan", "root",
"");
stat=con.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void searchActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String x=JOptionPane.showInputDialog(null, "Masukan Kode Buku!!");
try {
res=stat.executeQuery ("select * from data_buku where Kode_Buku ='"+x+"'");
if (res.next()) {
System.out.print(res.getString(1));
JOptionPane.showMessageDialog(null, "Data ditemukan");
kodebuku.setText(res.getString(1));
namabuku.setText(res.getString(2));
pengarang.setText(res.getString(3));
penerbit.setText(res.getString(4));
tahunterbit.setText(res.getString(5));
} else {
JOptionPane.showMessageDialog(null, "Data tidak ditemukan");
}
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}
private void saveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String sqlnya=("insert into data_buku values ('"
+kodebuku.getText()+"','"
+namabuku.getText()+"','"
+pengarang.getText()+"','"
+penerbit.getText()+"','"
+tahunterbit.getText()+"')");
stat.executeUpdate(sqlnya);
JOptionPane.showMessageDialog(null, "Data Tersimpan");
loaddata();
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}

private void editActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
int coba=JOptionPane.showConfirmDialog(null, "Yakin untuk mengubah data
ini?","Confirmation",JOptionPane.YES_NO_OPTION);
try {
String sql="update data_buku set
Kode_Buku=?,Nama_Buku=?,Nama_Pengarang=?,Penerbit=?,Tahun_Terbit=? where " +
"Kode_Buku='"+kodebuku.getText()
+"'";
st=con.prepareStatement(sql);
if(coba==0) {
try {
st.setString(1,kodebuku.getText());
st.setString(2,namabuku.getText());
st.setString(3,pengarang.getText());
st.setString(4,penerbit.getText());
st.setString(5,tahunterbit.getText());
st.executeUpdate();
JOptionPane.showMessageDialog(null, "Update data sukses");
loaddata();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Update data gagal"+e);
}
}
}catch (Exception e) {}
}

private void refreshActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
kodebuku.setText(null);
namabuku.setText(null);
pengarang.setText(null);
penerbit.setText(null);
tahunterbit.setText(null);
}

private void deleteActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String x = kodebuku.getText();
try {
String sql="delete from data_buku where Kode_Buku='"+x+"'";
stat.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Data telah dihapus");
loaddata();
kodebuku.setText(null);
namabuku.setText(null);
pengarang.setText(null);
penerbit.setText(null);
tahunterbit.setText(null);
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}

private void exitActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
if (JOptionPane.showConfirmDialog(null, "Apakah anda ingin keluar?","Yakin",
JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{this.dispose();
new menuutama().show();
}
}

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


// TODO add your handling code here:
int i = tabuk.getSelectedRow();
if(i==-1){ return; }
String code = (String)tabuk.getValueAt(i,0);
String code1 = (String)tabuk.getValueAt(i,1);
String code2 = (String)tabuk.getValueAt(i,2);
String code3 = (String)tabuk.getValueAt(i,3);
String code4 = (String)tabuk.getValueAt(i,4);
kodebuku.setText(code);
namabuku.setText(code1);
pengarang.setText(code2);
penerbit.setText(code3);
tahunterbit.setText(code4);
}
private void kodebukuActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new databuku().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton delete;
private javax.swing.JButton edit;
private javax.swing.JButton exit;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField kodebuku;
private javax.swing.JTextField namabuku;
private javax.swing.JTextField penerbit;
private javax.swing.JTextField pengarang;
private javax.swing.JButton refresh;
private javax.swing.JButton save;
private javax.swing.JButton search;
private javax.swing.JTable tabuk;
private javax.swing.JTextField tahunterbit;
// End of variables declaration
}
Gambar 1.35 Tampilan Menu Peminjaman Buku

Gambar 1.36 Tampilan Message Gambar 1.37 Tampilan Input Kode Buku pada
berhasil menyimpan data pada button save button Search di Menu Peminjaman.
Di Menu Peminjaman

Gambar 1.38 Tampilan Message Dialog Gambar 1.39 Tampilan Message Dialog Yes
Buku belum ditemukan pada button Search Peminjam Ditemukan pada Button Search di
peminjam peminjam
package perpustakaan;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.DriverManager;
import javax.swing.table.DefaultTableModel;
public class peminjaman extends javax.swing.JFrame {
Connection conn;
PreparedStatement st;
Statement stat;
ResultSet res;
Connection con;

/**
* Creates new form peminjaman
*/
public peminjaman() {
initComponents();
koneksi();
loaddata();
loaddata1();
}

private void loaddata() {


DefaultTableModel t= new DefaultTableModel();
t.addColumn("Kode_Buku");
t.addColumn("Nama_Buku");
t.addColumn("Nama_Pengarang");
t.addColumn("Penerbit");
t.addColumn("Tahun_Terbit");
tabuk.setModel (t);
try{ res=stat.executeQuery("Select * from data_buku");
while (res.next()) {
t.addRow (new Object []
{res.getString("Kode_Buku"),
res.getString("Nama_Buku"),
res.getString("Nama_Pengarang"),
res.getString("Penerbit"),
res.getString("Tahun_Terbit")
});
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e);
}
}

private void koneksi() {


try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1/database_perpustakaan", "root",
"");
stat=conn.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void refreshActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
nis.setText(null);
nama.setText(null);
kodebuku.setText(null);
namabuku.setText(null);
tglp.setText(null);
tglk.setText(null);
}

private void deleteActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String x = kodebuku.getText();
try {
String sql="delete from peminjam where Kode_Buku='"+x+"'";
stat.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Data telah dihapus");
loaddata1();
nis.setText(null);
nama.setText(null);
kodebuku.setText(null);
namabuku.setText(null);
tglp.setText(null);
tglk.setText(null);
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}

private void exitActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
if (JOptionPane.showConfirmDialog(null, "Apakah anda ingin keluar?","Yakin",
JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{this.dispose();
new menuutama().show();
}
}

private void searchActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
String x=JOptionPane.showInputDialog(null, "Masukan Kode Buku!!");
try {
String cari = "select * from peminjam where Kode_Buku='"+x+"'";
res=stat.executeQuery(cari);
if (res.next()) {
System.out.print(res.getString(1));
JOptionPane.showMessageDialog(null, "Peminjam ditemukan");
nis.setText(res.getString("NIS"));
nama.setText(res.getString("Nama"));
kodebuku.setText(res.getString("Kode_Buku"));
namabuku.setText(res.getString("Nama_Buku"));
tglp.setText(res.getString("Tanggal_Peminjaman"));
tglk.setText(res.getString("Tanggal_Pengembalian"));
loaddata1();
} else {
JOptionPane.showMessageDialog(null, "Buku Belum Dipinjam");
}
} catch (Exception e) {
System.out.print(e);
JOptionPane.showMessageDialog(null, "Koneksi Gagal");
}
}

private void editActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
int coba=JOptionPane.showConfirmDialog(null, "Yakin untuk mengubah data
ini?","Confirmation",JOptionPane.YES_NO_OPTION);
try {
String sql="update anggota set
NIS=?,Nama=?,Kode_Buku=?,Nama_Buku=?,Tanggal_Peminjaman=?,Tanggal_Pengembali
an=? where "+"Kode_Buku='"+nis.getText()+"'";
st=con.prepareStatement(sql);
if(coba==0) {
try {
st.setString(1,nis.getText());
st.setString(2,nama.getText());
st.setString(3,kodebuku.getText());
st.setString(4,namabuku.getText());
st.setString(5,tglp.getText());
st.setString(6,tglk.getText());
st.executeUpdate();
JOptionPane.showMessageDialog(null, "Update data sukses");
loaddata();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Update data gagal"+e);
}
}
}catch (Exception e) {}
}

private void saveActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try {
stat.executeUpdate("insert into peminjam values ("
+ "'" + nis.getText ()+"',"
+ "'" + nama.getText ()+"',"
+ "'" + kodebuku.getText ()+"',"
+ "'" + namabuku.getText ()+"',"
+ "'" + tglp.getText ()+"',"
+ "'" + tglk.getText()+"')");
loaddata1();
JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Perintah Salah: "+e);
}
}

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


// TODO add your handling code here:

}
private void peminjamMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int i = peminjam.getSelectedRow();
if(i==-1){ return; }
String code = (String)peminjam.getValueAt(i,0);
String code1 = (String)peminjam.getValueAt(i,1);
String code2 = (String)peminjam.getValueAt(i,2);
String code3 = (String)peminjam.getValueAt(i,3);
String code4 = (String)peminjam.getValueAt(i,4);
String code5 = (String)peminjam.getValueAt(i,5);
nis.setText(code);
nama.setText(code1);
kodebuku.setText(code2);
namabuku.setText(code3);
tglp.setText(code4);
tglk.setText(code5);
}

private void tglpActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:

}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new peminjaman().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton delete;
private javax.swing.JButton edit;
private javax.swing.JButton exit;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField kodebuku;
private javax.swing.JTextField nama;
private javax.swing.JTextField namabuku;
private javax.swing.JTextField nis;
private javax.swing.JTable peminjam;
private javax.swing.JButton refresh;
private javax.swing.JButton save;
private javax.swing.JButton search;
private javax.swing.JTable tabuk;
private javax.swing.JTextField tglk;
private javax.swing.JTextField tglp;
// End of variables declaration
}

Gambar 1.40 Tampilan Confirm Yakin pada button Exit

Anda mungkin juga menyukai