Saturday, July 18, 2020

Supidan Zamzam ( 181011400551 ) - Postingan UAS Program Database Tabungan Siswa


Pada Pertemuan kali ini saya akan memberikan tutorial membuat Program Database Tabungan Siswa menggunakan Netbeans. Saya Sudah menyiapkan File Project yang bisa anda Download dibawah ini :

File Project Database Tabungan Siswa : Download 

Pertama Buat Databasenya terlebih dahulu. Jalankan XAMPP anda dan aktifkan Apache dan MySQL.


Jika sudah dijalankan, Buka browser anda dan ketikkan dikolom pencarian "localhost/phpmyadmin/".

Selanjutnya Buat Database dengan Klik New. Kemudian berikan nama database anda seperti gambar dibawah.


Kemudian Buat Tabel Pertama dengan nama "datasiswa", yang nantinya untuk menyimpan data pribadi siswa. Seperti gambar dibawah ini.


Buat Tabel kedua dengan nama "datatabungan", yang nantinya untuk menyimpan data tabungan siswa.


Dan Tabel ke tiga dengan nama "data_transaksi", yang nantinya untuk menyimpan setiap transaksi menabung yang dilakukan oleh siswa.


Selanjutnya, Buka netbeans anda dan buatlah project baru dengan nama "SupidanZamzam_181011400551". Pilih File -> New Project.



Pilih Java -> Java Aplication, kemudian berinama Project seperti berikut "SupidanZamzam_181011400551". Unceklis pada "Creat Main Class" karena kita akan menggunakan JFrame.


Selanjutnya Buat Package Baru, dengan Klik kanan pada nama project -> New Package.


Beri nama Package seperti berikut "Program Tabungan".



Kemudian Buat JFrame baru untuk Input Data Siswa. Klik Kanan pada nama Package -> Pilih New -> JFrame Form. Form ini untuk menginput data siswa baru pemilik tabungan.


Buat nama Form Input Siswa seperti berikut :


Dan Design Form Input Data Siswa seperti dibawah ini :



Ubah Nama Variabel textfield, dengan Klik Kanan Pada kolom textfield -> Pilih Change Variabel.


Ubah Seperti gambar dibawah ini :


Selanjunya Masukan Code Pendukung, Pilih Source kemudian masukan Code berikut :

Scrip Import yang dibutuhkan, letakan dibawah nama Package :

               import java.sql.*;
               import javax.swing.*;
               import javax.swing.table.DefaultTableModel;

Scrip Variabel Connection 
    private Connection con_supidanZamzam;
    private Statement stat_supidanZamzam;
    private ResultSet res_supidanZamzam;
    private String t_supidanZamzam;
    private DefaultTableModel dtm_supidanZamzam;

Scrip Fungsi untuk koneksi dan kosongkan, letakan dibawah InitComponents().
    kosongkan();
    tabel_supidanZamzam();


Buat Fungsi untuk koneksi kedatabase dan fungsi untuk kosongkan :

Scrip untuk Fungsi Koneksi();
private void koneksi(){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con_supidanZamzam = DriverManager.getConnection("jdbc:mysql://127.0.0.1/databasetabungan", "root", "");
            stat_supidanZamzam = con_supidanZamzam.createStatement();
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }
    }

Scrip untuk Fungsi Kosongkan();
private void kosongkan(){
        inputIdSiswa.setText("");
        inputIdTabungan.setText("");
        inputNamaSiswa.setText("");
        inputNoTelp.setText("");
        inputIdSiswa.requestFocus();
        inputAlamat.setText("");
    } 


