Laman

Selamat Datang Sahabat! Selamat ber-sharing Ilmu Komputer

Minggu, 30 Agustus 2015

Java Program OOP: Studi Kasus "Food Court 'Oishi Ne'"

Nah, sekarang kita akan membahas mengenai Java Program OOP (Object Oriented Program) dengan Studi Kasus "Food Court 'Oishi Ne'"

Berikut analisa Kasusnya!
Food Court "Oishi Ne" merupakan rumah makan yang menyediakan makanan dimana masing-masing menu makanan disediakan dalam bentuk paket nama, menu paket dan harga.
Untuk menu minuman, Food Court 'Oishi Ne' menyediakan Air Mineral, berbagai macam Juice dengan harga yang sama dan Es Teh Manis
Agar lebih dekat dengan pelanggan dan meningkatkan pelayanan, Food Court 'Oishi Ne' memberikan pelayanan tambahan yaitu delivery dan take away.
Proses Program:
  1. Untuk memulai program, kasir harus menekan tombol bersih agar imputan transaksi seblumnya hilang dan semua objek dalam program siap digunakan.
  2. Pelanggan memilih paket makanan yang akan dibeli. dengan memilih salah satu paket makan nama menu dan harga paket akan tampil di masing-masing textfield.
  3. pelanggan menentukan jumla menu yang dibeli dengan tugas kasir adalah menginput jumlah beli sesuai dengan keinginan pelanggan. Dengan menekan tombol enter maka total harga yang harus dibayar oleh pelanggan akan tampil sesuai dengan kalkulasi harga paket dan jumlah yang dibeli.
  4.  Sebelum transaksi selesai, pelanggan diperbolehkan untuk memilih minuman. 
  5. Ketika diinput jumlah minumannya, maka total bayar akan bertambah sesuai dengan hasil kalkulasi pembelian minuman. Contoh: Jika total bayar 1000 dan pelanggan membeli air mineral 2 gelas dengan total harga 1000, maka total bayar menjadi 2000.
  6. Begitu juga dengan jenis pelayanannya. Untuk pelayanan delivery, Food Court 'Oishi Ne' memberikan tarif 10% dari total bayar. Sedangkan untuk take away tidak dikenakan tarif. Tarif pelayanan akan muncul otomatis disebuah TextField.
  7. Sleanjutkan kasir akan menekan tombol 'Hitung' sehingga total bayar akan dijumlahkan dengan tarif pelayanannya.
  8. Kasir akan menginput uang bayar yang diberikan pelanggan, Jika uangnya melebihi dari total yang harus dibayarkan, makan akan muncul otomatis uang kembaliannya.
  9. Jika transaksi selesai maka kasir dapat menekan tombol keluar, dimana pada saat menekan tombol tersebut, program mengkonfirmasi kasir dengan memberikan pertanyaan "Apakah anda yakin ingin menutup aplikasi?". Jika kasir memilih Yes maka program ditutup dan sebaliknya.
Dari analisa tersebut diatas, maka designlah program tersebut dengan menggunakan Program OOP!

Pertama, buatlah class java dengan Java Class yang diberi nama 'FormFood' (atau sesuaikan dengan keinginan anda)

Kemudian tulis coding dibawah ini pada Java Class yang anda buat tadi.



public class FormFood {

   public String paket,makan,minum,mnm,layan;

   public int jml_mkn, jml_mnm;

   public double hrg_mkn, hrg_mnm,biaya,ub,uk, ttl, total, ttlbyr;

   

   public void setPaket ( String val )

   { paket=val; }

   public String getPaket()

   { return paket; }    

   public void setPilihPaket ()

   { if (paket.equalsIgnoreCase("PAKET 1"))

       { makan="Sayur Asem, Tempe Goreng, Kerupuk";

         hrg_mkn=7000; }

     else if (paket.equalsIgnoreCase("PAKET 2"))

       { makan="Ayam Goreng, Sambel, Balado Kentang";

         hrg_mkn=10000; }

     else if (paket.equalsIgnoreCase("PAKET 3"))

       { makan="Balado Telur, Sayur Lodeh, Tahu";

         hrg_mkn=8500; }

     else

       { makan="";

         hrg_mkn=0; } }

   public void setMakan(String val)

   { makan=val; }

   public String getMakan()

   { return makan; }

   public void setHrgMkn(Double val)

   { hrg_mkn=val; }

   public double getHrgMkn()

   { return hrg_mkn; }

   public void setJmlMkn(Integer val)

   { jml_mkn=val; }

   public int getJmlMkn()

   { return jml_mkn; }

  

   public void setMinum (String val)

   { minum=val; }

   public String getMinum()

   { return minum; }

   public void setPilihMinum()

   { if ( minum.equalsIgnoreCase("ES TEH MANIS"))

       { hrg_mnm=2500; }

     else if ( minum.equalsIgnoreCase("JUS"))

       { hrg_mnm=5000; }

     else if ( minum.equalsIgnoreCase("AQUA BOTOL"))

       { hrg_mnm=500; }

     else { hrg_mnm=0; } }

   public void setHrgMnm(Double val)

   { hrg_mnm=val; }

   public double getHrgMnm()

   { return hrg_mnm; }

   public void setJmlMnm(Integer val)

   { jml_mnm=val; }

   public int getJmlMnm()

   { return jml_mnm; }

  

   public void setLayan(String val)

    { layan = val; }

    public String getLayan()

    { return layan; }

    public void setSeleksiLayan()

    { if (layan.equalsIgnoreCase("Take A Way"))

       { biaya=0; }

    else if (layan.equalsIgnoreCase("Delivery"))

       { biaya=0.1*((hrg_mkn*jml_mkn)+(hrg_mnm*jml_mnm)); }

    else { biaya=0; }

    }

