Rabu, 09 Januari 2019

Aplikasi Penjualan Makanan Warung Lesehan Mas Eka

JUDUL PROJECT
" Aplikasi Penjualan Makanan Warung Lesehan Mas Eka"

Analisa Kebutuhan :
Kita membutuhkan JDBC (Java Data Base Connectivity) untuk menghubungkan Java dan MySQL.
JDBC bertugas menyediakan koneksi ke database, sehingga kita bisa mengakses dan mengelola datanya dari program Java.
Ada beberapa istilah yang harus dipahami dalam JDBC:
  • DriverManager: adalah sebuah class yang mengelola dirver;
  • Driver: adalah interface yang menangani komunikasi dengan database.
  • Connection: adalah interface yang menyediakan method untuk menghubungi database;
  • Statement: adalah inteface untuk mengeksekusi query;
  • ResultSet: adalah interface untuk menampung data hasil query.
Deskripsi Aplikasi :
Dalam aplikasi yang saya buat,,terdapat dua buah package yaitu package " Eka " dan package " Gambar ".
Buatlah gambar seperti yang ada di bawah ini.


Pertama - tama buatlah database di phpMyAdmin dengan Ketentuan :
Nama Database : restoran
didalamnya terdapat table : transaksi

Table : transaksi
`No_Transaksi` varchar(10) NOT NULL,
`Nama_Pelanggan` varchar(10) NOT NULL,
`Makanan` varchar(10) NOT NULL,
`Minuman` varchar(10) NOT NULL,
`Total_Harga` int(10) NOT NULL,
`Bayar` int(10) NOT NULL,
`Kembalian` int(10) NOT NULL,

PRIMARY KEY (`No_Transaksi`)
)ENGINE=MYISAM DEFAULT CHARSET=latin1;

Kita Kembali lagi pada project netbeans kita :
Buatlah Class koneksi dengan cara :
  • Klik kanan pada package(folder) Eka
  • Pilih New ==> Java Class
  • Isikan nama class dengan "koneksi"
  • Lalu salin source code dibawah ini :

Source Code koneksi.java


package Koneksi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class koneksi {
    private static Connection mysqlkonek;
    public static Connection koneksiDB() throws SQLException {
        if(mysqlkonek==null){
            try { 
                String DB="jdbc:mysql://localhost:3306/rumah_makan";// database uas
                
                String user="root"; // user database
                String pass=""; // password database
                DriverManager.registerDriver(new com.mysql.jdbc.Driver());
                mysqlkonek = (Connection) DriverManager.getConnection(DB,user,pass);
                
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null,"gagal koneksi");
        }
    }
        return mysqlkonek;
    }  
}

Selanjutnya Buatlah Form baru didalam Package(Folder) Eka dan beri nama "Login"
Caranya :
  1. Klik kanan pada package Eka
  2. Pilih New ==> JFrame Form
  3. Lalu ketikan nama Formnya "Login"
  4. dan buatlah tampilannya seperti gambar berikut


Berikut source code yang terdapat pada halaman "login" ini :


private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        String username="admin";
        String password="admin";
         if(username.equalsIgnoreCase(txtuser.getText()) && password.equalsIgnoreCase(txtpass.getText())) {
            this.setVisible(false);
            new Form_Transaksi().setVisible(true);
        }else{
            javax.swing.JOptionPane.showMessageDialog(null, "Maaf Username atau Password Anda Salah");
            txtuser.setText("");
            txtpass.setText("");
            txtuser.requestFocus();
         }
    }     

Selanjutnya Buatlah Form baru didalam Package(Folder) Eka dan beri nama "Data Transaksi"
Caranya :
  1. Klik kanan pada package Eka
  2. Pilih New ==> JFrame Form
  3. Lalu ketikan nama Formnya "Data Transaksi"
  4. dan buatlah tampilannya seperti gambar berikut


Berikut source code yang terdapat pada halaman "Data Transaksi" ini :