Buat Fungsi untuk menampilkan data ke JTable :
private void tabel_supidanZamzam(){
        DefaultTableModel t = new DefaultTableModel();
        t.addColumn("ID SISWA");
        t.addColumn("ID TABUNGAN");
        t.addColumn("NAMA");
        t.addColumn("NO TELEPON");
        t.addColumn("ALAMAT");
        
        
        outputTableData.setModel(t);
        try{
            res_supidanZamzam = stat_supidanZamzam.executeQuery("select * from datasiswa");
            while(res_supidanZamzam.next()){
                t.addRow(new Object[]{
                    res_supidanZamzam.getString("id_siswa"),
                    res_supidanZamzam.getString("id_tabungan"),
                    res_supidanZamzam.getString("nama"),
                    res_supidanZamzam.getString("no_telepon"),
                    res_supidanZamzam.getString("alamat"),
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane, e);
        }
    }


Selanjutnya masukan Scrip untuk Button Simpan, Klik kanan pada Button Simpan -> Pilih Events -> Action -> actionPerformed.



Masukan Scrip berikut :
try{
            stat_supidanZamzam.executeUpdate("insert into datasiswa values ("
            + "'" + inputIdSiswa.getText() + "',"
            + "'" + inputIdTabungan.getText() + "',"
            + "'" + inputNamaSiswa.getText() + "',"
            + "'" + inputNoTelp.getText() + "',"
            + "'" + inputAlamat.getText() + "')");
            kosongkan();
            JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data");
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Perintah Salah : " + e);
        }

Masukan Scrip untuk Button Lainnya, Apabila saat memasukan scrip keButton ada yang merah, tidak apa-apa karena Form JFramenya belum dibuat, jadi biarkan saja dulu.

Scrip untuk Button Refresh :
new Input_DataSiswa().setVisible(true);
        dispose();

Scrip untuk Button Bersihkan :
    kosongkan();

Scrip untuk Button Setoran Awal :
    new Input_Setoran_Awal().setVisible(true);
        dispose();

Scrip untuk Butto Kembali :
    new Menu_Utama().setVisible(true);
        dispose();

Scrip untuk Button Keluar :
System.exit(0);

Masukan File Koneksi, Klik kanan pada Libraries -> Pilih add Library


Pilih MySQL JDBC Driver -> add Library



Run Form Input Data Siswa, Klik kanan pada nama form input data siswa -> Pilih Run. Dan tampilannya akan seperti berikut.





Selanjutnya Buat Form Setoran Awal, yaitu untuk input setoran awal tabungan bagi siswa yang baru daftar. Klik kanan pada nama Project -> Pilih New -> JFrame Form.


Buat nama JFrame dengan nama "Input_Setoran_Awal".


Selanjutnya Design Form Setoran Awal seperti berikut :


Ubah nama Variabelnya textfield, Klik kanan pada kolom textfield -> Pilih Change Variabel.


Ubah seperti berikut :


Masukan Scrip tambahan, Pilih Source :

Import yang dibutuhkan, letakan dibawah nama Package :
    import java.sql.*;
    import javax.swing.*;

Scrip Variabel Connection, letakan dibawah nama class Input_Setoran_Awal ;
    private Connection con_supidanZamzam;
    private Statement stat_supidanZamzam;
    private ResultSet res_supidanZamzam;

Masukan Fungsi berikut, letakan dibawah InitComponents().
koneksi_supidanZamzam();
kosongkan_supidanZamzam();


Buat Fungsi Koneksi untuk meghubungkan ke database, dan kosongkan untuk membersihkan kolom inputan.

Scrip untuk Fungsi Koneksi():
private void koneksi_supidanZamzam(){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con_supidanZamzam=DriverManager.getConnection("jdbc:mysql://localhost/databasetabungan", "root", "");
        }catch(ClassNotFoundException e){
            System.out.println("Driver Tidak Ditemukan");
        }catch(SQLException e){
            System.out.println("Koneksi Gagal : " + e.toString());
        }
    }


Scrip untuk Fungsi Kosongkan() :
private void kosongkan_supidanZamzam(){
        inputID.setText("");
        inputNama.setText("");
        inputSaldo.setText("");
        inputTanggal.setText("");
        inputMenabung.setText("");
        outputTotal.setText("");
    }


Masukan Scrip untuk Button Cek ID Siswa, Klik kanan pada button CekId Siswa -> Events -> Action -> actionPerformed.



Masukan Scrip berikut pada Button Cek Id Siswa :

try{
            stat_supidanZamzam = con_supidanZamzam.createStatement();
            res_supidanZamzam = stat_supidanZamzam.executeQuery("Select * from datasiswa" + " where id_siswa= '"+ inputID.getText() + "'");
            if(res_supidanZamzam.next()){
                inputID.setText(res_supidanZamzam.getString("id_siswa"));
                inputNama.setText(res_supidanZamzam.getString("nama"));
            }else{
                JOptionPane.showMessageDialog(this, "ID Siswa : Salah","Informasi",JOptionPane.INFORMATION_MESSAGE);
                SimpanButton.setEnabled(false);
                kosongkan_supidanZamzam();
            }
        }catch(SQLException e){
            System.out.println("Koneksi Gagal" + e.toString());
        }

Scrip untuk Button Setorkan :
        double menabung = Double.parseDouble(inputMenabung.getText());
        double saldo = Double.parseDouble(inputSaldo.getText());
        double jumlah = saldo + menabung;
        String total = String.valueOf(jumlah);
        outputTotal.setText(total);



Masukan Scrip Untuk Button Simpan, Kembali, dan Bersihkan :

Scrip untuk Button Simpan :

try{
            stat_supidanZamzam.executeUpdate("insert into datatabungan values ("
            + "'" + inputID.getText() + "',"
            + "'" + inputNama.getText() + "',"
            + "'" + inputSaldo.getText() + "',"
            + "'" + inputTanggal.getText() + "',"
            + "'" + inputMenabung.getText() + "',"
            + "'" + outputTotal.getText() + "')");
            kosongkan_supidanZamzam();
            JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data");
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Perintah Salah : " + e);
        }

Scrip untuk Button Kembali :
new Menu_Utama().setVisible(true);
        dispose();

Scrip untuk Button Bersihkan :
    kosongkan_supidanZamzam();



Jalankan Form Setoran Awal, dan tampilannya akan seperti berikut :



Buat JFrame untuk Form menabung bagi siswa yang sudah memiliki tabungan. Klik kanan pada Package -> Pilih New -> JFrame Form.


Buat nama JFrame Form seperti berikut :


Buat Design Seperti dibawah ini ;


Masukan Scrip tambahan :

Import yang dibutuhkan :
import java.sql.*;
import javax.swing.*;
Scrip Variabel Connection, letakan dibawah nama Class :
    private Connection con_supidanZamzam;
    private Statement stat_supidanZamzam;
    private ResultSet res_supidanZamzam;

Masukan Fungsi berikut, letakan dibawah InitComponents().
koneksi_supidanZamzam();
kosongkan_supidanZamzam();


Buat Fungsi Koneksi dan Kosongkan.

Scrip Fungsi Koneksi();
private void koneksi_supidanZamzam(){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con_supidanZamzam=DriverManager.getConnection("jdbc:mysql://localhost/databasetabungan", "root", "");
        }catch(ClassNotFoundException e){
            System.out.println("Driver Tidak Ditemukan");
        }catch(SQLException e){
            System.out.println("Koneksi Gagal : " + e.toString());
        }
    }

    
