Jumat, 24 Juni 2016

Project UAS ( Program Minibank ++ )

Dalam mengerjakan project untuk UAS semester 2 ini  saya membuat mini program ( minibank++ ). Fitur tambahan yang terdapat pada program minibank ini adalah pembayaran tiket _pesawat. Terdapat dua frame dan delapan panel, yaitu : frame nasabah, frame transaksi, panel registrasi, panel lihat_nasabah, panel lihat_transaksi, panel status_cs, panel setor, panel tarik, panel transfer, dan panel tiket. Pembuatan mini project UAS mengacu pada materi - materi yang sudah dipelajari dalam pertemuan sebelumya. Untuk Swings yang digunakan mohon diteliti sendiri dan dipelajari sendiri ;).  Aplikasi yang saya gunakan yaitu Netbeans 8.0.2. Langsung saja berikut langkah-langkahnya :
Pada materi ini masih berhubungan dengan database ( DML ) dan JDBC. Dimana data pada database dapat terkoneksi dengan netbeans. Btw, langsung saja berikut langkah-langkahnya :
1.        Buka Netbeans 8.0.2 , buat project baru dengan cara klik file - new project atau langsung pilih icon new project. Setelah itu akan muncul dialog new project pastikan pada bagian categories memilih java dan bagian project memilih java application lalu klik next.
2.      Isi project name ( sesuai keinginan ) dan atur lokasi penyimpanan pekerjaan pada project location, checklist create main class.
3.       Java project telah terbentuk, pada java project terdapat Libraries, klik kanan Libraries – Add Library…- pilih MYSQL JDBC Driver. Terdapat pula tambahan libraries rs2xml.jar dan itextpdf-5.5.1.jar
Ooo ya, jangan lupa untuk membuka dan membuat databasenya terlebih dahulu. Buat tabel serta kolom apa saja yang dibutuhkan. Berikut capture dari database yang telah saya buat :




4.         Jika pada libraries sudah ditambahkan MYSQL JDBC Driver selanjutnya klik kanan pada java source page ( berada dalam folder source page ) – pilih java class. Class yang terbentuk ini digunakan untuk class koneksi, sebagai pelengkap yang bisa menghubungkan dengan database yang telah kita buat sebelumnya.  Source code pada class koneksi :

5.       Setelah selesai mengetikkan source code pada class koneksi, lanjut ke tampilan desain dan source code yang dibutuhkan. Klik Source untuk menuliskan source codenya.
Berikut gambar tampilan desain dan capture yang telah saya buat :
a.       Hasil Run
-          Button registrasi

-          Button Lihat
-          Button Lanjut
-          Menu Transaksi Button Lihat Transaksi
-          Button Transfer
-          Button Tarik Tunai
-          Button Tarik Tunai ( 2 )
-          Button Setor
-          Button Setor ( 2 )
-          Button Tiket



Selasa, 24 Mei 2016

JDBC - Java Database Connection

Basic Sistem Informasi
Review Database – Data Manipulation Language dan
JDBC - Java Database Connection

Pada materi ini berhubungan dengan database ( DML ) dan JDBC. Dimana data pada database dapat terkoneksi dengan netbeans. Btw, langsung saja berikut langkah-langkahnya :

1.          Buka Netbeans 8.0.2 , buat project baru dengan cara klik file Ã  new project atau langsung pilih icon new project. Setelah itu akan muncul dialog new project pastikan pada bagian categories memilih java dan bagian project memilih java application lalu klik next.
2.          Isi project name ( sesuai keinginan ) dan atur lokasi penyimpanan pekerjaan pada project location, checklist create main class.
3.          Java project telah terbentuk, pada java project terdapat Libraries, klik kanan Libraries – Add Library…- pilih MYSQL JDBC Driver.
       Berikutnnya siapkan database  misalnya buat yaitu database “pbo” dengan tabel “tbl_mhs”, terdapat tiga kolom yaitu NIM, Nama, dan Alamat. NIM sebagai primary key. 

