Sunday, July 21, 2019


TUGAS MAPEL PBO SELAMA PKL


Tugas membuat program : Aplikasi Kasir Restoran (Table Service)

1.      Buka XAMPP dan CHROME dan buatlah Database dengan nama db_penjualan_new
2.      Dalam Database db_penjualan_new, buatlah Tabel seperti di gambar berikut:
a.       Tabel t_jual :








b.       Tabel t_jualdetail :

c.       Tabel t_login :

d.       Tabel t_makanan :

3.      Buka NETBEANS
4.      Klik menu tool > plugin > downloaded > add plugins > masukkan plugin > install > close

5.      Buatlah Project baru dengan nama Kasir Restoran
6.      Buatlah Package pada project Kasir Restoran

7.      Buatlah beberapa form seperti pada gambar berikut pada package Form

8.      Buatlah beberapa class seperti pada gambar berikut pada package input_data

9.      Setelah itu, silahkan anda tambahkan komponen library MySQL JDBC Driver dan Absolute Layout  dengan cara klik kanan folder Libraries dan pilih Add Library
10.  Maka akan tampil tab Add Library, kemudian pilih MySQL JDBC Driver, setelah anda pilih MySQL JDBC Driver, kemudian klik "Add Library"  dan lakukan cara sama dan pilih Absolute Layout
11.  Tambahkan juga beberapa library seperti pada gambar berikut dengan cara klik kanan folder Libraries dan pilih Add Jar/Folder dan buka library berikut

12.  Setelah anda menambahkan library, maka hasilnya akan seperti ini

13.  Buatlah class  dengan nama ClassKoneksi ( klik kanan pada package input_data > new > Java class ) kemudian ketik sintax berikut :

package input_data;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import java.sql.*;

public class ClassKoneksi {
 private static Connection koneksi; 
 public static Connection getkoneksi(){ 
    if(koneksi==null){ 
      try { 
        String url=new String(); 
        String user=new String(); 
        String password=new String(); 
        url="jdbc:mysql://localhost:3306/db_penjualan_new"; 
        user="root"; 
        password=""; 
          DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        koneksi=DriverManager.getConnection(url,user,password); 
      }catch (SQLException t){ 
        System.out.println("Eror membuat koneksi"); 
      } 
     } 
    return koneksi; 
  }  
}

14.     Kemudian, desain Form login1 seperti berikut :

NamaKomponen
EditText
Variable Name
Jlabel1
USERNAME
-
jLabel2
PASSWORD
-
jTextField1
-
txtusername
jTextField2
-
txtpassword
jButton1
LOGIN
btnlogin
jButton2
KELUAR
btn_keluar
jButton2
DAFTAR
Btndaftar

-          Ketikan pada Form login1 :
            package Form;
import input_data.ClassKoneksi;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;

public class login1 extends javax.swing.JFrame {
    public Statement st;
    public ResultSet rs;
    Connection c= ClassKoneksi.getkoneksi();


-          Ketikan pada tombol LOGIN ( ActionPerformance) :
              try{
            st = c.createStatement();
ResultSet rs = st.executeQuery("select * from t_login where username='"+txtusername.getText()+"'");
            if(rs.next()){
                if(txtpassword.getText().equals(rs.getString("password"))){
                    JOptionPane.showMessageDialog(null, "Selamat Datang!");
                    penjualan frm = new penjualan();
                    frm.kode_petugas().setText(rs.getString("kode_petugas"));
                    frm.setVisible(true);
                    this.dispose();
                }else{
                    JOptionPane.showMessageDialog(rootPane, "password salah!");
                    txtusername.setText("");
                    txtpassword.setText("");
                }
            }else{
                JOptionPane.showMessageDialog(rootPane, "Username dan password tidak cocok!");
                txtusername.setText("");
                txtpassword.setText("");
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane, "username & password belum terdaftar");
        }
    }                                              

-          Ketikan pada tombol KELUAR  (ActionPerformance) :
System.exit(0);

-          Ketikan pada tombol DAFTAR  (ActionPerformance) :
new daftar1().setVisible(true);
this.setVisible(false);

15.     Kemudian, desain Form daftar1 seperti berikut :

