Sistem Pustaka1
Sistem Pustaka1
MENGENAL NETBEANS
Awal kemunculan aplikasi NetBeans telah ada sejak tahun 1997 yaitu sebagai
sebuah proyek kuliah. Pada tahun tersebut, suatu perusahaan dibangun oleh Roman Staněk
di sekitar proyek kuliah tersebut lalu perusahaan tersebut memulai memproduksi versi
NetBeans IDE komersial hingga akhirnya dibeli oleh Sun Microsystems pada tahun 1999
lalu menjadikan NetBeans IDE sebagai serambi bersifat sumber terbuka pada bulan Juni
1999. Aplikasi ini berbasiskan Java dan berjalan di atas swing. Swing sendiri adalah
sebuah teknologi Java untuk mengembangkan sebuah aplikasi Desktop yang dapat
dijalankan di berbagai macam OS. yaitu Windows, Linux, MAC OS ,Solaris dan OS lain
yang mendukung suatu JVM yang sepadan. Aplikasi ini juga mendukung bahasa
pemrograman lainnya, secara khusus seperti PHP, C/C++ dan HTML5.
1. Smart Code Completion, untuk mengusulkan nama variabel dari suatu tipe,
melengkapi keyword dan mengusulkan tipe parameter dari sebuah method.
2. Bookmarking, fitur yang digunakan untuk menandai baris yang suatu saat hendak
kita modifikasi.
4. Code generator, jika kita menggunakan fitur ini kita dapat meng-generate
constructor, setter and getter method dan yang lainnya.
5. Error stripe, fitur yang akan menandai baris yang eror dengan memberi highlight
merah.
6. Netbeans juga bisa di gunakan untuk bahasa pemograman lain seperti C/C++,
Ruby, dan PHP.
1. Membutuhkan sumber daya yang besar. Karena pada editor netbeans terdapat
banyak fitur maka membutuhkan sumberdaya yang besar seperti memory, prosesor
dengan spesifikasi yang tinggi
2. Ketika memindahkan project dari satu computer ke computer laen terkadang ada
beberapa library yang tidak sesual, sehingg membutuhkan penangan khusus
JVM adalah sebuah mesin abstrak yang merupakan salah satu komponen dari
system java. Tugas dari JV mini adalah menterjemahkan dan mengeksekusi instruksi file
yang berkstensi .class JVM ini tidak mengenal bahasa pemrograman java, akan tetapi
mengenal format biner, dan mengeksekusinya saat (Run Time) dari file dengan format
.class yang sebelumnya udah di terjemahkan oleh java compiler pada saat built time
1. Meload Code
2. Memverifikasi code
3. Mengeksekusi code
JDK adalah suatu yang wajib terinstal di komputer ketika inggin menggunakan
aplikasi yang berbasis java. JDK adalah sebuah perangkat lunak yang digunakan untuk
melakukan suatu proses kompilasi kode java ke bytecode yang bisa di mengerti dan bisa di
jalankan oleh JRE (Java Runtime Envirotment). JDK (Java Develoment Kit) itu berisi
program seperti java yaitu untuk meng-compile kode sumber.
1.4 XAMPP
XAMPP ialah perangkat lunak bebas yang mendukung banyak sistem operasi,
merupakan campuran dari beberapa program. Yang mempunyai fungsi sebagai server yang
berdiri sendiri (localhost), yang terdiri dari program MySQL database, Apache HTTP
Server, dan penerjemah ditulis dalam bahasa pemrograman PHP dan Perl. XAMPP adalah
singkatan yang setiap huruf adalah :
A : Apache, server aplikasi Web. Apache tugas utama adalah untuk menghasilkan
halaman web yang benar kepada pengguna terhadap kode PHP yang sudah
dituliskan oleh pembuat halaman web. jika perlu kode PHP juga berdasarkan yang
tertulis, dapat database diakses dulu (misalnya MySQL) untuk mendukung
halaman web yang dihasilkan.
Program ini tersedia di bawah GNU General Public License dan bebas, adalah
mudah untuk menggunakan web server yang dapat melayani tampilan halaman web yang
dinamis. Jika ingin mendapatkan xampp dapat mendownload langsung dari situs resminya.
Adapun tampilan dari aplikasi XAMPP adalah sebagai berikut
Control Panel yang berfungsi untuk mengelola layanan (service) XAMPP. Seperti
stop service (berhenti), atau mulai (mulai).
1.5 JasperReport
1.6 MYSQL
MySQL adalah sistem manajemen basis data relasional (RDBMS) sumber terbuka.
Pada tahun 2013, MySQL merupakan RDBMS kedua yang paling banyak digunakan di
dunia dan yang pertama untuk RDBMS sumber terbuka. MySQL didasarkan pada SQL
(Select Query language) yaitu bahasa standar untuk berkomunikasi dengan sistem
manajemen basis data relasional.
SQL sendiri terdiri dari pernyataan atau perintah untuk menambah, mengambil dan
mengelola data, membuat dan memelihara tabel serta untuk pengelolaan database.
Pernyataan-pernyataan SQL ini dapat dibagi menjadi DDL, DML, DQL dan DCL (baca
artikel MySQL: Klasifikasi Peritah Dasar Dalam SQL). Meskipun perintah dasar SQL di
semua RDBMS hampir sama, namun MySQL juga mempunyai "dialect of SQL" sendiri.
MySQL dibuat pada tahun 1995 dan disponsori oleh perusahaan Swedia, MySQL AB.
Pengembang platform MySQL adalah Michael Widenius, David Axmark dan Allan
Larsson. Tujuan utama dibuatnya MySQL adalah untuk menyediakan opsi pengelolaan
data yang efisien, terpercaya dan handal. Pada tahun 2000, platform MySQL berubah
menjadi sumber terbuka (open source) dan mengikuti ketentuan GPL.
Pada Januari 2008, MySQL diakuisisi oleh Sun Microsystems. Kemudian pada
April 2009, terjadi pencapaian kesepakatan antara Sun Microsystems dan Oracle
Corporation terkait pembelian Sun Microsystems beserta hak cipta (copyright) dan merek
dagang (trademark) MySQL oleh Oracle. Namun baru pada Januari 2010, MySQL secara
resmi diakuisisi oleh Oracle. Setelah akuisisi resmi MySQL oleh Oracle Corporation,
muncul kekawatiran bahwa suatu saat nanti MySQL akan diakhiri atau pengembangannya
sengaja akan dihambat. Kekawatiran ini wajar karena Oracle Corporation sudah memiliki
database sendiri yaitu Oracle DB, sebuah database komersial untuk kelas enterprise.
Ada anggapan bahwa MySQL akan menjadi pesaing utama atau bahkan bisa
melampaui Oracle DB karena kepopulerannya yang terus meningkat dan cakupan
penggunaannya yang semakin luas. Karena adanya kekawatiran dan anggapan seperti
inilah (walaupun pada kenyataannya tidak sepenuhnya benar sampai saat ini) akhirnya
banyak bermunculan fork (versi lain) dari MySQL. Fork MySQL dapat diartikan sebagai
proyek terkait yang dapat dianggap sebagai versi lain (mini) dari MySQL standar. Salah
satu RDBMS terkenal saat ini dan merupakan fork MySQL adalah MariaDB. MariaDB
merupakan pengembangan versi lain MySQL oleh Michael Widenius yang telah
meninggalkan Sun Microsystems setelah diakuisisi resmi oleh Oracle Corporation.
Versi lain MySQL selain MariaDB adalah Dorsal Source oleh Proven Scaling,
Drizzle oleh Brian Aker, OurDelta oleh Arjen Lentz dan Percona Server yang dikelola oleh
perusahaan consultan Percona LLC. MySQL dibuat (ditulis) menggunakan bahasa
pemrograman C dan C++ serta dapat berjalan di semua platform seperti Windows, Linux
dan Unix. MySQL merupakan database pilihan untuk beberapa bahasa pemrograman web
seperti PHP, Ruby on Rails dan Python. MySQL juga menjadi pilihan untuk beberapa
aplikasi web sistem pengelolaan konten (content management system | CMS) sumber
terbuka seperti Joomla, Wordpress dan Drupal.
Selain itu, MySQL juga menjadi salah satu komponen penting dari web service
solution stack LAMP (Linux, Apache, MySQL and PHP) yaitu platform pengembangan
web sumber terbuka dimana Linux sebagai sistem operasi, Apache sebagai Web Server,
MySQL sebagai RDBMS dan PHP sebagai bahasa skrip berorientasi obyek (object-
oriented scripting language).
BAB II
MERANCANG DATABSE
2. Setelah xampp nya aktif, maka aktifkan browsernya, dan pada url ketikan
3. Buat sebuah database dengan nama perpustakaan, dan klik tombol buat
b. Isikan fieldnya seperti di bawah ini, dan setting nim sebagai primary key
c. Setelah selesai membaut field table anggota, selanjutnya klik tombol simpan
b. Isiklan fieldnya seperti di bawah ini, setting kode buku sebagai primary key
c. Setelah selesai membaut field table anggota, selanjutnya klik tombol simpan
3. Table Karaywan
Dalam membuat table karyawan ikuti langkah-langkah di bawah ini :
a. Ketikan nama table karyawan pada kolom table dan isikan jumlah kolom 10, dan
klik tombol Go
c. Setelah selesai membaut field table karyawan, selanjutnya klik tombol simpan
4. Table Login
Dalam membuat table login ikuti langkah-langkah di bawah ini :
a. Ketikan nama table login pada kolom nama dan isikan jumlah kolom 8, dan klik
tombol Go
c. Setelah selesai membaut field table login, selanjutnya klik tombol simpan
5. Tabel Peminjan
Dalam membuat table login ikuti langkah-langkah di bawah ini :
a. Ketikan nama table peminjam pada kolom nama dan isikan jumlah kolom 9, dan
klik tombol Go
c. Setelah selesai membaut field table peminjam, selanjutnya klik tombol simpan
BAB III
MERANCANG FORM
1. Buat sebuah project dengan cara klik file, pilihe new project maka akan tampil kotak
dialog seperti di bawah ini :
2. Pada Categories pilih java dan pada Project pilih Java Aplication, dan setelah itu klik
tombol next, maka akan tampil kotak dialog seperti gambar di bawah ini
3. Pada Project name ketikan nama dari project yang akan di baut, atur tempat menyimpan
project pada Ppproject Location, dan hilangkan tanda centang Create Main Class,
setelah itu klik tombol finish
4. Pada Project yang sudah siap di buat, lakukan klik kanan dan pilih new, dan Java
Package, Pada Pacakge Name isikan nama nya denga Form, setelah itu klik tombol
finish
5. Lakukan hal yang sama untuk package untuk Package gambar, koneksi, dan main
6. Sebelum mendesain form,, buat terlebih dahulu sebuah class pada package konekesi,
dengan cara, klik kanan package koneksi, pilih Java Clas, maka akan tampil kotak
dialog seperti gambar di bawah ini:
Pada Calss Name ketikan nama MySQLKoenksi, dan klik tombol finish
7. Sebelum Membuat kode program untuk koneksi ke database, maka terlebih dahulu
tambahkan sebuah library MySQL padalibraries
10. Buat sebuah form baru pada package Form dengan cara klik kanan packagenya pilih
new JFrame Form, dan desain form seperti di bawah ini :
Ada pun komponen yang di butuhkan untuk desain form diatas adalah :
11. Untuk memberikan event kepada tombol simpan, double klik tombol simpan dan
ketikan program seperti di bawah ini:
if (tkode.getText().equals("")==true){
JOptionPane.showMessageDialog(null, "Kode Buku Masih Kosong");
return;
}
if (tjudul.getText().equals("")==true){
JOptionPane.showMessageDialog(null, "Judul Buku Masih Kosong");
return;
}
if (tpengarang.getText().equals("")==true){
JOptionPane.showMessageDialog(null, "Pengaang Buku Masih Kosong");
return;
}
if (tpenerbit.getText().equals("")==true){
JOptionPane.showMessageDialog(null, "Penerbit Buku Masih Kosong");
return;
}
if (ttahun.getText().equals("")==true){
JOptionPane.showMessageDialog(null, "Tahun Buku Masih Kosong");
return;
}
try {
if (ttanggal.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl=smpl.format(ttanggal.getDate());
}
if (tdaftar.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl_daftar=smpl.format(tdaftar.getDate());
}
if (tberlau.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl_berlaku=smpl.format(tberlau.getDate());
}
if(rpria.isSelected()){
jenkel=rpria.getText();
}else {
jenkel=rwanita.getText();
}
12. Supaya pada textfield tahun terbit hanya bisa di ketikan angka, maka kita berikan pada
textfield tersebut event dengan cara kana textfilednya pilih key dan keyTyped
Gambar 3.9 Validasi Input Tahun Terbit
12 Supaya data yang sudah terseimpan ke dalam table tampil di tabel yang ada di form,
maka buat sebuah method baru dan ketikan kode program di bawah ini :
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,"data tidak di temukan");
}
} catch (Exception e) {
}
}
14. Supaya method tampil bisa memanggil data yang ada dalam database dan tambel di
dalam tbl_anggota, maka method tampil di pnggil di dalam konstruktor project
15. Supaya setiap data yang sudah tersimpan dalam table langsung tampil di dalam
tbl_anggota, maka methos tampil_data juga di panggil di dalam event tombol simpan
16. Supaya semua texrfield yang ada di foem bersih ketika sudah berhasil menyimpan
data ke dalam database maka buat sebuah method baru, dan ketikan program di bawah
ini :
17. Setelh selesai membuat methodi di atas maka panggil di dalam event simpan
18. Supaya data bisa di edit, maka data yang ada dalam table harus kita tampilkan dahulu
ke masing-masing textfield yang ada di form. Maka dari itu kita harus memberikan
event ke tbl_anggota dengan cara klik kanan tabelnya dan pilih event, pilih Mouse dan
pilih mouseClicked dan ketikan kode program di bawha ini :
19. Untuk edit data yang ada dalam database, berikan event kepada tombol edit dan
ketikan kode program di bawah ini :
try {
if (ttanggal.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl=smpl.format(ttanggal.getDate());
}
if (tdaftar.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl_daftar=smpl.format(tdaftar.getDate());
}
if (tberlau.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl_berlaku=smpl.format(tberlau.getDate());
}
if(rpria.isSelected()){
jenkel=rpria.getText();
}else {
jenkel=rwanita.getText();
}
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(sql);
pre.executeUpdate();
tampil_data();
bersih();
JOptionPane.showMessageDialog(null,"berhasil edit data");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null,"tidak bisa edit data"+e.getMessage());
}
20. Untuk menghapus data, berikan event ke tombol hapus, ketikan kode program di
bawah ini :
try {
String sql="DELETE FROM anggota WHERE nim='"+tnim.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(sql);
pre.executeUpdate();
JOptionPane.showMessageDialog(null,"data berhasil di hapus");
tampil_data();
bersih();
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null,"tidak bisa hapus data"+e.getMessage());
}
21. Ketika data sudah terlalu banyak di dalam database, maka akan susah kita mencari
data yang kita inginkan pada table yang ada di form, maka dari itu, kita buat sebuah
kode program untuk menyeleksi data yang ingin di tampilkan pada table yang ada di
form. Adapun carinya adalah dengan memberikan event kepada textfield nim, double
klik textfieldnya dan ketikan program seperti program yang ada pada method
tamplil_data, namun bedanya di event ini adalah dengan merubah sedikit sqlnya
perhatikan pada tulisan yang di tebalkan
String cari=tnim.getText();
String nim,nama,tempat,tgl_lahir,jk,alaamt,agama,tgldaftar,tglberlaku,kelas;
try {
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null,"data tidak di temukan");
}
} catch (HeadlessException e) {
JOptionPane.showMessageDialog(null,"data tidak TIDAK ADA");
}
22. Buat form baru dengan cara klik kanan package Form pilih New, dan Pilih JFrame
Form, pada Class Name ketikan nama form dengan FormBuku
try {
a="INSERT INTO databuku VALUES ('"+tkode.getText()+"','"
+tjudul.getText()+"','"
+tpengarang.getText()+"','"
+tpenerbit.getText()+"','"
+ttahun.getText()+"')";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"buku denga kode " +tkode.getText()
+" Berhasil di simpan");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,"tidak bisa Simpan
data"+e.getMessage());
}
26. Buat method untuk menampilkan data yang sudah tersimpan ke database ke dalam
table yang ada di form
void tampil_data(){
String kode,judul,pengarang,penerbit,tahun_terbit;
Object [] data_buku={"No","Kode Buku","Judul Buku","Pengarang","Penerbit","Tahun
Terbit"};
DefaultTableModel mdl=new DefaultTableModel(null,data_buku);
ttabel.setModel(mdl);
jScrollPane1.setEnabled(true);
jScrollPane1.setBorder(null);
jScrollPane1.setViewportView(ttabel);
ttabel.setModel(mdl);
ttabel.setAutoResizeMode(0);
ttabel.getColumnModel().getColumn(0).setPreferredWidth(30);
ttabel.getColumnModel().getColumn(1).setPreferredWidth(100);
ttabel.getColumnModel().getColumn(2).setPreferredWidth(250);
ttabel.getColumnModel().getColumn(3).setPreferredWidth(250);
ttabel.getColumnModel().getColumn(4).setPreferredWidth(200);
ttabel.getColumnModel().getColumn(5).setPreferredWidth(100);
try {
int no=0;
String view="SELECT * FROM databuku";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(view);
res=pre.executeQuery();
while(res.next()){
no++;
kode=res.getString(1);
judul=res.getString(2);
pengarang=res.getString(3);
penerbit=res.getString(4);
tahun_terbit=res.getString(5);
String
data[]={ String.valueOf(no),kode,judul,pengarang,penerbit,tahun_terbit};
mdl.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,"data tidak ada");
}
32. Supaya kita bisa melakukan edit data yang sudah tampil di textfield, berikan event
kepada tombol edit:
try {
a="UPDATE databuku SET kode_buku = '"+tkode.getText()+"',judul_buku='"
+tjudul.getText()+"',pengarang='"
+tpengarang.getText()+"',penerbit='"
+tpenerbit.getText()+"',tahun_terbit='"
+ttahun.getText()+"' WHERE kode_buku='"+tkode.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(null,"data berhasil di simpan");
tampil_data();
bersih();
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null,"Data tidak bisa di
edit"+e.getMessage());
}
33. Untuk bisa menghapus data di dalam database, maka berikan event kepada tombol
hapus
try {
int hapus=JOptionPane.showConfirmDialog(rootPane,"Yakin mau hapus
data","Warning",JOptionPane.YES_OPTION);
if(hapus==JOptionPane.YES_OPTION){
a="DELETE FROM databuku WHERE kode_buku='"+tkode.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(null,"Data berhasil di hapus");
tampil_data();
bersih();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Data tidak bisa di
hapus"+e.getMessage());
}
35. Buat form baru untuk karyawan dengan cara klik kanan package form, pilih new dan
JFrame Form
36. Pada Class name ketikan FormKaryawan, dan klik tombol finish
37. Sebelum memberiikan event ke button, terlebih dahulu import class koneksi
38. Buat variabel dari PreparedStatement dan Resultset dan serta variable sql
39. Berikan event ke tombol simpan :
String jenkel;
if (tnik.getText().equals(""))
{
JOptionPane.showMessageDialog(rootPane," NIK Masinh Kosong");
return;
}
if (tnama.getText().equals(""))
{
JOptionPane.showMessageDialog(rootPane," Nama Masinh Kosong");
return;
}
if(!(rpria.isSelected() | (rwanita.isSelected()))){
JOptionPane.showMessageDialog(rootPane," Jenis Kelamin Belum di
Pilih");
return;
}
if (cgolongan.getSelectedItem().equals("--Pilih Golongan--"))
{
JOptionPane.showMessageDialog(rootPane," Golongan Belum di Pilih");
return;
}
if (cjabatan.getSelectedItem().equals("--Pilih Jabatan--"))
{
JOptionPane.showMessageDialog(rootPane," jabatan Belum di Pilih");
return;
}
if (rpria.isSelected()){
jenkel=rpria.getText();
}
else {
jenkel=rwanita.getText();
}
try {
a="INSERT INTO karyawan VALUES ('"+tnik.getText()+"','"
+tnama.getText()+"','"
+jenkel+"','"
+cgolongan.getSelectedItem()+"','"
+cjabatan.getSelectedItem()+"')";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"data dengan NIK "+
tnik.getText() +" Berhasil di dimpan");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,"Tidak bisa simpan
data"+e.getMessage());
}
40. Untuk mengsongkan textfield setelah menyimpan data, maka buat sebuah method, dan
ketikan program di bawah ini :
41. Setelah itu panggil method bersih di dalam event tombol simpan
42. Untuk menampilkan data yang ada di dalam database, ke table yang ada diform, maka
buat sebuah method:
void tampil_data(){
String nik,nama,jk,jabatan,golongan;
Object [] data={"No", "NIK","Nama","Jenis Kelamin","Golongan","Jabatan"};
DefaultTableModel mdl=new DefaultTableModel(null,data);
ttabel.setModel(mdl);
jScrollPane1.setEnabled(true);
jScrollPane1.setBorder(null);
jScrollPane1.setViewportView(ttabel);
ttabel.setAutoResizeMode(0);
ttabel.getColumnModel().getColumn(0).setPreferredWidth(30);
ttabel.getColumnModel().getColumn(1).setPreferredWidth(150);
ttabel.getColumnModel().getColumn(2).setPreferredWidth(200);
ttabel.getColumnModel().getColumn(3).setPreferredWidth(200);
ttabel.getColumnModel().getColumn(4).setPreferredWidth(95);
ttabel.getColumnModel().getColumn(5).setPreferredWidth(95);
try {
int no=0;
a="SELECT * FROM karyawan";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
res=pre.executeQuery();
while (res.next()){
no++;
nik=res.getString(1);
nama=res.getString(2);
jk=res.getString(3);
golongan=res.getString(4);
jabatan=res.getString(5);
String data_karayawan[]={ String.valueOf(no),nik,nama,jk,golongan,
jabatan};
mdl.addRow(data_karayawan);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,"data tidak di temukan");
}
}
43. Untuk menampilkan data yang ada di tabel ke texrfield, maka berikan event kepada
tabel degan cara klik kanan, pilih event, dan pilih mouseClicked
tnik.setText(ttabel.getValueAt(ttabel.getSelectedRow(),1).toString());
tnama.setText(ttabel.getValueAt(ttabel.getSelectedRow(),2).toString());
String jkl = (String) ttabel.getValueAt
(ttabel.getSelectedRow(),3);
if(jkl.equals("Pria")){
rpria.setSelected(true);
}
else{
rwanita.setSelected(true);
}
cgolongan.setSelectedItem(ttabel.getValueAt(ttabel.getSelectedRow(),4).toStr
ing());
cjabatan.setSelectedItem(ttabel.getValueAt(ttabel.getSelectedRow(),5).toString(
));
44. Agar bisa melakukan edit data, maka verikan event kepada tombol edit:
if(rpria.isSelected()){
jenkel=rpria.getText();
}
else {
jenkel=rwanita.getText();
}
try {
a="UPDATE karyawan SET nik='"+tnik.getText()+"',nama_karyawan='"
+tnama.getText()+"',jenkel='"
+jenkel+"',golongan='"
+cgolongan.getSelectedItem()+"',jabatan='"
+cjabatan.getSelectedItem()+"' WHERE
nik='"+tnik.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
tampil_data();
bersih();
JOptionPane.showMessageDialog(rootPane,"data berhasil di edit");
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,"data tidak bisa di
edit"+e.getMessage());
}
try {
int hapus=JOptionPane.showConfirmDialog(rootPane,"Yakin Mau Hapus
Data ini",
"Warning",JOptionPane.YES_NO_OPTION);
if (hapus==JOptionPane.YES_OPTION){
a="DELETE FROM karyawan WHERE nik='"+tnik.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"data berhasil di edit");
tampil_data();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane,"tidak bisa edit
data"+e.getMessage());
}
47. Buat form untuk peminjaman dengan cara klik kanan package Form, pilih new dan
pilih JFrame Form
Gambar 3.15 New Form Peminjaman
48. Pada Class name ketikan FormPeminajan, dan klik tombol Finish
50. Untuk menampilkan biodata peminjam,, berikan event pada textfilled nim, dengan
cara double klik textfiled nya dan ketikan kode program di bawah ini :
try {
a="SELECT * FROM anggota WHERE nim='"+tnim.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
res=pre.executeQuery();
while(res.next()){
tnama.setText(res.getString(2));
tnama.setText(res.getString(2));
}
} catch (Exception e) {
}
51. Untuk menampilkan biodata buku, berikan event pada textfilled kode buku, dengan
cara double klik textfiled nya dan ketikan kode program di bawah ini :
try {
a="SELECT * FROM databuku WHERE
kode_buku='"+tkode.getText()+"';";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
res=pre.executeQuery();
while(res.next()){
tjudul.setText(res.getString(2));
tpenerbit.setText(res.getString(4));
ttahun.setText(res.getString(5));
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane,"buku yang di cari tidak ada");
}
52. Untuk menentukan lama pinjam berdasarkan tanggal kembali, berikan event kepada
tanggal kembali dengan cara klik kanan, poilih event, dan pilih PropertyChange
perhatikan gambar di bawah ini, dan ketikan kode program di bawah ini:
if(tgl_kembali.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("dd-MM-yyyy");
kembali=smpl.format(tgl_kembali.getDate());
}
try {
DateFormat format=new SimpleDateFormat("dd-mm-yyyy");
Date tgl_pinjam1=format.parse(pinjam);
Date tgl_kembli1=format.parse(kembali);
long aaaa=tgl_pinjam1.getTime();
long bbbb=tgl_kembli1.getTime();
long diff=bbbb - aaaa;
long lama=diff/(24*60*60*1000);
tlama.setText(Long.toString(lama)+"");
} catch (Exception e) {
}
53. Untuk menyimpan data ke database, berikan event kepada tombol simpan dengan cara
double klik dan ketikan kode program di bawah ini :
try {
if (tgl_pinjam1.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl_pinjam1.setDateFormatString("dd-MM-yyyy");
tglpinjam=smpl.format(tgl_pinjam1.getDate());
}
if (tgl_kembali.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tgl_kembali.setDateFormatString("dd-MM-yyyy");
tglkmbl=smpl.format(tgl_kembali.getDate());
}
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"berhasil simpan data");
tampil_data();
bersih();
no_surat();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane,"tidak bisa simpan
data"+ex.getMessage());
}
54. Untuk menampilkan data dari database ke tabel yang ada di form, buat sebuah method
tampil, dan ketikan kode program di bawah ini :
void tampil_data(){
String id,nim,nama,kode,judul,tahun,penerbit,t_pinjam,t_kembali,Lama;
Object []data={"No","ID","NIM","Nama","Kode Buku","Judul
Buku","Penerbit","Tahun Terbit","Tanggal Pinjam","Tanggal Kembali","Lama
Pinjam"};
DefaultTableModel mdl=new DefaultTableModel(null,data);
ttabel.setModel(mdl);
jScrollPane1.setEnabled(true);
jScrollPane1.setBorder(null);
jScrollPane1.setViewportView(ttabel);
ttabel.setAutoResizeMode(0);
ttabel.getColumnModel().getColumn(0).setPreferredWidth(30);
ttabel.getColumnModel().getColumn(1).setPreferredWidth(100);
ttabel.getColumnModel().getColumn(2).setPreferredWidth(80);
ttabel.getColumnModel().getColumn(3).setPreferredWidth(150);
ttabel.getColumnModel().getColumn(4).setPreferredWidth(80);
ttabel.getColumnModel().getColumn(5).setPreferredWidth(200);
ttabel.getColumnModel().getColumn(6).setPreferredWidth(200);
ttabel.getColumnModel().getColumn(7).setPreferredWidth(90);
ttabel.getColumnModel().getColumn(8).setPreferredWidth(100);
ttabel.getColumnModel().getColumn(9).setPreferredWidth(100);
ttabel.getColumnModel().getColumn(10).setPreferredWidth(100);
try {
int no=0;
String a="SELECT * FROM peminjam";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
res=pre.executeQuery();
while(res.next()){
no++;
id=res.getString(1);
nim=res.getString( 2);
nama=res.getString(3);
kode=res.getString(4);
judul=res.getString(5);
penerbit=res.getString(6);
tahun=res.getString(7);
t_pinjam=res.getString(8);
Lama=res.getString(9);
t_kembali=res.getString(10);
String
data_pinjam[]={ String.valueOf(no),id,nim,nama,kode,judul,penerbit,tahun,t_pinja
m,Lama,t_kembali};
mdl.addRow(data_pinjam);
}
} catch (SQLException e) {
}
56. Untuk menampilkan data yang sudah di simpan ke database ke tabel yang ada di form
dan textfilednya kosong, panggil keduanya di dalam tombol simpan
57. Untuk melakukan edit data, berikan event kepada tombol edit dengan cara double kill
tombolnya dan ketikan kode program di bawah ini :
try {
if (tgl_pinjam1.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tglp=smpl.format(tgl_pinjam1.getDate());
}
if (tgl_kembali.getDate()!=null){
SimpleDateFormat smpl=new SimpleDateFormat("yyyy-MM-dd");
tglk=smpl.format(tgl_kembali.getDate());
}
a="UPDATE peminjam SET ID='"+tid.getText()+"',nim='" +tnim.getText()
+"',nama_mahasiswa='"
+tnama.getText()+"',kode_buku='"+tkode.getText()+"',nama_buku='"
+tjudul.getText()+"',penerbit='"+tpenerbit.getText()+"',tahun_terbit='"
+ttahun.getText()+"',tgl_pinjam='"+tglp+"',tgl_kembali='"
+tglk+"',lama_pinjam='"+tlama.getText()+"' WHERE
ID='"+tid.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"data sudah di edit");
tampil_data();
bersih();
58. Untuk menampilkan data yang sudah di edit ke tabel yang ada di form dan
textfilednya kosong, panggil keduanya di dalam tombol edit
59. Untuk menghapus data yangada dalam database, berikan event ke tombol hapus,
dengan cara double klik tombolnya dan ketikan kode program di bawah ini :
try {
int hapus=JOptionPane.showConfirmDialog(rootPane,"Yakin Mau di
hapus","Warning",JOptionPane.YES_NO_OPTION);
if (hapus==JOptionPane.YES_OPTION) {
a="DELETE FROM peminjam WHERE ID='"+tid.getText()+"';";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
pre.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"data sudah di hapus");
tampil_data();
bersih();
no_surat();
}
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(rootPane,"tidak bisa hapus
data"+e.getMessage());
}
60. Buat form baru untuk pegembalian buku, dengan cara klik kanan packakfe form,
pilih new, dan pilih JFrame Form
Gambar 3.19 Dialog New Form Pengembalian
Pada Class Name ketikan nama Project FormPengembalian, setelah itu klik tombol
finish
61. Untuk menampilkan data buku yang di pinjam berikan event kepada textfield nim
dengan cara double klik textfilednya dan ketikan kode program di bawah ini :
try {
a="SELECT * FROM peminjam WHERE nim='"+tnim.getText()+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(a);
res=pre.executeQuery();
while(res.next()){
tnama.setText(res.getString(3));
tkode.setText(res.getString(4));
tjudul.setText(res.getString(5));
tpenerbit.setText(res.getString(6));
ttahun.setText(res.getString(7));
tgl_pinjam.setDate(res.getDate(8));
tgl_kembali.setDate(res.getDate(9));
lbl_kembali.setText(res.getString(10));
}
} catch (SQLException e) {
}
try {
DateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date tanggalpinjam = format.parse(kembali);
Date tanggalkembali = format.parse(sekarang);
long tanggalpinjam1 = tanggalpinjam.getTime();
long tanggalkembali1 = tanggalkembali.getTime();
long diff = tanggalkembali1-tanggalpinjam1 ;
long lama = diff / (24 * 60 * 60 * 1000);
ttelat.setText(Long.toString(lama) + "");
} catch (ParseException e) {
System.out.println("" + e.getMessage());
}
62. Untuk menghitung keterlambatan pemulangan buku, kita harus menghitung selisih
tanggal di saat pemulangan buku dengan tanggal yang di atur saat meminjam buku,
dengan cara, klik kanan tanggal kembali, pilih event, pilih PropertyChange, perhatikan
gambar di bawah ini
63. Lakukan hal yang sama untuk tanggal sekarang, dan ketikan kode program di bawah
ini :
64. Supaya keterlambatan tampil secara otomatis di saat menampilkan data buku yang
di pinjam, juga ketikan kode program di bawah ini di dalam textfield nim
try {
DateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date tanggalpinjam = format.parse(kembali);
Date tanggalkembali = format.parse(sekarang);
long tanggalpinjam1 = tanggalpinjam.getTime();
long tanggalkembali1 = tanggalkembali.getTime();
long diff = tanggalkembali1-tanggalpinjam1 ;
long lama = diff / (24 * 60 * 60 * 1000);
ttelat.setText(Long.toString(lama) + "");
} catch (ParseException e) {
System.out.println("" + e.getMessage());
}