public void makanan() {
        if (rb_rames.isSelected()) {
            go();
            Nm_Makanan.setText(" ");
            Hrg_Makanan.setText(" ");
        } else if (rb_nasgor.isSelected()) {
            Nm_Makanan.setText("Nasi Goreng");
            Hrg_Makanan.setText("18000");
            stop();
        } else if (rb_soto.isSelected()) {
            Nm_Makanan.setText("Soto Ayam");
            Hrg_Makanan.setText("25000");
            stop();
        } else if (rb_rawon.isSelected()) {
            Nm_Makanan.setText("Rawon");
            Hrg_Makanan.setText("35000");
            stop();
        } else if (rb_sop.isSelected()) {
            Nm_Makanan.setText("Sop Buntut");
            Hrg_Makanan.setText("45000");
            stop();
        }


 public void minuman() {
        if (rb_es.isSelected()) {
            Nm_Minuman.setText("Es Teh Manis");
            Hrg_Minuman.setText("5000");
        } else if (rb_jeruk.isSelected()) {
            Nm_Minuman.setText("Jus Jeruk");
            Hrg_Minuman.setText("15000");
        } else if (rb_alpukat.isSelected()) {
            Nm_Minuman.setText("Jus Alpukat");
            Hrg_Minuman.setText("20000");
        } else if (rb_teh.isSelected()) {
            Nm_Minuman.setText("Teh Manis");
            Hrg_Minuman.setText("3000");
        } else if (rb_air.isSelected()) {
            Nm_Minuman.setText("Air Putih");
            Hrg_Minuman.setText("1000");
        }
    }

)Source Code pada radio button (Nasi Rames)
private void rb_ramesActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        makanan();

    }             

Source Code pada radio button (Nasi Goreng)
private void rb_nasgorActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        makanan();
    }

Source Code pada radio button (Soto Ayam)
private void rb_sotoActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        makanan();

    }

Source Code pada radio button (Rawon)
private void rb_rawonActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        makanan();

    } 

Source Code pada radio button (Sop Buntut)
private void rb_sopActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        makanan();

    }




Source Code pada radio button (Es Teh Manis)
private void rb_esActionPerformed(java.awt.event.ActionEvent evt) {                                   
        // TODO add your handling code here:
        minuman();
    }                                   

Source Code pada radio button (Jus Jeruk)
    private void rb_jerukActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        minuman();
    }                                     

Source Code pada radio button (Jus Alpukat)
    private void rb_alpukatActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        minuman();
    }                                       

Source Code pada radio button (Teh Manis)
    private void rb_tehActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        minuman();
    }                                   

Source Code pada radio button (Air Putih)
    private void rb_airActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        minuman();
    }             

Berikut Source Code pada Button Hitung Pilihan Nasi Rames

private void Hitung_RamesActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        int jml_nasi,jml_sayur,jml_tahu,jml_tempe,jml_ati,jml_ikan;
        int tot_sayur,tot_tahu,tot_tempe,tot_ati,tot_ikan;
        String tot_nasi;
        String hrg_nasi = "3000";
        String hrg_sayur ="5000";
        String hrg_tahu  ="2000";
        String hrg_tempe ="2000";
        String hrg_ati   ="6000";
        String hrg_ikan  ="8000";
        jml_nasi=Integer.parseInt(Pcs_Nasi.getText());
        jml_sayur=Integer.parseInt(Pcs_Sayur.getText());
        jml_tahu=Integer.parseInt(Pcs_Tahu.getText());
        jml_tempe=Integer.parseInt(Pcs_Tempe.getText());
        jml_ati=Integer.parseInt(Pcs_Ati.getText());
        jml_ikan=Integer.parseInt(Pcs_Ikan.getText());
        tot_nasi=String.valueOf(hrg_nasi);
        Tot_Nasi.setText(tot_nasi);
     
        int ns,syr,th,tm,ati,ikan,jml;
        String hasil;
        ns=Integer.parseInt(Tot_Nasi.getText());
        syr=Integer.parseInt(Tot_Sayur.getText());
        th=Integer.parseInt(Tot_Tahu.getText());
        tm=Integer.parseInt(Tot_Tempe.getText());
        ati=Integer.parseInt(Tot_Ati.getText());
        ikan=Integer.parseInt(Tot_Ikan.getText());
        jml=ns+syr+th+tm+ati+ikan;
        hasil=String.valueOf(jml);
        Tot_Harga_Rames.setText(hasil);
     
        Nm_Makanan.setText("Nasi Rames");
        Hrg_Makanan.setText(hasil);
    }                                     

