Program Penjualan Laptop Menggunakan Java NetBeans



- Penjelasan Program, Flowchart, Souce Code beserta Screen Shoot nya
Laptop merupakan alat elektronik yang dibutuhkan dalam membantu memudahkan aktivitas bekerja dan lain sebagainya. Oleh karena itu banyak pebisnis yang mulai membuka bisnis penjualan Laptop. Namun untuk membuka usaha penjualan Laptop membutuhkan dana yang besar dan memiliki pengetahuan mengenai teknologi agar bisnis dapat maju. Bila terdapat kemauan dan kerja keras maka hal tersebut dapat terwujud. Selain itu, penjualan Laptop perlu menggunakan sistem Komputerisasi agar lebih cepat dan efisien. Berbicara mengenai penjualan, saya mencoba untuk membuat program sederhana untuk penjualan Laptop. 


- Flowchart




Berikut ini penjelasan pembuatan program selengkapnya.


- Buat project baru 
Untuk membuat program penjualan Laptop, Anda perlu membuat project baru dengan memilih File > New Project untuk membuat sebuah project baru. 




Buat class baru dengan cara klik kanan pada package > New > Java class dan buat dua class dengan nama ProgramPenjualanLaptop dan Model_penyimpanan. 



Buat script pemrograman java pada class ProgramPenjualanLaptop.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package program.penjualan.laptop;

/**
 *
 * @author Lutfi_Najmi_STMIK_ERESHA
 */
public class ProgramPenjualanLaptop {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Frame_penjualan_laptop Laund = new Frame_penjualan_laptop();
        Laund.setVisible(true);
    }
}


Buat script pemrograman java pada class Model_penyimpanan.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package program.penjualan.laptop;

import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Ardy Sendleep
 */
public class Model_penyimpanan {
    
    private DefaultTableModel tabel = new DefaultTableModel();
    public Model_penyimpanan(){
        
        getTabel().addColumn("No");
        getTabel().addColumn("Tipe Laptop");
        getTabel().addColumn("Harga Satuan");
       
    }
    
  


    /**
     * @return the tabel
     */
    public DefaultTableModel getTabel() {
        return tabel;
    }

    /**
     * @param tabel the tabel to set
     */
    public void setTabel(DefaultTableModel tabel) {
        this.tabel = tabel;
    }
    
     
}



Buat frame baru dengan cara klik kanan pada package > New > JFrame Form dengan nama Frame_penjualan_laptop.


Buat desain frame seperti contoh dibawah ini. 





Buat script pada desain frame dengan cara klik kanan pada button Beli > Events > Actions > ActionPerformed dan buat script pada frame.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package program.penjualan.laptop;

import javax.swing.table.TableColumn;

/**
 *
 * @author Lutfi_Najmi_STMIK_ERESHA
 */
public class Frame_penjualan_laptop extends javax.swing.JFrame {
    double nama,harga,jmlhjual,total;
    long hargaProduk1,hargaProduk2,hargaProduk3,hargaSatuan;
    String kodeMerk,merk,jenis,Merk1,Merk2,Merk3,warna,kondisi,kodeTipe;
    int a=0;
    Model_penyimpanan penjualan = new Model_penyimpanan();
    /**
     * Creates new form Frame_penjualan_laptop
     */
    public Frame_penjualan_laptop() {
        initComponents();
        tblBarang.setModel(penjualan.getTabel());
        
        TableColumn column;
        tblBarang.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); 
        column = tblBarang.getColumnModel().getColumn(0); 
        column.setPreferredWidth(50);
        column = tblBarang.getColumnModel().getColumn(1); 
        column.setPreferredWidth(250); 
        column = tblBarang.getColumnModel().getColumn(2); 
        column.setPreferredWidth(150); 
        
        cboMerk.addItem("Acer");
        cboMerk.addItem("Asus");
        cboMerk.addItem("Axioo");
        cboMerk.addItem("Apple");
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jLabel3 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        cboMerk = new javax.swing.JComboBox();
        btnLihat = new javax.swing.JButton();
        btnHapus = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblBarang = new javax.swing.JTable();
        txtTipe = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        txtWarna = new javax.swing.JTextField();
        btnBeli = new javax.swing.JButton();
        txtKondisi = new javax.swing.JTextField();
        txtSatuan = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel3.setText("Pilih Merk Laptop");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel1.setText("Program Penjualan Laptop");

