Jumat, 21 Juli 2017

Program Restoran Lama Saji dengan Database

Assalamu'alaikum wr. wb.

Kali ini saya akan membuat program restoran kembali ,walaupun teman bilang harus ganti judul program tapi bagi saya ini tema yang buat saya menarik. Namun kali ini sedikit saya tambahkan komponen-komponen seperti JTable.  Dalam program saya kali ini komponen yang saya gunakan ialah :

Label
TextField
Button
RadioButton
CheckBox
MenuBar
PopUp Menu
Table
JOptionPane

Untuk formula ,saya hanya menggunakan rumus perkalian yaitu total=harga*jumlah dan Kembalian=cash-total serta perhitungan pajak 10% yang di tambahkan pada total harga.

Langsung saja kita bahas .. inilah tampilan menuform awal :



Lalu ini tampilan form daftar menu yang akan muncul setelah menubar "menu" di klik :



Lalu ini tampilan from order :



Ini tampilan form saran :



Langsung saja ke inti nya pertama-tama kita membuat database terlebih dahulu. seperti di bawah ini :



Nama database nya adalah order dan nama table nya ialah paket. Isi table telah di sesuaikan sebelumnya

Lalu kita buka netbeans kita lalu buat project baru. dengan nama Menu lalu buat package baru dengan nama koneksi untuk mengkoneksikan file program kita dengan database pada gambar di atas. seperti inilah skrip nya :



ini skrip untuk form menuform yang ada di awal tadi :

Untuk memanggil form DaftarMenu :

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

Untuk Memanggil form Order :

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

Untuk memanggil form Saran :

private void saranActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        menuinput food=new menuinput();
        food.setLocationRelativeTo(food);
        food.setVisible(true);
        dispose();

Lalu ini untuk menubar Exit :

  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.ERROR_MESSAGE);
        if (a==JOptionPane.YES_OPTION){
            dispose();
        }

Pada Form Daftar Menu ada source code untuk menampilkan data dari database ke table dan inilah source code nya :

package menu;

import koneksi.konek;
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;

/**
 *
 * @author Nafriyu
 */
public class DaftarMenu extends javax.swing.JFrame {

    /**
     * Creates new form DaftarMenu
     */
    public DaftarMenu() {
        initComponents();
        datatable();
    }
 
