Membuat CRUDS Pada Aplikasi Penjualan dengan Arsitektur MVP (Netbeas 8)

Penjelasan tutorial sebelumnya penulis memberikan mengenai penyimpanan sementara menggunakan ArrayList dengan arsitektur MVP berkaitan tentang aplikasi penjualan, nahh di penjelasan kali ini berkaitan sama hanya berbeda pada penggunaan penyimpanan yang menggunakan Database MYSQL, Lebih jelasnya anda bisa melihat step by stap pembuatan di tutorial berikut.

Anda bisa ikuti tutorial di atas, jika malas ketik code anda bisa copy langsung code dibawah

Koneksi

Membuat koneksi dari databases, sebelum anda kerjakan kode dibawah anda harus tambahkan library JDBC sesuai intruksi dari video.

package koneksi;

import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class Koneksi {

    private Connection con;
    private String url = "jdbc:mysql://localhost:3306/penjualan_laptop";
    private String user = "root";
    private String pass = "";

    public Koneksi() {
        if (con == null) {
            try {
                DriverManager.registerDriver(new Driver());
               con = DriverManager.getConnection(url, user, pass);
 
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage());
            }
        }

    }

    public Connection getCon() {
        return con;
    }
    
    
    public static void main(String[] args) {
       new Koneksi();
    }
}

Model Barang

Anda buat class Barang untuk menampung data dari semua variable yang digunakan

package barang;

/**
 *
 * @author kodetr
 */
public class Barang {
    private int id;
    private String nama;
    private String deskripsi;
    private int harga;
    private int stok;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getDeskripsi() {
        return deskripsi;
    }

    public void setDeskripsi(String deskripsi) {
        this.deskripsi = deskripsi;
    }

    public int getHarga() {
        return harga;
    }

    public void setHarga(int harga) {
        this.harga = harga;
    }

    public int getStok() {
        return stok;
    }

    public void setStok(int stok) {
        this.stok = stok;
    }
}

Barang Interface

Buat interface dengan nama BarangInterface, sebagai refrensi dari method mulai dari read, create,update, delete dan search.

package barang;

import javax.swing.JTable;

/**
 *
 * @author codetr
 */
public interface BarangInterface {
    public void read(JTable jt);
    public void create(Barang b);
    public void update(Barang b);
    public void delete(int id);
    public void search(JTable jt, String nama);
}

Barang Implements

Buat class Implement dengan nama BarangImp, Anda bisa implementasi dari BarangInterface

package barang;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import koneksi.Koneksi;

/**
 *
 * @author codetr
 */
public class BarangImp implements BarangInterface {

    private Koneksi kon = new Koneksi();
    private String[] kolom = {"ID", "NAMA", "HARGA", "STOK", "DESKRIPSI"};
    private PreparedStatement ps;

    @Override
    public void read(JTable jt) {
        try {
            DefaultTableModel dtm = new DefaultTableModel(null, kolom);
            Statement s = kon.getCon().createStatement();
            ResultSet rs = s.executeQuery("SELECT * FROM tbl_barang");

            while (rs.next()) {
                Object[] os = new Object[5];
                os[0] = rs.getInt("id");
                os[1] = rs.getString("nama");
                os[2] = rs.getInt("harga");
                os[3] = rs.getInt("stok");
                os[4] = rs.getString("deskripsi");
                dtm.addRow(os);
            }

            jt.setModel(dtm);
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
    }

    @Override
    public void create(Barang b) {
        try {
            ps = kon.getCon().prepareStatement("INSERT INTO tbl_barang (nama, deskripsi, harga, stok) VALUES (?,?,?,?)");
            ps.setString(1, b.getNama());
            ps.setString(2, b.getDeskripsi());
            ps.setInt(3, b.getHarga());
            ps.setInt(4, b.getStok());
            ps.executeUpdate();
            JOptionPane.showMessageDialog(null, "Berhasil disimpan");
        } catch (SQLException ex) {
            Logger.getLogger(BarangImp.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public void update(Barang b) {
        try {
            ps = kon.getCon().prepareStatement("UPDATE tbl_barang SET nama=?, deskripsi=?, harga=?, stok=? WHERE id=?");
            ps.setString(1, b.getNama());
            ps.setString(2, b.getDeskripsi());
            ps.setInt(3, b.getHarga());
            ps.setInt(4, b.getStok());
            ps.setInt(5, b.getId());
            ps.executeUpdate();

            JOptionPane.showMessageDialog(null, "Berhasil diubah");
        } catch (SQLException ex) {
            Logger.getLogger(BarangImp.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public void delete(int id) {
        try {
            ps = kon.getCon().prepareStatement("DELETE FROM tbl_barang WHERE id=?");
            ps.setInt(1, id);
            ps.executeUpdate();
            JOptionPane.showMessageDialog(null, "Berhasil dihapus");
        } catch (SQLException ex) {
            Logger.getLogger(BarangImp.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public void search(JTable jt, String nama) {
        try {
            DefaultTableModel dtm = new DefaultTableModel(null, kolom);
            Statement s = kon.getCon().createStatement();
            ResultSet rs = s.executeQuery("SELECT * FROM tbl_barang WHERE nama LIKE '%" + nama + "%'");

            while (rs.next()) {
                Object[] os = new Object[5];
                os[0] = rs.getInt("id");
                os[1] = rs.getString("nama");
                os[2] = rs.getInt("harga");
                os[3] = rs.getInt("stok");
                os[4] = rs.getString("deskripsi");
                dtm.addRow(os);
            }

            jt.setModel(dtm);
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
    }
}

Project dari yang dijelaskan, anda bisa download di link berikut


Github


Contoh Project Lengkap Penjualan Jam dengan databases, anda bisa pelajari untuk konsep arsitekturnya sama dengan yang dijelaskan.


Aplikasi Penjualan Jam


Demikian yang dapat saya sampaikan dari artikel ini semoga bermanfaat, jika ada yang ditanyakan silahkan di kolom komentar dibawah, selamat mencoba.

Share Comments
comments powered by Disqus