4.      Jika pada libraries sudah ditambahkan MYSQL JDBC Driver selanjutnya klik kanan pada java
   source page ( berada dalam folder source page ) – pilih java class. Class yang terbentuk ini               digunakan untuk class koneksi, sebagai pelengkap yang bisa menghubungkan dengan database yang     telah kita buat sebelumnya.  Source code pada class koneksi :

5.    Setelah selesai mengetikkan source code pada class koneksi, Buat tampilan utama ( Jframe ) cara menambahkan Jframe : klik kanan java source page – pilih JFrame Form… maka akan muncul lembar kerja frame. Klik design untuk mendesain aplikasi yang akan kita buat. Klik Source untuk menuliskan source codenya.
6.  Berikut desainnya :

 Dari desain tersebut terdapat label, text field ( untuk mengisi inputan NIM, Nama, Alamat, perintah untuk menampilkan data ( perintah select ) ), button ( simpan, hapus, baru ), dan tabel.Pada textfield  dapat diinput perintah select saja, untuk menampilkan hasilnya tekan enter setelah menulis querynya, contoh :
SELECT nama FROM tbl_mhs WHERE nim =’….’ ( tekan enter )

7.Source code yang digunakan 
  • Deklarasi variable
  • ini metod isi tabel 
  • ini button hapus 


  • ini button simpan 
ini untuk field cari 

8. untuk lebih lanjut bisa download disini

Senin, 18 April 2016

Projek UTS

Membuat aplikasi Basis data dengan Tabel menggunakan Netbeans


1.      Pertama buka aplikasi netbeans IDE 8.0.2

2.      Buat projek baru dengan cara klik file -> new project akan tampil  dialog new project
Pada dialog categori -> java , dan pada projects ->java aplikasi pilih next , kemudian isikan pada project name : lTugas (nb :  nama aplikasi) , pada project lokasi : pilih file sesuai dengan keinginana dengan memilih tombol browse ,hilangkan centang  pada bagian creat main class -> finish . berikut contoh gambarnya :





3.      Klik nama project yang telah kita buat  .klik kanan pada bagian Source packges -> new ->Jfreme form -> beri nama misalnya tugas-> finish



4.                  Kemudian pada design tambahkan lebel ,text field , dan button dengan cara klik    pallete kemudian pilih label/text field /button dari Swing controls  kemudian berikan          masing-masing variabel . cara mengubah nama variabel : klik kanan pada label/text    field /button -> change variable name
5.       Ini desainnya  :



6.       Ini variabel Name-nya : 
7 . ini semua sourch codenya :
A. variabel  Dan mainclassnya :
 main classnya :


import com.itextpdf.text.DocumentException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.StringTokenizer;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
 