    public void setBiaya(Double val)

    { biaya=val; }

    public double getBiaya()

    { return biaya; }

  

    public void setTtl(Double val)

    { ttl=val; }

    public double getTtl()

    { return (hrg_mkn*jml_mkn); }

   

    public void setTotal(Double val)

    { total=val; }

    public double getTotal()

    { return ((hrg_mkn*jml_mkn)+(hrg_mnm*jml_mnm)); }

   

    public void setTtl_byr(Double val)

    { ttlbyr=val; }

    public double getTtl_byr()

    { ttlbyr=(hrg_mkn*jml_mkn)+(hrg_mnm*jml_mnm)+biaya;

      return (ttlbyr); }

   

    public void setUb(Double val)

    { ub=val; }

    public double getUb()

    { return ub; }

    public double getUk()

    { uk=ub-ttlbyr;

      return uk; }

}





Setelah membuat Class diatas, Buatlah program form dengan design sebagai berikut yang diberi nama 'FormFood1' :

Berikut adalah listing coding yang di FormFood1:


import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;

public class FormFood1 extends javax.swing.JFrame {
    FormFood food = new FormFood();

public FormFood1() {
        initComponents();
        setLocationRelativeTo(this);
        bersih();
        nonaktif();
        bhitung.setEnabled(false);
    }

private void bbersihActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        bersih();
        aktif();
        bhitung.setEnabled(true);
        cmakan.requestFocus();
    }                                      

    private void bkeluarActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
           int x;
        x=JOptionPane.showConfirmDialog(null,"Anda Ingin Yakin Menutup Aplikasi?","Konfirmasi",JOptionPane.YES_NO_OPTION);
        if (x==JOptionPane.YES_OPTION)
            dispose();
        else
            return;
    }                                       

    private void cmakanActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        food.setPaket(cmakan.getSelectedItem().toString());
        food.setPilihPaket();
        tmenu.setText(food.getMakan());
        thrgmenu.setText(Double.toString(food.getHrgMkn()));
        tjmlmkn.grabFocus();
    }                                     

    private void cminumActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
          food.setMinum(cminum.getSelectedItem().toString());
        food.setPilihMinum();
        thrgmnm.setText(Double.toString(food.getHrgMnm()));
        tjmlmnm.grabFocus();
    }                                     

    private void tjmlmknKeyPressed(java.awt.event.KeyEvent evt) {                                  
        // TODO add your handling code here:
          if (evt.getKeyCode()==KeyEvent.VK_ENTER)
        { food.setJmlMkn(Integer.parseInt(tjmlmkn.getText()));
          ttotal.setText(Double.toString(food.getTtl()));
        }
    }                                 

    private void tjmlmnmKeyPressed(java.awt.event.KeyEvent evt) {                                  
        // TODO add your handling code here:
         if (evt.getKeyCode()==KeyEvent.VK_ENTER)
        { food.setJmlMnm(Integer.parseInt(tjmlmnm.getText()));
          ttotal.setText(Double.toString(food.getTotal()));
        }
    }                                 

    private void rbtakeActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
         food.setLayan(rbtake.getText());
        food.setSeleksiLayan();
        ttake.setText(Double.toString(food.getBiaya()));
        tdeliv.setText("");
    }                                     

    private void rbdelivActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
         food.setLayan(rbdeliv.getText());
        food.setSeleksiLayan();
        tdeliv.setText(Double.toString(food.getBiaya()));
        ttake.setText("");
    }                                       

    private void bhitungActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
         ttotal.setText(Double.toString(food.getTtl_byr()));
        tubay.grabFocus();
    }                                      

    private void tubayKeyPressed(java.awt.event.KeyEvent evt) {                                
        // TODO add your handling code here:
           if (evt.getKeyCode()==KeyEvent.VK_ENTER)
        {   food.setUb(Double.parseDouble(tubay.getText()));
            tukem.setText(Double.toString(food.getUk()));
            if(food.getUb()<food.getTtl_byr())
            { JOptionPane.showMessageDialog(null,"Pembayaran Anda Kurang!!","Warning",JOptionPane.OK_OPTION);
                tukem.setText("");
                tubay.setText("");}
            else { return; }
        }
    }                               

    void bersih()
    { cmakan.setSelectedItem("--PILIH--");
      cminum.setSelectedItem("--PILIH--");
      tmenu.setText("");
      thrgmenu.setText("");
      tjmlmkn.setText("");
      thrgmnm.setText("");
      tjmlmnm.setText("");
      pilihan.clearSelection();
      ttake.setText("");
      tdeliv.setText("");
      ttotal.setText("");
      tubay.setText("");
      tukem.setText("");    }
   
    void aktif()
    { cmakan.setEnabled(true);
      cminum.setEnabled(true);
      tjmlmkn.setEnabled(true);
      tjmlmnm.setEnabled(true);
      rbtake.setEnabled(true);
      rbdeliv.setEnabled(true);
      tubay.setEnabled(true); }
   
     void nonaktif()
    { cmakan.setEnabled(false);
      cminum.setEnabled(false);
      tmenu.setEnabled(false);
      thrgmenu.setEnabled(false);
      thrgmnm.setEnabled(false);
      tjmlmkn.setEnabled(false);
      tjmlmnm.setEnabled(false);
      rbtake.setEnabled(false);
      rbdeliv.setEnabled(false);
      ttake.setEnabled(false);
      tdeliv.setEnabled(false);
      ttotal.setEnabled(false);
      tubay.setEnabled(false);
      tukem.setEnabled(false); }