Senin, 23 November 2020

Membuat Form dan Implementasi Logika

 Pada pertemuan 10 ini kita akan membuat Form dengan implementasi logika pada program yang akan dibuat.

Penerapan logika dapat kita buat dengan If atau switch case tergantung dari seberapa kompleks programnya. Untuk bentuk if dan switch case sendiri sudah dibahas pada pertemuan sebelumnya. Oleh karena itu, pada pertemuan ini langsung membahas tentang cara penerapan logika, instansiasi dan form.

Berikut adalah contoh penerapannya:

    1. Buatlah form dengan nama FormBarang.java kemudian rancang form tersebut seperti gambar berikut


    2. Pada form tersebut kita tambahkan object swing baru yaitu jComboBox. object tersebut biasa digunakan oleh programmer untuk         memilih salah satu item dari banyak item yang tersedia. Contoh diatas digunakan untuk memilih kode barang yang akan dibeli.

Properties object pada form :


Setelah pembuatan from (main class) selesai, seperti biasa kita butuh subclass untuk membuat source code proses. Buat class dengan nama Barang.java dan perhatikan source code untuk class Barang.java di bawah ini.

/**

 *

 * @author HP820

 */

public class Barang {

    public String kd, nm;

    public int jml;

    public double hrg,ttl,ub,uk;

    

        public void setKd(String val){

            kd=val;

        }

        public String getKd(){

            return kd;

        }

        public void setSeleksiKd(){

            if(kd.equalsIgnoreCase("B001")){

                nm="Pensil";

                hrg=3000;

            }else if(kd.equalsIgnoreCase("B002")){

                nm="Buku";

                hrg=5000;

            }else if(kd.equalsIgnoreCase("B003")){

                nm="Penggaris";

                hrg=1000;

            }else if(kd.equalsIgnoreCase("B004")){

                nm="Penghapus";

                hrg=500;

            }else{

                nm="";

                hrg=0;

            }    

        }

        

        public void setNm(String val){

            nm=val;

        }

        public String getNm(){

            return nm;

        }

        public void setHrg(Double val){

            hrg=val;

        }

        public double getHrg(){

            return hrg;

        }

        public void setJml(int val){

            jml=val;

        }

        public int getJml(){

            return jml;

        }

        public double getTot(){

            ttl=hrg*jml;

            return(ttl);

        }

        public void setUb(double val){

            ub=val;

        }

        public double getUb(){

            return ub;

        }

        public double getUk(){

            return(ub-ttl);

        }

}

Berikut adalah contoh script pada NetbeansIDE untuk script subclass Barang.java



KODE PROGRAM UNTUK FORMBARANG.JAVA

/*

 * To change this license header, choose License Headers in Project Properties.

 * To change this template file, choose Tools | Templates

 * and open the template in the editor.

 */


/**

 *

 * @author HP820

 */

import java.awt.event.KeyEvent;

import javax.swing.JOptionPane;


public final class FormBarang extends javax.swing.JFrame {

Barang brg = new Barang();

    /**

     * Creates new form FormBarang

     */

    public FormBarang() {

        initComponents();

        cbKode.addItem("PILIH");

        cbKode.addItem("B001");

        cbKode.addItem("B002");

        cbKode.addItem("B003");

        cbKode.addItem("B004");

        

        nonaktif();

        bersih();

    }

    void aktif(){

        cbKode.setEnabled(true);

        tjml.setEnabled(true);

        tubyr.setEnabled(true); 

    }

    

    void nonaktif(){

        cbKode.setEnabled(false);

        nb.setEnabled(false);

        thrg.setEnabled(false);

        tjml.setEnabled(false);

        ttot.setEnabled(false);

        tubyr.setEnabled(false);

        tukemb.setEnabled(false);

    }

    

    void bersih(){

        nb.setText("");

        thrg.setText("");

        tjml.setText("");

        ttot.setText("");

        tubyr.setText("");

        tukemb.setText("");

        cbKode.setSelectedItem("");

    }


