Anda di halaman 1dari 45

BAB I

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.

Kelebihan editor Netbeans antara lain:

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.

3. Go to commands, fitur yang digunakan untuk jump ke deklarasi variabel, source


code atau file yang ada pada project yang sama.

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.

7. Mempunyai Garbage Collection,dan dapat membuat program berbasis visual dan


event driven,sehingga programmer tidak perlu membuat teks program secara
manual baris per baris untuk membuat Dialog atau user-interface,dapat
menghasilkan teks program secara otomatis,di dalam Netbeans juga terdapat
Compailer,Builder,dan Debugger internal, dll.

Kekuarang editor netbeans antara lain

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

1.1 JVM (Java Virtual Machine)

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

Gambar 1.1 Skema Kerja Java Virtual Machine

Beberapa tugas JVM:

1. Meload Code
2. Memverifikasi code

3. Mengeksekusi code

4. Menyediakan ruang lingkup saat program di jalankan


1.2 Java Development Kit (JDK)

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.3 Java Runtime Environment (JRE)

JRE adalah perangkat lunak yang di gunakan untuk menjalankan program/aplikasi


yang berbasis java. Aplikasi kode-kode yang di buat oleh programmer setelah di compile
oleh JDK, maka selanjutnya di jalankan oleh JRE. Supaya bias menjalankan aplikasi java,
maka versi JRE yang di gunakan harus sama dengan versi JDK yang terinstall di komputer

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 :

 X : Program ini dapat dijalankan di banyak sistem operasi, seperti Windows,


Linux, Mac OS, dan Solaris.

 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.

 M : MySQL, server aplikasi database. Pertumbuhannya disebut SQL singkatan


dari Structured Query Language. SQL merupakan bahasa terstruktur yang
difungsikan untuk mengolah database. MySQL dapat digunakan untuk membuat
dan mengelola database dan isinya. Bisa juga memanfaatkan MySQL guna untuk
menambahkan, mengubah, dan menghapus data dalam database.

 P : PHP, bahasa pemrograman web. Bahasa pemrograman PHP adalah bahasa


pemrograman untuk membuat web yang server-side scripting. PHP digunakan
untuk membuat halaman web dinamis. Sistem manajemen database yang sering
digunakan dengan PHP adalah MySQL. namun PHP juga mendukung Pengelolaan
sistem database Oracle, Microsoft Access, Interbase, d-base, PostgreSQL, dan
sebagainya.

 P : Perl, bahasa pemrograman untuk semua tujuan, pertama kali dikembangkan


oleh Larry Wall, mesin Unix. Perl dirilis pertama kali tanggal 18 Desember 1987
yang ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl juga
tersedia untuk berbagai sistem operasi Unix (SunOS, Linux, BSD, HP-UX), juga
tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS,
EBCDIC, dan PocketPC.

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

Gambar 1.2 Tampilan XAMPP

Bagian penting XAMPP


 htdoc adalah folder di mana Anda meletakkan file yang akan dijalankan, seperti
file PHP, HTML dan script lainnya.
 phpMyAdmin adalah bagian untuk mengelola database MySQL yang dikomputer.

 Untuk membukanya, membuka browser dan ketik alamat http: // localhost /


phpMyAdmin, halaman phpMyAdmin akan muncul.

 Control Panel yang berfungsi untuk mengelola layanan (service) XAMPP. Seperti
stop service (berhenti), atau mulai (mulai).

1.5 JasperReport

Programmer yang ingin mendalami bahasa pemrograman Java harus mengenal


library JasperReport. JasperReports merupakan reporting engine yang sangat bagus dari
komunitas open source. JasperReports mempunyai kemampuan untuk menghasilkan
keluaran laporan dalam beberapa format: CSV, Excel, HTML, dan PDF. JasperReport
dihasilkan dari file yang xml yang mudah dimengerti. Selain dengan mengedit file xml,
JasperReport dapat dihasilkan dengan menggunakan IReport. IReport berasal dari project
yang sama dengan JasperReport. Dengan IReport, pekerjaan pembuatan laporan akan
semakin mudah dan menyenangkan. Dalam perancangan sebuah report yang harus di
perhatikan adalah versi library dengan ireportnya harus sama

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.1 Membuat Database

1. Sebelum bekerja merancang database perpustakaan, pastikan di komputer kita sudah


ada aplikasi yang di butuhkan yaitu, editor netbeans, aplikas Xampp, dan browser
kesayangan kita, pertama aktifkan xamp dan klik tombol start pada menu Apache dan
MySQL :