    public void datatable(){
        DefaultTableModel tbl= new DefaultTableModel();
        tbl.addColumn("Kode Paket");
        tbl.addColumn("Isi Paket");
        tbl.addColumn("Harga");
        table2.setModel(tbl);
        try{
            Statement statement= (Statement)konek.GetConnection().createStatement();
            ResultSet res =statement.executeQuery("select * from paket");
            while (res.next())
            {
                tbl.addRow(new Object[]{
                   res.getString("kodepaket"),
                   res.getString("isipaket"),
                    res.getString("harga")
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }


Lalu hanya ada 1 button  Back yang berisi kode :

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

Setelah itu kita ke form Order. Disini saya beri void agar lebih mudah :

package menu;

import koneksi.konek;
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;

/**
 *
 * @author Nafriyu
 */
public class menuorder extends javax.swing.JFrame {

    /**
     * Creates new form menuorder
     */
    public menuorder() {
        initComponents();
        datatable();
    }
 
    int a ,b ,c ,d ,e ,f ,g ,h ,i ,j;
 
    public void datatable(){
        DefaultTableModel tbl= new DefaultTableModel();
        tbl.addColumn("Isi Paket");
        tbl.addColumn("Harga");
        table.setModel(tbl);
        try{
            Statement statement= (Statement)konek.GetConnection().createStatement();
            ResultSet res =statement.executeQuery("select * from paket");
            while (res.next())
            {
                tbl.addRow(new Object[]{
                 
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }
    void cari(){
        try{
           Statement statement=(Statement) konek.GetConnection().createStatement();
           ResultSet res= statement.executeQuery("select * from paket where "+"kodepaket='"+kodepaket.getText()+"'");
           DefaultTableModel tbl= new DefaultTableModel();
           tbl.addColumn("Isi Paket");
           tbl.addColumn("Harga");
         
           table.setModel(tbl);
           while (res.next()) {
               tbl.addRow(new Object[]{
                   res.getString("isipaket"),
                    res.getString("harga")
               });
           }
           table.setModel(tbl);
       }catch (Exception e){
           JOptionPane.showMessageDialog(rootPane,"Salah");
       }
    }
    void keadaan(){
        if(bungkus.isSelected()){
            keadaan.setText("Keadaan : "+bungkus.getText());
        }
        if(ditempat.isSelected()){
            keadaan.setText("Keadaan : "+ditempat.getText());
        }
    }
    void cek(){
        g=table.getRowCount();
        for (h=0;h<g;h++){
        a=Integer.parseInt(table.getValueAt(h,1).toString());
        i=Integer.parseInt(jumlah.getText());
        b=a*i;
        total.setText(""+b);
        }
    }
    void hitung(){
        c=Integer.parseInt(total.getText());
        d=Integer.parseInt(cash.getText());
        e=d-c;
        kembali.setText(""+e);
    }
    void pajak(){
        if (pajak.isSelected()){
        f=b/10;
        j=b+f;
        total.setText(""+j);
        }else{
            total.setText(""+b);
        }
    }
    void refresh(){
        try{
            Statement statement=(Statement) konek.GetConnection().createStatement();
            statement.executeUpdate("DELETE from paket where kodepaket=('"+kodepaket+"');");
            JOptionPane.showMessageDialog(null, "Data berhasil ter-refresh" ,"Refresh",JOptionPane.INFORMATION_MESSAGE);
        kodepaket.setText("");
        jumlah.setText("");
        total.setText("");
        cash.setText("");
        kembali.setText("");
        group.clearSelection();
        pajak.setSelected(false);
        keadaan.setText("Keadaan : ");
        }catch(Exception e){
        }
        datatable();
    }
    void back(){
        MenuFrame food=new MenuFrame();
        food.setLocationRelativeTo(food);
        food.setVisible(true);
        dispose();
    }

Setelah itu tempatkan void tersebut seperti ini :

Untuk button cari :
private void cariActionPerformed(java.awt.event.ActionEvent evt) {                                  
        // TODO add your handling code here:
       cari();
    }

Untuk RadioButton Bungkus dan Makan di tempat :
private void bungkusActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        keadaan();
    }                                    

    private void ditempatActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        keadaan();
    }

Untuk Button cek :
private void cekActionPerformed(java.awt.event.ActionEvent evt) {                                  
        // TODO add your handling code here:
        cek();
    }

Untuk Button hitung :
 private void hitungActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        hitung();
    }

Untuk Checkbox pajak :
 private void pajakActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        pajak();
 

Untuk Refresh saya menggunakan Popup menu yang mengharuskan untuk mengetik kode seperti ini pada MouseReleased :

private void formMouseReleased(java.awt.event.MouseEvent evt) {                                
        // TODO add your handling code here:
        if(evt.isPopupTrigger()){
            popup.show(this,evt.getX(), evt.getY());
        }
    }      
                       
Baru lah pada menuitem popup nya kita beri void seperti ini :

    private void refreshActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        refresh();
    }          

yang terakhir button back :

private void backActionPerformed(java.awt.event.ActionEvent evt) {                                  
        // TODO add your handling code here:
        back();
    }

Setelah dari form Order kita lalu ke form Input yang berisi saran dari pengunjung. inilah kodenya :

package menu;

import koneksi.konek;
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;

/**
 *
 * @author Nafriyu
 */
public class menuinput extends javax.swing.JFrame {

    /**
     * Creates new form menuinput
     */
    public menuinput() {
        initComponents();
        datatable();
    }
 
    String kodepaket ,isipaket ,harga;
 
    public void datatable(){
        DefaultTableModel tbl= new DefaultTableModel();
        tbl.addColumn("Kode Paket");
        tbl.addColumn("Isi Paket");
        tbl.addColumn("Harga");
        table2.setModel(tbl);
        try{
            Statement statement= (Statement)konek.GetConnection().createStatement();
            ResultSet res =statement.executeQuery("select * from paket");
            while (res.next())
            {
                tbl.addRow(new Object[]{
                   res.getString("kodepaket"),
                   res.getString("isipaket"),
                    res.getString("harga")
                });
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane,"Salah");
        }
    }
    void simpan(){
        kodepaket=kodepaket2.getText();
        isipaket=isipaket2.getText();
        harga=harga2.getText();
     
        try{
           Statement statement=(Statement) konek.GetConnection().createStatement();
           statement.executeUpdate("insert into paket VALUES ('"+kodepaket+"','"+isipaket+"','"+harga+"');");
           statement.close();
           JOptionPane.showMessageDialog(null, "Data Berhasil Tersimpan");
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Data Gagal Tersimpan");
        }
        datatable();
    }
    void cari(){
        try{
           Statement statement=(Statement) konek.GetConnection().createStatement();
           ResultSet res= statement.executeQuery("select * from paket where "+"kodepaket='"+kodepaket2.getText()+"'");
           DefaultTableModel tbl= new DefaultTableModel();
           tbl.addColumn("Kode Paket");
           tbl.addColumn("Isi Paket");
           tbl.addColumn("Harga");
         
           table2.setModel(tbl);
           while (res.next()) {
               tbl.addRow(new Object[]{
                  res.getString("kodepaket"),
                   res.getString("isipaket"),
                    res.getString("harga")
               });
           }
           table2.setModel(tbl);
       }catch (Exception e){
           JOptionPane.showMessageDialog(rootPane,"Salah");
       }
    }
    void refresh(){
        try{
            kodepaket2.setText("");
            isipaket2.setText("");
            harga2.setText("");
            JOptionPane.showMessageDialog(null, "Data berhasil ter-refresh" ,"Refresh",JOptionPane.INFORMATION_MESSAGE);
            }catch(Exception e){
        }
        datatable();
    }
    void hapus(){
        kodepaket=kodepaket2.getText();
     
        try{
           Statement statement=(Statement) konek.GetConnection().createStatement();
           statement.executeUpdate("DELETE from paket where kodepaket =('"+kodepaket+"');");
           JOptionPane.showMessageDialog(null, "Data Berhasil Terhapus");
           kodepaket2.setText("");
           isipaket2.setText("");
           harga2.setText("");
           kodepaket2.requestFocus();
        }catch (Exception e){
            JOptionPane.showMessageDialog(null, "Data Gagal Terhapus");
        }
        datatable();
    }
    void back(){
         MenuFrame food=new MenuFrame();
        food.setLocationRelativeTo(food);
        food.setVisible(true);
        dispose();
    }

Lalu paste void di atas pada komponen di bawah ini :

Button simpan :

private void simpanActionPerformed(java.awt.event.ActionEvent evt) {                                    
        // TODO add your handling code here:
        simpan();
    }

Button cari :

private void cariActionPerformed(java.awt.event.ActionEvent evt) {                                  
        // TODO add your handling code here:
        cari();
    }

Button refresh :

private void refreshActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        refresh();
    }                                    

Button back :

    private void backActionPerformed(java.awt.event.ActionEvent evt) {                                  
        // TODO add your handling code here:
       back();
    }

Semuanya telah selesai .. sekarang hanya tersisa tampilan output nya so let's check it out .!!

 











Sekian untuk program saya kali ini .. semoga saya dapat membuat program yang jauh lebih baik lagi. Dan terimakasih telah mampir ke blog saya ini.

Oh iya ini tugas UAS gua ;D semoga tidak terlalu mengecewakan ya .. Sampai jumpa di semester 3 nanti guys.