    /**

     * 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() {


        jLabel1 = new javax.swing.JLabel();

        jLabel2 = new javax.swing.JLabel();

        nb = new javax.swing.JTextField();

        cbKode = new javax.swing.JComboBox<>();

        jLabel3 = new javax.swing.JLabel();

        jLabel4 = new javax.swing.JLabel();

        jLabel5 = new javax.swing.JLabel();

        jLabel6 = new javax.swing.JLabel();

        jLabel7 = new javax.swing.JLabel();

        bnew = new javax.swing.JButton();

        bclose = new javax.swing.JButton();

        thrg = new javax.swing.JTextField();

        tjml = new javax.swing.JTextField();

        ttot = new javax.swing.JTextField();

        tubyr = new javax.swing.JTextField();

        tukemb = new javax.swing.JTextField();


        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);


        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel1.setText("Kode Barang ");


        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel2.setText("Nama Barang");


        cbKode.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        cbKode.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                cbKodeActionPerformed(evt);

            }

        });


        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel3.setText("Harga Barang");


        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel4.setText("Jumlah Beli");


        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel5.setText("Total Bayar");


        jLabel6.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel6.setText("Uang Bayar");


        jLabel7.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel7.setText("Uang Kembali");


        bnew.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        bnew.setText("BERSIH");

        bnew.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                bnewActionPerformed(evt);

            }

        });


        bclose.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        bclose.setText("KELUAR");

        bclose.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                bcloseActionPerformed(evt);

            }

        });


        tjml.addActionListener(new java.awt.event.ActionListener() {

            public void actionPerformed(java.awt.event.ActionEvent evt) {

                tjmlActionPerformed(evt);

            }

        });

        tjml.addKeyListener(new java.awt.event.KeyAdapter() {

            public void keyPressed(java.awt.event.KeyEvent evt) {

                tjmlKeyPressed(evt);

            }

        });


        tubyr.addKeyListener(new java.awt.event.KeyAdapter() {

            public void keyPressed(java.awt.event.KeyEvent evt) {

                tubyrKeyPressed(evt);

            }

        });


        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(25, 25, 25)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(layout.createSequentialGroup()

                        .addComponent(bnew)

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(bclose))

                    .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(jLabel1)

                            .addComponent(jLabel2))

                        .addGap(18, 18, 18)

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(cbKode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                            .addComponent(nb, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE))))

                .addGap(16, 16, 16)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

                    .addComponent(jLabel4)

                    .addGroup(layout.createSequentialGroup()

                        .addComponent(jLabel3)

                        .addGap(25, 25, 25)

                        .addComponent(thrg, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE))

                    .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(jLabel6)

                            .addComponent(jLabel7)

                            .addComponent(jLabel5))

                        .addGap(24, 24, 24)

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addComponent(tukemb)

                            .addComponent(tubyr)

                            .addComponent(ttot)

                            .addComponent(tjml))))

                .addContainerGap(21, Short.MAX_VALUE))

        );

        layout.setVerticalGroup(

            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

            .addGroup(layout.createSequentialGroup()

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(layout.createSequentialGroup()

                        .addGap(73, 73, 73)

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                            .addComponent(jLabel1)

                            .addComponent(cbKode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

                        .addContainerGap()

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                            .addComponent(jLabel3)

                            .addComponent(thrg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                    .addGroup(layout.createSequentialGroup()

                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                            .addGroup(layout.createSequentialGroup()

                                .addGap(18, 18, 18)

                                .addComponent(jLabel2))

                            .addGroup(layout.createSequentialGroup()

                                .addGap(4, 4, 4)

                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                                    .addComponent(jLabel4)

                                    .addComponent(tjml, 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(ttot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))

                        .addGap(37, 37, 37))

                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

                        .addComponent(nb, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                        .addGap(49, 49, 49)))

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(jLabel6)

                    .addComponent(tubyr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addGap(18, 18, 18)

                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

                    .addComponent(bnew)

                    .addComponent(bclose)

                    .addComponent(jLabel7)

                    .addComponent(tukemb, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

                .addContainerGap(57, Short.MAX_VALUE))

        );


        pack();

    }// </editor-fold>                        


    private void tjmlActionPerformed(java.awt.event.ActionEvent evt) {                                     

        // TODO add your handling code here:

    }                                    


    private void tjmlKeyPressed(java.awt.event.KeyEvent evt) {                                

        // TODO add your handling code here:

        if(evt.getKeyCode()==KeyEvent.VK_ENTER){

            brg.setJml(Integer.parseInt(tjml.getText()));

            ttot.setText(Double.toString(brg.getTot()));

            tubyr.grabFocus();

        }

    }                               


    private void tubyrKeyPressed(java.awt.event.KeyEvent evt) {                                 

        // TODO add your handling code here:

        if(evt.getKeyCode()==KeyEvent.VK_ENTER){

            brg.setUb(Double.parseDouble(tubyr.getText()));

            tukemb.setText(Double.toString(brg.getUk()));

            if(brg.getUb()<brg.getTot()){

                JOptionPane.showMessageDialog(null, "Pembayaran Kurang !",

                "Warning",JOptionPane.OK_OPTION);

            tukemb.setText("");

            tubyr.setText("");

            }

            else{

                return;

            }

        }

    }                                


    private void bnewActionPerformed(java.awt.event.ActionEvent evt) {                                     

        // TODO add your handling code here:

        aktif();

        bersih();

        

    }                                    


    private void bcloseActionPerformed(java.awt.event.ActionEvent evt) {                                       

        // TODO add your handling code here:

        int x;

        x=JOptionPane.showConfirmDialog(null,"Yakin mau keluar ?","Konfirm",

                JOptionPane.YES_NO_OPTION);

        if(x==JOptionPane.YES_OPTION)

            dispose();

        else

            return;

    }                                      


    private void cbKodeActionPerformed(java.awt.event.ActionEvent evt) {                                       

        // TODO add your handling code here:

        brg.setKd(cbKode.getSelectedItem().toString());

        brg.setSeleksiKd();

        nb.setText(brg.getNm());

        thrg.setText(Double.toString(brg.getHrg()));

        tjml.requestFocus();

    }                                      


    /**

     * @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(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (InstantiationException ex) {

            java.util.logging.Logger.getLogger(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (IllegalAccessException ex) {

            java.util.logging.Logger.getLogger(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

        } catch (javax.swing.UnsupportedLookAndFeelException ex) {

            java.util.logging.Logger.getLogger(FormBarang.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 FormBarang().setVisible(true);

            }

        });

    }


    // Variables declaration - do not modify                     

    private javax.swing.JButton bclose;

    private javax.swing.JButton bnew;

    private javax.swing.JComboBox<String> cbKode;

    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.JTextField nb;

    private javax.swing.JTextField thrg;

    private javax.swing.JTextField tjml;

    private javax.swing.JTextField ttot;

    private javax.swing.JTextField tubyr;

    private javax.swing.JTextField tukemb;

    // End of variables declaration                   


}

Berikut adalah tampilan script main class FormBarang.java pada NetbeansIDE



Untuk hasil dari kedua script tersebut adalah sebagai berikut:






Anggi Setiawan (13190278) => Script FormBarang.java dan Barang.java => https://anggisetiawannn.blogspot.com/2020/11/membuat-form-dan-implementasi-logika.html

Tidak ada komentar:

Posting Komentar