Source Code Button(Tombol) ORDER

private void Button_ORDERActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        int byr,tot,jml;
        String hasil;
        byr=Integer.parseInt(Bayar_Pesanan.getText());
        tot=Integer.parseInt(Total_Pesanan.getText());
        jml=byr-tot;
        hasil=String.valueOf(jml);
        Kembalian_Pesanan.setText(hasil);
     
            try{
                String sql = "insert into transaksi values('"+No_Trans.getText()+"',"
                + "'" + Nm_Pelanggan.getText()+"',"
                + "'" + Nm_Makanan.getText()+"',"
                + "'" + Nm_Minuman.getText()+"',"
                + "'" + Total_Pesanan.getText()+"',"
                + "'" + Bayar_Pesanan.getText()+"',"
                + "'" + Kembalian_Pesanan.getText()+"')";
               
                java.sql.Connection conn = (java.sql.Connection)koneksi.koneksiDB();
                java.sql.PreparedStatement pst = conn.prepareStatement(sql);
                pst.execute();
                JOptionPane.showMessageDialog(null, "Terima Kasih !!! Pesanan Anda telah diProses");
            }catch (SQLException | HeadlessException e){
                JOptionPane.showMessageDialog(null, e);
            }
            No_Trans.requestFocus();
    } 

Source Code Button(Tombol) View Data
 private void ViewDataActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        Form_Database FData = new Form_Database();
        FData.setLocationRelativeTo(FData);
        FData.setVisible(true);
    }                                                   

Source Code Button(Tombol) Order Baru
private void order_baruActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        clear();
        No_Trans.requestFocus();
    }

Selanjutnya Buatlah Form baru didalam Package(Folder) Eka dan beri nama "Form Database"
Caranya :

  1. Klik kanan pada package "Eka"
  2. Pilih New, lalu pilih JFrame Form"
  3. Lalu ketikkan nama formnya "Form Database"
  4. Lalu buatlah desain form seperti gambar berikut ini :




Berikut ini Source Code untuk Button "Cari"
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        try {
            String sql = "Select * from transaksi where No_Transaksi like '"+No_Trans.getText()+"'";
            java.sql.Connection conn = (java.sql.Connection)koneksi.koneksiDB();
            java.sql.PreparedStatement pst = conn.prepareStatement(sql);
            ResultSet RS=pst.executeQuery(sql);
           
            if(RS.next()){
            Nm_Pelanggan.setText(RS.getString(2));
            Nm_Makanan.setText(RS.getString(3));
            Nm_Minuman.setText(RS.getString(4));
            Total_Pesanan.setText(RS.getString(5));
            Bayar_Pesanan.setText(RS.getString(6));
            Kembalian_Pesanan.setText(RS.getString(7));
           
            }else {
             JOptionPane.showMessageDialog(null, "Data Tidak Ada");
             No_Trans.setText(null);
             No_Trans.requestFocus();
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

Berikut ini source code tombol "New"
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        No_Trans.setText(null);
        Nm_Pelanggan.setText(null);
        Nm_Makanan.setText(null);
        Nm_Minuman.setText(null);
        Total_Pesanan.setText(null);
        Bayar_Pesanan.setText(null);
        Kembalian_Pesanan.setText(null);
       
        No_Trans.requestFocus();
    }

Berikut ini source code tombol "Update"
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:

                                                    try{String sql = "update transaksi SET No_Transaksi='"+No_Trans.getText()+"',Nama_Pelanggan='"+Nm_Pelanggan.getText()+"',Makanan='"+Nm_Makanan.getText()+"',Minuman='"+Nm_Minuman.getText()+"',Total_Harga='"+Total_Pesanan.getText()+"',Bayar='"+Bayar_Pesanan.getText()+"',Kembalian='"+Kembalian_Pesanan.getText()+"' where No_Transaksi='"+No_Trans.getText()+"'";
                java.sql.Connection conn = (java.sql.Connection)koneksi.koneksiDB();
                java.sql.PreparedStatement pst = conn.prepareStatement(sql);
                pst.execute();
                JOptionPane.showMessageDialog(null, "Data Berhasil TerUpdate");
            }catch (SQLException | HeadlessException e) {
                JOptionPane.showMessageDialog(null, e);
            }
        GetData();
        No_Trans.requestFocus();
    }

