Jumat, 21 Juli 2017

Program penyimpanan barang HIPPOMART dengan Database

Hello everyone ,kali ini saya akan membagikan program tugas UAS saya di semester 2 ini. Tentu nya dengan program yang lebih yaitu dengan komponen JTable dan Database. inilah tampilan awal nya :

 

Dalam program kali ini saya menggunakan beberapa komponen di antara nya :

Label
TextField
Button
RadioButton
Label
JOptionPane

Lalu formula yang saya gunakan ialah perkalian total harga dimana : Total Harga=Harga*Jumlah

Pertama-tama kita buat Database terlebih dahulu seperti dibawah ini :

 

Nama database nya ialah seperti judul nya yaitu hippomart dan nama table nya mart dengan jumlah 5 kolom yaitu KodeBarang ,NamaBarang ,Jumlah ,Harga ,dan Berat.

Setelah kita membuat database ,kita buat project baru bebas jadi tidak perlu seperti saya yang mencantumkan nama ya  , buat pada netbeans yang sudah di instal pada pc masing masing dan buatlah seperti ini :

 

Pada form awal kita disuguhkan oleh 4 Button yang masing masing memiliki script code nya masing masing. dan inilah source code untuk Button List Barang :

private void daftarbarangActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        ListBarang item=new ListBarang();
        item.setLocationRelativeTo(item);
        item.setVisible(true);
        dispose();
    }

Lalu ini untuk Button Edit Barang :

private void editbarangActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        EditBarang item=new EditBarang();
        item.setLocationRelativeTo(item);
        item.setVisible(true);
        dispose();
    } 

Lalu Button Pick-Up Barang :

private void pickupbarangActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        PickupBarang item=new PickupBarang();
        item.setLocationRelativeTo(item);
        item.setVisible(true);
        dispose();
    }

yang terakhir Button exit dimana saya menggunakan JOptionPane seperti ini :

 

inilah source code nya :

 private void exitActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        int a=JOptionPane.showConfirmDialog(null, "Apakah anda yakin" ,"Exit" ,JOptionPane.YES_NO_OPTION ,JOptionPane.WARNING_MESSAGE);
        if (a==JOptionPane.YES_OPTION){
            dispose();
        }
    }

Jika Button List Barang di klik maka akan muncul tampilan form baru yaitu List Barang seperti ini :



Pada form ini hanya ada source code untuk JTable dan Import item nya serta Button Kembali ,dan inilah source code nya :

 package uas_steffi;