NamaKomponen
EditText
Variable Name
Jlabel1
NAMA
-
jLabel2
USERNAME
-
jLabel3
PASSWORD
-
jTextFiled1
-
txt_nama_kasir
jTextFiled2
-
txt_username
jTextFiled3
-
txt_pwd
jButton1
KEMBALI
btn_kembali
jButton2
DAFTAR
btn_daftar

-          Ketikan pada Form daftar1 :
package Form;
import input_data.ClassKoneksi;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class daftar1 extends javax.swing.JFrame {
    public Statement st;
    public ResultSet rs;
    Connection c= ClassKoneksi.getkoneksi();
-          Ketikan pada tombol KEMBALI  (ActionPerformance) :
new login1().setVisible(true);
this.setVisible(false);
-          Ketikan pada tombol DAFTAR  (ActionPerformance) :
String input_nama = txt_nama_kasir.getText();
        String input_user = txt_username.getText();
        String input_pas = txt_pwd.getText();
        if(input_user.trim().isEmpty()){
            JOptionPane.showMessageDialog(null, "Masukkan username!");
        }else if(input_pas.trim().isEmpty()){
            JOptionPane.showMessageDialog(null, "Masukkan password!");
        }else if(input_nama.trim().isEmpty()){
            JOptionPane.showMessageDialog(null, "Masukkan nama!");
        }else{
            try{
                st = c.createStatement();
                st.executeUpdate("INSERT INTO t_login SET " + "username = '" + txt_username.getText() + "'," + "password = '" + txt_pwd.getText() + "', " + "nama_kasir = '" + txt_nama_kasir.getText() + "'");
                JOptionPane.showMessageDialog(null, "Data Tersimpan");
                login1 lgn = new login1();
                this.setVisible(false);
                lgn.setVisible(true);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
16.     Kemudian, desain Form penjualan seperti berikut :

NamaKomponen
EditText
Variable Name
Jlabel1
PENJUALAN
-
jLabel2
KODE PETUGAS
-
jLabel3
NO TRANSAKSI
-
jLabel4
TGL TRANSAKSI
-
jLabel5
KODE MAKANAN
-
jLabel6
PAKET MAKANAN
-
jLabel7
HARGA
-
jLabel8
JUMLAH
-
jLabel9
TOTAL HARGA
-
jLabel10
TOTAL PENGEMBALIAN
-
jLabel11
TUNAI
-
jLabel12
KEMBALIAN
-
jLabel13
DATE TIME
-
jTextFiled1
-
Jpetugas
jTextFiled2
-
txtNofa
jTextFiled3
-
TxtKode
jTextFiled4
-
TxtNama
jTextFiled5
-
TxtHJual
jTextFiled6
-
TxtJumlah
jTextFiled7
-
TxtSubTotal
jTextFiled8
-
TxtTotal
jTextFiled9
-
TxtCash
jTextFiled10
-
TxtKembali
jTextFiled11
-
TxtDateTime
jDateChooser
-
JdateJual
jButton1
btnkodepetugas
jButton2
btnkodebarang
jButton3
ADD
btnadd
jButton4
SIMPAN
BtnSimpan
jButton5
HAPUS
BtnBatal
jButton6
LAPORAN
laporan
jButton7
LOGOUT
logout
jTable
-
TblDetail

-          Ketikan pada Form penjualan :
package Form;
import input_data.ClassKoneksi;
import com.sun.javafx.image.impl.IntArgb;
import com.sun.prism.PresentableState;
import java.awt.event.KeyEvent;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Locale;
import java.util.TreeMap;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
                  
-          Ketikan dibawah public class penjualan extends javax.swing.JFrame {
private DefaultTableModel model;  
    Statement stt;
    Statement stt2;
    ResultSet rss;
public JTextField kode_petugas(){
        return jpetugas;
    }

    public penjualan() {
        initComponents();
        auto_key();
        jpetugas.disable();
        txtNofa.disable();
        TxtKode.disable();
        TxtNama.disable();
        TxtHJual.disable();
        btnkodepetugas.hide();
        TxtDateTime.hide();
        jLabel15.hide();
        model =new DefaultTableModel();
        TblDetail.setModel(model);
        model.addColumn("KODE Barang");
        model.addColumn("Nama Paket");
        model.addColumn("Harga");
        model.addColumn("Jumlah");
        model.addColumn("Sub Total");
        model.addColumn("Jual Time");
        TblDetail.getColumnModel().getColumn(5).setMinWidth(0);
        TblDetail.getColumnModel().getColumn(5).setMaxWidth(0);
        TblDetail.getColumnModel().getColumn(5).setWidth(0);
        TblDetail.getColumnModel().getColumn(0).setMinWidth(0);
        TblDetail.getColumnModel().getColumn(0).setMaxWidth(0);
        TblDetail.getColumnModel().getColumn(0).setWidth(0);
        loadData();
        Date date = new Date();
        JdateJual.setDate(date);
    }
   
    public String kdptg,kdbrg,nm,jual;

    public String getJpetugas() {
        return kdptg;
    }
    public String getTxtKode() {
        return kdbrg;
    }
    public String getTxtNama() {
        return nm;
    }
    public String getTxtHJual() {
        return jual;
    }
   
    public void itemTerpilih1(){
        makanan br = new makanan();
        br.fAB = this;
        TxtKode.setText(kdbrg);
        TxtNama.setText(nm);
        TxtHJual.setText(jual);  
    }
   
    private void Total(){
      int jumlahBaris = TblDetail.getRowCount();
        int ttlpinjam = 0, jlhpinjam=0;
        int Jlhtotalpinjam;
        TableModel tblmodel;
        tblmodel = TblDetail.getModel();
        for (int i=0; i<jumlahBaris; i++){
            Jlhtotalpinjam=Integer.parseInt(tblmodel.getValueAt(i, 3).toString());
                jlhpinjam=Jlhtotalpinjam+jlhpinjam;
                }
     }
   
   public void Batal(){
       DefaultTableModel model = (DefaultTableModel)TblDetail.getModel();
        int row = TblDetail.getSelectedRow();
            if (row>=0) {
                int ok = JOptionPane.showConfirmDialog(null, "Anda yakin ingin menghapus","Message",JOptionPane.YES_NO_OPTION);
           
                if (ok==0){
                    model.removeRow(row);
                }
                }
            Total();
           
     try {
        Connection c= ClassKoneksi.getkoneksi();
        String sql="DELETE From t_jualdetail WHERE no_transaksi='"+this.txtNofa.getText()+"' AND  waktu ='"+this.TxtDateTime.getText()+"'";
        PreparedStatement p=(PreparedStatement)c.prepareStatement(sql);
        p.executeUpdate();
        p.close();
    }catch(SQLException e){
        System.out.println("Terjadi Kesalahan");
    }finally{
        loadData();
        JOptionPane.showMessageDialog(this,"Sukses Hapus Data");
    }
   }
  
   public void Cari_Kode(){
   int i=TblDetail.getSelectedRow(); 
   if(i==-1) 
   { return; } 
   String ID=(String)model.getValueAt(i, 0);
   TxtKode.setText(ID);
   }
   
   public void ShowData(){
   try {
        Connection c=ClassKoneksi.getkoneksi();
        String sql="Select * from t_jualdetail, t_makanan WHERE t_jualdetail.kode_barang = t_makanan.nama_paket AND t_jualdetail.kode_barang='"+this.TxtKode.getText()+"'";
        Statement st = ClassKoneksi.getkoneksi().createStatement();
        ResultSet rs = st.executeQuery(sql);
        while(rs.next()){
        this.TxtJumlah.setText(rs.getString("jumlah"));
        this.TxtNama.setText(rs.getString("keterangan"));
        this.TxtHJual.setText(rs.getString("jual_harga"));
        this.TxtSubTotal.setText(rs.getString("subtotal"));
        this.TxtDateTime.setText(rs.getString("waktu"));
        }
        rs.close(); st.close();}
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
 }

   public final void loadData(){
   model.getDataVector().removeAllElements();
   model.fireTableDataChanged();
   try{ 
     Connection c= ClassKoneksi.getkoneksi();
       Statement s= c.createStatement();
     String sql="Select * from t_jualdetail, t_makanan WHERE t_jualdetail.kode_barang = t_makanan.nama_paket AND t_jualdetail.no_transaksi='"+this.txtNofa.getText()+"'";
       ResultSet r=s.executeQuery(sql);
     while(r.next()){
       Object[]o=new Object[5];
       o[0]=r.getString("kode_barang");
       o[1]=r.getString("keterangan");
       o[2]=r.getString("jual_harga");
       o[3]=r.getString("jumlah");
       o[4]=r.getString("subtotal");
       model.addRow(o);
     } 
     r.close(); 
     s.close(); 
     //ShowData(); 
   }catch(SQLException e){ 
     System.out.println("Terjadi Kesalahan"); 
   }

int total = 0;
   for (int i =0; i< TblDetail.getRowCount(); i++){
       int amount = Integer.parseInt((String)TblDetail.getValueAt(i, 4));
       total += amount;
   }
   TxtTotal.setText(""+total);
 } 
   
    public void AutoSum() {    
        int a, b, c;
        a = Integer.parseInt(TxtHJual.getText());
        b = Integer.parseInt(TxtJumlah.getText());
        c = a*b;
        TxtSubTotal.setText(""+c);
    }
   
        public void HitungKembali() {    
        int d, e, f;
        d = Integer.parseInt(TxtTotal.getText());
        e = Integer.parseInt(TxtCash.getText());
        f = e-d;
        TxtKembali.setText(""+f);
    }
  
public void auto_key(){ 
   try { 
   java.util.Date tgl = new java.util.Date(); 
   java.text.SimpleDateFormat kal = new java.text.SimpleDateFormat("yyMMdd"); 
   java.text.SimpleDateFormat tanggal = new java.text.SimpleDateFormat("yyyyMMdd"); 
     Connection c=ClassKoneksi.getkoneksi(); 
     String sql = "select max(no_transaksi) from t_jual WHERE jual_tgl ="+tanggal.format(tgl);  
     Statement st = ClassKoneksi.getkoneksi().createStatement(); 
     ResultSet rs = st.executeQuery(sql); 
     while(rs.next()){ 
     Long a =rs.getLong(1); //mengambil nilai tertinggi 
       if(a == 0){ 
         this.txtNofa.setText(kal.format(tgl)+"0000"+(a+1)); 
       }else{ 
         this.txtNofa.setText(""+(a+1)); 
       } 
   } 
   rs.close(); st.close();} 
   catch (Exception e) { 
       JOptionPane.showMessageDialog(null, "Terjadi kesalaahan"); 
   } 
 }

public void Selesai(){  
   String no_transaksi =this.txtNofa.getText();     
   String jual_total=this.TxtTotal.getText();
   String jual_cash =this.TxtCash.getText();
   String jual_kembali =this.TxtKembali.getText();
   SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
   Date tanggal = new Date();
   tanggal = JdateJual.getDate();
   String jual_tgl = dateFormat.format(tanggal);

try{ 
     Connection c=ClassKoneksi.getkoneksi(); 
     String sql="Insert into t_jual (no_transaksi,jual_tgl,jual_total,jual_cash,jual_kembali) values (?,?,?,?,?)"; 
     PreparedStatement p=(PreparedStatement)c.prepareStatement(sql); 
     p.setString(1,no_transaksi);
     p.setString(2,jual_tgl);
     p.setString(3,jual_total);
     p.setString(4,jual_cash);
     p.setString(5,jual_kembali);
     p.executeUpdate();
     p.close();
   }catch(SQLException e){
   System.out.println(e); 
   }finally{ 
       JOptionPane.showMessageDialog(this,"Data Telah Tersimpan"); 
  }
  
  auto_key();
  loadData();
 } 
   
   public void TambahDetail(){
   Date HariSekarang = new Date( );
   SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
     
   String kode_petugas =this.jpetugas.getText();    
   String no_transaksi =this.txtNofa.getText(); 
   String kode_barang =this.TxtKode.getText(); 
   String jual_harga=this.TxtHJual.getText(); 
   String jumlah=this.TxtJumlah.getText();
   String subtotal =this.TxtSubTotal.getText();
   String DateTime = ft.format(HariSekarang);
  
  

   try{ 
     Connection c=ClassKoneksi.getkoneksi(); 
     String sql="Insert into t_jualdetail (kode_petugas,no_transaksi,kode_barang,jual_harga,jumlah,subtotal,waktu) values (?,?,?,?,?,?,?)"; 
     PreparedStatement p=(PreparedStatement)c.prepareStatement(sql); 
     p.setString(1,kode_petugas);
     p.setString(2,no_transaksi);
     p.setString(3,kode_barang);
     p.setString(4,jual_harga);
     p.setString(5,jumlah);
     p.setString(6,subtotal);
     p.setString(7,DateTime);
     p.executeUpdate();
     p.close();
   }catch(SQLException e){
   System.out.println(e); 
   }finally{ 
      JOptionPane.showMessageDialog(this,"Data Telah Tersimpan"); 
  }
 }

    public void cari_id(){
        try {
        Connection c=ClassKoneksi.getkoneksi();
        String sql = "select * from t_makanan, t_satuan where t_makanan.barang_satuan = t_satuan.satuan_id AND t_makanan.nama_paket='"+this.TxtKode.getText()+"'";
        Statement st = ClassKoneksi.getkoneksi().createStatement();
        ResultSet rs = st.executeQuery(sql);    
        while(rs.next()){
        this.TxtNama.setText(rs.getString("keterangan"));
        this.TxtHJual.setText(rs.getString("harga"));
        }
        rs.close(); st.close();}
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
}

    public  void bersihkan(){
        TxtKode.setText("");
        TxtNama.setText("");
        TxtHJual.setText("");
        TxtJumlah.setText("");
        TxtCash.setText("");
        TxtSubTotal.setText("");
        TxtKembali.setText("");
      
    }

public void runReportDefault(String sourcefilename, HashMap hash) {
        Connection c= ClassKoneksi.getkoneksi();
        try {
            InputStream report;
            report = getClass().getResourceAsStream(sourcefilename);
            JasperPrint jprint = JasperFillManager.fillReport(report,hash, c);
            JasperViewer viewer = new JasperViewer(jprint, false);
            viewer.setFitPageZoomRatio();
            viewer.setVisible(true);
        } catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }

-          Ketikan pada textField jumlah (KeyPressed) :
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
AutoSum();
}

-          Ketikan pada tombol ADD (ActionPerformed) :
TambahDetail();
loadData();
bersihkan();

-          Ketikan pada tombol SIMPAN (ActionPerformed) :
Selesai();
bersihkan();

-          Ketikan pada tombol HAPUS (ActionPerformed) :
Batal();
bersihkan();

-          Ketikan pada textField cash (KeyPressed) :
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
            HitungKembali();
}

-          Ketikan pada TblDetail (MouseClicked) :
this.Cari_Kode();
this.ShowData();

-          Ketikan pada textField TxtKode (KeyPressed) :
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
            cari_id();
}

-          Ketikan pada tombol btnkodebarang (ActionPerformed) :
makanan brg = new makanan();
brg.fAB = this;
brg.setVisible(true);
brg.setResizable(false);

-          Ketikan pada tombol LAPORAN (ActionPerformed) :
Connection c= ClassKoneksi.getkoneksi();
            String NamaFile = "/report/report.jasper";
            HashMap hash = new HashMap();
try {
            runReportDefault(NamaFile,hash);
        } catch (Exception e) {
}

-          Ketikan pada tombol LOGOUT (ActionPerformed) :
        this.setVisible(false);
        new login1().setVisible(true);


17.     Kemudian, desain Form petugas1 seperti berikut :

NamaKomponen
EditText
Variable Name
Jlabel1
PETUGAS
-
jLabel2
NAMA PETUGAS
-
jTextFiled1
-
jnama_petugas
jTable
-
Tblpetugas

-          Ketikan pada Form petugas1 :
import input_data.cls_input_data;
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
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 net.proteanit.sql.DbUtils;  
-          Ketikan dibawah public class petugas1 extends javax.swing.JFrame {
    private Statement stat;
    private Connection conek;
    private ResultSet hasil;
    private String sql="";
    public String kode_petugas,nama_petugas,user,password;
    DefaultTableModel tabmode;
    public static int statusSearching = 0;
    public Connection conn;
    public penjualan fAB = null;

    public void koneksi() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_penjualan_new", "root", "");

        } catch (ClassNotFoundException | SQLException e) {
            JOptionPane.showMessageDialog(null, "Koneksi Gagal");
            System.out.println(e.getMessage());
        }
    }

  public final void tampildata() {
        DefaultTableModel tabelpetugas = new DefaultTableModel();
        tabelpetugas.addColumn("kode_petugas");
        tabelpetugas.addColumn("nama_petugas");
        tabelpetugas.addColumn("user");
        tabelpetugas.addColumn("password");
        try {
            koneksi();
            String sql = "select * from t_login";
            stat = conn.createStatement();
            ResultSet rs = stat.executeQuery(sql);

            while (rs.next()) {
                tabelpetugas.addRow(new Object[]{
                            rs.getString(1),
                            rs.getString(2),
                            rs.getString(3),
                            rs.getString(4)
                        });
            }
            Tblpetugas.setModel(tabelpetugas);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Ada kesalahan" + e);
        }
    }
    public petugas1() {
        initComponents();
        tampildata();
    }
   
