Senin, 14 Januari 2019

Aplikasi Cek Harga Tiket Pesawat

1. Deskripsi

Aplikasi ini adalah ketika kita memilih maskapai yang kita inginkan dan tujuan perjalanan maka akan tampil lama perjalanandan harga tiket pesawat sesuai maskapaidan tujuan perjalanan kita.

Komponen yang ada pada aplikasi ini antara lain text field, combo box dan list. Dan untuk variabelnya saya antara lain maskapai, rute, lama perjalanan, dan harga.

2. Screen Shoot Form

 a. Maskapai Batik Air Dengan Tujuan Pontianak-Medan, Lama Perjalanan 4 Jam Dan Harga Rp.800.000


b. Maskapai Sriwijaya Air Dengan Tujuan Jakarta-Surabaya, Lama Perjalanan 1,5 Jam Dan Harga Rp.650.000


 c. Maskapai Lion Air Dengan Tujuan Bali-Singapore, Lama Perjalanan 10 Jam Dan Harga Rp. 1.500.000



3. Source Coding


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

import java.text.NumberFormat;
import java.util.ArrayList;
import javax.swing.DefaultListModel;

/**
 *
 * @author master
 */
public class UIRutePerjalanan extends javax.swing.JFrame {
    DefaultListModel<ModelRute> daftar = new DefaultListModel<>();
    /**
     * Creates new form UIRutePerjalanan
     */
    public UIRutePerjalanan() {
        initComponents();
       
        isiDataAwal();
        lstRute.setModel(daftar);
    }
   
    private void isiDataAwal(){
       
        ModelMaskapai maskapai1=new ModelMaskapai("Batik Air");
        ModelRute rute1= new ModelRute("Jakarta-Bali", "3.5 Jam", 99000);
        ModelRute rute2=new ModelRute("Jakarta-Pontianak", "1 Jam", 450000);
        ModelRute rute3=new ModelRute("Pontianak-Medan", "4 Jam", 800000);
        maskapai1.addRute(rute1);
        maskapai1.addRute(rute2);
        maskapai1.addRute(rute3);
       
        ModelMaskapai maskapai2=new ModelMaskapai("Sriwijaya Air");
        rute1= new ModelRute("Jakarta-Bali", "3 Jam", 120000);
        rute2=new ModelRute("Jakarta-Surabaya", "1.5 Jam", 650000);
        rute3=new ModelRute("Jakarta-Medan", "3 Jam", 750000);
        ModelRute rute4= new ModelRute("Surabaya-Medan", "6 Jam", 1300000);
        maskapai2.addRute(rute1);
        maskapai2.addRute(rute2);
        maskapai2.addRute(rute3);
        maskapai2.addRute(rute4);
       
        ModelMaskapai maskapai3=new ModelMaskapai("Lion Air");
        rute1= new ModelRute("Bali-Singapore", "10 Jam", 1500000);
        rute2=new ModelRute("Jakarta-Bali", "3 Jam", 250000);
        rute3=new ModelRute("Banjarmasin-Medan", "4.5 Jam", 900000);
        rute4= new ModelRute("Pontianak-Medan", "3.5 Jam", 550000);
        maskapai3.addRute(rute1);
        maskapai3.addRute(rute2);
        maskapai3.addRute(rute3);
        maskapai3.addRute(rute4);
       
        cboMaskapai.addItem(maskapai1);
        cboMaskapai.addItem(maskapai2);
        cboMaskapai.addItem(maskapai3);
    }

    /**
     * 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();
        cboMaskapai = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        lstRute = new javax.swing.JList();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        lblLamaPerjalanan = new javax.swing.JLabel();
        lblHarga = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Nama Maskapai");

        cboMaskapai.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cboMaskapaiActionPerformed(evt);
            }
        });

        jLabel2.setText("Rute");

        lstRute.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                lstRuteValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(lstRute);

        jLabel3.setText("Lama Perjalanan");

        jLabel4.setText("Harga");

        lblLamaPerjalanan.setText("Jam");

        lblHarga.setText("Rp");

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel5.setText("Cek Harga Tiket Pesawat");
        jLabel5.setToolTipText("");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addGap(18, 18, 18)
                        .addComponent(cboMaskapai, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel2)
                    .addComponent(jScrollPane1))
                .addGap(45, 45, 45)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel3)
                    .addComponent(jLabel4))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(lblLamaPerjalanan, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lblHarga, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)))
            .addGroup(layout.createSequentialGroup()
                .addGap(166, 166, 166)
                .addComponent(jLabel5)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(cboMaskapai, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(jLabel2)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel3)
                            .addComponent(lblLamaPerjalanan))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel4)
                            .addComponent(lblHarga)))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jLabel5.getAccessibleContext().setAccessibleName("Cek Harga Tiket Pesawat");

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

    private void cboMaskapaiActionPerformed(java.awt.event.ActionEvent evt) {                                           
        ModelMaskapai maskapai = (ModelMaskapai)cboMaskapai.getSelectedItem();
        ArrayList<ModelRute> arrayRute = maskapai.getRute();
       
        daftar.clear();
        for (int index=0; index<arrayRute.size(); index++){
            ModelRute rute=arrayRute.get(index);
            daftar.addElement(rute);
        }
       
    }                                          

    private void lstRuteValueChanged(javax.swing.event.ListSelectionEvent evt) {                                    
        //if (lstRute.getSelectedIndex()!=-1){
        try{
            int index = lstRute.getSelectedIndex();
            ModelRute rute=daftar.get(index);
            lblLamaPerjalanan.setText(rute.getLamaPerjalanan());
            lblHarga.setText(NumberFormat.getNumberInstance().format(rute.getHarga()));
        }
        catch (ArrayIndexOutOfBoundsException ex){}
        //}
    }                                   

    /**
     * @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(UIRutePerjalanan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(UIRutePerjalanan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(UIRutePerjalanan.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(UIRutePerjalanan.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 UIRutePerjalanan().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                    
    private javax.swing.JComboBox cboMaskapai;
    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.JScrollPane jScrollPane1;
    private javax.swing.JLabel lblHarga;
    private javax.swing.JLabel lblLamaPerjalanan;
    private javax.swing.JList lstRute;
    // End of variables declaration                  
}


 
 Sekian Dan Terima Kasih.......