Wednesday, December 11, 2019

Final Project PBO | Point of Sale

Berikut Screenshot program Point of Sales :

Tampilan awal


Tampilan membuat item setelah mengklik tombol add item:


Masuk frame Create new item

Muncul item yang telah di add:

Klik done lalu akan kembali ke frame awal.
Klik item yang ingin dibeli maka label charge akan bertambah sesuai harga item :

Klik tombol print untuk mengeprint struk :

Tampilan setelah tombol clear sale di tekan :

Tampilan edit item :


berikut Source code
DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL
  1.     import java.awt.event.*;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.util.*;
  5. import javax.swing.table.*;
  6. class MainGUI extends JFrame implements ActionListener {
  7.   static MainGUI maingui;
  8.   // create a frame
  9.   static JFrame frame;
  10.     // create components
  11.   static JTextField labeltotal,labelcustom;
  12.   static JButton iconedit, iconpurchase,tombolbikin, tombolselesai,tombol_list_barang;
  13.   static JTable maintable;
  14.   static DefaultTableModel model;
  15.   static JScrollPane sp;
  16.   static Boolean edit = false;
  17.     // store operands
  18.   static String s0 = "";
  19.   static String st;
  20.   static String[] columnnama = { "Nama""Harga""kategori""Stock""Keterangan""Jumlah" };
  21.   // create an itemframe
  22.   static JFrame itemframe;
  23.     // create components
  24.    static JTextField labelNama,labelkategori,labelHarga, labelStock, labeldesc;
  25.    static DefaultListModel listModel;
  26.    static JButton tombolExit, tombolSimpan, tomboldelete, tombolExitpurchase, tombolclear;
  27.    static Boolean edititem,purchase;  
  28.    static JFrame purchaseframe;
  29.    static JLabel currentsale;
  30.    static JTextField labelpurchasetotal;
  31.    static JTable purchasetable;
  32.    static JScrollPane purchasesp;
  33.    static DefaultTableModel purchasemodel;
  34.    static String[] purchasecolumnnama = { "Nama""Jumlah""Harga""Delete" };
  35.     // default constructor
  36.     MainGUI()
  37.     {
  38.     st = "0";
  39.     }
  40.     // main function
  41.     public static void create()
  42.     {
  43.         // create a frame
  44.         frame = new JFrame("Point Of Sales");
  45.         // create a object of class
  46.         maingui = new MainGUI();
  47.         // create a textfield
  48.         labeltotal = new JTextField(24);
  49.         labeltotal.setText("Charge Rp. 0");
  50.         labelcustom = new JTextField(24);
  51.         labelcustom.setText("Rp. 0");
  52.         // set the textfield to non editable
  53.         labeltotal.setEditable(false);
  54.         labelcustom.setEditable(false);
  55.       ImageIcon imageIcon = new ImageIcon("resources/search-button-icon.png");
  56.       Image image = imageIcon.getImage();
  57.       Image newimg = image.getScaledInstance(1818Image.SCALE_SMOOTH);
  58.       imageIcon = new ImageIcon(newimg);
  59.    
  60.       imageIcon = new ImageIcon("resources/edit-button-icon.jpg");
  61.       image = imageIcon.getImage();
  62.       newimg = image.getScaledInstance(1616Image.SCALE_SMOOTH);
  63.       imageIcon = new ImageIcon(newimg);
  64.       iconedit = new JButton("", imageIcon);
  65.       iconedit.setActionCommand("edit");
  66.       iconedit.setPreferredSize(new Dimension(24018));
  67.       iconedit.setBorder(BorderFactory.createEmptyBorder());
  68.       iconedit.setBackground(Color.PINK);
  69.       //create menubutton
  70.       tombol_list_barang = new JButton("Barang");
  71.       tombol_list_barang.setBackground(Color.PINK);
  72.       tombol_list_barang.setPreferredSize(new Dimension(24050));
  73.       tombolbikin = new JButton("Buat Barang Baru");
  74.       tombolbikin.setPreferredSize(new Dimension(24050));
  75.       tombolbikin.setBackground(Color.PINK);
  76.       tombolselesai = new JButton("Selesai");
  77.       tombolselesai.setPreferredSize(new Dimension(24050));
  78.       tombolselesai.setBackground(Color.PINK);
  79.    
  80.       imageIcon = new ImageIcon("resources/print.png");
  81.       image = imageIcon.getImage();
  82.       newimg = image.getScaledInstance(5050Image.SCALE_SMOOTH);
  83.       imageIcon = new ImageIcon(newimg);
  84.    
  85.       iconpurchase = new JButton("", imageIcon);
  86.    
  87.       iconpurchase.setActionCommand("Purchase");
  88.       iconpurchase.setPreferredSize(new Dimension(24050));
  89.       iconpurchase.setBackground(Color.PINK);
  90.         // create a panel
  91.         JPanel panel = new JPanel();
  92.        // Initializing the JTable
  93.       model = new DefaultTableModel(columnnama, 0);
  94.       maintable = new JTable(model);
  95.       maintable.setTableHeader(null);
  96.       maintable.setShowGrid(false);
  97.       maintable.setDefaultEditor(Object.classnull);
  98.       maintable.getColumnModel().getColumn(2).setMinWidth(0);
  99.       maintable.getColumnModel().getColumn(2).setMaxWidth(0);
  100.       maintable.getColumnModel().getColumn(2).setWidth(0);
  101.       maintable.getColumnModel().getColumn(3).setMinWidth(0);
  102.       maintable.getColumnModel().getColumn(3).setMaxWidth(0);
  103.       maintable.getColumnModel().getColumn(3).setWidth(0);
  104.       maintable.getColumnModel().getColumn(4).setMinWidth(0);
  105.       maintable.getColumnModel().getColumn(4).setMaxWidth(0);
  106.       maintable.getColumnModel().getColumn(4).setWidth(0);
  107.       maintable.getColumnModel().getColumn(5).setMinWidth(0);
  108.       maintable.getColumnModel().getColumn(5).setMaxWidth(0);
  109.       maintable.getColumnModel().getColumn(5).setWidth(0);
  110.       maintable.addMouseListener(new MouseAdapter()
  111.      {
  112.        public void mouseClicked(MouseEvent event)
  113.        {
  114.          if (!edit)
  115.          {
  116.            int row = maintable.rowAtPoint(event.getPoint());
  117.            int col = 1;
  118.            int te = 0;
  119.            s0 = maintable.getValueAt(row, col).toString();
  120.            te = (Integer.parseInt(s0) + Integer.parseInt(st));
  121.            st = Integer.toString(te);
  122.            labeltotal.setText("Charge Rp. " + st);
  123.            model.setValueAt(Integer.parseInt(maintable.getValueAt(row, 5).toString()) + 1, row, 5);
  124.            maintable.setModel(model);
  125.          }
  126.           else
  127.           {
  128.            createItemGUI("edit", maintable.rowAtPoint(event.getPoint()));
  129.           }
  130.        }
  131.      }
  132.     );
  133.     // adding it to JScrollPane
  134.     sp = new JScrollPane(maintable);
  135.     sp.setPreferredSize(new Dimension(240150));
  136.        
  137.     // add action listeners
  138.     iconedit.addActionListener(maingui);    
  139.     iconpurchase.addActionListener(maingui);    
  140.     tombol_list_barang.addActionListener(maingui);  
  141.    
  142.     tombolbikin.addActionListener(maingui);
  143.     tombolselesai.addActionListener(maingui);
  144.     // add elements to panel
  145.     panel.add(labeltotal);
  146.     panel.add(tombol_list_barang
  147. );
  148.     panel.add(iconedit);
  149.     panel.add(tombolbikin);
  150.     panel.add(sp);
  151.     panel.add(tombolselesai);
  152.     panel.add(iconpurchase);
  153.     panel.setBackground(new java.awt.Color(238,105,100));
  154.     // add panel to frame
  155.     frame.add(panel);
  156.     frame.setSize(280500);
  157.     frame.setBackground(new java.awt.Color(238,105,100));
  158.     maingui.startLibrary();
  159.     frame.show();
  160.   }
  161.   public static void createItemGUI(String buffer, int row)
  162.     {
  163.     if(buffer.compareTo("new") == 0)
  164.     {
  165.       edititem = false;
  166.     }
  167.     else
  168.     {
  169.       edititem = true;
  170.     }
  171.     if(!edititem)
  172.     {
  173.       // create an itemframe
  174.       itemframe = new JFrame("Buat Barang Baru");
  175.     }
  176.     else
  177.     {
  178.       itemframe = new JFrame("Edit Item");
  179.     }
  180.         // create a textfield
  181.     labelNama = new JTextField(24);
  182.     labelHarga = new JTextField(24);
  183.     labelkategori = new JTextField(24);
  184.     labelStock = new JTextField(24);
  185.     labeldesc = new JTextField(24);
  186.     if(edititem)
  187.     {
  188.       labelNama.setText(maintable.getValueAt(row, 0).toString());
  189.       labelHarga.setText(maintable.getValueAt(row, 1).toString());
  190.       labelkategori.setText(maintable.getValueAt(row, 2).toString());
  191.       labelStock.setText(maintable.getValueAt(row, 3).toString());
  192.       labeldesc.setText(maintable.getValueAt(row, 4).toString());
  193.     }
  194.     else
  195.     {
  196.       labelNama.setText("Item Nama");
  197.       labelHarga.setText("Harga");
  198.       labelkategori.setText("kategori");
  199.       labelStock.setText("Stock");
  200.       labeldesc.setText("Keterangan");  
  201.     }
  202.    
  203.     labelNama.addMouseListener(new MouseAdapter()
  204.     {
  205.         public void mouseClicked(MouseEvent e)
  206.         {
  207.           if(labelNama.getText().equals("Item Nama"))
  208.           {
  209.             labelNama.setText("");
  210.           }          
  211.         }
  212.     }
  213.     );
  214.    
  215.     labelkategori.addMouseListener(new MouseAdapter()
  216.     {
  217.         public void mouseClicked(MouseEvent e)
  218.         {
  219.           if(labelkategori.getText().equals("kategori"))
  220.           {
  221.             labelkategori.setText("");
  222.           }          
  223.         }
  224.     }
  225.     );
  226.     labelHarga.addMouseListener(new MouseAdapter()
  227.     {
  228.         public void mouseClicked(MouseEvent e)
  229.         {
  230.           if(labelHarga.getText().equals("Harga"))
  231.           {
  232.             labelHarga.setText("");
  233.           }          
  234.         }
  235.     }
  236.     );
  237.        
  238.     labelStock.addMouseListener(new MouseAdapter()
  239.     {
  240.         public void mouseClicked(MouseEvent e)
  241.         {
  242.           if(labelStock.getText().equals("Stock"))
  243.           {
  244.             labelStock.setText("");
  245.           }          
  246.         }
  247.     }
  248.     );
  249.    
  250.     labeldesc.addMouseListener(new MouseAdapter()
  251.     {
  252.         public void mouseClicked(MouseEvent e)
  253.         {
  254.           if(labeldesc.getText().equals("Keterangan"))
  255.           {
  256.             labeldesc.setText("");
  257.           }          
  258.         }
  259.     }
  260.     );
  261.     tombolExit = new JButton("X");
  262.     tombolExit.setPreferredSize(new Dimension(5050));
  263.     tombolExit.setBackground(Color.PINK);
  264.         tombolSimpan = new JButton("Simpan");
  265.     tombolSimpan.setPreferredSize(new Dimension(19050));
  266.     tombolSimpan.setBackground(Color.PINK);
  267.     tomboldelete = new JButton("Hapus");
  268.     tomboldelete.setPreferredSize(new Dimension(24050));
  269.     tomboldelete.setBackground(Color.PINK);
  270.     // create a itempanel
  271.         JPanel itempanel = new JPanel();
  272.        
  273.     // add action listeners
  274.         tombolSimpan.addActionListener(maingui);
  275.     tombolExit.addActionListener(maingui);
  276.     tomboldelete.addActionListener(maingui);
  277.     itempanel.add(labelNama);
  278.     itempanel.add(labelkategori);
  279.     itempanel.add(labelHarga);
  280.     itempanel.add(labelStock);
  281.     itempanel.add(labeldesc);
  282.     itempanel.add(tombolExit);
  283.     itempanel.add(tombolSimpan);
  284.     itempanel.setBackground(new java.awt.Color(238,105,100));
  285.     if(edititem)
  286.     {
  287.       itempanel.add(tomboldelete);
  288.     }
  289.         // add itempanel to itemframe
  290.         itemframe.add(itempanel);
  291.         itemframe.setSize(300500);
  292.         itemframe.setBackground(new java.awt.Color(238,105,100));
  293.         itemframe.show();
  294.   }
  295.   public  void createPurchaseGUI()
  296.     {
  297.     int total = 0;
  298.     Object[] object = new Object[4];
  299.     purchaseframe = new JFrame("Purchase");
  300.     purchaseframe.setBackground(new java.awt.Color(238,105,100));
  301.     purchase = true;
  302.     currentsale = new JLabel("CURRENT SALE");
  303.     labelpurchasetotal = new JTextField(24);
  304.     labelpurchasetotal.setEditable(false);
  305.     labelpurchasetotal.setText("Harga Total Rp. " + st);
  306.     labelpurchasetotal.setBackground(Color.PINK);
  307.     //Initializing the JTable
  308.     purchasemodel = new DefaultTableModel(purchasecolumnnama, 0);
  309.     for(int i = 0; i < maintable.getRowCount(); i++)
  310.     {
  311.       if(Integer.parseInt(maintable.getValueAt(i, 5).toString()) > 0)
  312.       {
  313.         object[0] = maintable.getValueAt(i, 0).toString();
  314.         object[1] = ("x" + maintable.getValueAt(i, 5).toString());
  315.         object[2] = Integer.parseInt(maintable.getValueAt(i, 1).toString()) * Integer.parseInt(maintable.getValueAt(i, 5).toString());
  316.         object[3] = "X";
  317.         total = total + Integer.parseInt(maintable.getValueAt(i, 1).toString()) * Integer.parseInt(maintable.getValueAt(i, 5).toString());
  318.         purchasemodel.addRow(object);
  319.       }
  320.     }
  321.     purchasetable = new JTable(purchasemodel);
  322.     purchasetable.getColumnModel().getColumn(3).setMinWidth(11);
  323.     purchasetable.getColumnModel().getColumn(3).setMaxWidth(11);
  324.     purchasetable.getColumnModel().getColumn(3).setWidth(11);
  325.     purchasetable.setTableHeader(null);
  326.     purchasetable.setShowGrid(false);
  327.     purchasetable.setDefaultEditor(Object.classnull);
  328.     purchasetable.addMouseListener(new MouseAdapter()
  329.     {
  330.       public void mouseClicked(MouseEvent event)
  331.       {
  332.         int col = purchasetable.columnAtPoint(event.getPoint());
  333.         int row = purchasetable.rowAtPoint(event.getPoint());
  334.         if (col == 3)
  335.         {
  336.           int te = 0;
  337.           s0 = purchasetable.getValueAt(row, 2).toString();
  338.           te = (Integer.parseInt(st) - Integer.parseInt(s0));
  339.           st = Integer.toString(te);
  340.           labelpurchasetotal.setText("Harga Total Rp. " + st);
  341.           labeltotal.setText("Harga Total Rp. " + st);
  342.          
  343.           for (int i = 0; i < model.getRowCount(); i++)
  344.           {
  345.             if(model.getValueAt(i, 0) == purchasetable.getValueAt(row, 0))
  346.             {
  347.               model.setValueAt(0, i, 5);
  348.             }
  349.           }
  350.           int numRows = purchasetable.getSelectedRows().length;
  351.           for(int i = 0; i < numRows ; i++)
  352.           {
  353.             purchasemodel.removeRow(purchasetable.getSelectedRow());
  354.           }
  355.           purchasetable.setModel(purchasemodel);
  356.         }
  357.       }
  358.     }
  359.     );
  360.     purchasesp = new JScrollPane(purchasetable);
  361.     purchasesp.setPreferredSize(new Dimension(240150));
  362.    
  363.     tombolExitpurchase = new JButton("X");
  364.     tombolExitpurchase.setPreferredSize(new Dimension(5050));
  365.     tombolExitpurchase.setBackground(Color.PINK);
  366.     tombolclear = new JButton("Clear Sale");
  367.     tombolclear.setPreferredSize(new Dimension(19050));
  368.     tombolclear.setBackground(Color.PINK);
  369.     JPanel purchasepanel = new JPanel();
  370.        
  371.     tombolclear.addActionListener(maingui);
  372.     tombolExitpurchase.addActionListener(maingui);
  373.       purchasepanel.add(currentsale);
  374.       purchasepanel.add(purchasesp);
  375.       purchasepanel.add(labelpurchasetotal);
  376.       purchasepanel.add(tombolExitpurchase);
  377.       purchasepanel.add(tombolclear);
  378.       purchasepanel.setBackground(new java.awt.Color(238,105,100));
  379.       purchaseframe.add(purchasepanel);
  380.       purchaseframe.setSize(300500);
  381.       purchaseframe.setBackground(new java.awt.Color(238,105,100));
  382.       purchaseframe.show();
  383.     }
  384.   public  void startLibrary()
  385.   {
  386.     tombol_list_barang.setEnabled(false);
  387.     labelcustom.setVisible(false);
  388.     iconedit.setVisible(true);
  389.     tombolbikin.setVisible(false);
  390.     sp.setVisible(true);
  391.     tombolselesai.setVisible(false);
  392.     iconpurchase.setVisible(true);
  393.   }
  394.   public  void starteditLibrary()
  395.   {
  396.     tombol_list_barang.setEnabled(false);
  397.     labelcustom.setVisible(false);
  398.     iconedit.setVisible(false);
  399.     tombolbikin.setVisible(true);
  400.     iconpurchase.setVisible(false);
  401.     tombolselesai.setVisible(true);
  402.   }
  403.   public  void startCustom()
  404.   {
  405.     s0 = "";
  406.     labelcustom.setText("Rp. 0");
  407.     tombol_list_barang.setEnabled(true);
  408.     labelcustom.setVisible(true);
  409.     iconedit.setVisible(false);
  410.     tombolbikin.setVisible(false);
  411.    
  412.     sp.setVisible(false);
  413.     iconpurchase.setVisible(false);
  414.      
  415.   }
  416.     public void actionPerformed(ActionEvent event)
  417.     {
  418.         String s = event.getActionCommand();
  419.         // if the value is a number
  420.         if ((s.charAt(0) >= '0' && s.charAt(0) <= '9')) {
  421.             // if operand is present then add to second no
  422.             s0 = s0 + s;
  423.             // set the value of text
  424.             labelcustom.setText("Rp. " + s0);
  425.         }
  426.         else if (s.equals("C")) {
  427.       s0 = "";
  428.             // set the value of text
  429.             labelcustom.setText("Rp. 0");
  430.         }
  431.         else if (s.charAt(0) == '+') {
  432.             // if there was no operand
  433.             int te = 0;
  434.       if(s0 == "")
  435.       {
  436.         s0 = "0";
  437.       }
  438.       te = (Integer.parseInt(s0) + Integer.parseInt(st));
  439.       // convert it to string
  440.       st = Integer.toString(te);
  441.       s0 = "";  
  442.         // set the value of text
  443.             labelcustom.setText("Rp. 0");
  444.             labelcustom.setBackground(Color.PINK);
  445.             labeltotal.setText("Charge Rp. " + st);
  446.             labeltotal.setBackground(Color.PINK);
  447.         }
  448.     else if (s.equals("Library"))
  449.     {
  450.       startLibrary();
  451.     }
  452.     else if (s.equals("Custom"))
  453.     {
  454.       startCustom();
  455.     }
  456.     else if (s.equals("edit"))
  457.     {
  458.       starteditLibrary();
  459.       edit = true;
  460.     }
  461.     else if (s.equals("Purchase"))
  462.     {
  463.       createPurchaseGUI();
  464.       frame.dispose();
  465.     }
  466.     else if (s.equals("Selesai"))
  467.     {
  468.       startLibrary();
  469.       edit = false;
  470.     }
  471.     else if (s.equals("Buat Barang Baru"))
  472.     {
  473.       // frame.dispose();
  474.       createItemGUI("new"0);
  475.     }
  476.     else if (s.equals("Simpan"))
  477.     {
  478.       Object[] row = new Object[6];
  479.       row[0] = (String)labelNama.getText();
  480.       row[1] = labelHarga.getText();
  481.       row[2] = (String)labelkategori.getText();
  482.       row[3] = (String)labelStock.getText();
  483.       row[4] = (String)labeldesc.getText();
  484.       row[5] = 0;
  485.       model.addRow(row);
  486.       maintable.setModel(model);
  487.       if(edititem)
  488.       {
  489.         int numRows = maintable.getSelectedRows().length;
  490.         for(int i = 0; i < numRows ; i++)
  491.         {
  492.           model.removeRow(maintable.getSelectedRow());
  493.         }
  494.       }
  495.       itemframe.dispose();
  496.       // frame.show();
  497.     }
  498.     else if (s.equals("X"))
  499.     {
  500.       if(purchase == true)
  501.       {
  502.         purchaseframe.dispose();
  503.         frame.show();
  504.       }
  505.       else
  506.       {
  507.         itemframe.dispose();
  508.       }
  509.     }
  510.     else if (s.equals("Hapus"))
  511.     {
  512.       int numRows = maintable.getSelectedRows().length;
  513.       for(int i = 0; i < numRows ; i++)
  514.       {
  515.         model.removeRow(maintable.getSelectedRow());
  516.       }
  517.       itemframe.dispose();
  518.     }
  519.     else if (s.equals("Clear Sale"))
  520.     {
  521.       labelcustom.setText("Rp. 0");
  522.       labeltotal.setText("Charge Rp. 0");
  523.       labelpurchasetotal.setText("Charge Rp. 0");
  524.       s0 = "";
  525.       st = "0";
  526.      
  527.       for (int i = 0; i < purchasemodel.getRowCount(); i++)
  528.       {
  529.         purchasemodel.removeRow(i);
  530.       }
  531.       purchasetable.setModel(purchasemodel);
  532.      
  533.       for (int i = 0; i < model.getRowCount(); i++)
  534.       {
  535.         model.setValueAt(0, i, 5);
  536.       }
  537.     }
  538.   }
  539. }


Link video youtube :Link Youtube