petugas1(Object object, boolean closable) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
-          Ketikan pada textField jnama_petugas (KeyReleased)
        String nama = jnama_petugas.getText();
        cls_input_data input = new cls_input_data();
        try{
            Tblpetugas.setModel(DbUtils.resultSetToTableModel(input.SearchTextList(nama))) ;
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }

18.     Kemudian, desain Form makanan seperti berikut :

NamaKomponen
EditText
Variable Name
Jlabel1
MAKANAN
-
jLabel2
PAKET MAKANAN
-
jLabel3
CARI
-
jLabel4
KETERANGAN
-
jLabel5
HARGA
-
jTextFiled1
-
Jpaket
jTextFiled2
-
jket_makanan
jTextFiled3
-
jharga_makanan
jTable
-
TblMakanan
jButton1
SIMPAN
BtnSimpan
jButton2
EDIT
BtnEdit
jButton3
HAPUS
BtnHapus
jButton4
BATAL
BtnBatal

-          Ketikan pada Form makanan :
package Form;
import input_data.ClassKoneksi;
import input_data.cls_input_data1;
import java.awt.HeadlessException;
import java.sql.Connection;
import java.sql.DriverManager;
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 net.proteanit.sql.DbUtils;

-          Ketikan dibawah public class makanan extends javax.swing.JFrame {
    private Statement stat;
    private Connection conek;
    private ResultSet hasil;
    private String sql="";
    public String nama_paket,keterangan,harga;
    DefaultTableModel tabmode;
    public static int statusSearching = 0;
    public Connection conn;
    public penjualan fAB = null;

    public void koneksi() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_penjualan_new", "root", "");

        } catch (ClassNotFoundException | SQLException e) {
            JOptionPane.showMessageDialog(null, "Koneksi Gagal");
            System.out.println(e.getMessage());

        }
    }

  public final void tampildata() {
        DefaultTableModel tabelbarang = new DefaultTableModel();
        tabelbarang.addColumn("nama_paket");
        tabelbarang.addColumn("keterangan");
        tabelbarang.addColumn("harga");
        try {
            koneksi();
            String sql = "select * from t_makanan";
            stat = conn.createStatement();
            ResultSet rs = stat.executeQuery(sql);

            while (rs.next()) {
                tabelbarang.addRow(new Object[]{
                            rs.getString(1),
                            rs.getString(2),
                            rs.getString(3)
                       
                        });
            }
            TblMakanan.setModel(tabelbarang);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Ada kesalahan" + e);
        }
    }
    public void tampildatabase(){
        Object []baru = {"Nama Paket","Keterangan","Harga"};
        tabmode = new DefaultTableModel(null, baru);
        TblMakanan.setModel(tabmode);
        String sql = "SELECT*FROM t_makanan";
        try {
        Connection conek = ClassKoneksi.getkoneksi();
        Statement stat = conek.createStatement();
        ResultSet hasil = stat.executeQuery(sql);
        while (hasil.next()){
        String ID= hasil.getString("nama_paket");
        String Nama = hasil.getString("keterangan");
        String Hjual = hasil.getString("harga");
       
        String[] data = {ID,Nama,Hjual};
        tabmode.addRow(data);
        }
        } catch (SQLException e) {
        }
    }
   
    public makanan() {
        initComponents();
        tampildata();
        tampildatabase();
    }

     private void clear(){
        jpaket.setText("");
        jket_makanan.setText("");
        jharga_makanan.setText("");
    }
    private void enabled(){
        jpaket.enable(true);
        jket_makanan.enable(true);
        jharga_makanan.enable(true);
        jpaket.requestFocus();
    }
   
    private void disabled(){
        jpaket.enable(false);
        jket_makanan.enable(false);
        jharga_makanan.enable(false);
    }