B. untuk
        bacaData();
    private void bacaData() {
        try {
            BufferedReader br = new BufferedReader(new FileReader(fileName));
            String tmp;
            while ((tmp = br.readLine()) != null) {
                StringTokenizer st = new StringTokenizer(tmp, "#");
                Vector<String> tmp2 = new Vector();
                String No = st.nextToken();
                String Judul = st.nextToken();
                String Pengarang = st.nextToken();
                String Penerbit = st.nextToken();
                String Tahun = st.nextToken();
                String Halaman = st.nextToken();
                tmp2.add(No);
                tmp2.add(Judul);
                tmp2.add(Pengarang);
                tmp2.add(Penerbit);
                tmp2.add(Tahun);
                tmp2.add(Halaman);
                DB.add(tmp2);
                if (Integer.parseInt(No) > max) {
                    max = Integer.parseInt(No);
                }
            }
            br.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

 


        updateTable();
    private void updateTable () {
        data = new Vector();
        head = new Vector();
        head.add("No");
        head.add("Judul");
        head.add("Pengarang");
        head.add("Penerbit");
        head.add("Tahun");
        head.add("Halaman");
        for (Vector<String> v1 : DB) {
            Vector<String> v2 = new Vector();
            v2.add(v1.get(0));
            v2.add(v1.get(1));
            v2.add(v1.get(2));
            v2.add(v1.get(3));
            v2.add(v1.get(4));
            v2.add(v1.get(5));
            data.add(v2);
        }
        tblbuku.setModel(new DefaultTableModel(data, head));
        tblbuku.getColumnModel().getColumn(0).setPreferredWidth(50);
        tblbuku.getColumnModel().getColumn(1).setPreferredWidth(100);
        tblbuku.getColumnModel().getColumn(2).setPreferredWidth(100);
        tblbuku.getColumnModel().getColumn(3).setPreferredWidth(100);
        tblbuku.getColumnModel().getColumn(4).setPreferredWidth(100);
        tblbuku.getColumnModel().getColumn(5).setPreferredWidth(100);
        tblbuku.getColumnModel().getColumn(0).setCellRenderer(rightRenderer);
        tblbuku.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

    }
 



        bacaData1();
private void bacaData1() {
        try {
            BufferedReader BR = new BufferedReader(new FileReader(fileName1));
            String tmp1;
            while ((tmp1 = BR.readLine()) != null) {
                StringTokenizer st1 = new StringTokenizer(tmp1, "#");
                Vector<String> tmp21 = new Vector();
                String No = st1.nextToken();
                String Judul = st1.nextToken();
                String Pengarang = st1.nextToken();
                String Penerbit = st1.nextToken();
                String Tahun = st1.nextToken();
                String Halaman = st1.nextToken();
                tmp21.add(No);
                tmp21.add(Judul);
                tmp21.add(Pengarang);
                tmp21.add(Penerbit);
                tmp21.add(Tahun);
                tmp21.add(Halaman);
                BD.add(tmp21);
                if (Integer.parseInt(No) > a) {
                    a = Integer.parseInt(No);
                }
            }
            BR.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }


        updateTable1();
    private void updateTable1() {
        data1 = new Vector();
        head1 = new Vector();
        head1.add("No");
        head1.add("Nim");
        head1.add("nama");
        head1.add("judul");
        head1.add("jurusan");
        head1.add("semester");
        for (Vector<String> ve1 : BD) {
            Vector<String> ve2 = new Vector();
            ve2.add(ve1.get(0));
            ve2.add(ve1.get(1));
            ve2.add(ve1.get(2));
            ve2.add(ve1.get(3));
            ve2.add(ve1.get(4));
            ve2.add(ve1.get(5));
            data1.add(ve2);
        }
        tblpinjam.setModel(new DefaultTableModel(data1, head1));
        tblpinjam.getColumnModel().getColumn(0).setPreferredWidth(50);
        tblpinjam.getColumnModel().getColumn(1).setPreferredWidth(100);
        tblpinjam.getColumnModel().getColumn(2).setPreferredWidth(100);
        tblpinjam.getColumnModel().getColumn(3).setPreferredWidth(100);
        tblpinjam.getColumnModel().getColumn(4).setPreferredWidth(100);
        tblpinjam.getColumnModel().getColumn(5).setPreferredWidth(100);
        tblpinjam.getColumnModel().getColumn(0).setCellRenderer(rightRenderer);
        tblpinjam.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

    }
 


        bacaData2();
private void bacaData2() {
        try {
            BufferedReader brr = new BufferedReader(new FileReader(fileName1));
            String tmp1r;
            while ((tmp1r = brr.readLine()) != null) {
                StringTokenizer st11 = new StringTokenizer(tmp1r, "#");
                Vector<String> tmp211 = new Vector();
                String No = st11.nextToken();
                String nama = st11.nextToken();
                String judul = st11.nextToken();
                String tgl_pinjam = st11.nextToken();
                String tgl_kembali = st11.nextToken();
                String Halaman = st11.nextToken();
                tmp211.add(No);
                tmp211.add(nama);
                tmp211.add(judul);
                tmp211.add(tgl_pinjam);
                tmp211.add(tgl_kembali);
                db.add(tmp211);
                if (Integer.parseInt(No) > b) {
                    b = Integer.parseInt(No);
                }
            }
            brr.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
 

        updateTable2();
private void updateTable2() {
        data2 = new Vector();
        head2 = new Vector();
        head2.add("No");
        head2.add("Nama");
        head2.add("Judul");
        head2.add("Tanggal Pinjam");
        head2.add("Tanggal Kembali");
       
        for (Vector<String> z : db) {
            Vector<String> z1 = new Vector();
            z1.add(z.get(0));
            z1.add(z.get(1));
            z1.add(z.get(2));
            z1.add(z.get(3));
            z1.add(z.get(4));
           
            data2.add(z1);
        }
        tbllap.setModel(new DefaultTableModel(data2, head2));
        tbllap.getColumnModel().getColumn(0).setPreferredWidth(50);
        tbllap.getColumnModel().getColumn(1).setPreferredWidth(100);
        tbllap.getColumnModel().getColumn(2).setPreferredWidth(100);
        tbllap.getColumnModel().getColumn(3).setPreferredWidth(100);
        tbllap.getColumnModel().getColumn(4).setPreferredWidth(100);
       
        tbllap.getColumnModel().getColumn(0).setCellRenderer(rightRenderer);
        tbllap.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

    }
 


    private void simpanData() {
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
            for (Vector<String> v : DB) {
                bw.write(v.get(0) + "#" + v.get(1) + "#" + v.get(2) + "#" + v.get(3) + "#" + v.get(4) + "#" + v.get(5));
                bw.newLine();
            }
            bw.close();
        } catch (Exception e) {
        }
    }

    private void simpanData1() {
        try {
            BufferedWriter bw1 = new BufferedWriter(new FileWriter(fileName1));
            for (Vector<String> ve : BD) {
                bw1.write(ve.get(0) + "#" + ve.get(1) + "#" + ve.get(2) + "#" + ve.get(3) + "#" + ve.get(4) + "#" + ve.get(5));
                bw1.newLine();
            }
            bw1.close();
        } catch (Exception e) {
        }
    }
   
    private void simpanData2() {
        try {
            BufferedWriter bwe = new BufferedWriter(new FileWriter(fileName1));
            for (Vector<String> ve1 : db) {
                bwe.write(ve1.get(0) + "#" + ve1.get(1) + "#" + ve1.get(2) + "#" + ve1.get(3) + "#" + ve1.get(4) + "#" + ve1.get(5));
                bwe.newLine();
            }
            bwe.close();
        } catch (Exception e) {
        }
    }

    private void hapusData() {
        String judul = txtjudul.getText().trim();
        if (judul.equals("")) {
            JOptionPane.showMessageDialog(this, "Pilih Judul Yang akan Dihapus");
        } else {
            if (JOptionPane.showConfirmDialog(this, "Data" + judul + "dihapus?", "konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
                return;
            }
            boolean b = false;
            int i;
            for (i = 0; i < DB.size(); i++) {
                if (DB.get(i).get(1).equals(judul)) {
                    b = true;
                    break;
                }
            }
            if (b) {
                DB.remove(i);
                JOptionPane.showMessageDialog(this, "Proses Hapus Sukses");
                max = 0;
                for (Vector<String> v : DB) {
                    if (Integer.parseInt(v.get(0)) > max) {
                        max = Integer.parseInt(v.get(0));
                    }
                }
                updateTable();
                txtjudul.setText("");
                txtpengarang.setText("");
                txtpenerbit.setText("");
                cmbtahun.setToolTipText("");
                txthal.setText("");
            } else {
                JOptionPane.showMessageDialog(this, "Data tidak ditemukan.");
            }
        }
    }

    private void hapusData1() {
        String judul = txtjudul.getText().trim();
        if (judul.equals("")) {
            JOptionPane.showMessageDialog(this, "Pilih Judul Yang akan Dihapus");
        } else {
            if (JOptionPane.showConfirmDialog(this, "Data" + judul + "dihapus?", "konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
                return;
            }
            boolean b = false;
            int x;
            for (x = 0; x < BD.size(); x++) {
                if (BD.get(x).get(1).equals(judul)) {
                    b = true;
                    break;
                }
            }
            if (b) {
                BD.remove(x);
                JOptionPane.showMessageDialog(this, "Proses Hapus Sukses");
                a = 0;
                for (Vector<String> ve : BD) {
                    if (Integer.parseInt(ve.get(0)) > a) {
                        a = Integer.parseInt(ve.get(0));
                    }
                }
                updateTable1();
                txtjudul.setText("");
                txtpengarang.setText("");
                txtpenerbit.setText("");
                cmbtahun.setToolTipText("");
                txthal.setText("");
            } else {
                JOptionPane.showMessageDialog(this, "Data tidak ditemukan.");
            }
        }
    }

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

        jPopupMenu1 = new javax.swing.JPopupMenu();
        hapus = new javax.swing.JMenuItem();
        del = new javax.swing.JMenuItem();
        jtp = new javax.swing.JTabbedPane();
        buku = new javax.swing.JPanel();
        txthal = new javax.swing.JTextField();
        cmbtahun = new javax.swing.JComboBox();
        jScrollPane3 = new javax.swing.JScrollPane();
        tblbuku = new javax.swing.JTable();
        btnadd = new javax.swing.JButton();
        btnsimpan = new javax.swing.JButton();
        btnhapus = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        txtjudul = new javax.swing.JTextField();
        txtpengarang = new javax.swing.JTextField();
        txtpenerbit = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        txtnim = new javax.swing.JTextField();
        txtnama = new javax.swing.JTextField();
        cmbjudul = new javax.swing.JComboBox();
        txtjurusan = new javax.swing.JTextField();
        txtsemes = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        tblpinjam = new javax.swing.JTable();
        jPanel1 = new javax.swing.JPanel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        tfnama = new javax.swing.JTextField();
        tfjudul = new javax.swing.JTextField();
        tftgl = new javax.swing.JTextField();
        tfback = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        tbllap = new javax.swing.JTable();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();

        hapus.setText("jMenuItem1");
        hapus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                hapusActionPerformed(evt);
            }
        });
        jPopupMenu1.add(hapus);

        del.setText("jMenuItem1");
        jPopupMenu1.add(del);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        cmbtahun.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016" }));
        cmbtahun.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmbtahunActionPerformed(evt);
            }
        });

        tblbuku.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4", "Title 5"
            }
        ));
        tblbuku.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tblbukuMouseClicked(evt);
            }
        });
        tblbuku.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                tblbukuKeyReleased(evt);
            }
        });
        jScrollPane3.setViewportView(tblbuku);

        btnadd.setText("ADD");
        btnadd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnaddActionPerformed(evt);
            }
        });

        btnsimpan.setText("Simpan");
        btnsimpan.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnsimpanActionPerformed(evt);
            }
        });

        btnhapus.setText("Hapus");
        btnhapus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnhapusActionPerformed(evt);
            }
        });

        jLabel1.setText("Daftar Buku Perpustakaan Politeknik Kediri");

        jLabel2.setText("Judul ");

        jLabel3.setText("pengarang");

        jLabel4.setText("penerbit");

        jLabel5.setText("tahun terbit");

        jLabel6.setText("halaman");

        txtjudul.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtjudulActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout bukuLayout = new javax.swing.GroupLayout(buku);
        buku.setLayout(bukuLayout);
        bukuLayout.setHorizontalGroup(
            bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bukuLayout.createSequentialGroup()
                .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(bukuLayout.createSequentialGroup()
                        .addContainerGap(87, Short.MAX_VALUE)
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(54, 54, 54))
                    .addGroup(bukuLayout.createSequentialGroup()
                        .addGap(29, 29, 29)
                        .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(40, 40, 40)
                        .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(txtjudul, javax.swing.GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE)
                                .addComponent(txtpengarang)
                                .addComponent(txtpenerbit)
                                .addComponent(txthal))
                            .addComponent(cmbtahun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(btnhapus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btnsimpan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btnadd, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addGap(45, 45, 45))
            .addGroup(bukuLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE)
                .addContainerGap())
        );
        bukuLayout.setVerticalGroup(
            bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(bukuLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(bukuLayout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(txtjudul, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(2, 2, 2)
                        .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel3)
                            .addComponent(txtpengarang, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel4)
                            .addComponent(txtpenerbit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(bukuLayout.createSequentialGroup()
                        .addGap(26, 26, 26)
                        .addComponent(btnadd)
                        .addGap(10, 10, 10)
                        .addComponent(btnsimpan)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(cmbtahun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnhapus))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(bukuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(txthal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(39, 39, 39)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jtp.addTab("Daftar Buku", buku);

        jLabel13.setText("Daftar Buku Pinjam  Politeknik Kediri");

        jLabel14.setText("NIM");

        jLabel15.setText("Nama");

        jLabel16.setText("Judul");

        jLabel17.setText("Jurusan");

        jLabel18.setText("Semester");

        txtnama.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtnamaActionPerformed(evt);
            }
        });

        cmbjudul.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "----Pilih judul----" }));
        cmbjudul.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmbjudulActionPerformed(evt);
            }
        });

        txtsemes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtsemesActionPerformed(evt);
            }
        });

        jButton1.setText("add");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("simpan");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("hapus");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        tblpinjam.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        tblpinjam.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tblpinjamMouseClicked(evt);
            }
        });
        tblpinjam.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                tblpinjamKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(tblpinjam);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(92, 92, 92)
                .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 256, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel17, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(txtnim, javax.swing.GroupLayout.DEFAULT_SIZE, 167, Short.MAX_VALUE)
                            .addComponent(txtjurusan)
                            .addComponent(txtsemes)))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel15, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addGap(17, 17, 17)
                                .addComponent(cmbjudul, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addGap(18, 18, 18)
                                .addComponent(txtnama, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addComponent(jButton3))
                .addGap(103, 103, 103))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addGap(0, 20, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 422, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel14)
                            .addComponent(txtnim, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel15)
                            .addComponent(txtnama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel16)
                            .addComponent(cmbjudul, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel17)
                            .addComponent(txtjurusan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel18)
                            .addComponent(txtsemes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton1)
                        .addGap(18, 18, 18)
                        .addComponent(jButton2)
                        .addGap(18, 18, 18)
                        .addComponent(jButton3)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 143, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(40, 40, 40))
        );

        jtp.addTab("Peminjaman", jPanel2);

        jLabel7.setText("Nama");

        jLabel8.setText("Judul");

        jLabel9.setText("Tanggal pinjam");

        jLabel10.setText("Tanggal kembali");

        tfnama.setEditable(false);

        tfjudul.setEditable(false);

        tftgl.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tftglActionPerformed(evt);
            }
        });

        tbllap.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(tbllap);

        jButton4.setText("jButton4");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jButton5.setText("jButton5");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel7)
                            .addComponent(jLabel8)
                            .addComponent(jLabel9)
                            .addComponent(jLabel10))
                        .addGap(36, 36, 36)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(tfnama)
                            .addComponent(tfjudul)
                            .addComponent(tftgl)
                            .addComponent(tfback, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE)))
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 422, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton4))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButton5)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(tfnama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel8)
                    .addComponent(tfjudul, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(tftgl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel10)
                    .addComponent(tfback, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(jButton4)
                .addGap(28, 28, 28)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(31, 31, 31)
                .addComponent(jButton5)
                .addContainerGap(81, Short.MAX_VALUE))
        );

        jtp.addTab("Laporan", jPanel1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jtp)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jtp, javax.swing.GroupLayout.Alignment.TRAILING)
        );

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

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        hapusData1();
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        String no = String.valueOf(a + 1);
        String nim = txtnim.getText().trim();
        String nama = txtnama.getText().trim();
        String judul = cmbjudul.getSelectedItem().toString();
        String jurusan = txtjurusan.getText().trim();
        String semester = txtsemes.getText().trim();
        if (nim.equals("") || nama.equals("") || judul.equals("") || jurusan.equals("") || semester.equals("")) {
            JOptionPane.showMessageDialog(this, "Semua isian harus diisi.");
        } else {
            boolean b = false;
            int a;
            Vector<String> ve = new Vector<>();

            for (a = 0; a < BD.size(); a++) {
                if (BD.get(a).get(1).equals(nim)) {
                    b = true;
                    break;
                }
            }
            if (b) {
                ve.add(BD.get(a).get(0));
                ve.add(nim);
                ve.add(nama);
                ve.add(judul);
                ve.add(jurusan);
                ve.add(semester);
                BD.setElementAt(ve, a);
                updateTable();
                JOptionPane.showMessageDialog(this, "Proses update sukses.");
            } else {
                ve.add(no);
                ve.add(nim);
                ve.add(nama);
                ve.add(judul);
                ve.add(jurusan);
                ve.add(semester);
                BD.add(ve);
                updateTable1();
                a++;
                JOptionPane.showMessageDialog(this, "Proses simpan sukses.");
            }
            txtnim.setText("");
            txtnama.setText("");
            cmbjudul.setSelectedItem("");
            txtjurusan.setText("");
            txtsemes.setText("");
            txtnim.setEditable(false);
        }
    }                                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        txtnim.setEditable(true);
        txtnim.setText("");
        txtnama.setText("");
        cmbjudul.setToolTipText("");
        txtjurusan.setText("");
        txtsemes.setText("");
    }                                       

    private void txtjudulActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        if (txtjudul.getText().equals(evt)) {

        }
    }                                       

    private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        hapusData();
    }                                       

    private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        String no = String.valueOf(max + 1);
        String jud = txtjudul.getText().trim();
        String peng = txtpengarang.getText().trim();
        String pener = txtpenerbit.getText().trim();
        String thn = cmbtahun.getSelectedItem().toString();
        String hal = txthal.getText().trim();
        if (jud.equals("") || peng.equals("") || pener.equals("") || thn.equals("") || hal.equals("")) {
            JOptionPane.showMessageDialog(this, "Semua isian harus diisi.");
        } else {
            boolean b = false;
            int i;
            Vector<String> v = new Vector<>();

            for (i = 0; i < DB.size(); i++) {
                if (DB.get(i).get(1).equals(jud)) {
                    b = true;
                    break;
                }
            }
            if (b) {
                v.add(DB.get(i).get(0));
                v.add(jud);
                v.add(peng);
                v.add(pener);
                v.add(thn);
                v.add(hal);
                DB.setElementAt(v, i);
                updateTable();
                JOptionPane.showMessageDialog(this, "Proses update sukses.");
            } else {
                v.add(no);
                v.add(jud);
                v.add(peng);
                v.add(pener);
                v.add(thn);
                v.add(hal);
                DB.add(v);
                updateTable();
                max++;
                JOptionPane.showMessageDialog(this, "Proses simpan sukses.");
            }
            txtjudul.setText("");
            txtpengarang.setText("");
            txtpenerbit.setText("");
            cmbtahun.setSelectedItem("2000");
            txthal.setText("");
            txtjudul.setEditable(false);
        }
        cmbjudul.addItem(jud);
    }                                         

    private void btnaddActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code heretx
        txtjudul.setEditable(true);
        txtjudul.setText("");
        txtpengarang.setText("");
        txtpenerbit.setText("");
        cmbtahun.setSelectedItem("");
        txthal.setText("");
    }                                     

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

    private void tblbukuMouseClicked(java.awt.event.MouseEvent evt) {                                    
        // TODO add your handling code here:
        int row = tblbuku.getSelectedRow();
        if (row < 0) {
            JOptionPane.showMessageDialog(this, "Pilih data (klik kiri) terlebih dahulu.");
            return;
        }
     
        txtjudul.setText(DB.get(row).get(1));
        txtpenerbit.setText(DB.get(row).get(2));
        txtpengarang.setText(DB.get(row).get(3));
        cmbtahun.setSelectedItem(DB.get(row).get(4));
        txthal.setText(DB.get(row).get(5));
        txtjudul.setEditable(false);
        if (evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
            hapus.setText("Hapus " + txtjudul.getText() + ", " + txtpengarang.getText() + ", " + txtpenerbit.getText() + ", " + cmbtahun.getSelectedItem() + ", " + txthal.getText());
            jPopupMenu1.show(tblbuku, evt.getX(), evt.getY());
        }
    }                                   

    private void cmbtahunActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
    }                                       

    private void cmbjudulActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
       
    }                                       

    private void txtnamaActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
    }                                      

    private void txtsemesActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
    }                                       

    private void formWindowClosing(java.awt.event.WindowEvent evt) {                                  
        // TODO add your handling code here:
        simpanData();
        simpanData1();
        dispose();
    }                                 

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

    private void tblpinjamMouseClicked(java.awt.event.MouseEvent evt) {                                      
        // TODO add your handling code here:
        int brs = tblpinjam.getSelectedRow();
        if (brs < 0) {
            JOptionPane.showMessageDialog(this, "Pilih data (klik kiri) terlebih dahulu.");
            return;
        }
        txtnim.setText(BD.get(brs).get(1));
        txtnama.setText(BD.get(brs).get(2));
        cmbjudul.setSelectedItem(BD.get(brs).get(3));
        txtjurusan.setText(BD.get(brs).get(4));
        txtsemes.setText(BD.get(brs).get(5));
        if (evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
            del.setText("Hapus " + txtnim.getText() + ", " + txtnama.getText() + ", " + cmbjudul.getSelectedItem()+ ", " + txtjurusan.getText() + ", " + txtsemes.getText());
            jPopupMenu1.show(tblpinjam, evt.getX(), evt.getY());
        }
        tfnama.setText(BD.get(brs).get(2));
        tfjudul.setText(BD.get(brs).get(3));
    }                                     

    private void hapusActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        hapusData();
    }                                     

    private void tftglActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
    }                                    

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        String no = String.valueOf(b + 1);
        String n = tfnama.getText().trim();
        String j = tfjudul.getText().trim();
        String tp = tftgl.getText().trim();
        String tk = tfback.getText().trim();
       
        if (n.equals("") || j.equals("") || tp.equals("") || tk.equals("")) {
            JOptionPane.showMessageDialog(this, "Semua isian harus diisi.");
        } else {
            boolean c = false;
            int i;
            Vector<String> v = new Vector<>();

            for (i = 0; i < db.size(); i++) {
                if (db.get(i).get(1).equals(n)) {
                    c = true;
                    break;
                }
            }
            if (c) {
                v.add(db.get(i).get(0));
                v.add(n);
                v.add(j);
                v.add(tp);
                v.add(tk);
               
                db.setElementAt(v, i);
                updateTable2();
                JOptionPane.showMessageDialog(this, "Proses update sukses.");
            } else {
                v.add(no);
                v.add(n);
                v.add(j);
                v.add(tp);
                v.add(tk);
               
                db.add(v);
                updateTable2();
                b++;
                JOptionPane.showMessageDialog(this, "Proses simpan sukses.");
            }
            tfnama.setText("");
            tfjudul.setText("");
            tftgl.setText("");
            tfback.setText("");
          
        }
    }                                       

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
       
       
       
        DefaultTableModel mod = (DefaultTableModel) tbllap.getModel();
        String[] jud = {"No", "Nama", "Judul", "Tanggal Pinjam", "Tanggal Kembali"};
        String[][] isi = new String[tbllap.getRowCount()][tbllap.getColumnCount()];
        for (int i = 0; i < tbllap.getRowCount(); i++) {
            for (int j = 0; j < tbllap.getColumnCount(); j++) {
                isi[i][j] = mod.getValueAt(i, j).toString();
            }
             try {
                cetakkarcismobil cetak
                         = new cetakkarcismobil(jud, isi, tbllap.getRowCount(), tbllap.getColumnCount());
             } catch (FileNotFoundException ex) {
                 Logger.getLogger(perpus.class.getName()).log(Level.SEVERE, null, ex);
             } catch (DocumentException ex) {
                 Logger.getLogger(perpus.class.getName()).log(Level.SEVERE, null, ex);
             }
         JOptionPane.showMessageDialog(null, "Karcis telah Siap");
    }
    }                                       

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

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new perpus().setVisible(true);
            }
        });
    }


8. Untuk lebih jelasnya   silakan lihat dan download disini

Project UAS ( Program Minibank ++ ) Dalam mengerjakan project untuk UAS semester 2 ini  saya membuat mini program ( minibank++ ). Fitur...