        btnLihat.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        btnLihat.setText("Lihat");
        btnLihat.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnLihatActionPerformed(evt);
            }
        });

        btnHapus.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        btnHapus.setText("Hapus");
        btnHapus.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnHapusActionPerformed(evt);
            }
        });

        tblBarang.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane2.setViewportView(tblBarang);

        txtTipe.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel2.setText("Pilih No Tipe Laptop");

        jLabel4.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel4.setText("Warna Laptop");

        txtWarna.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        btnBeli.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        btnBeli.setText("Beli");
        btnBeli.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBeliActionPerformed(evt);
            }
        });

        txtKondisi.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        txtSatuan.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel5.setText("Kondisi Laptop");

        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel6.setText("Harga Satuan");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(109, 109, 109)
                .addComponent(jLabel1)
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(btnBeli))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(22, 22, 22)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(cboMerk, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(btnLihat)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(btnHapus)
                                        .addGap(11, 11, 11))))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                .addGap(10, 10, 10)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel6)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(txtSatuan, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel5)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(txtKondisi, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel4)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(txtWarna, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabel2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 92, Short.MAX_VALUE)
                                        .addComponent(txtTipe, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE)))))))
                .addGap(33, 33, 33))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(33, 33, 33)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(47, 47, 47)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cboMerk, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnLihat)
                    .addComponent(btnHapus))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(32, 32, 32)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtTipe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnBeli)
                .addGap(11, 11, 11)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(txtWarna, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(txtKondisi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(txtSatuan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(23, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void btnLihatActionPerformed(java.awt.event.ActionEvent evt) {
        String[] data = new String[3];
        a = a + 1;
        data[0] = String.valueOf(a);
        kodeMerk = (String) cboMerk.getSelectedItem();


        switch (kodeMerk) {
            case "Acer":
                Merk1 = "Acer Aspire ES1-431";
                Merk2 = "Acer Z1402-C4HS";
                Merk3 = "Acer One 10 S100X";
                hargaProduk1 = 3888000;
                hargaProduk2 = 3800000;
                hargaProduk3 = 3910000;
                break;
            case "Asus": {
                Merk1 = "Asus X453MA-WX240D";
                Merk2 = "ASUS X454WA-VX005D";
                Merk3 = "Asus X453ma-WX216D";
                hargaProduk1 = 3898000;
                hargaProduk2 = 3688000;
                hargaProduk3 = 3945000;
                break;
            }
            case "Axioo": {
                Merk1 = "AXIOO TKM C 125";
                Merk2 = "Axioo TNWC 825";
                Merk3 = "AXIOO TNN C 825";
                hargaProduk1 = 2599000;
                hargaProduk2 = 3799000;
                hargaProduk3 = 2680000;

                break;
            }
            case "Sony": {
                Merk1 = "Apple MacBook Pro MD101";
                Merk2 = "Apple MacBook Air MJVM2ID/A";
                Merk3 = "Apple Macbook MJY32";
                hargaProduk1 = 11999000;
                hargaProduk2 = 5999000;
                hargaProduk3 = 6800000;
            }
            break;
        }



        data[1] = String.valueOf(Merk1);
        data[2] = String.valueOf("Rp. " + hargaProduk1);
        penjualan.getTabel().addRow(data);

        String[] data2 = new String[3];
        a = a + 1;
        data[0] = String.valueOf(a);
        kodeMerk = (String) cboMerk.getSelectedItem();
        data[1] = String.valueOf(Merk2);
        data[2] = String.valueOf("Rp. " + hargaProduk2);
        penjualan.getTabel().addRow(data);

        String[] data3 = new String[3];
        a = a + 1;
        data[0] = String.valueOf(a);
        kodeMerk = (String) cboMerk.getSelectedItem();
        data[1] = String.valueOf(Merk3);
        data[2] = String.valueOf("Rp. " + hargaProduk3);
        penjualan.getTabel().addRow(data);



    }

    private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {
        penjualan.getTabel().removeRow(tblBarang.getSelectedRow());
    }

    private void btnBeliActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        kodeTipe = String.valueOf(txtTipe.getText());

        switch (kodeTipe) {
            case "1":
                hargaSatuan = hargaProduk1;
                warna = "Hitam dan Silver";
                kondisi = "Baru";

                break;
            case "2": {
                hargaSatuan = hargaProduk2;
                warna = "Hitam dan Silver";
                kondisi = "Baru";


                break;
            }
            case "3": {
                hargaSatuan = hargaProduk3;
                warna = "Hitam dan Silver";
                kondisi = "Baru";

            }
            break;
        }


        txtWarna.setText("" + warna);
        txtKondisi.setText("" + kondisi);
        txtSatuan.setText("" + hargaSatuan);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        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(Frame_penjualan_laptop.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Frame_penjualan_laptop.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Frame_penjualan_laptop.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Frame_penjualan_laptop.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Frame_penjualan_laptop().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton btnBeli;
    private javax.swing.JButton btnHapus;
    private javax.swing.JButton btnLihat;
    private javax.swing.JComboBox cboMerk;
    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.JScrollPane jScrollPane2;
    private javax.swing.JTable tblBarang;
    private javax.swing.JTextField txtKondisi;
    private javax.swing.JTextField txtSatuan;
    private javax.swing.JTextField txtTipe;
    private javax.swing.JTextField txtWarna;
    // End of variables declaration
}


- Lihat hasil program 
Jalankan hasil program penjualan Laptop dengan memilih Run Main Project(F6) atau Pilih Project > Klik kanan > Run. Pada program tersebut, Anda diminta memilih merek Laptop dan pilih button Lihat. Pilih no tipe Laptop dan pilih button Beli maka akan muncul informasi Warna laptop, Kondisi laptop dan Harga satuan. 











Komentar