Gambar 2.1 Tampilan XAMPP

2. Setelah xampp nya aktif, maka aktifkan browsernya, dan pada url ketikan

3. Buat sebuah database dengan nama perpustakaan, dan klik tombol buat

2.2 Membuat Table


1. Tabel anggota
Dalam membuat table anggota ikuti langkah-langkah di bawah ini :
a. Ketikan nama table anggota pada kolom table dan isikan jumlah kolom 9, dan klik
tombol Go
Gambar 2.2 Dialog Nama Tabel Anggota

b. Isikan fieldnya seperti di bawah ini, dan setting nim sebagai primary key

Gambar 2.3 Dialog Field Tabel

c. Setelah selesai membaut field table anggota, selanjutnya klik tombol simpan

2. Table Data Buku


Dalam membuat table DataBuku ikuti langkah-langkah di bawah ini :
a. Ketikan nama table DataBuku pada kolom table dan isikan jumlah kolom 5, dan
klik tombol Go
Gambar 2.3 Dialog Nama Tabel Data Buku

b. Isiklan fieldnya seperti di bawah ini, setting kode buku sebagai primary key

Gambar 2.4 Dialog Field Tabel Data Buku

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

Gambar 2.5 Dialog Tabel Karyawan

b. Isikan fieldnya seperti di bawah ini,


Gambar 2.6 Dialog Field Karyawan

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

Gambar 2.7 Dialog Login

b. Isikan field seperti di bawah ini


Gambar 2.8 Dialog Field Tabel Login

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

Gambar 2.9 Dialog Peminjaman

b. Isikan fieldnya seperti di bawah ini :


Gambar 2.10 Dialog Field Peminjaman

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 :

Gambar 3.1 Dialog New Project

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

Gambar 3.2 Dialog Nama Project

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:

Gambar 3.3 Dialog New Class

Pada Calss Name ketikan nama MySQLKoenksi, dan klik tombol finish

Gambar 3.4 Dialog Class Koneksi

7. Sebelum Membuat kode program untuk koneksi ke database, maka terlebih dahulu
tambahkan sebuah library MySQL padalibraries

Gambar 3.5 Dialog Tambah Library


8. Di dalam calss Koneksi Tambahkan kode program seperti di bawah ini :
Gambar 3.6 Potongan Program Koneksi

9. Tambahkan kode program di bawah ini di dalam class project


PreparedStatement pre;
ResultSet res;
String tgl,tgl_daftar,tgl_berlaku,jenkel;

10. Buat sebuah form baru pada package Form dengan cara klik kanan packagenya pilih
new JFrame Form, dan desain form seperti di bawah ini :

Gambar 3.7 Dialog New Form


Gambar 3.8 Desain Form Data Mahasiswa

Ada pun komponen yang di butuhkan untuk desain form diatas adalah :

Nama Kompoen Value Properties


Jpanel Perpustakaan Sekolah Tinggi Manajemen header
Informatika dan Komputer Royal
Jlabel1 Logo STMIK Royal Logo
Jlabel2 Nomor Induk Mahasiswa -
Jlabel3 Nama Mahasiswa -
Jlabel4 Tempat/Tgl Lahir -
Jlabel5 Jenis Kelamin -
Jlabel6 Alamat -
Jlabel7 Agama -
Jlabel8 Tanggal Daftar -
Jlabel9 Masa Berlaku -
Jlabel10 Kelas -
jTextfileld1 - tnim
jTextfileld2 - tnama
jTextfileld3 - ttempat
jTextfileld4 - Talamat
jTextfileld5 - Tkelas
jDate Choser1 - ttanggal
jDate Choser2 - tdaftar
jDate Choser3 - tberlaku
jRadio Button1 - rpria
jRadio Button2 - rwanita
jButton1 - btn_simpan
jButton2 - btn_edit
jButton3 - btn_hapus
jButton4 - btn_keluar
jTable1 - ttabel
jLabel10 bacgkground -

Untuk radiobuttonjenis kelamin masukan masing-masing kedalam button group supaya


hanya bisa di pilih salah satu diantara dua, dengan cara klik buttinnya dan pada properties
di menu buttonGroup pilih buttonGroup1

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();
}

String sql="INSERT INTO anggota VALUES('"+tnim.getText()+"','"+tnama.getText()