-          Ketikan pada tombol HAPUS (ActionPerformed) :
        String nama_paket = jpaket.getText();
        try {
            Statement statement =ClassKoneksi.getkoneksi().createStatement();
            statement.executeUpdate("delete from t_makanan where nama_paket=('"+nama_paket+"')");
            clear();
            tampildatabase();
            JOptionPane.showMessageDialog(null, "Data Berhasil Dihapus");
        }catch (Exception t) {
            JOptionPane.showMessageDialog(null, "Data Gagal Dihapus");
        }

-          Ketikan pada tombol BATAL (ActionPerformed) :
clear();
            enabled();
            BtnSimpan.setEnabled(true);
            BtnEdit.setEnabled(true);

-          Ketikan pada TblMakanan (MouseClicked) :
 int tabelbarang = TblMakanan.getSelectedRow();
        fAB.kdbrg = TblMakanan.getValueAt(tabelbarang, 0).toString();
        fAB.nm = TblMakanan.getValueAt(tabelbarang, 1).toString();
        fAB.jual = TblMakanan.getValueAt(tabelbarang, 2).toString();
        fAB.itemTerpilih1();
        this.dispose();

-          Ketikan pada tombol SIMPAN (ActionPerformed) :
if(jpaket.getText().trim().equals("")){
            JOptionPane.showMessageDialog(null,"Maaf, Kode belum di isi!");
            jpaket.requestFocus();
            }else if(jket_makanan.getText().trim().equals("")){
            JOptionPane.showMessageDialog(null,"Maaf, Nama belum di isi!");
            jket_makanan.requestFocus();
            } else if(jharga_makanan.getText().trim().equals("")){
            JOptionPane.showMessageDialog(null,"Maaf, Jumlah belum di isi!");
            jharga_makanan.requestFocus();
            } else{               
                String nama_paket="", keterangan ="", harga ="";
            try {
            Connection conek =ClassKoneksi.getkoneksi();
            nama_paket = jpaket.getText();
            keterangan = jket_makanan.getText();
            harga= jharga_makanan.getText();
           String sql = "insert into t_makanan values('"+nama_paket+"','"+keterangan+"', '"+harga+"')";
            Statement st = conek.createStatement();
            st.executeUpdate(sql);
            JOptionPane.showMessageDialog(null, "Data Berhasil Tersimpan" , "Informasi",
           JOptionPane.INFORMATION_MESSAGE);
            tampildatabase();
            } catch (HeadlessException | SQLException e) {
           JOptionPane.showMessageDialog(null, "Data Gagal Tersimpan" , "Informasi",
           JOptionPane.INFORMATION_MESSAGE);
            }
            }
        clear();