Scrip Fungsi Kosongkan();
    private void kosongkan_supidanZamzam(){
        inputID.setText("");
        inputNama.setText("");
        inputSaldo.setText("");
        inputTanggal.setText("");
        inputMenabung.setText("");
        outputTotal.setText("");
    }


Masukan Scrip untuk Button Cek ID Siswa, Klik kanan pada Button Cek ID Siswa -> Events -> Action -> actionPerformed.



Scrip untuk Button Cek ID Siswa :

try{
            stat_supidanZamzam = con_supidanZamzam.createStatement();
            res_supidanZamzam = stat_supidanZamzam.executeQuery("Select * from datatabungan" + " where id_siswa2= '"+ inputID.getText() + "'");
            if(res_supidanZamzam.next()){
                SimpanButton.setEnabled(true);
                inputID.setText(res_supidanZamzam.getString("id_siswa2"));
                inputNama.setText(res_supidanZamzam.getString("nama2"));
                inputSaldo.setText(res_supidanZamzam.getString("total"));
                
            }else{
                JOptionPane.showMessageDialog(this, "ID Tabungan : Salah","Informasi",JOptionPane.INFORMATION_MESSAGE);
                //SimpanButton.setEnabled(false);
                kosongkan_supidanZamzam();
            }
        }catch(SQLException e){
            System.out.println("Koneksi Gagal" + e.toString());
        }


