FINAL PROJECT EAS PBO

Tugas Akhir Final Project untuk kelas PBO A kali ini yaitu membuat Point of sales/ Cash register. Mesin kasir atau mesin cash register merupakan suatu peralatan mekanik ataupun elektronik yang digunakan untuk menghitung serta mencatat transaksi penjualan yang umumnya terintegrasi secara modul dengan laci (cash drawer) untuk menyimpan sejumlah uang. Dalam mesin cash register ini biasanya mengeluarkan hasil cetak atau print dari struk penjualan (receipt) untuk para konsumen atau pelanggan.Berikut merupakan link demo di youtube penjelasan tentang aplikasi POS kelompok kami:

a. Merk : POS Alfamart 




b. Fitur-fitur :

  •  Pelacak inventaris Urusan cek & ricek item mana yang tersisa di rak, yang dimana software POS akan selalu meng-update seputar stok di dapur secara otomatis. 
  • Laporan penjualan POS dapat membuat laporan penjualan dan membantu manajer melacak kinerja cabang individual di lokasi yang berbeda. pelaporan juga bisa mencakup total penjualan, penjualan untuk periode waktu tertentu, penjualan per item atau kategori, dan penjualan berdasarkan item atau server. 
  • Manajemen pelanggan Beberapa perangkat lunak POS memiliki kemampuan untuk menyimpan data pelanggan dasar seperti nama dan informasi kontak.
c. Penjelasan bagian-bagian dalam POS tersebut.
  • user pegawai, menampilkan data pegawai yaitu nama dan id pegawai 
  • member, menampilkan nama dan membership 
  • tabel barang, menampilkan nama barang, id barang, keterangan, jumlah, harga, dan total 
  • total harga, menampilkan total harga secara keseluruhan 
  • promo, menampilkan item item yang sedang promo 
  • cetak, menampilkan nama nama barang dan total harga 
Saya dan Kelompok saya membuat aplikasi cash register toko bernama "Canat" yang mengambil konsep aplikasi mirip dengan Alfamart. Berikut adalah tampilan uml nya:



  1. Class Pembelian
  1. import javafx.application.Application;
  2. import javafx.application.Platform;
  3. import javafx.event.ActionEvent;
  4. import javafx.event.EventHandler;
  5. import javafx.geometry.Insets;
  6. import javafx.geometry.Pos;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.*;
  9. import javafx.scene.layout.*;
  10. import javafx.scene.text.Font;
  11. import javafx.scene.text.Text;
  12. import javafx.stage.Stage;
  13. import javafx.scene.layout.StackPane;
  14. import javafx.collections.*;
  15. import javafx.scene.paint.*;
  16. import javafx.scene.text.*;
  17. import javafx.scene.Group;
  18. import java.util.Random;
  19. import javafx.scene.image.Image;
  20. import javafx.scene.image.ImageView;
  21. import java.io.FileInputStream;
  22. /**
  23.  * Write a description of JavaFX class here.
  24.  *
  25.  * @author (your name)
  26.  * @version (a version number or a date)
  27.  */
  28. public class Pembelian extends Application
  29. {
  30.     Text textDaftar = new Text("Daftar Penjualan");
  31.     Text textKasir = new Text("User :");
  32.     Text KodeBarang = new Text("");
  33.     Text textHarga = new Text("");
  34.     Text textJumlah = new Text("");
  35.     Text textTotalBayar = new Text("");
  36.     Text NamaBarang = new Text("");
  37.     Text HargaBarang = new Text("");
  38.     Text TotalHargaText = new Text("");
  39.     TextField textFieldJumlah = new TextField ();
  40.     ObservableList<String> optionsKasir = FXCollections.observableArrayList(
  41.         "Natih",
  42.         "Caca",
  43.         "Catrine"
  44.     );
  45.     final ComboBox comboBoxKasir = new ComboBox(optionsKasir);
  46.     ObservableList<String> optionsBarang = FXCollections.observableArrayList(
  47.         "101",
  48.         "102",
  49.         "103"
  50.     );
  51.     final ComboBox comboBoxBarang = new ComboBox(optionsBarang);
  52.    
  53.     private int TotalHarga;
  54.     private int harga;
  55.        
  56.     @Override
  57.     public void start(Stage stage) throws Exception
  58.     {
  59.        Scene scene = new Scene(new Group(), 500, 250);
  60.        stage.setTitle("PEMBELIAN BARANG TOKO CANAT");
  61.        textDaftar.setFont(Font.font("SanSerif",18));
  62.            
  63.        textKasir.setFont(Font.font("SanSerif",18));
  64.        KodeBarang.setFont(Font.font("SanSerif",18));
  65.        textHarga.setFont(Font.font("SanSerif",18));
  66.        textJumlah.setFont(Font.font("SanSerif",18));
  67.        textTotalBayar.setFont(Font.font("SanSerif",18));
  68.        
  69.         GridPane grid = new GridPane();
  70.         grid.setVgap(10);
  71.         grid.setHgap(10);
  72.         grid.setPadding(new Insets(10, 10, 10, 10));
  73.        
  74.    
  75.        grid.add(new Label("Daftar Barang Jual: "), 0, 0);
  76.        Button buttong = new Button("Click here!");
  77.        grid.add(buttong, 1,0);
  78.        
  79.        buttong.setOnAction(this::buttonClicks);
  80.        
  81.         grid.add(new Label("User: "), 0, 1);
  82.         grid.add(comboBoxKasir, 1,1);
  83.         grid.add(new Label("ID Barang: "), 0, 2);
  84.         grid.add(comboBoxBarang, 1,2);
  85.        
  86.         EventHandler<ActionEvent> event =
  87.                   new EventHandler<ActionEvent>() {
  88.             public void handle(ActionEvent e)
  89.             {
  90.                 if(comboBoxBarang.getValue() == "101")
  91.                 {
  92.                     NamaBarang.setText("Pulpen Kokoro");
  93.                     HargaBarang.setText("Rp2000");
  94.                     harga = 2000;
  95.                 }
  96.                 else if(comboBoxBarang.getValue() == "102")
  97.                 {
  98.                     NamaBarang.setText("Pulpen Pilot");
  99.                     HargaBarang.setText("Rp2000");
  100.                     harga = 2000;
  101.                 }
  102.                 else if(comboBoxBarang.getValue() == "103")
  103.                 {
  104.                     NamaBarang.setText("Buku Sidu");
  105.                     HargaBarang.setText("Rp3000");
  106.                     harga = 3000;
  107.                 }
  108.                      
  109.             }
  110.         };
  111.      
  112.        
  113.         comboBoxBarang.setOnAction(event);
  114.      
  115.         grid.add(new Label("Keterangan Barang: "), 0, 3);
  116.         grid.add(NamaBarang, 1,3);
  117.         grid.add(new Label("Harga Barang: "), 0, 4);
  118.         grid.add(HargaBarang, 1,4);
  119.         grid.add(new Label("Jumlah Barang: "), 0, 5);
  120.        
  121.         grid.add(textFieldJumlah, 1,5);
  122.        
  123.         EventHandler<ActionEvent> eventJumlah = new EventHandler<ActionEvent>() {
  124.             public void handle(ActionEvent e)
  125.             {
  126.                  TotalHarga = Integer.parseInt(textFieldJumlah.getText()) * harga;
  127.                  TotalHargaText.setText("Rp"+Integer.toString(TotalHarga));
  128.             }
  129.         };
  130.        
  131.         textFieldJumlah.setOnAction(eventJumlah);
  132.        
  133.         grid.add(new Label("Total Bayar: "), 0, 6);
  134.         grid.add(TotalHargaText, 1,6);
  135.        
  136.        Text title=new Text("Hello Canat Teller");
  137.        title.setFont(Font.font("SanSerif",36));
  138.        Button buttons = new Button("Print Nota");
  139.        grid.add(buttons, 1,7);
  140.        buttons.setOnAction(this::buttonClick);
  141.        
  142.        Group root = (Group)scene.getRoot();
  143.        root.getChildren().add(grid);
  144.        stage.setScene(scene);
  145.        stage.show();
  146.          
  147.     buttong.setOnAction(new EventHandler<ActionEvent>() {
  148.     @Override public void handle(ActionEvent ee){
  149.         PENJUALAN p = new PENJUALAN();
  150.         p.setVisible(true);
  151.     }
  152. });
  153.        
  154.     }
  155.    
  156.   public static void main(String[] args) {
  157.         Application.launch(args);
  158.     }
  159.     private void buttonClicks(ActionEvent ee)
  160.     {
  161.       PENJUALAN p = new PENJUALAN();
  162.        //p.Tampilan();
  163.     }
  164.     private void buttonClick(ActionEvent event)
  165.     {
  166.        Cetak c = new Cetak(NamaBarang, textFieldJumlah.getText(), TotalHargaText);
  167.        c.showCetak();
  168.     }
  169. }


2. Penjualan

  1. import java.awt.Component;
  2. import java.awt.Dimension;
  3. import java.awt.HeadlessException;
  4. import java.awt.Toolkit;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.Statement;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import javax.swing.JOptionPane;
  11. import javax.swing.table.DefaultTableModel;
  12. public class PENJUALAN extends javax.swing.JFrame {
  13.         private Connection con;
  14.         private Statement stat;
  15.         private ResultSet res;
  16.    
  17.         public PENJUALAN()
  18.         {
  19.             setTitle("DAFTAR BARANG PENJUALAN TOKO CANAT"); //Title pada aplikasi
  20.          
  21.             //membuat layout tampil di tengah pada saat di tampilkan
  22.             Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  23.             Dimension frameSize = getSize();
  24.             setLocation(
  25.             (screenSize.width - frameSize.width) / 2,
  26.             (screenSize.height - frameSize.height) / 2);
  27.            
  28.             Tampilan(); //memanggil public void Tampilan();
  29.             koneksi();//memanggil public void Koneksi();
  30.             tabel();//memanggil public void Tabel();
  31.         }
  32.        
  33.         public void koneksi() //mengkoneksikan aplikasi dengan database barang
  34.         {
  35.            try {
  36.                Class.forName("com.mysql.jdbc.Driver");//driver JDBC
  37.                con=DriverManager.getConnection("jdbc:mysql://localhost:3306/daftarbarangg", "root", "");//Lokasi dari database
  38.                stat=con.createStatement();
  39.             }
  40.             catch (ClassNotFoundException | SQLException e) {
  41.                 JOptionPane.showMessageDialog(null, e);
  42.             }
  43.         }
  44.    
  45.         private void kosongkan() //variabel kosongkan untuk menghapus data yang diinput pada :
  46.         {
  47.             id.setText(""); //JTextField id barang
  48.             nama.setText(""); //JTextField Nama
  49.             merk.setText(""); //JTextField merk
  50.             stok.setText(""); //JTextField stok
  51.             hrg.setText(""); //JTextField harga
  52.             id.requestFocus(); //kursor kembali ke JTextField ID Barang
  53.         }
  54.      
  55.         public void tabel(){
  56.             DefaultTableModel tb = new DefaultTableModel ();
  57.             tb.addColumn("ID Barang"); //tambahkan ID Barang pada kolom tabel
  58.             tb.addColumn("Nama Barang"); //tambahkan Nama pada kolom tabel
  59.             tb.addColumn("Merk"); //tambahkan Merk pada kolom tabel
  60.             tb.addColumn("Stok"); //tambahkan stok pada kolom tabel
  61.             tb.addColumn("Harga"); //tambahkan harga pada kolom tabel
  62.             //tambahkan Stok pada kolom tabel
  63.             tbl.setModel(tb);
  64.            
  65.             try { res=stat.executeQuery("select * from barang");
  66.                 while (res.next()) {
  67.                     tb.addRow(new Object[]{ res.getString("ID_Barang"),
  68.                         res.getString("Nama_Barang"),
  69.                         res.getString("Merk"),
  70.                         res.getString("Stok"),
  71.                         res.getString("Harga")
  72.                     }  );
  73.                 }
  74.             }catch (SQLException e) {
  75.                 JOptionPane.showMessageDialog(null, e);
  76.             }
  77.         }
  78.                                
  79.         private void Tampilan()
  80.         {
  81.             jLabel1 = new javax.swing.JLabel();
  82.             jLabel2 = new javax.swing.JLabel();
  83.             jLabel3 = new javax.swing.JLabel();
  84.             jLabel4 = new javax.swing.JLabel();
  85.             jLabel8 = new javax.swing.JLabel();
  86.             id= new javax.swing.JTextField();
  87.             nama= new javax.swing.JTextField();
  88.             merk= new javax.swing.JTextField();
  89.             stok= new javax.swing.JTextField();
  90.             hrg= new javax.swing.JTextField();
  91.             Cari = new javax.swing.JButton();
  92.             Reset = new javax.swing.JButton();
  93.             Simpan = new javax.swing.JButton();
  94.             Hapus = new javax.swing.JButton();
  95.             jScrollPane1 = new javax.swing.JScrollPane();
  96.             tbl = new javax.swing.JTable();
  97.             Ganti = new javax.swing.JButton();
  98.             jLabel5 = new javax.swing.JLabel();
  99.             jLabel6 = new javax.swing.JLabel();
  100.             jLabel7 = new javax.swing.JLabel();
  101.            
  102.             setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  103.             jLabel1.setText("ID Barang");
  104.             jLabel2.setText("Nama Barang");
  105.             jLabel3.setText("Merk");
  106.             jLabel4.setText("Stok");
  107.             jLabel8.setText("Harga");
  108.            
  109.             Cari.setText("Cari");
  110.             Cari.addActionListener(new java.awt.event.ActionListener()
  111.             {
  112.                 public void actionPerformed(java.awt.event.ActionEvent evt) {
  113.                 CariActionPerformed(evt);
  114.             }
  115.         }
  116.         );
  117.             Reset.setText("Reset");
  118.             Reset.addActionListener(new java.awt.event.ActionListener()
  119.             {
  120.                 public void actionPerformed(java.awt.event.ActionEvent evt) {
  121.                 ResetActionPerformed(evt);
  122.             }
  123.         }
  124.         );
  125.             Simpan.setText("Simpan");
  126.             Simpan.addActionListener(new java.awt.event.ActionListener()
  127.             {
  128.                 public void actionPerformed(java.awt.event.ActionEvent evt){
  129.                 SimpanActionPerformed(evt);
  130.             }
  131.         }
  132.         );
  133.         Hapus.setText("Hapus");
  134.         Hapus.addActionListener(new java.awt.event.ActionListener()
  135.         {
  136.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  137.                 HapusActionPerformed(evt);
  138.             }
  139.         }
  140.         );
  141.         tbl.setGridColor(new java.awt.Color(0, 0, 0));
  142.         jScrollPane1.setViewportView(tbl);
  143.         Ganti.setText("Ganti");
  144.         Ganti.addActionListener(new java.awt.event.ActionListener()
  145.         {
  146.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  147.                 GantiActionPerformed(evt);
  148.             }
  149.         }
  150.         );
  151.         jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  152.         jLabel5.setText("APLIKASI CASH REGISTER");
  153.         jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  154.         jLabel6.setText("DAFTAR PENJUALAN BARANG");
  155.         jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  156.         jLabel7.setText("PBO-A / 2019");
  157.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  158.         getContentPane().setLayout(layout);
  159.         layout.setHorizontalGroup(
  160.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  161.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  162.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  163.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  164.                     .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 554, Short.MAX_VALUE)
  165.                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  166.                         .addGroup(layout.createSequentialGroup()
  167.                             .addComponent(Simpan)
  168.                             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  169.                             .addComponent(Ganti)
  170.                             .addGap(14, 14, 14)
  171.                             .addComponent(Hapus))
  172.                         .addGroup(layout.createSequentialGroup()
  173.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  174.                                 .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  175.                                 .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  176.                                 .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  177.                                 .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE)
  178.                                 .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE))
  179.                                 .addGap(18, 18, 18)
  180.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  181.                                 .addComponent(id, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
  182.                                 .addComponent(nama)
  183.                                 .addComponent(merk)
  184.                                 .addComponent(stok)
  185.                                 .addComponent(hrg))
  186.                             .addGap(18, 18, 18)
  187.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  188.                                 .addComponent(Reset, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  189.                                 .addComponent(Cari, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  190.                             .addGap(18, 18, 18)
  191.                             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  192.                                 .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE)
  193.                                 .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE)
  194.                                 .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE)))))
  195.                 .addContainerGap())
  196.         );
  197.         layout.setVerticalGroup(
  198.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199.             .addGroup(layout.createSequentialGroup()
  200.                 .addGap(17, 17, 17)
  201.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  202.                     .addComponent(jLabel1)
  203.                     .addComponent(id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  204.                     .addComponent(Cari)
  205.                     .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
  206.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  207.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  208.                     .addGroup(layout.createSequentialGroup()
  209.                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  210.                             .addComponent(jLabel2)
  211.                             .addComponent(nama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  212.                             .addComponent(Reset))
  213.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  214.                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  215.                         //    
  216.                         .addComponent(jLabel3)
  217.                             .addComponent(merk, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  218.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  219.                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  220.                         .addComponent(jLabel4)
  221.                             .addComponent(stok, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  222.                             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  223.                           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  224.                         .addComponent(jLabel8)
  225.                             .addComponent(hrg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  226.                             )
  227.                     .addGroup(layout.createSequentialGroup()
  228.                         .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
  229.                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  230.                         .addComponent(jLabel7)))
  231.      
  232.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  233.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  234.                     .addComponent(Simpan)
  235.                     .addComponent(Hapus)
  236.                     .addComponent(Ganti))
  237.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  238.                 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE)
  239.                 .addGap(24, 24, 24))
  240.         );
  241.         pack();
  242.     }                        
  243.     private void CariActionPerformed(java.awt.event.ActionEvent evt) {                                    
  244.       try {
  245.           koneksi();
  246.           res = stat.executeQuery("select * from barang where "+ "ID_Barang='"+id.getText()+"'" );
  247.           if (res.next())
  248.           {
  249.               nama.setText(res.getString("Nama_Barang"));  
  250.               merk.setText(res.getString("Merk"));
  251.               stok.setText(res.getString("Stok"));
  252.               hrg.setText(res.getString("Harga"));
  253.             }
  254.             else {
  255.                 JOptionPane.showMessageDialog(null, "Data Tidak Ditemukan");
  256.             }
  257.         } catch (SQLException | HeadlessException e) {
  258.             JOptionPane.showMessageDialog(null, e);
  259.         }       // TODO add your handling code here:
  260.     }                                    
  261.     private void ResetActionPerformed(java.awt.event.ActionEvent evt) {                                      
  262.         kosongkan();        // TODO add your handling code here:
  263.     }                                    
  264.     private void SimpanActionPerformed(java.awt.event.ActionEvent evt) {                                      
  265.         koneksi();
  266.         try {
  267.             stat.executeUpdate("insert into barang values ("
  268.             + "'" + id.getText()+"',"
  269.             + "'" + nama.getText()+"',"
  270.             + "'" + merk.getText()+"',"
  271.             + "'" + stok.getText()+ "',"
  272.             + "'" + hrg.getText()+ "')" );
  273.             kosongkan();
  274.             tabel();
  275.             JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data");
  276.         }
  277.        catch (SQLException | HeadlessException e) {
  278.           JOptionPane.showMessageDialog(null, "Data Belum Lengkap");
  279.        }
  280.     }                                      
  281.     private void GantiActionPerformed(java.awt.event.ActionEvent evt)
  282.     {                                      
  283.         koneksi();
  284.         try {
  285.             stat.executeUpdate("update barang set"
  286.             +" ID_Barang='"+id.getText()+"',"
  287.             +" Nama_Barang='"+nama.getText()+"',"
  288.             +" Merk='"+merk.getText()+"',"
  289.             + "Stok='"+stok.getText()+"',"
  290.             + "Harga='"+hrg.getText()+"'"
  291.             + " where " + "ID_Barang='"+id.getText()+"'" );
  292.             kosongkan();
  293.             tabel();
  294.             JOptionPane.showMessageDialog(null, "Berhasil Mengupdate Data");
  295.         }catch (SQLException | HeadlessException e) {
  296.             JOptionPane.showMessageDialog(null, "Data Belum Lengkap : "+e);
  297.         }               // TODO add your handling code here:        
  298.     }                                    
  299.     private void HapusActionPerformed(java.awt.event.ActionEvent evt) {                                      
  300.        koneksi();
  301.        try {
  302.             stat.executeUpdate("delete from barang where "
  303.                 + "ID_Barang='"+id.getText()
  304.                 +"'" );
  305.             kosongkan();
  306.             tabel();
  307.             JOptionPane.showMessageDialog(null, "Berhasil Dihapus");
  308.         } catch (HeadlessException | SQLException e) {
  309.             JOptionPane.showMessageDialog(null, "Gagal Dihapus/Koneksi Terputus "+e);
  310.         }      // TODO add your handling code here:
  311.     }                                    
  312.     public static void main(String args[]) {
  313.        
  314.         try {
  315.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  316.                 if ("Nimbus".equals(info.getName())) {
  317.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  318.                     break;
  319.                 }
  320.             }
  321.         } catch (ClassNotFoundException ex) {
  322.             java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  323.         } catch (InstantiationException ex) {
  324.             java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  325.         } catch (IllegalAccessException ex) {
  326.             java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  327.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  328.             java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  329.         }
  330.        
  331.         java.awt.EventQueue.invokeLater(new Runnable() {
  332.             public void run() {
  333.             new PENJUALAN().setVisible(true);
  334.             }
  335.         });
  336.     }
  337.     // Variables declaration                    
  338.     private javax.swing.JButton Cari;
  339.     private javax.swing.JButton Ganti;
  340.     private javax.swing.JButton Hapus;
  341.     private javax.swing.JButton Reset;
  342.     private javax.swing.JButton Simpan;
  343.     private javax.swing.JLabel jLabel1;
  344.     private javax.swing.JLabel jLabel2;
  345.     private javax.swing.JLabel jLabel3;
  346.     private javax.swing.JLabel jLabel4;
  347.     private javax.swing.JLabel jLabel5;
  348.     private javax.swing.JLabel jLabel6;
  349.     private javax.swing.JLabel jLabel7;
  350.     private javax.swing.JLabel jLabel8;
  351.     private javax.swing.JScrollPane jScrollPane1;
  352.     private javax.swing.JTextField id;
  353.     private javax.swing.JTextField nama;
  354.     private javax.swing.JTextField merk;
  355.     private javax.swing.JTable tbl;
  356.     private javax.swing.JTextField stok;  
  357.      private javax.swing.JTextField hrg;
  358. }


3. CreateDB_Penjualan
  1. import java.sql.*;
  2. import java.sql.DriverManager;
  3. import java.sql.Connection;
  4. import java.sql.SQLException;
  5.     public class createDB_Penjualan {
  6.         // JDBC driver name dan database URL
  7.         static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
  8.         static final String DB_URL = "jdbc:mysql://localhost/";
  9.         //  pemberian nama user dan pass pada database
  10.         static final String USER = "root";
  11.             static final String PASS = "";
  12.    
  13.      public static void main(String[] args) {
  14.          //Deklarasi variabel dari java.sql
  15.        Connection conn = null;
  16.        Statement stmt = null;
  17.                
  18.                 try{
  19.                 //STEP 2: Daftarkan JDBC driver
  20.                 Class.forName("com.mysql.jdbc.Driver"); //driver JDBC
  21.                 //STEP 3: Koneksi ke database
  22.                 System.out.println("Koneksi ke database...");
  23.                 conn = DriverManager.getConnection("jdbc:mysql://localhost/","root", "");
  24.                 //STEP 4: tambahkan ke Query
  25.                 System.out.println("Membuat database...");
  26.                 stmt = conn.createStatement();
  27.                
  28.                 //STEP 5 : membuat database
  29.                 String sql = "CREATE DATABASE daftarbarangg";
  30.                 stmt.executeUpdate(sql);
  31.                 System.out.println("Database berhasil dibuat...");
  32.                
  33.                 //membuat table pada database yang dibuat
  34.                
  35.                 //STEP 1: mengkoneksikan database yang telah dibuat diatas
  36.                 System.out.println("Sedang koneksi ke database yang terpilih...");
  37.                 conn = DriverManager.getConnection("jdbc:mysql://localhost/daftarbarangg","root" ,"");
  38.                 System.out.println("Koneksi ke database berhasil...");
  39.      
  40.                 //STEP 2: Tambahkan ke Query
  41.                 System.out.println("Membuat Table pada Database...");
  42.                 stmt = conn.createStatement();
  43.                
  44.                 //STEP 3: Membuat Field-Field pada Table barang
  45.                 String tab = "CREATE TABLE barang " +
  46.                    "(ID_Barang INTEGER not NULL, " + //Field id barnang type Integer
  47.                    " Nama_Barang VARCHAR(255), " +  //field nama barang type VARCHAR Lenght 255
  48.                    " Merk VARCHAR(255), " + //field merk type Varchar lenght 255
  49.                    " Stok INTEGER, " + //field stok type integez
  50.                    " Harga INTEGER, " +//field harga type integez
  51.                    " PRIMARY KEY ( ID_Barang ))"; //id barang sebagai Primary Key
  52.                    stmt.executeUpdate(tab);
  53.                    System.out.println("Table berhasil dibuat pada database yang terpilih...");
  54.                    
  55.                 }catch(SQLException se){
  56.                     //Menangani kesalahan untuk JDBC
  57.                     se.printStackTrace();
  58.                 }catch(Exception e){
  59.                     //Menangani kesalahan pada Class.forName
  60.                     e.printStackTrace();
  61.                 }finally{
  62.                //akhir dari program yang digunakan
  63.                         try{
  64.                             if(stmt!=null)
  65.                             stmt.close();
  66.                         }catch(SQLException se2){
  67.                         }
  68.                        
  69.                         try{
  70.                             if(conn!=null)
  71.                             conn.close();
  72.                         }catch(SQLException se){
  73.                             se.printStackTrace();
  74.                         }
  75.    }
  76.    System.out.println("Selesai");
  77. }
  78. }


4. Cetak
  1. import javafx.application.Application;
  2. import javafx.application.Platform;
  3. import javafx.event.ActionEvent;
  4. import javafx.event.EventHandler;
  5. import javafx.geometry.Insets;
  6. import javafx.geometry.Pos;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.*;
  9. import javafx.scene.layout.*;
  10. import javafx.scene.text.Font;
  11. import javafx.scene.text.Text;
  12. import javafx.stage.Stage;
  13. import javafx.scene.layout.StackPane;
  14. import javafx.collections.*;
  15. import javafx.scene.paint.*;
  16. import javafx.scene.text.*;
  17. import javafx.scene.Group;
  18. import java.util.Random;
  19. public class Cetak
  20. {
  21.     private Text NamaBarang = new Text(""), TotalHargaText = new Text("");
  22.     private String jumlahBeli;
  23.     public Cetak(Text namaBarang, String jumlah, Text TotalHarga)
  24.     {
  25.         NamaBarang = namaBarang;
  26.         TotalHargaText = TotalHarga;
  27.         jumlahBeli = jumlah;
  28.     }
  29.     public void showCetak()
  30.     {
  31.        Stage stage = new Stage();
  32.        Scene scene = new Scene(new Group(), 500, 250);
  33.        stage.setTitle("Nota Pembelian");
  34.        GridPane grid = new GridPane();
  35.        grid.setVgap(10);
  36.        grid.setHgap(15);
  37.        grid.setPadding(new Insets(10, 10, 10, 10));
  38.        grid.add(new Label("PEMBELIAN BARANG TOKO CANAT"),0,0);
  39.        grid.add(NamaBarang,0,1);
  40.        grid.add(new Label(jumlahBeli),1,1);
  41.        grid.add(new Label("Harga"),0,2);
  42.        grid.add(TotalHargaText,1,2);
  43.        Group root = (Group)scene.getRoot();
  44.        root.getChildren().add(grid);
  45.        stage.setScene(scene);
  46.        stage.show();
  47.     }
  48. }


Output Program :



Jika di klik print nota maka akan muncul tampilan seperti ini:


    Dalam aplikasi ini juga dapat mengganti, menyimpan, mencari, menghapus, dan mengupdate data data barang.

Komentar

Postingan populer dari blog ini

Tugas 1 MPPL C

Tutorial Hello World dan Profil Diri mengganggunakan BlueJ