Berikut ini source code dari tombol "Delete"
 private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        int x=
JOptionPane.showConfirmDialog(null, "Yakin Mau diHapus?", "Konfirmasi", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
//Jika Pilihan Yes dipilih
if(x==JOptionPane.YES_OPTION)
{
    try{ //hapus data
            String sql ="delete from transaksi where No_Transaksi='"+No_Trans.getText()+"'";
            java.sql.Connection conn = (java.sql.Connection)koneksi.koneksiDB();
            java.sql.PreparedStatement pst = conn.prepareStatement(sql);
            pst.execute();
            JOptionPane.showMessageDialog(null, "Data akan dihapus?");
            databaru=true;
           
        }catch (SQLException | HeadlessException e){   
        }
}else {
    No_Trans.requestFocus();
}
        GetData();
        No_Trans.requestFocus();
    }

Berikut ini Source Code untuk MouseClicked table
private void Tbl_TransaksiMouseClicked(java.awt.event.MouseEvent evt) {                                         
// TODO add your handling code here:
        try{
            int row =Tbl_Transaksi.getSelectedRow();
            String tabel_klik=(Tbl_Transaksi.getModel().getValueAt(row, 0).toString());
            java.sql.Connection conn =(java.sql.Connection)koneksi.koneksiDB();
            java.sql.Statement stm = conn.createStatement();
            java.sql.ResultSet sql = stm.executeQuery("select * from transaksi where No_Transaksi='"+tabel_klik+"'");
            if(sql.next()){
                String no = sql.getString("No_Transaksi");
                No_Trans.setText(no);
                String nm = sql.getString("Nama_Pelanggan");
                Nm_Pelanggan.setText(nm);
                String nm_mak = sql.getString("Makanan");
                Nm_Makanan.setText(nm_mak);
                String nm_min = sql.getString("Minuman");
                Nm_Minuman.setText(nm_min);
                String tot = sql.getString("Total_Harga");
                Total_Pesanan.setText(tot);
                String byr = sql.getString("Bayar");
                Bayar_Pesanan.setText(byr);
                String back = sql.getString("Kembalian");
                Kembalian_Pesanan.setText(back);
            }
        }catch (Exception e) {
           
        }
    }             


Jangan Lupa tambahkan beberapa import dibawah ini tepat dibawah nama Package Anda

import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import net.proteanit.sql.DbUtils;

public class Form_Database extends javax.swing.JFrame {
    public boolean databaru;
    /**
     * Creates new form Form_Database
     */
    public Form_Database() {
        initComponents();
        this.setLocationRelativeTo(null);
        setTanggal();
        setJam();
        GetData();
        No_Trans.requestFocus();
    }
   
    void GetData() {
        try{
            Connection conn =(Connection)koneksi.koneksiDB();
            java.sql.Statement stm = conn.createStatement();
            java.sql.ResultSet sql = stm.executeQuery("select * from transaksi");
            Tbl_Transaksi.setModel(DbUtils.resultSetToTableModel(sql));
        }
        catch (SQLException | HeadlessException e){
           
        }
    }

Perhatikan Daftar Library dan File Jar pada Package "Libraries"



TAMPILAN PROJECT SAAT RUNNING


TAMPILAN LOGIN



TAMPILAN FORM_TRANSAKSI



TAMPILAN FORM VIEW_DATA



Sekian Project yang saya buat, mohon maaf apabila ada kata-kata saya kurang jelas/sulit dipahami :

Nama  : Eka Bagus Meyyanto
NIM    : 161011400088
KELAS : 05 TPLM 001

Tidak ada komentar:

Posting Komentar