Scrip untuk Button Setorkan :

        double menabung = Double.parseDouble(inputMenabung.getText());
        double saldo = Double.parseDouble(inputSaldo.getText());
        double jumlah = saldo + menabung;
        String total = String.valueOf(jumlah);
        outputTotal.setText(total);




Masukan Scrip untuk Button Simpan, Klik kanan pada Button Simpan -> Pilih Events -> Action -> actionPerformed.
try{
            PreparedStatement pStatement = con_supidanZamzam.prepareStatement("UPDATE datatabungan SET nama2=?,saldo=?,tanggal=?,menabung=?,total=? WHERE id_siswa2=?");
            pStatement.setString(1, inputNama.getText());
            pStatement.setString(2, inputSaldo.getText());
            pStatement.setString(3, inputTanggal.getText());
            pStatement.setString(4, inputMenabung.getText());
            pStatement.setString(5, outputTotal.getText());
            pStatement.setString(6, inputID.getText());
            
            if(pStatement.executeUpdate()>0)
                JOptionPane.showMessageDialog(this, "Edit Sukses","Informasi",JOptionPane.INFORMATION_MESSAGE);
            else
                JOptionPane.showMessageDialog(this, "Edit Gagal","Informasi",JOptionPane.INFORMATION_MESSAGE);
            pStatement.close();
            kosongkan_supidanZamzam();
        }catch(SQLException e){
            System.out.println("Koneksi Gagal" + e.toString());
        }

Scrip untuk Button Kembali, Klik kanan pada Button Kembali -> Pilih Events -> Action -> actionPerformed.
    new Menu_Utama().setVisible(true);
    dispose();

Jalankan Form Input Nabung, dan Tampilan ketika di Run akan seperti berikut. Masukan ID Siswa kemudian Klik Cek ID Siswa, Masukan tanggal dan jumlah menabung kemudian Kik Setorkan. Kemudian Klik Simpan Data


Data Sudah Tersimpan kedalam Database.



Selanjutnya Buat Form untuk Menampilkan dan Menyimpan Data Transaksi Menabung. Klik kanan pada nama Project -> Pilih New -> Pilih JFrame Form.


Buat nama Form Data Transaksi seperti berikut ini :


Design Seperti gambar dibawah ini :


Ubah nama Variabel JTable, Klik kanan pada JTable -> Pilih Change Variabel.


Ubah seperti berikut :


Masukan Scrip Tambahan  berikut :

Import yang dibutuhkan, letakan dibawah nama Package.
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

Scrip Variabel Connection, letakan dibawah nama Class Data_Transaksi.
    private Connection con_supidanZamzam;
    private Statement stat_supidanZamzam;
    private ResultSet res_supidanZamzam;
    private String t_supidanZamzam;
    private DefaultTableModel dtm_supidanZamzam;

Masukan Fungsi koneksi dan tabel kedalam constructor Data_Transaksi :
    koneksi();
        tabel_supidanZamzam();


Masukan Scrip berikut untuk Fungsi Koneksi :
private void koneksi(){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con_supidanZamzam = DriverManager.getConnection("jdbc:mysql://localhost/databasetabungan", "root", "");
            stat_supidanZamzam = con_supidanZamzam.createStatement();
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }
    }


Masukan Scrip untuk fungsi Table :

