Thursday, 18 July 2013

Aplikasi Minimarket Netbeans

Tutorial Aplikasi Sederhana Java Netbeans
Aplikasi Mini Market
Sebelum membuat aplikasi terlebih dahulu kita buat rancangan aplikasi yang akan kita buat seperti ERD dan database,berukut merupakan CDM,PDM dan databasenya:

CDM Aplikasi Mini Market

 
PDM Aplikasi Mini Market



Setelah kita buat CDM dam PDM kemudian kita buat databasenya seperti berikut:
Barang :Id_Barang,Kategori,Nama_Barang,Stok,Harga_Jual
Kategori :Kategori,Deskripsi
Pengadaan :Id_Pengadaan,Username,Tanggal,Supplier,Total_Transaksi
Penjualan :Id_Penjualan,Username,Tanggal_Penjualan,Total_Penjualan
RelsiPengadaanBarang :Id_Pengadaan,Id_Barang,Jumlah,Harga_Beli_Satuan,
                                    Tgl_Kadaluarsa,Belum_Terjual
RelasiPenjualanBarang :Id_Barang,Id_Penjualan,Jumlah,Laba,Harga_Jual
User :Username,Password,Level,Nama,Alamat,No_Tlp.

Database project toko Kecil(Minimarket)

  • Nama database disesuaikan dengan coding pada masing-masing form untuk menampilkan data
 Setelah membuat databasenya kemudian kita buat koneksi,disini saya beri nama koneksi berikut skripnya:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import javax.swing.JOptionPane;

/**
 *
 * @author Fg_white
 */
public class koneksi implements Kunci_Koneksi {

    static class con {

        static Statement createStatement() {
            throw new UnsupportedOperationException("Not yet implemented");
        }

        public con() {
        }
    }
    public Connection connection;

    public koneksi() {
        try{
            Object newInstance = Class.forName(driver).newInstance();
            connection=DriverManager.getConnection(url, user, password);


        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage());

        }
    }

     public static void main(String[] args) {
     koneksi k = new koneksi();
    }
}

Setelah membuat koneksi kemudian kita buat tampilan untuk kategori seperti pada gambar dibawah:

Ubah Text field,text area,tabel dan Button sesuai dengan keterangan

Untuk menjalankan form kategori gunakan skrip berikut :

import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Fg_white
 */
public class Form_Kategori extends javax.swing.JFrame {

    private Statement statement;
    private ResultSet resultset;
    private koneksi koneksi;
    private String id_delete;

    public Form_Kategori() {
        initComponents();
        koneksi = new koneksi();
        Select();
    }