+"','"
+ttempat.getText()+"','"+tgl+"','"+jenkel+"','"+talamat.getText()+"','"
+cmbagam.getSelectedItem()+"','"
+tgl_daftar+"','"+tgl_berlaku+"','"+tkelas.getText()+"')";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(sql);
pre.executeUpdate();
JOptionPane.showMessageDialog(null,"berhasil simpan data");
} catch (HeadlessException | SQLException e) {
JOptionPane.showMessageDialog(null,"tidak bisa simpan data"+e.getMessage());
}

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

13. Ketikan program di bawah ini :

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 :

private void tampil_data(){


String nim,nama,tempat,tgl_lahir,jk,alaamt,agama,tgldaftar,tglberlaku,kelas;
try {
Object [] biodata={"No","NIM","Nama Mahasiswa"," Tempat lahir","Tanggal Lahir",
"Jenis Kelamin","Alamat","Agama","Tanggal Daftar","Masa
Berlaku","Kelas"};
DefaultTableModel mdl=new DefaultTableModel(null,biodata);
tbl_anggota.setModel(mdl);
jScrollPane2.setEnabled(true);
jScrollPane2.setBorder(null);
jScrollPane2.setViewportView(tbl_anggota);
tbl_anggota.setModel(mdl);
tbl_anggota.setAutoResizeMode(0);
tbl_anggota.getColumnModel().getColumn(0).setPreferredWidth(30);//nomor
tbl_anggota.getColumnModel().getColumn(1).setPreferredWidth(100);//nim
tbl_anggota.getColumnModel().getColumn(2).setPreferredWidth(200);//nama
tbl_anggota.getColumnModel().getColumn(3).setPreferredWidth(250);//tmpt lahir
tbl_anggota.getColumnModel().getColumn(4).setPreferredWidth(100);//tgl lahir
tbl_anggota.getColumnModel().getColumn(5).setPreferredWidth(100);//jenkel
tbl_anggota.getColumnModel().getColumn(6).setPreferredWidth(150);//alamat
tbl_anggota.getColumnModel().getColumn(7).setPreferredWidth(100);//agama
tbl_anggota.getColumnModel().getColumn(8).setPreferredWidth(150);//tgl dafatar
tbl_anggota.getColumnModel().getColumn(9).setPreferredWidth(150);//tgl berlaku
tbl_anggota.getColumnModel().getColumn(10).setPreferredWidth(300);//kelas
try {
int no=0;
String view="SELECT * FROM anggota";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(view);
res=pre.executeQuery();
while(res.next()){
no++;
nim=res.getString(1);
nama=res.getString(2);
tempat=res.getString(3);
tgl_lahir=res.getString(4);
jk=res.getString(5);
alaamt=res.getString(6);
agama=res.getString(7);
tgldaftar=res.getString(8);
tglberlaku=res.getString(9);
kelas=res.getString(10);
String tampung[]=
{ String.valueOf(no),nim,nama,tempat,tgl_lahir,jk,alaamt,agama,tgldaftar,tglberlaku,kelas
};
mdl.addRow(tampung);

}
} 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 :

Gambar 3.10 Event Mouse Clik


tnim.setText(tbl_anggota.getValueAt(tbl_anggota.getSelectedRow(),1).toString());
tnama.setText(tbl_anggota.getValueAt(tbl_anggota.getSelectedRow(),2).toString());
ttempat.setText(tbl_anggota.getValueAt(tbl_anggota.getSelectedRow(),3).toString());

int tgl_lhr = tbl_anggota.getSelectedRow();


SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date dateValue = null;
try {
dateValue = date.parse((String) tbl_anggota.getValueAt(tgl_lhr, 4));
} catch (ParseException ex) {
}
ttanggal.setDate(dateValue);

String jenis_kelamin = (String) tbl_anggota.getValueAt


(tbl_anggota.getSelectedRow(),5);
if(jenis_kelamin.equals("Pria")){
rpria.setSelected(true);
}
else{
rwanita.setSelected(true);
}
talamat.setText(tbl_anggota.getValueAt(tbl_anggota.getSelectedRow(),6).toString());
cmbagam.setSelectedItem(tbl_anggota.getValueAt(tbl_anggota.getSelectedRow(),7).t
oString());

int tgl_daftar = tbl_anggota.getSelectedRow();


SimpleDateFormat t_daftar = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date nilai_tgl = null;
try {
nilai_tgl = t_daftar.parse((String) tbl_anggota.getValueAt(tgl_daftar, 8));
} catch (ParseException ex) {
}
tdaftar.setDate(nilai_tgl);
int tgl_berlaku = tbl_anggota.getSelectedRow();
SimpleDateFormat t_berlaku = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date nilai_berlaku = null;
try {
nilai_berlaku = t_daftar.parse((String) tbl_anggota.getValueAt(tgl_berlaku, 9));
} catch (ParseException ex) {
}
tberlau.setDate(nilai_berlaku);
tkelas.setText(tbl_anggota.getValueAt(tbl_anggota.getSelectedRow(),10).toString());

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();
}

String sql ="UPDATE anggota SET nama_mahasiswa = '"+tnama.getText()+"',


tempat_lahir = '"
+ttempat.getText()+"', tgl_lahir = '"+tgl+"',jenkel= '"+jenkel+"',alamat= '"
+talamat.getText()+"',agama='"+cmbagam.getSelectedItem()+"',tgl_daftar='"
+tgl_daftar+"',nasa_berlaku='"+tgl_berlaku+"',kelas='"
+tkelas.getText()+"' WHERE nim = '"+tnim.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 {

Object [] biodata={"No","NIM","Nama Mahasiswa"," Tempat lahir","Tanggal Lahir",


"Jenis Kelamin","Alamat","Agama","Tanggal Daftar","Masa
Berlaku","Kelas"};
DefaultTableModel mdl=new DefaultTableModel(null,biodata);
tbl_anggota.setModel(mdl);
jScrollPane2.setEnabled(true);
jScrollPane2.setBorder(null);
jScrollPane2.setViewportView(tbl_anggota);
tbl_anggota.setModel(mdl);
tbl_anggota.setAutoResizeMode(0);
tbl_anggota.getColumnModel().getColumn(0).setPreferredWidth(30);//nomor
tbl_anggota.getColumnModel().getColumn(1).setPreferredWidth(100);//nim
tbl_anggota.getColumnModel().getColumn(2).setPreferredWidth(200);//nama
tbl_anggota.getColumnModel().getColumn(3).setPreferredWidth(250);//tmpt lahir
tbl_anggota.getColumnModel().getColumn(4).setPreferredWidth(100);//tgl lahir
tbl_anggota.getColumnModel().getColumn(5).setPreferredWidth(100);//jenkel
tbl_anggota.getColumnModel().getColumn(6).setPreferredWidth(150);//alamat
tbl_anggota.getColumnModel().getColumn(7).setPreferredWidth(100);//agama
tbl_anggota.getColumnModel().getColumn(8).setPreferredWidth(150);//tgl dafatar
tbl_anggota.getColumnModel().getColumn(9).setPreferredWidth(150);//tgl berlaku
tbl_anggota.getColumnModel().getColumn(10).setPreferredWidth(300);//kelas
try {
int no=0;
String view="SELECT * FROM anggota WHERE nim LIKE '%"+cari+"%' OR
nama_mahasiswa LIKE '%"+cari+"'";
pre=koneksi.MySQLKoneksi.buka_koneksi().prepareStatement(view);
res=pre.executeQuery();
while(res.next()){
no++;
nim=res.getString(1);
nama=res.getString(2);
tempat=res.getString(3);
tgl_lahir=res.getString(4);
jk=res.getString(5);
alaamt=res.getString(6);
agama=res.getString(7);
tgldaftar=res.getString(8);
tglberlaku=res.getString(9);
kelas=res.getString(10);
String tampung[]=
{ String.valueOf(no),nim,nama,tempat,tgl_lahir,jk,alaamt,agama,tgldaftar,tglberlaku,kelas
};
mdl.addRow(tampung);

}
} 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

Gambar 3.11 New Form Buku

Setelah itu desain form seperti di bawah ini :

Gambar 3.12 Tampilan Form Buku

Adapun komponen yang di butuhkan untuk desain form diatas adalah :


Nama Komponen Value Properties
jPanel header
jLabel1 Perpustaan Sekolah Tinggi -
Manajemen Informatika dan
Komputer ROYAL
jLabel2 Jalan. Prof. H. M Yamin No -
173. Telp 0623-41079. Fax
0623-42366 Kisaran
jLabel3 Logo STMIK -
jLabel4 Kode Buku -
jLabel5 Judul Buku -
jLabel6 Pengarang -
jLabel7 Penerbit -
jLabel8 Tahun Terbit -
jTextfield1 tkode
jTextfield2 tjudul
jTextfield3 tpengarang
jTextfield4 Tpenerbit
jTextfield5 ttahun
jButton1 btn_simpan
jButton2 btn_edit
jButton3 btn_hapus
jButton4 btn_keluar
jTabel - ttabel

23. Sebelum masuk ke kode program panggil kembali class koneksi

24. Buat variable dari preparedstatment dan resultset


25. Setelah itu berikan event kepada tombol simpan

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");
}

27. Agar methodnya berfungsi, panggil dari konstructor project

28. Panggil jugga di dalam tombol simpan


29. Buat sebuah method untuk membersihkan semua textfield ketika sudah menyimpan
data

30. Panggil methodnya di dalam event simpan


31. 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 ttabel dengan cara klik kanan tabelnya dan pilih event, pilih Mouse dan pilih
mouseClicked dan ketikan kode program di bawha ini

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());
}

34. Untuk tombol keluar, ketikan kode di bawah ini :

35. Buat form baru untuk karyawan dengan cara klik kanan package form, pilih new dan
JFrame Form

Gambar 3.11 New Form Karyawan

36. Pada Class name ketikan FormKaryawan, dan klik tombol finish

Gambar 3.12 Form Karaywan

Desain form seperti di bawah ini :

Gamabr 3.13 Desain Form Karyawan

Adapun komponen yang di butuhkan untuk mendesain form di atas adalah :

Nama Komponen Value Properties


jPanel header
jLabel1 Perpustaan Sekolah Tinggi Manajemen -
Informatika dan Komputer ROYAL
jLabel2 Jalan. Prof. H. M Yamin No 173. Telp -
0623-41079. Fax 0623-42366 Kisaran
jLabel3 NIK -
jLabel4 Nama Karyawan -
jLabel5 Jenis Kelamin -
jLabel6 Golongan -
jTextfield1 tnik
jTextfield2 tnama
jRadio Button1 rpria
jRadio Button2 rwanita
jCombo Box1 cgolongan
jCombo Box2 Cjabatan
jButton1 btn_simpan
jButton2 btn_edit
jButton3 btn_hapus
jButton4 - btn_keluar
jTabel1 Ttabel
jLabel7 BackGround

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

Gambar 3.14 Mouse Klik Data Karaywan

Dan ketikan kode program di bawah ini :

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());
}