private void tabel_supidanZamzam(){
        DefaultTableModel t = new DefaultTableModel();
        t.addColumn("ID SISWA");
        t.addColumn("ID TABUNGAN");
        t.addColumn("NAMA");
        t.addColumn("NO TELEPON");
        t.addColumn("TANGGAL");
        t.addColumn("SALDO");
        t.addColumn("MENABUNG");
        t.addColumn("TOTAL");
        t.addColumn("ALAMAT");
        
        Table_supidanZamzam.setModel(t);
        try{
            res_supidanZamzam = stat_supidanZamzam.executeQuery("select id_siswa,id_tabungan,nama,no_telepon,tanggal,saldo,menabung,total,alamat from datasiswa,datatabungan where datasiswa.id_siswa=datatabungan.id_siswa2 AND datasiswa.nama=datatabungan.nama2");
            while(res_supidanZamzam.next()){
                t.addRow(new Object[]{
                    res_supidanZamzam.getString("id_siswa"),
                    res_supidanZamzam.getString("id_tabungan"),
                    res_supidanZamzam.getString("nama"),
                    res_supidanZamzam.getString("no_telepon"),
                    res_supidanZamzam.getString("tanggal"),
                    res_supidanZamzam.getString("saldo"),
                    res_supidanZamzam.getString("menabung"),
                    res_supidanZamzam.getString("total"),
                    res_supidanZamzam.getString("alamat")
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane, e);
        }
    }



Kemudian Masukan Scrip untuk Simpan Button, Klik kanan pada Button Simpan -> Pilih Events -> Action -> actionPerformed.


Masukan Scrip Berikut :

int jumlah_baris = Table_supidanZamzam.getRowCount();
        if(jumlah_baris==0){
            JOptionPane.showMessageDialog(rootPane, "Table Masih Kosong");
        }else{
            try{
                int i = 0;
                while(i < jumlah_baris){
                    stat_supidanZamzam.executeUpdate("insert into data_transaksi(id_siswa,id_tabungan,nama,no_telepon,tanggal,saldo,menabung,total,alamat)values("
                    + "'" + Table_supidanZamzam.getValueAt(i, 0) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 1) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 2) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 3) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 4) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 5) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 6) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 7) + "',"
                    + "'" + Table_supidanZamzam.getValueAt(i, 8) + "')");
                i++;
                }
                JOptionPane.showMessageDialog(rootPane, "Berhasil Disimpan");
            }catch(Exception e){
                JOptionPane.showMessageDialog(rootPane, "Gagal Disimpan ! Error : " + e);
            }
        }



Masukan Scrip untuk Button Kembali, Klik kanan pada Button Kembali -> Pilih Events -> Action -> actionPerformed.

new Menu_Utama().setVisible(true);
dispose();



Jalankan Form Data_Transaksi, Klik kanan pada Form Data_Transaksi -> Pilih Run.





Selanjutnya Buat Menu Utama, Klik kanan pada nama Package -> Pilih New -> JFrame Form.


Tentukan nama Formnya seperti berikut :


Buat Design seperti dibawah ini :




Cara Memasukan Gambar kedalam panel/form, tambahkan label dan letakan ditengah-tengah form, kemudian Klik kanan pada label -> Pilih Properties.


Pilih icon -> Eksternal Image dan pilih gambar/image yang akan ditampilkan.


Kemudian Masukan Scrip untuk Menu item, Klik kanan pada menu item -> Pilih Events -> Action -> actionPerformed.


Masukan Scrip berikut untuk menu item Daftar, Nabung dan Lihat Transaksi.

Scrip untuk Menu Item Daftar :
new Input_DataSiswa().setVisible(true);
        dispose();

Scrip untuk Menu Item Nabung :
new Input_Nabung().setVisible(true);
        dispose();

Scrip untuk Menu Item Lihat Transaksi :       
new Data_Transaksi().setVisible(true);
        dispose();


Run Menu Utama, dan anda bisa menjalankan form lainnya melalui Form Utama.


Selesai......
Terima Kasih....Selamat Mencoba
Semoga Bermanfaat......

Kumpulan Program Java Console ( CLI )

 Selamat datang  Kali ini saya akan membagikan kumpulan program java sederhana berbasis console ( CLI ) Link Program : Klik Disini ( Google ...