    private void Select() {
        try {
            String header[] = {"Kategori", "Deskripsi"};
            DefaultTableModel defaultTableModel = new DefaultTableModel(null, header);
            TabelKategori.setModel(defaultTableModel);


            int baris = TabelKategori.getSelectedRow();

            for (int i = 0; i < baris; i++) {
                defaultTableModel.removeRow(i);
            }

            String sql = "select * from kategori";
            statement = koneksi.connection.createStatement();
            koneksi.connection.createStatement();
            resultset = statement.executeQuery(sql);

            while (resultset.next()) {
                String kategori = resultset.getString(1);
                String deskripsi = resultset.getString(2);

                Object isi[] = {kategori, deskripsi};
                defaultTableModel.addRow(isi);
            }

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void insert() {
        try {
            String sql = "insert into kategori values('" + nmKategori.getText()
                    + "','" + Deskripsi.getText() + "')";
            statement.executeUpdate(sql);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Data sudah ada");
        }
    }

    private void delete(){
        try {
            String query = "delete from kategori where kategori='" +nmKategori.getText()+ "'";
            statement.executeUpdate(query);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void clear() {
        nmKategori.setText("");
        Deskripsi.setText("");
    }

Untuk button Insert,Delete dan Cancel  klik kanan event ->Action->ActionPerformed
kemudian tuliskan skrip berikut pada masing-masing Button:

  • Button Insert:
if (nmKategori.getText().equals("") || Deskripsi.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Silahkan Lengkapi Inputan Anda");
        } else {
            insert();
            Select();
            clear();
    }                 
  • Button Delete:
  if (nmKategori.getText().equals("") || Deskripsi.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Silahkan Pilih data yang akan di Hapus");
        }else{
            delete();
            Select();
            clear();
        }         

  • Button Cancel:
new FormTampilan().show();
           this.dispose(); ->skrip ini digunakan untuk kembali pada tampilan awal aplikasi
Untuk Tabel agar menampilkan isi dari inputan  klik kanan->event->mouseClicked kemudian tuliskan skript berikut:
nmKategori.setText(TabelKategori.getValueAt(TabelKategori.getSelectedRow(),0).toString());
 Setelah form kategori selesai kemudian kita buat kembali form daftar barang seperti contoh tampilan berikut:
Ubah nama text field,tabel,dan button sesuai dengan keterangan
Gunakan skrip berikut untuk menjalankan form daftar barang baru:
import com.mysql.jdbc.Statement;
import java.sql.ResultSet;
//import java.sql.Statement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Fg_white
 */
public class Form_dftar_barang extends javax.swing.JFrame {

    private Statement statement;
    private ResultSet resultset;
    private koneksi koneksi;
    private String id_delete;
    private ResultSet resultSet;

    public Form_dftar_barang() {
        initComponents();
        koneksi = new koneksi();
        Select();
        PanggilKategoriToComboBox();
       
    }

    private void Select() {
        try {
            String header[] = {"ID BARANG", "KATEGORI", "NAMA_BARANG", "STOK"};
            DefaultTableModel defaultTableModel = new DefaultTableModel(null, header);
            Tabel_Barang.setModel(defaultTableModel);


            int baris = Tabel_Barang.getSelectedRow();

            for (int i = 0; i < baris; i++) {
                defaultTableModel.removeRow(i);
            }

            String sql = "select * from barang";(Sesuiakan tulisan dengan nama database barang)
            statement = (Statement) koneksi.connection.createStatement();
            resultset = statement.executeQuery(sql);

            while (resultset.next()) {

                String id_barang = resultset.getString(1);
                String ComboBoxK = resultset.getString(2);
                String Nma_Barang = resultset.getString(3);
                String Stok = resultset.getString(4);
              
                Object isi[] = {id_barang, ComboBoxK, Nma_Barang, Stok};
                defaultTableModel.addRow(isi);
            }

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

     private void insert(){
        try {

            String sql="insert into barang values('"+id_barang.getText()+"','"+kategori.getSelectedItem()+"','" +Nma_Barang.getText()+"','"+Stok.getText()+"',0 )";
            statement.executeUpdate(sql);

        } catch (Exception e) {
               JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void delete() {
        try {
            String query = "delete from barang where barang='" + id_barang.getText() + "'";
            statement.executeUpdate(query);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "data telah terpakai");
        }
    }


    private void clear() {
        id_barang.setText("");
        Nma_Barang.setText("");
        Stok.setText("");
    }

    public void update_barang(){

         //panggil method koneksi
        java.sql.Connection conn = new koneksi().connection;


        String sql="update barang set KATEGORI=?, NAMA_BARANG=?, STOK=? where ID_BARANG='"+id_barang.getText()+"'";
        java.sql.PreparedStatement stmt = null;
        try {
            stmt = conn.prepareStatement(sql);
        } catch (Exception ex) {
        }

        try{
            stmt.setString(3,Stok.getText());
            stmt.setString(2,Nma_Barang.getText());
            stmt.setString(1,kategori.getSelectedItem().toString());



            stmt.executeUpdate();


        }catch(Exception se){
            JOptionPane.showMessageDialog(null, (se.getMessage()));
        }
    }

    private void PanggilKategoriToComboBox() {
        try {
            kategori.removeAllItems();
            String sql = "select KATEGORI from kategori";
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                kategori.addItem(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
 Untuk Button Insert,Delete,Edit sama seperti pada form kategori kita event dulu menjadi event->actionPerformed kemudian tuliskan skript berikut:
  • Button Insert :
if(id_barang.getText().equalsIgnoreCase("") || Nma_Barang.getText().equalsIgnoreCase("")||Stok.getText().equalsIgnoreCase("")){
            JOptionPane.showMessageDialog(null, "Silahkan Lengkapi Inputan Anda");
        }else{
            insert();
            Select();
            clear();
    }                

  • Button Edit:
 Select();
        update_barang();
        clear();

  • Button Delete:
if (id_barang.getText().equals("") ||Nma_Barang.getText().equals("")||Stok.getText().equals("")) {
          JOptionPane.showMessageDialog(null, "Silahkan pilih data yang akan di Hapus");
        } else {

        delete();
        Select();
        clear();
    }  
  • Button Cancel:
   new FormTampilan().show();
        this.dispose(); ->sama seperti pada form kategori skript berikut digunakan untuk kembali pada
                                   tampilan awal        
Untuk tabel di event -> mouseClicked kemudian tulisakan skript berikut:
      id_barang.setText(Tabel_Barang.getValueAt(Tabel_Barang.getSelectedRow(),0).toString());
      Stok.setText(Tabel_Barang.getValueAt(Tabel_Barang.getSelectedRow(),3).toString());
       Nma_Barang.setText(Tabel_Barang.getValueAt(Tabel_Barang.getSelectedRow(),2).toString());
       kategori.setSelectedItem(Tabel_Barang.getValueAt(Tabel_Barang.getSelectedRow(),1).toString()); -> nama di sesuiankan dengan databasenya.
Selanjutnya membuat form pengadaan seperti pada gambar di bawah:
Ubah nama text field,text calender dan Button sesuai tampilan
              
 Kemudian tuliskan Skript berikut untuk menjalankan tampilan:

import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

/**
 *
 * @author Fg_white
 */
public class Pengadaan_Barang extends javax.swing.JFrame {

    private Statement statement;
    private ResultSet resultset;
    private koneksi konek;
    private ResultSet resultSet;
    int count;
    String Id_pengadaan;
    String id_hapus;
   // koneksi con;

    public Pengadaan_Barang() {
        initComponents();
        konek = new koneksi();
        select();
    }

 private void select() {
        Object header[] = {"ID PENGADAAN", "TANGGAL", "SUPPLIER", "TOTAL TRANSAKSI", "ACTION"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        Tabel_pengadaan.setModel(defaultTable);
        Tabel_pengadaan.getColumnModel().getColumn(4).setCellRenderer(new ButtonDetail());

        int baris = Tabel_pengadaan.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select * from pengadaan";
        try {
            statement = konek.connection.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                String id_Pengadaan = resultSet.getString(1);
                String tanggal = resultSet.getString(3);
                double total = resultSet.getDouble(5);
                String supplier = resultSet.getString(4);

                Object kolom[] = {id_Pengadaan, tanggal, supplier, total};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void insertData() {
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String tanggal = dateFormat.format(Tanggal.getDate());

            SimpleDateFormat dateFormat2 = new SimpleDateFormat("dd.MM.yyyy");
            String tanggal2 = dateFormat2.format(Tanggal.getDate());

            count = 100;
            String sqltanggal = "select TANGGAL, ID_PENGADAAN from pengadaan";
            resultSet = statement.executeQuery(sqltanggal);

            while (resultSet.next()) {
                String data1 = resultSet.getString(1);
                String data2 = resultSet.getString(2);
                if (data1.equals(tanggal)) {
                    if (count == Integer.valueOf(data2.substring(14, 17))) {
                        count++;
                    }
                }
            }

            String id_pengadaan = "TB." + tanggal2 + "." + count;
            String sql = "insert into pengadaan "
                    + "values('" + id_pengadaan + "','nila','" + tanggal + "','" + Supplier.getText() + "',0)";
            statement.executeUpdate(sql);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void deleteData(){
        String sql_delete = "delete from pengadaan where ID_PENGADAAN = '"+id_hapus+"'";
        try {
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Data masih digunakan!!");
        }
    }
Kemudian Untuk Button Insert,Delete sama seperti pada form sebelumnya di Event -> actionPerformed kemudian tuliskan skript berikut:
  • Button Insert:
 if ( Supplier.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Silahkan Lengkapi Inputan Anda");
        } else {
        insertData();
        select();
    }             
  • Button Delete: 
 if (Supplier.getText().equals("")) {
          JOptionPane.showMessageDialog(null, "Silahkan pilih data yang akan di Hapus");
        } else {
        deleteData();
        select();
       
    }        
  • Button Cancel:
new FormTampilan().show();
           this.dispose();
Untuk tabel di event->mouseClicked kemudian tuliskan skript berikut:
Id_pengadaan=  Tabel_pengadaan.getValueAt( Tabel_pengadaan.getSelectedRow(),0).toString();
        Supplier.setText( Tabel_pengadaan.getValueAt( Tabel_pengadaan.getSelectedRow(),0).toString());
         if (Tabel_pengadaan.getSelectedColumn() == 4) {
            this.dispose();
            new Detail_Transaksibarang(Id_pengadaan).setVisible(true);
        }
        id_hapus= Tabel_pengadaan.getValueAt(Tabel_pengadaan.getSelectedRow(),0).toString();
Selanjutnya membuat form Detail transaksi untuk menyambungkan ketika detail di klik maka akan mencul tampilan form detail sperti pada gambar dibawah:
Detail Transaksi barang

 
Set harga detai transaksi barang

      Ubah nama text field ,tabel dan buttonnya sesuai script.Buat seperti script berikut untuk menjalankan seperti pada gambar di atas:

package project_toko_kecil;

import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Fg_white
 */
public class Detail_Transaksibarang extends javax.swing.JFrame {

//   koneksi konek;
    ResultSet resultset;
    Statement statement;
    koneksi con;
    int count = 0,count2 = 0;
     private String id_pengadaan,id_edit;
     String id_hapus;

    public Detail_Transaksibarang(String Idtransaksi) {
        initComponents();
        con = new koneksi();

//        totalTransaksi(id_pengadaan);
        select_harga_jual();
        this.id_pengadaan = Idtransaksi;
        select(this.id_pengadaan);
        IdTransaksi.setText(id_pengadaan);
        IdBarang.setEnabled(false);
        IdTransaksi.setEnabled(false);
        IdBarang.setEnabled(false);
        Id_harga_jualB.setEnabled(false);
         panggilKategori();
        NamaBarang.removeAllItems();
        NamaBarang.addItem("-- Pilih --");


    }


    private void clear1() {
        IdBarang.setText("");
        HargaSatuan.setText("");
        Jumlah.setText("");
    }

     private void clear2() {
        Id_harga_jualB.setText("");
        Harga_jual.setText("");
    }

    private void select(String data) {
        Object header[] = {"ID TRANSAKSI", "ID BARANG", "NAMA BARANG", "HARGA BELI", "HARGA JUAL", "JUMLAH", "KADALUARSA"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        Tabel_detail_Transaksi.setModel(defaultTable);

        int baris = Tabel_detail_Transaksi.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select r.ID_PENGADAAN,r.ID_BARANG,b.NAMA_BARANG,r.HARGA_BELI_SATUAN,b.HargaJual,r.Jumlah,r.TGL_KADALUARSA "
                + "from rel_pengadaan_barang r, barang b where r.ID_PENGADAAN='" + data + "' and r.ID_BARANG = b.ID_BARANG";
        try {
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql_select);

            while (resultset.next()) {
                String idPengadaan = resultset.getString(1);
                String idBarang = resultset.getString(2);
                String namaBarang = resultset.getString(3);
                double harga_beli = resultset.getDouble(4);
                double harga_jual = resultset.getDouble(5);
                int jumlah = resultset.getInt(6);
                String kadaluarsa = resultset.getString(7);

                Object kolom[] = {idPengadaan, idBarang, namaBarang, harga_beli, harga_jual, jumlah, kadaluarsa};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void select_harga_jual() {
        Object header[] = {"ID_BARANG", "NAMA_BARANG", "HARGA_BELI_TERMAHAL", "HargaJual"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tabelhargajualbarang.setModel(defaultTable);

        int baris = tabelhargajualbarang.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select r.ID_BARANG, b.NAMA_BARANG, max(r.HARGA_BELI_SATUAN),b.hargajual from rel_pengadaan_barang r, barang b where b.ID_BARANG = r.ID_BARANG group by ID_BARANG";
        try {
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql_select);

            while (resultset.next()) {
                String idBarang = resultset.getString(1);
                String namaBarang = resultset.getString(2);
                String maxHarga = resultset.getString(3);
                String harga_jual = resultset.getString(4);

                String kolom[] = {idBarang, namaBarang, maxHarga, harga_jual};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void panggilKategori() {
        try {
            KategoriBarang.removeAllItems();
            KategoriBarang.addItem("---- Pilih ----");
            String sql = "select KATEGORI from kategori";
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql);
            while (resultset.next()) {
                KategoriBarang.addItem(resultset.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void panggilNamaBarang(String data) {
        try {
            String sql = "select NAMA_BARANG from barang where KATEGORI='" + data + "'";
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql);
            NamaBarang.removeAllItems();
            NamaBarang.addItem("---- Pilih ----");
            while (resultset.next()) {
                NamaBarang.addItem(resultset.getString(1).toString());
            }
        } catch (Exception e) {
//            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void panggilIdBarang(String data) {
        try {
            String sql = "SELECT ID_BARANG FROM barang WHERE NAMA_BARANG='" + data + "'";
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql);
            while (resultset.next()) {
                IdBarang.setText(resultset.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void updateHarga() {
        String sql_update = "update barang set HargaJual = '" + Harga_jual.getText() + "' where ID_BARANG = '" + Id_harga_jualB.getText() + "'";
        try {
            statement = con.connection.createStatement();
            statement.executeUpdate(sql_update);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void updateDetailTransaksi() {
       String sql=null;

        if (RadioKadaluarsa.isSelected()) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String tgl_kadaluarsa = dateFormat.format(TglKadaluarsa.getDate());

            sql ="UPDATE rel_pengadaan_barang "
                    + "SET ID_BARANG ='"+IdBarang.getText()+"', JUMLAH ='"+Jumlah.getText()+"', HARGA_BELI_SATUAN ='"+HargaSatuan.getText()+"',"
                    + "TGL_KADALUARSA ='"+tgl_kadaluarsa+"' WHERE ID_PENGADAAN ='"+id_pengadaan +"' AND ID_BARANG='"+id_edit +"'";
        } else if (RadioKadaluarsa2.isSelected()) {
            sql ="UPDATE rel_pengadaan_barang "
                    + "SET ID_BARANG ='"+IdBarang.getText()+"', JUMLAH ='"+Jumlah.getText()+"', HARGA_BELI_SATUAN ='"+HargaSatuan.getText()+"',"
                    + "TGL_KADALUARSA ='Tidak ada' WHERE ID_PENGADAAN ='"+id_pengadaan +"' AND ID_BARANG='"+id_edit +"'";
        }

        try {
            statement = con.connection.createStatement();
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void insertData() {
       String sql = null;

        if (RadioKadaluarsa.isSelected()) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String tgl_kadaluarsa = dateFormat.format(TglKadaluarsa.getDate());
         
        sql = "INSERT INTO rel_pengadaan_barang VALUES ('" + IdTransaksi.getText() + "', '" + IdBarang.getText() + "', '" + Jumlah.getText() + "', '" + HargaSatuan.getText() + "','" + tgl_kadaluarsa + "')";

        }
        else if (RadioKadaluarsa2.isSelected()) {
       
         sql = "INSERT INTO rel_pengadaan_barang VALUES ('" + IdTransaksi.getText() + "', '" + IdBarang.getText() + "', '" + Jumlah.getText() + "', '" + HargaSatuan.getText() + "','Tidak ada')";

        }

        try {
            statement =con.connection.createStatement();
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void totalTransaksi(String data) {
        String sql_select = "SELECT SUM(JUMLAH*HARGA_BELI_SATUAN) FROM rel_pengadaan_barang WHERE ID_PENGADAAN='" + data + "' group by ID_PENGADAAN";
        try {
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql_select);

            while (resultset.next()) {
                Label_TotalTransaksi.setText(resultset.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }


 private void UpdateStok() {
        String idBarang = Id_harga_jualB.getText();
        String jumlah = Jumlah.getText();
        String sqlstok = "SELECT STOK FROM barang WHERE ID_BARANG='" + idBarang + "'";
        try {
           statement = con.connection.createStatement();
           resultset = statement.executeQuery(sqlstok);
            while (resultset.next()) {
                String stoklama = resultset.getString(1);
                double stok = Double.parseDouble(jumlah) + Double.parseDouble(stoklama);
                String sql = "UPDATE barang SET STOK='" + stok + "' WHERE ID_BARANG='" + idBarang + "'";
                try {
                    statement = con.connection.createStatement();
                    statement.executeUpdate(sql);
                } catch (Exception e) {
                    System.out.println("Terjadi kesalahan, karena data telah tersedia!\n" + e.getMessage());
                    JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena data telah tersedia!\n" + e.getMessage());
                }
            }
        } catch (Exception e) {
            System.out.println("Terjadi kesalahan, karena " + e.getMessage());
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
        }
    }

 private void TotalTransaksidipengadaan() {
        String idTrans = IdTransaksi.getText();
        String total = Label_TotalTransaksi.getText();
        String sqlTotal = "UPDATE pengadaan SET Total_Transaksi='" + total + "' WHERE ID_PENGADAAN='" + idTrans + "'";
        try {
            statement = con.connection.createStatement();
            statement.executeUpdate(sqlTotal);
        } catch (Exception e) {
            System.out.println("Terjadi kesalahan, karena data telah tersedia!\n" + e.getMessage());
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena data telah tersedia!\n" + e.getMessage());
        }
    }

 private void deleteData() {
        String sql_delete = "DELETE FROM rel_pengadaan_barang WHERE ID_PENGADAAN ='" + IdTransaksi.getText() + "' AND ID_BARANG ='" + IdBarang.getText() + "'";
        try {
            statement = con.connection.createStatement();
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Data masih digunakan!!");
        }
    }

   public void Search() {
        Object header[] = {"ID BARANG", "NAMA BARANG", "HARGA BELI TERMAHAL", "HARGA JUAL"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tabelhargajualbarang.setModel(defaultTable);

        String cari = TextSearch.getText();
        String sql = "select r.ID_BARANG, b.NAMA_BARANG, max(r.HARGA_BELI_SATUAN),b.HargaJual from rel_pengadaan_barang r, barang b "
                + "where b.ID_BARANG = r.ID_BARANG  and b.ID_BARANG LIKE '%" + cari + "%' or b.NAMA_BARANG LIKE '%" + cari + "%'";
        try {
            statement = con.connection.createStatement();
            resultset = statement.executeQuery(sql);
            while (resultset.next()) {
                String idBarang = resultset.getString(1);
                String namaBarang = resultset.getString(2);
                String maxHarga = resultset.getString(3);
                String harga_jual = resultset.getString(4);

                String kolom[] = {idBarang, namaBarang, maxHarga, harga_jual};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            System.out.println("Terjadi kesalahan, karena " + e.getMessage());
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
        }
    }
Untuk button Insert,Edit,Delete menggunakan script yang sama seperti pada form yang sebelumnya,untuk Set harga pada Harga Jual Barang gunakan script berikut jangan lupa di event-> actionPerformed dulu kemudian tulis scriptnya seperti berikut:

 if (Id_harga_jualB.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan diedit");
        } else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin mengedit data dengan kode : "
                    + Id_harga_jualB.getText(), null, JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                updateHarga();
                select_harga_jual();
                select(id_pengadaan);
                clear2();
            } else if (hasil == JOptionPane.NO_OPTION) {
                clear2();
            }
        }
Untuk text Search kita event->actionPerformed dan event key->keyTyped kemudian panggil class search yang sudah kita buat Search(); ->di isikan pada kedua event.
Setelah berhasil kemudian kita buat form stok Barang seperti pada tampilan berikut:


Untuk menjalankan fungsi ketika diketikkan pada search kemudian muncul data barang yang sudah di inputkan beserta stoknya maka gunakan script berikut:

package project_toko_kecil;

import com.mysql.jdbc.Statement;
import static java.awt.image.ImageObserver.WIDTH;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class form_STok_Barang extends javax.swing.JFrame {
    ResultSet resultset;
    Statement statement;
    koneksi con;
  
    public form_STok_Barang() {
        initComponents();
        setTitle("Stok Barang");
         con = new koneksi();

    }

    private void select(String sql){
        String header[]={"ID_BARANG","KATEGORI","NAMA_BARANG","STOK"};
        DefaultTableModel defaultTableModel=new DefaultTableModel(null,header);
        TabelStok.setModel(defaultTableModel);

        for (int i=0;i
            defaultTableModel.removeRow(i);
          }
        try {
            statement=(Statement) con.connection.createStatement();
            resultset=statement.executeQuery(sql);


            while(resultset.next()){
                String id=resultset.getString(1);
                String kategori=resultset.getString(2);
                String nama=resultset.getString(3);
                int stok=resultset.getInt(4);

                Object baris[]={id,kategori,nama,stok};
                defaultTableModel.addRow(baris);
            }
           
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,e.getMessage());
        }
    }

kemudian untuk text field Search kita event->key->keyTyped tuliskan script berikut:

String sqlSearch="select*from barang where NAMA_BARANG like '%"+Search.getText()+"%'";
      select(sqlSearch);
jangan lupa set nama Textfieldnya terlebih dahulu,untuk button Back linkan pada form tampilan awal menu utama.Terimakasih...!!

Semoga Bernmanfaat..!!!








32 comments:

  1. makasih, postingannya sangat membantu ^_^

    ReplyDelete
  2. gan file project yang udah jadi upload in donk gan

    ReplyDelete
    Replies
    1. maaf itu data pribadi,saya hanya membantu dalam pembuatannya saja tidak membagi hasilnya

      Delete
  3. Bang, kalau membuat relasinya tanpa menggunakan CDM/PDM bisa tidak? misalnya di SQL Server/SQLyog? Terima kasih! x))

    ReplyDelete
  4. mbk projec nya bisa di kirim ke email saya hidayah_fitra@yahoo.com sebgai gantinya dan rasa trimaksih saya trans 50k ke rek mbkx setelah kirim... soalnya mau buat tugas 2 minggu lagi... timkasih....

    ReplyDelete
    Replies
    1. 50k tuu 50.000 ya??
      kalo segitu mah murah banget.. :D

      Delete
    2. gak jadi wes..

      Delete
  5. itu untuk tanggalnya pke inputan jtextField atau apa ya??

    ReplyDelete
  6. Itu tanggal pake Jcalendar bro

    ReplyDelete
  7. Thank's tutorialnya gan :)

    ReplyDelete
  8. minta tutornya yang lebih jelas dong mengenai koneksinya

    ReplyDelete
  9. mas boleh liat contoh ERDnya ?

    ReplyDelete
  10. Kepada Yth,
    To : PERUSAHAAN BUMN
    & SWASTA NASIONAL.
    Di Tempat.

    Up/attn : Pimpinan Perusahaan, HRD & Finance Manager , Accounting
    Perihal : Surat Perkenalan & Kerjasama
    Terlampir : 1 Perincian Penerbitan Bank Garansi & Surety Bond

    Dengan Hormat,
    Salam hangat dari PT. JASA MULYA ABADI (Consultan Bank Garansi Dan Asuransi)
    Perkenankan kami untuk memperkenalkan perusahaan kami, PT. JASA MULYA ABADI .
    Dimana kami telah di back up beberapa perusahaan Asuransi Kerugian Swasta Nasional Maupun BUMN serta Perusahaan kami telah ditunjuk untuk memasarkan bank garansi yang terbitkan oleh Bank diantaranya:BANK BNI , BRI , BCA , BII , EXIM , DKI , BTN , SINARMAS , MUTIARA , AGRA , KALTIM , SUMSEL , BUMIPUTERA , serta bank dan Asuransi Penerbit lainnya.Pada kesempatan ini kami menawarkan kerjasama dibidang penerbitan bank Garansi / Surety bond,dimana didalam penerbitannya kami memberikan prosedur relatif mudah yaitu : NON COLLATERAL (Tanpa Agunan), Serta Jaminan polis siap kami antar.

    Jasa General Insurance Bank Garansi Dan Asuransi Yang Kami Tawarkan Diantaranya :

    Ø JAMINAN PENAWARAN (Bid Bond)
    Ø JAMINAN PELAKSANAAN (Performance Bond)
    Ø JAMINAN UANG MUKA (Advance Payment Bond)
    Ø JAMINAN PEMELIHARAAN (Maintenance Bond)

    1.Contractor all risk (CAR)
    2.Conprenshive general liability ( CGL)
    3.Workman compensation liability (WCL)
    4.Automobile liability (AL)
    5.Custom bond
    6.Property all risk (PAR)
    7.Erection all risk ( EAR)
    8.Marine hull insurance (MH)
    9.Cargo
    10`. Sp2d Akhir Tahun ( Surat Perintah Pencairan Dana )

    Besar harapan kami kiranya perusahaan kami diberikan kesempatan dan kepercayaan untuk berpartisipasi dalam kegiatan perusahaan bapak/ibu kelola terutama dalam hal perlindungan terhadap resiko (Wan Prestasi) baik itu proyek yang sedang berjalan / akan dilaksanakan maupun proyek yang sudah berjalan kami memberikan prosedur yang relative mudah yaitu proses cepat serta jaminan polis siap di antar.
    Demikianlah penawaran dari kami, semoga ini merupakan awal kerjasama yang baik dan berkesinambungan dimasa yang akan datang,atas perhatian dan kerjasamanya kami ucapkan terima kasih.

    salam .

    KHAIDIR MUIS
    Div.Marketing
    PT. JASA MULYA ABADI
    (Insurance – Bank Guarantee & Surety Bond)
    Jl. Harapan Mulya IV No. 38, Kemayoran - Jakarta Pusat
    Telp : 021-4260719 (Hunting)
    Fax : 021-4252048
    Email : khaidirmuis.jma@gmail.com
    Mobile : 081367312690

    ReplyDelete
  11. makasih tutor nya di coba dulu

    ReplyDelete
  12. cara memasukkan tombol detail ke jtabelnya gmn ?

    ReplyDelete
  13. mas ada tutor dari awal bikin ga?
    saya masih belum paham nih

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  14. Kak ini kodingannya ada errornya ya emg?

    ReplyDelete
  15. Boleh tanya yg back itu kan sourcenya nanti k new FormTampilan kan y ? Tp kog d jframe project d atas nggak ada yg nunjukin form tampilannya ? Dan juga untuk main programnya kan d form class tuh tpi implements Kunci_Koneksi nya salah ... bsa minta kunci_koneksi penjelasannya gmana ? Kgunaannya dmana ? Apakah itu manggil form lain atau gmana ?

    ReplyDelete
  16. Kalau mau pindah textfield dengan tombol panah tau caranya gak ya? Saat textfield tidak ada karakter dan di tekan tombol panah kiri maka akan berpindah ke textfield yg ada d sebelah kiri, saat di textfiel terdapat karakter/string dan di tekan tombol panah kiri maka akan berpindah perkarakter kekiri kemudian kejtextfield yang ada d sebelah kiri

    ReplyDelete
  17. This comment has been removed by the author.

    ReplyDelete
  18. Gan detail barang dan harga jual barang yg di form Detail Transaksi Barang itu pake apa ya

    ReplyDelete
  19. bangke gw udah ikutin capek2 taunya ga jelas

    ReplyDelete
  20. Kok nggak ada type datanya untuk databasenya

    ReplyDelete
  21. Ass...misi mau bertanya terkait dengan programnya itu membuat menu bar seperti pada form detail transaksi barang itu bagaimana ya?
    Jadi ketika slide sebelahnya diklik makan akan muncul data atau tabel lain tapi masih dalam satu form seperti di gambar...
    Contohnya di form detail transaksi barang terdapat data detail transaksi barang dengan set harga detail transaksi barang tapi masih dalam satu form ?

    ReplyDelete
  22. makasih tutorialnya.

    jangan lupa mampir ke blog saya di www.portalcoding.com

    ReplyDelete
  23. Nagaqq Yang Merupakan Agen Bandarq terbaik , Domino 99, Dan Bandar Poker Online Terpercaya di asia hadir untuk anda semua dengan permainan permainan menarik dan bonus menarik untuk anda semua

    Bonus yang diberikan NagaQQ :
    * Bonus rollingan 0.5%,setiap senin di bagikannya
    * Bonus Refferal 10% + 10%,seumur hidup
    * Bonus Jackpot, yang dapat anda dapatkan dengan mudah
    * Minimal Depo 15.000
    * Minimal WD 20.000
    * Deposit via Pulsa TELKOMSEL
    * 6 JENIS BANK ( BCA , BNI, BRI , MANDIRI , CIMB , DANAMON )

    Memegang Gelar atau title sebagai AGEN POKER ONLINE Terbaik di masanya

    11 Games Yang di Hadirkan NagaQQ :
    * Poker Online
    * BandarQ
    * Domino99
    * Bandar Poker
    * Bandar66
    * Sakong
    * Capsa Susun
    * AduQ
    * Perang Bacarrat
    * Perang Dadu
    * BD QQ (New Game)


    Info Lebih lanjut Kunjungi :
    Website : NAGAQQ
    Facebook : NagaQQ official
    WHATSAPP : +855977509035
    Line : Cs_nagaQQ
    TELEGRAM :+855967014811

    BACA JUGA BLOGSPORT KAMI YANG LAIN:
    Winner NagaQQ
    Daftar NagaQQ
    nagaqq


    ReplyDelete
  24. Thanks and that i have a neat provide: What Home Renovation Shows Are On Netflix house remodeling services

    ReplyDelete

Mohon kritikan dan saran

Featured post

Instalasi Dan Konfigurasi Android ( ECLIPSE )

Sebelum instalasi eclipse terlebih dahulu kita sediakan perangkat software yang dibutuhkan seperti berikut : ·   Instalasi Java JDK · ...