import koneksi.connection;
import com.mysql.jdbc.Statement;
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class ListBarang extends javax.swing.JFrame {

    /**
     * Creates new form ListBarang
     */
    public ListBarang() {
        initComponents();
        databarang();
    }

    public void databarang(){
        DefaultTableModel tbl= new DefaultTableModel();
        tbl.addColumn("Kode Barang");
        tbl.addColumn("Nama Barang");
        tbl.addColumn("Harga");
        tbl.addColumn("Berat");
        tabelbarang.setModel(tbl);
        try{
            Statement statement= (Statement)connection.GetConnection().createStatement();
            ResultSet res =statement.executeQuery("select * from mart");
            while (res.next())
            {
                tbl.addRow(new Object[]{
                   res.getString("kodebarang"),
                   res.getString("namabarang"),
                    res.getString("harga"),
                    res.getString("berat")
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }

dan ini source code untuk Button kembali dengan tujuan untuk kembali ke form awal :

private void kembaliActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        hippomart item=new hippomart();
        item.setLocationRelativeTo(item);
        item.setVisible(true);
        dispose();
    }

Setelah dari form List Barang kita berganti ke form Edit Barang dan inilah tampilan nya :

 

Sama seperti List Barang kita beri kode import dan kode untuk JTable nya namun disini di tambahkan tipe variabel String dan inilah source code nya :

 package uas_steffi;

import koneksi.connection;
import com.mysql.jdbc.Statement;
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class EditBarang extends javax.swing.JFrame {

    /**
     * Creates new form EditBarang
     */
    public EditBarang() {
        initComponents();
        databarang();
    }
   
    String kodebarang ,namabarang ,jumlah ,harga ,berat;

    public void databarang(){
        DefaultTableModel tbl= new DefaultTableModel();
        tbl.addColumn("Kode Barang");
        tbl.addColumn("Nama Barang");
        tbl.addColumn("Jumlah");
        tbl.addColumn("Harga");
        tbl.addColumn("Berat");
        tabelbarang.setModel(tbl);
        try{
            Statement statement= (Statement)connection.GetConnection().createStatement();
            ResultSet res =statement.executeQuery("select * from mart");
            while (res.next())
            {
                tbl.addRow(new Object[]{
                    res.getString("kodebarang"),
                    res.getString("namabarang"),
                    res.getString("jumlah"),
                    res.getString("harga"),
                    res.getString("berat")
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }
   
Di form Edit Barang ini ada 5 yaitu Simpan ,Cari ,Refresh ,Hapus dan Kembali. lalu inilah source code untuk masing masing button.

Button Simpan :

private void simpanActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        kodebarang=kodebarangtxt.getText();
        namabarang=namabarangtxt.getText();
        jumlah=jumlahtxt.getText();
        harga=hargatxt.getText();
       
        berat=null;
        if(under1.isSelected()){
                berat= "< 1 Kg";
        }else if(oneto2.isSelected()){
            berat= "1-2 Kg";
        }else if(twoto4.isSelected()){
            berat= "2-4 Kg";
        }else if(fivemore.isSelected()){
            berat= "> 5 Kg";
        }

        try{
            Statement statement=(Statement) connection.GetConnection().createStatement();
            statement.executeUpdate("insert into mart VALUES ('"+kodebarang+"','"+namabarang+"','"+jumlah+"','"+harga+"','"+berat+"');");
            statement.close();
            JOptionPane.showMessageDialog(null, "Data Berhasil Tersimpan");
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Data Gagal Tersimpan");
        }
        databarang();
    }      

Lalu ini untuk Button Cari :

private void cariActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        try{
            Statement statement=(Statement) connection.GetConnection().createStatement();
            ResultSet res= statement.executeQuery("select * from mart where "+"kodebarang='"+kodebarangtxt.getText()+"'");
            DefaultTableModel tbl= new DefaultTableModel();
            tbl.addColumn("Kode Barang");
            tbl.addColumn("Nama Barang");
            tbl.addColumn("Jumlah");
            tbl.addColumn("Harga");
            tbl.addColumn("Berat");

            tabelbarang.setModel(tbl);
            while (res.next()) {
                tbl.addRow(new Object[]{
                    res.getString("kodebarang"),
                    res.getString("namabarang"),
                    res.getString("jumlah"),
                    res.getString("harga"),
                    res.getString("berat")
                });
            }
            tabelbarang.setModel(tbl);
        }catch (Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }            

Ini untuk Button Refresh :

try{
            Statement statement=(Statement) connection.GetConnection().createStatement();
            statement.executeUpdate("DELETE from mart where kodebarang=('"+kodebarang+"');");
            JOptionPane.showMessageDialog(null, "Data bersih" ,"Refresh",JOptionPane.INFORMATION_MESSAGE);
            kodebarangtxt.setText("");
            namabarangtxt.setText("");
            jumlahtxt.setText("");
            hargatxt.setText("");
            Group.clearSelection();
        }catch(Exception e){
        }
        databarang(); 

Ini untuk Button Hapus :

private void hapusActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        kodebarang=kodebarangtxt.getText();

        try{
            Statement statement=(Statement) connection.GetConnection().createStatement();
            statement.executeUpdate("DELETE from mart where kodebarang =('"+kodebarang+"');");
            JOptionPane.showMessageDialog(null, "Data Berhasil Terhapus");
            kodebarangtxt.setText("");
            namabarangtxt.setText("");
            jumlahtxt.setText("");
            hargatxt.setText("");
            kodebarangtxt.requestFocus();
            Group.clearSelection();
        }catch (Exception e){
            JOptionPane.showMessageDialog(null, "Data Gagal Terhapus");
        }
        databarang();
    }                       

Sama juga seperti pada form List Barang terdapat Button Kembali dan kodenya pun sama :

private void kembaliActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        hippomart item=new hippomart();
        item.setLocationRelativeTo(item);
        item.setVisible(true);
        dispose();
    }

Sekarang kita ke form Pick-Up Barang dan ini screenshot nya  :

 

sama seperti 2 form sebelum nya ,di awal kita menuliskan import dan kode untuk JTable nya dan inilah code nya :

package uas_steffi;

import koneksi.connection;
import com.mysql.jdbc.Statement;
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class PickupBarang extends javax.swing.JFrame {

    /**
     * Creates new form PickupBarang
     */
    public PickupBarang() {
        initComponents();
        databarang();
    }
   
    public void databarang(){
        DefaultTableModel tbl= new DefaultTableModel();
        tbl.addColumn("Kode Barang");
        tbl.addColumn("Nama Barang");
         tbl.addColumn("Jumlah");
        tbl.addColumn("Harga");
        tbl.addColumn("Berat");
        tabelbarang.setModel(tbl);
        try{
            Statement statement= (Statement)connection.GetConnection().createStatement();
            ResultSet res =statement.executeQuery("select * from mart");
            while (res.next())
            {
                tbl.addRow(new Object[]{
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }

Pada form Pick-Up Barang ini terdapat 3 Button yaitu Cari ,Cek dan Kembali. Dan inilah source code nya :

Yang pertama Button Cari :

private void cariActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        try{
            Statement statement=(Statement) connection.GetConnection().createStatement();
            ResultSet res= statement.executeQuery("select * from mart where "+"kodebarang='"+kodebarangtxt.getText()+"'");
            DefaultTableModel tbl= new DefaultTableModel();
            tbl.addColumn("Kode Barang");
            tbl.addColumn("Nama Barang");
            tbl.addColumn("Jumlah");
            tbl.addColumn("Harga");
            tbl.addColumn("Berat");

            tabelbarang.setModel(tbl);
            while (res.next()) {
                tbl.addRow(new Object[]{
                    res.getString("kodebarang"),
                    res.getString("namabarang"),
                    res.getString("jumlah"),
                    res.getString("harga"),
                    res.getString("berat")
                });
            }
            tabelbarang.setModel(tbl);
        }catch (Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }           

Ini untuk Button Cek dan disinilah formula itu tejadi :

private void cekActionPerformed(java.awt.event.ActionEvent evt) {                                   
        // TODO add your handling code here:
       
       int a,b,c,d,e,f,x;
       d=tabelbarang.getRowCount();
       for (x=0;x<d;x++){
       a=Integer.parseInt(tabelbarang.getValueAt(x, 3).toString());
       e=Integer.parseInt(tabelbarang.getValueAt(x, 2).toString());
       b=Integer.parseInt(jumlah.getText());
       f=e-b;
       tabelbarang.setValueAt(f, x, 2);
       c=a*b;
       totalharga.setText(""+c);
       }
    }   

dan ini untuk Button Kembali seperti 2 form di atas tadi :

private void kembaliActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        hippomart item=new hippomart();
        item.setLocationRelativeTo(item);
        item.setVisible(true);
        dispose();
    } 

Sekira nya sudah saya tunjukkan semua source code nya. dan inilah tampilan run-out dan testing program nya :

Saya mencoba menambahkan barang :

 



Maka saat kita kembali ke form List Barang maka terisi dengan data barang seperti di atas. seperti ini :



ini Screenshot saat saya hendak Pick-Up barang dan bisa dilihat yang di awal jumlah nya 30 menjadi 20 :



Sekian untuk program saya kali ini ,semoga untuk kedepan nya saya bisa membuat program yang jauh lebih baik lagi. Sampai jumpa lagi dan terimakasih sudah mampir ke blog saya ini