-          Ketikan pada tombol EDIT (MouseClicked) :
String nama_paket="", keterangan ="", harga ="";
        int ok=JOptionPane.showConfirmDialog(null,"Apakah Yakin Untuk Update Record ini???","Confirmation",JOptionPane.YES_NO_OPTION);
        try{
            Connection co = ClassKoneksi.getkoneksi();
            nama_paket = jpaket.getText();
            keterangan = jket_makanan.getText();
            harga= jharga_makanan.getText();
            String sql="update t_makanan set nama_paket=?,keterangan=?,harga=? where nama_paket='"+nama_paket+"'";
            PreparedStatement st=co.prepareStatement(sql);
            if(ok==0){
                try {
                    st.setString(1,jpaket.getText());
                    st.setString(2,jket_makanan.getText());
                    st.setString(3,jharga_makanan.getText());

                    st.executeUpdate();
                    tampildatabase();
                    JOptionPane.showMessageDialog(null,"Update Data Sukses");

                }catch (Exception e) {JOptionPane.showMessageDialog(null, "Update Data Gagal");
                }
        }else{}
            }catch (SQLException e){
                System.out.println(e.getMessage());
                JOptionPane.showMessageDialog(null, "Tidak ada kesalahan");
            }
        clear();

-          Ketikan pada jTextFIeld jpaket (KeyReleased) :
String nam = jpaket.getText();
        cls_input_data1 data = new cls_input_data1();
        try{
            TblMakanan.setModel(DbUtils.resultSetToTableModel(data.SearchTextList(nam))) ;
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }

-          Ketikan pada jTextFIeld jket_makanan (KeyPressed) :
  keterangan = jket_makanan.getText();
        int A = evt.getKeyCode();
        if (A==10){
            try {
                sql="SELECT * FROM t_makanan WHERE keterangan='"+keterangan+"'";
                Connection conek = ClassKoneksi.getkoneksi();
                stat = conek.createStatement();
                hasil = stat.executeQuery(sql);               
               
                while(hasil.next()){
                    jpaket.setText(hasil.getString("nama_paket"));
                    jharga_makanan.setText(hasil.getString("harga"));
                    BtnSimpan.enable(false);
                    BtnEdit.enable(true);
                    BtnHapus.enable(true);
                }
            } catch (Exception e) {
                    JOptionPane.showConfirmDialog(null, "Data Not Found\n"+e.getMessage());
                    jharga_makanan.requestFocus();
            }
        }
19.     Buatlah class  dengan nama cls_input_data ( klik kanan pada package input_data > new > Java class ) kemudian ketik sintax berikut :
package input_data;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class cls_input_data {
    public ResultSet SearchTextList(String nma)throws SQLException{
        Connection c= ClassKoneksi.getkoneksi();
        String sql = "select * from t_petugas where nama_petugas like ? ";
        PreparedStatement p=(PreparedStatement)c.prepareStatement(sql);
        p.setString(1,nma +"%");
        ResultSet rs = p.executeQuery();
        return rs;
    }
}
20.     Buatlah class  dengan nama cls_input_data1 ( klik kanan pada package input_data > new > Java class ) kemudian ketik sintax berikut :
package input_data;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class cls_input_data1 {
    public ResultSet SearchTextList(String nma)throws SQLException{
        Connection c= ClassKoneksi.getkoneksi();
        String sql = "select * from t_makanan where  nama_paket like ?";
        PreparedStatement p=(PreparedStatement)c.prepareStatement(sql);
        p.setString(1,nma +"%");
        ResultSet rs = p.executeQuery();
        return rs;
    }
}

21.     Kemudian buatlah report pada form report dengan cara klik kanan form report > new > report wizard
22.    Setelah itu, isikan nama dan pilih lokasi > pada Query pilih new > pilih Database JDBC Connection dan next > masukan nama db kalian > pada JDBC Driver pilih MySQL (com.mysql.jdbc.Driver) dan pada JDBC URL ganti MYDATABASE menjadi nama db kalian > pada Username tulis root dan centang pada save root > save
23.    Pada kotak Query (SQL) tuliskan “ select * from nama_tabel_pada_db_kalian “ > next > pilih fields yang ingin anda masukkan pada report dan next > next > finish
24.    Selanjutnya desain report kalian sesukamu dan pilih Preview untuk menampilkan hasilnya
25.    Yang terakhir jalankan program tersebut dengan cara klik kanan pada jFrameForm login1 > dan klik run file
26.    SELESAI



NOTE : " HAK CIPTA SOURCE CODE DAN FOTO MILIK PEMBUAT DAN PENGAMBIL FOTO "
Next
Newer Post
Previous
This is the last post.

1 comments: