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 :
Jika di klik print nota maka akan muncul tampilan seperti ini:
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:
- Class Pembelian
- import javafx.application.Application;
- import javafx.application.Platform;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.geometry.Insets;
- import javafx.geometry.Pos;
- import javafx.scene.Scene;
- import javafx.scene.control.*;
- import javafx.scene.layout.*;
- import javafx.scene.text.Font;
- import javafx.scene.text.Text;
- import javafx.stage.Stage;
- import javafx.scene.layout.StackPane;
- import javafx.collections.*;
- import javafx.scene.paint.*;
- import javafx.scene.text.*;
- import javafx.scene.Group;
- import java.util.Random;
- import javafx.scene.image.Image;
- import javafx.scene.image.ImageView;
- import java.io.FileInputStream;
- /**
- * Write a description of JavaFX class here.
- *
- * @author (your name)
- * @version (a version number or a date)
- */
- public class Pembelian extends Application
- {
- Text textDaftar = new Text("Daftar Penjualan");
- Text textKasir = new Text("User :");
- Text KodeBarang = new Text("");
- Text textHarga = new Text("");
- Text textJumlah = new Text("");
- Text textTotalBayar = new Text("");
- Text NamaBarang = new Text("");
- Text HargaBarang = new Text("");
- Text TotalHargaText = new Text("");
- TextField textFieldJumlah = new TextField ();
- ObservableList<String> optionsKasir = FXCollections.observableArrayList(
- "Natih",
- "Caca",
- "Catrine"
- );
- final ComboBox comboBoxKasir = new ComboBox(optionsKasir);
- ObservableList<String> optionsBarang = FXCollections.observableArrayList(
- "101",
- "102",
- "103"
- );
- final ComboBox comboBoxBarang = new ComboBox(optionsBarang);
- private int TotalHarga;
- private int harga;
- @Override
- public void start(Stage stage) throws Exception
- {
- Scene scene = new Scene(new Group(), 500, 250);
- stage.setTitle("PEMBELIAN BARANG TOKO CANAT");
- textDaftar.setFont(Font.font("SanSerif",18));
- textKasir.setFont(Font.font("SanSerif",18));
- KodeBarang.setFont(Font.font("SanSerif",18));
- textHarga.setFont(Font.font("SanSerif",18));
- textJumlah.setFont(Font.font("SanSerif",18));
- textTotalBayar.setFont(Font.font("SanSerif",18));
- GridPane grid = new GridPane();
- grid.setVgap(10);
- grid.setHgap(10);
- grid.setPadding(new Insets(10, 10, 10, 10));
- grid.add(new Label("Daftar Barang Jual: "), 0, 0);
- Button buttong = new Button("Click here!");
- grid.add(buttong, 1,0);
- buttong.setOnAction(this::buttonClicks);
- grid.add(new Label("User: "), 0, 1);
- grid.add(comboBoxKasir, 1,1);
- grid.add(new Label("ID Barang: "), 0, 2);
- grid.add(comboBoxBarang, 1,2);
- EventHandler<ActionEvent> event =
- new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e)
- {
- if(comboBoxBarang.getValue() == "101")
- {
- NamaBarang.setText("Pulpen Kokoro");
- HargaBarang.setText("Rp2000");
- harga = 2000;
- }
- else if(comboBoxBarang.getValue() == "102")
- {
- NamaBarang.setText("Pulpen Pilot");
- HargaBarang.setText("Rp2000");
- harga = 2000;
- }
- else if(comboBoxBarang.getValue() == "103")
- {
- NamaBarang.setText("Buku Sidu");
- HargaBarang.setText("Rp3000");
- harga = 3000;
- }
- }
- };
- comboBoxBarang.setOnAction(event);
- grid.add(new Label("Keterangan Barang: "), 0, 3);
- grid.add(NamaBarang, 1,3);
- grid.add(new Label("Harga Barang: "), 0, 4);
- grid.add(HargaBarang, 1,4);
- grid.add(new Label("Jumlah Barang: "), 0, 5);
- grid.add(textFieldJumlah, 1,5);
- EventHandler<ActionEvent> eventJumlah = new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e)
- {
- TotalHarga = Integer.parseInt(textFieldJumlah.getText()) * harga;
- TotalHargaText.setText("Rp"+Integer.toString(TotalHarga));
- }
- };
- textFieldJumlah.setOnAction(eventJumlah);
- grid.add(new Label("Total Bayar: "), 0, 6);
- grid.add(TotalHargaText, 1,6);
- Text title=new Text("Hello Canat Teller");
- title.setFont(Font.font("SanSerif",36));
- Button buttons = new Button("Print Nota");
- grid.add(buttons, 1,7);
- buttons.setOnAction(this::buttonClick);
- Group root = (Group)scene.getRoot();
- root.getChildren().add(grid);
- stage.setScene(scene);
- stage.show();
- buttong.setOnAction(new EventHandler<ActionEvent>() {
- @Override public void handle(ActionEvent ee){
- PENJUALAN p = new PENJUALAN();
- p.setVisible(true);
- }
- });
- }
- public static void main(String[] args) {
- Application.launch(args);
- }
- private void buttonClicks(ActionEvent ee)
- {
- PENJUALAN p = new PENJUALAN();
- //p.Tampilan();
- }
- private void buttonClick(ActionEvent event)
- {
- Cetak c = new Cetak(NamaBarang, textFieldJumlah.getText(), TotalHargaText);
- c.showCetak();
- }
- }
2. Penjualan
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.HeadlessException;
- import java.awt.Toolkit;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.Statement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import javax.swing.JOptionPane;
- import javax.swing.table.DefaultTableModel;
- public class PENJUALAN extends javax.swing.JFrame {
- private Connection con;
- private Statement stat;
- private ResultSet res;
- public PENJUALAN()
- {
- setTitle("DAFTAR BARANG PENJUALAN TOKO CANAT"); //Title pada aplikasi
- //membuat layout tampil di tengah pada saat di tampilkan
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension frameSize = getSize();
- setLocation(
- (screenSize.width - frameSize.width) / 2,
- (screenSize.height - frameSize.height) / 2);
- Tampilan(); //memanggil public void Tampilan();
- koneksi();//memanggil public void Koneksi();
- tabel();//memanggil public void Tabel();
- }
- public void koneksi() //mengkoneksikan aplikasi dengan database barang
- {
- try {
- Class.forName("com.mysql.jdbc.Driver");//driver JDBC
- con=DriverManager.getConnection("jdbc:mysql://localhost:3306/daftarbarangg", "root", "");//Lokasi dari database
- stat=con.createStatement();
- }
- catch (ClassNotFoundException | SQLException e) {
- JOptionPane.showMessageDialog(null, e);
- }
- }
- private void kosongkan() //variabel kosongkan untuk menghapus data yang diinput pada :
- {
- id.setText(""); //JTextField id barang
- nama.setText(""); //JTextField Nama
- merk.setText(""); //JTextField merk
- stok.setText(""); //JTextField stok
- hrg.setText(""); //JTextField harga
- id.requestFocus(); //kursor kembali ke JTextField ID Barang
- }
- public void tabel(){
- DefaultTableModel tb = new DefaultTableModel ();
- tb.addColumn("ID Barang"); //tambahkan ID Barang pada kolom tabel
- tb.addColumn("Nama Barang"); //tambahkan Nama pada kolom tabel
- tb.addColumn("Merk"); //tambahkan Merk pada kolom tabel
- tb.addColumn("Stok"); //tambahkan stok pada kolom tabel
- tb.addColumn("Harga"); //tambahkan harga pada kolom tabel
- //tambahkan Stok pada kolom tabel
- tbl.setModel(tb);
- try { res=stat.executeQuery("select * from barang");
- while (res.next()) {
- tb.addRow(new Object[]{ res.getString("ID_Barang"),
- res.getString("Nama_Barang"),
- res.getString("Merk"),
- res.getString("Stok"),
- res.getString("Harga")
- } );
- }
- }catch (SQLException e) {
- JOptionPane.showMessageDialog(null, e);
- }
- }
- private void Tampilan()
- {
- jLabel1 = new javax.swing.JLabel();
- jLabel2 = new javax.swing.JLabel();
- jLabel3 = new javax.swing.JLabel();
- jLabel4 = new javax.swing.JLabel();
- jLabel8 = new javax.swing.JLabel();
- id= new javax.swing.JTextField();
- nama= new javax.swing.JTextField();
- merk= new javax.swing.JTextField();
- stok= new javax.swing.JTextField();
- hrg= new javax.swing.JTextField();
- Cari = new javax.swing.JButton();
- Reset = new javax.swing.JButton();
- Simpan = new javax.swing.JButton();
- Hapus = new javax.swing.JButton();
- jScrollPane1 = new javax.swing.JScrollPane();
- tbl = new javax.swing.JTable();
- Ganti = new javax.swing.JButton();
- jLabel5 = new javax.swing.JLabel();
- jLabel6 = new javax.swing.JLabel();
- jLabel7 = new javax.swing.JLabel();
- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- jLabel1.setText("ID Barang");
- jLabel2.setText("Nama Barang");
- jLabel3.setText("Merk");
- jLabel4.setText("Stok");
- jLabel8.setText("Harga");
- Cari.setText("Cari");
- Cari.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- CariActionPerformed(evt);
- }
- }
- );
- Reset.setText("Reset");
- Reset.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- ResetActionPerformed(evt);
- }
- }
- );
- Simpan.setText("Simpan");
- Simpan.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt){
- SimpanActionPerformed(evt);
- }
- }
- );
- Hapus.setText("Hapus");
- Hapus.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- HapusActionPerformed(evt);
- }
- }
- );
- tbl.setGridColor(new java.awt.Color(0, 0, 0));
- jScrollPane1.setViewportView(tbl);
- Ganti.setText("Ganti");
- Ganti.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- GantiActionPerformed(evt);
- }
- }
- );
- jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel5.setText("APLIKASI CASH REGISTER");
- jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel6.setText("DAFTAR PENJUALAN BARANG");
- jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
- jLabel7.setText("PBO-A / 2019");
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 554, Short.MAX_VALUE)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(Simpan)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(Ganti)
- .addGap(14, 14, 14)
- .addComponent(Hapus))
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
- .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE)
- .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(id, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
- .addComponent(nama)
- .addComponent(merk)
- .addComponent(stok)
- .addComponent(hrg))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(Reset, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(Cari, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 276, javax.swing.GroupLayout.PREFERRED_SIZE)))))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(17, 17, 17)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel1)
- .addComponent(id, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(Cari)
- .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel2)
- .addComponent(nama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(Reset))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- //
- .addComponent(jLabel3)
- .addComponent(merk, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel4)
- .addComponent(stok, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel8)
- .addComponent(hrg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- )
- .addGroup(layout.createSequentialGroup()
- .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jLabel7)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(Simpan)
- .addComponent(Hapus)
- .addComponent(Ganti))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(24, 24, 24))
- );
- pack();
- }
- private void CariActionPerformed(java.awt.event.ActionEvent evt) {
- try {
- koneksi();
- res = stat.executeQuery("select * from barang where "+ "ID_Barang='"+id.getText()+"'" );
- if (res.next())
- {
- nama.setText(res.getString("Nama_Barang"));
- merk.setText(res.getString("Merk"));
- stok.setText(res.getString("Stok"));
- hrg.setText(res.getString("Harga"));
- }
- else {
- JOptionPane.showMessageDialog(null, "Data Tidak Ditemukan");
- }
- } catch (SQLException | HeadlessException e) {
- JOptionPane.showMessageDialog(null, e);
- } // TODO add your handling code here:
- }
- private void ResetActionPerformed(java.awt.event.ActionEvent evt) {
- kosongkan(); // TODO add your handling code here:
- }
- private void SimpanActionPerformed(java.awt.event.ActionEvent evt) {
- koneksi();
- try {
- stat.executeUpdate("insert into barang values ("
- + "'" + id.getText()+"',"
- + "'" + nama.getText()+"',"
- + "'" + merk.getText()+"',"
- + "'" + stok.getText()+ "',"
- + "'" + hrg.getText()+ "')" );
- kosongkan();
- tabel();
- JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data");
- }
- catch (SQLException | HeadlessException e) {
- JOptionPane.showMessageDialog(null, "Data Belum Lengkap");
- }
- }
- private void GantiActionPerformed(java.awt.event.ActionEvent evt)
- {
- koneksi();
- try {
- stat.executeUpdate("update barang set"
- +" ID_Barang='"+id.getText()+"',"
- +" Nama_Barang='"+nama.getText()+"',"
- +" Merk='"+merk.getText()+"',"
- + "Stok='"+stok.getText()+"',"
- + "Harga='"+hrg.getText()+"'"
- + " where " + "ID_Barang='"+id.getText()+"'" );
- kosongkan();
- tabel();
- JOptionPane.showMessageDialog(null, "Berhasil Mengupdate Data");
- }catch (SQLException | HeadlessException e) {
- JOptionPane.showMessageDialog(null, "Data Belum Lengkap : "+e);
- } // TODO add your handling code here:
- }
- private void HapusActionPerformed(java.awt.event.ActionEvent evt) {
- koneksi();
- try {
- stat.executeUpdate("delete from barang where "
- + "ID_Barang='"+id.getText()
- +"'" );
- kosongkan();
- tabel();
- JOptionPane.showMessageDialog(null, "Berhasil Dihapus");
- } catch (HeadlessException | SQLException e) {
- JOptionPane.showMessageDialog(null, "Gagal Dihapus/Koneksi Terputus "+e);
- } // TODO add your handling code here:
- }
- public static void main(String args[]) {
- try {
- for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
- if ("Nimbus".equals(info.getName())) {
- javax.swing.UIManager.setLookAndFeel(info.getClassName());
- break;
- }
- }
- } catch (ClassNotFoundException ex) {
- java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (InstantiationException ex) {
- java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (javax.swing.UnsupportedLookAndFeelException ex) {
- java.util.logging.Logger.getLogger(PENJUALAN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- }
- java.awt.EventQueue.invokeLater(new Runnable() {
- public void run() {
- new PENJUALAN().setVisible(true);
- }
- });
- }
- // Variables declaration
- private javax.swing.JButton Cari;
- private javax.swing.JButton Ganti;
- private javax.swing.JButton Hapus;
- private javax.swing.JButton Reset;
- private javax.swing.JButton Simpan;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel3;
- private javax.swing.JLabel jLabel4;
- private javax.swing.JLabel jLabel5;
- private javax.swing.JLabel jLabel6;
- private javax.swing.JLabel jLabel7;
- private javax.swing.JLabel jLabel8;
- private javax.swing.JScrollPane jScrollPane1;
- private javax.swing.JTextField id;
- private javax.swing.JTextField nama;
- private javax.swing.JTextField merk;
- private javax.swing.JTable tbl;
- private javax.swing.JTextField stok;
- private javax.swing.JTextField hrg;
- }
3. CreateDB_Penjualan
- import java.sql.*;
- import java.sql.DriverManager;
- import java.sql.Connection;
- import java.sql.SQLException;
- public class createDB_Penjualan {
- // JDBC driver name dan database URL
- static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
- static final String DB_URL = "jdbc:mysql://localhost/";
- // pemberian nama user dan pass pada database
- static final String USER = "root";
- static final String PASS = "";
- public static void main(String[] args) {
- //Deklarasi variabel dari java.sql
- Connection conn = null;
- Statement stmt = null;
- try{
- //STEP 2: Daftarkan JDBC driver
- Class.forName("com.mysql.jdbc.Driver"); //driver JDBC
- //STEP 3: Koneksi ke database
- System.out.println("Koneksi ke database...");
- conn = DriverManager.getConnection("jdbc:mysql://localhost/","root", "");
- //STEP 4: tambahkan ke Query
- System.out.println("Membuat database...");
- stmt = conn.createStatement();
- //STEP 5 : membuat database
- String sql = "CREATE DATABASE daftarbarangg";
- stmt.executeUpdate(sql);
- System.out.println("Database berhasil dibuat...");
- //membuat table pada database yang dibuat
- //STEP 1: mengkoneksikan database yang telah dibuat diatas
- System.out.println("Sedang koneksi ke database yang terpilih...");
- conn = DriverManager.getConnection("jdbc:mysql://localhost/daftarbarangg","root" ,"");
- System.out.println("Koneksi ke database berhasil...");
- //STEP 2: Tambahkan ke Query
- System.out.println("Membuat Table pada Database...");
- stmt = conn.createStatement();
- //STEP 3: Membuat Field-Field pada Table barang
- String tab = "CREATE TABLE barang " +
- "(ID_Barang INTEGER not NULL, " + //Field id barnang type Integer
- " Nama_Barang VARCHAR(255), " + //field nama barang type VARCHAR Lenght 255
- " Merk VARCHAR(255), " + //field merk type Varchar lenght 255
- " Stok INTEGER, " + //field stok type integez
- " Harga INTEGER, " +//field harga type integez
- " PRIMARY KEY ( ID_Barang ))"; //id barang sebagai Primary Key
- stmt.executeUpdate(tab);
- System.out.println("Table berhasil dibuat pada database yang terpilih...");
- }catch(SQLException se){
- //Menangani kesalahan untuk JDBC
- se.printStackTrace();
- }catch(Exception e){
- //Menangani kesalahan pada Class.forName
- e.printStackTrace();
- }finally{
- //akhir dari program yang digunakan
- try{
- if(stmt!=null)
- stmt.close();
- }catch(SQLException se2){
- }
- try{
- if(conn!=null)
- conn.close();
- }catch(SQLException se){
- se.printStackTrace();
- }
- }
- System.out.println("Selesai");
- }
- }
4. Cetak
- import javafx.application.Application;
- import javafx.application.Platform;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.geometry.Insets;
- import javafx.geometry.Pos;
- import javafx.scene.Scene;
- import javafx.scene.control.*;
- import javafx.scene.layout.*;
- import javafx.scene.text.Font;
- import javafx.scene.text.Text;
- import javafx.stage.Stage;
- import javafx.scene.layout.StackPane;
- import javafx.collections.*;
- import javafx.scene.paint.*;
- import javafx.scene.text.*;
- import javafx.scene.Group;
- import java.util.Random;
- public class Cetak
- {
- private Text NamaBarang = new Text(""), TotalHargaText = new Text("");
- private String jumlahBeli;
- public Cetak(Text namaBarang, String jumlah, Text TotalHarga)
- {
- NamaBarang = namaBarang;
- TotalHargaText = TotalHarga;
- jumlahBeli = jumlah;
- }
- public void showCetak()
- {
- Stage stage = new Stage();
- Scene scene = new Scene(new Group(), 500, 250);
- stage.setTitle("Nota Pembelian");
- GridPane grid = new GridPane();
- grid.setVgap(10);
- grid.setHgap(15);
- grid.setPadding(new Insets(10, 10, 10, 10));
- grid.add(new Label("PEMBELIAN BARANG TOKO CANAT"),0,0);
- grid.add(NamaBarang,0,1);
- grid.add(new Label(jumlahBeli),1,1);
- grid.add(new Label("Harga"),0,2);
- grid.add(TotalHargaText,1,2);
- Group root = (Group)scene.getRoot();
- root.getChildren().add(grid);
- stage.setScene(scene);
- stage.show();
- }
- }
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
Posting Komentar