45. Untuk menghapus data, berikan event ke tombol hapus

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());
}

46. Untuk tombol keluar, maka berikan event

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

Gambar 3.16 Dialg New Form Peminjaman

49. Desain form peminjaman seperti gambar di bawah ini :

Gambar 3.17 Desain Form Peminjaman


Adapun komponen yang dibutuhkan untuk mendesain form di atas adalah :

Nama Komponen Value Properties


jPanel header
jLabel1 Perpustaan Sekolah Tinggi Manajemen -
Informatika dan Komputer ROYAL
jLabel2 Jalan. Prof. H. M Yamin No 173. Telp -
0623-41079. Fax 0623-42366 Kisaran
jLabel3 Nomor Induk Mahasiswa -
jLabel4 Nama Mahasiswa -
jLabel5 Kode Buku -
jLabel6 Judul Buku -
jLabel7 Penerbit -
jLabel8 Tahub Terbit -
jLabel9 Tanggal Pinjam -
jLabel10 Tanggal Kembali -
jLabel11 Lama Pinjam -
jButton1 btn_simpan
jButton2 btn_edit
jButton3 btn_hapus
jButton4 btn_keluar
jTabel1 ttabel
jLabel12 BackGround

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:

Gambar 3.18 Validasi Tanggal Kembali

Setelah itu 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());
}

a="INSERT INTO peminjam VALUES ( '"+tid.getText()+"','"


+tnim.getText()+"','"
+tnama.getText()+"','"
+tkode.getText()+"','"
+tjudul.getText()+"','"
+tpenerbit.getText()+"','"
+ttahun.getText()+"','"
+tglpinjam+"','"
+tglkmbl+"','"
+tlama.getText()+"')";

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) {
}

57. Panggil method yang sudah di buat di dalam constructornya


55. Agar semua textfielld bersih ketika sudah menyimpan data, buat sebuah method
bersih, seperti kode program di bawah ini

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();

} catch (HeadlessException | SQLException e) {


JOptionPane.showMessageDialog(rootPane,"gagal edit
data"+e.getMessage());
}

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

Setelah itu desain form seperti di bawah ini :

Gambar 3.20 Desain Form Pengembalian

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

Gamvar 3.21 Validasi Tanggal Kembali

Ketikan kode program 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());
}

65. Untuk tombol keluar, ketikan kode program di bawah ini :


dispose();

Anda mungkin juga menyukai