Selasa, 09 Mei 2017

Program Tiket Kereta Api



Assalamualaikum W.r W.b
Nama  : Deal Rajudwi Dermawan
NIM    : 161011400142
Kelas   : 02TPLP001
Untuk Tugas Kali ini yang ingin saya bahas adalah bagaimana membuat Form Aplikasi Penjualan Tiket Kereta Api menggunakan Bahasa Pemograman Java NetBeans. sudah jangan berbelit belit sok monggo langsung kita praktekkan.
Untuk awal design Form Aplikasi Jawa Swing Gui pada Netbeans sebagai berikut :


design Form aplikasi penjualan tiket kereta api seperti yang diatas

Ubahlah Properties Name dari setiap component atau atribut sebagai berikut :).
OBJECT
VARIABLE NAME
TEXT
jLabel1
jLabel1
AGEN PENJUALAN TIKET
jLabel2
jLabel2
Nama
jLabel3
jLabel3
Kode Kereta
jLabel4
jLabel4
Nama Kereta
jLabel5
jLabel5
Jurusan
jLabel6
jLabel6
Jenis Tiket
jLabel7
jLabel7
Harga
jLabel8
jLabel8
Jumlah Beli
jLabel9
jLabel9
Total Bayar
jTextField1
tnama
“kosongkan”
jTextField2
tkereta
“kosongkan”
jTextField3
tharga
“kosongkan”
jTextField4
tbeli
“kosongkan”
jTextField5
ttotalbayar
“kosongkan”
jRadioButton1
rekonomi
Ekonomi
jRadioButton2
rbisnis
Bisnis
jRadioButton3
reksekutif
Eksekutif
jRadioButton4
rexpress
Express
jButton1
bhapus
Hapus
jButton2
bbeli
Beli
jButton3
blagi
Beli Lagi
jButton4
bkeluar
Keluar
jTable1
hsl
-
jComboBox1
cmbkode
------Pilih Kode------,KRL001, KRL002, KRL003
jComboBox2
cmbjurusan
“kosongkan”
Berikut ini adalah alur programnya :
  • untuk awal kita akan menuliskan nama pembeli pada textField nama.
  • kemudian memilih kode kereta yang akan ditumpangi, dimana saat kode kereta dipilih akan berpengaruh pada jurusan kereta tersebut serta tujuannya.
  • saat sudah dipilih maka nama kereta akan tampil pada textField nama kereta dan Cmb Jurusan akan ditambahkan item sesuai dengan jurusan kereta yang dipilih.
  • kemudian kita akan memilih jurusan dari Kereta tersebut yang akan memperngaruhi nilai harga tiket untuk dewasa dan anak anak
  • kemudian memilih apakah pembelian ekonomi atau bisnis, yang dimana harga akan tampil pada textField harga.
  • masukkan jumlah beli, kemudian enter dimana nanti akan menghasilkan jumlah total bayar yang didapatkan dari jumlah tiket yang dibeli dikalikan dengan harga tiket yang berlaku untuk kereta dan jurusan yang dipilih
  • kemudian klik button beli untuk menampilkan  hasil dari pembelian di dalam  table

Berikut ini adalah listing Kodenya : saya jabarkan satu persatu agar temen temen bisa memahami dan gak pusing ngeliatnya.

Sebelum memulai pengkodeannya kita harus mengimprort dahulu seperti dibawah ini ;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

Buat variable terlebih dahulu untuk proses perhitungan yang akan dilakukan. taruh pada public class JFrameKRL extends javax.swing.jFrame, seperti yang dibawah ini;

public class JFrameKRL extends javax.swing.JFrame {
    int max=0;
    int hekonomi,hbisnis,heksekutif,hexpress,harga,beli,totalbayar,index;
Selanjutnya masukan code seperti dibawah ini :
DefaultTableModel model;
    public JFrameKRL() {
        initComponents();
        model=(DefaultTableModel)tab.getModel();

Selanjutnya sourcecode pada action perform cmbkode dimana pada saat pemilihan kode akan menampilkan jurusan pada cmb jurusan yang sesuai dengan kereta tersebut. dan nanti nama kereta akan tampil pada textField nama kereta. Seperti yang dibawah ini :

private void cmbkodeActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
if(cmbkode.getSelectedItem().equals("KRL001")){
        tkereta.setText("ARGOJATI");
        cmbjurusan.removeAllItems();
        cmbjurusan.addItem("---- JURUSAN ----");
        cmbjurusan.addItem("JAKARTA - CIREBON");
        cmbjurusan.addItem("JAKARTA - SOLO");
    }
    else if(cmbkode.getSelectedItem().equals("KRL002")){
        tkereta.setText("ARGO PARAHYANGAN");
        cmbjurusan.removeAllItems();
        cmbjurusan.addItem("---- JURUSAN ----");
        cmbjurusan.addItem("JAKARTA - BANDUNG");
        cmbjurusan.addItem("JAKARTA - YOGYAKARTA");
    }
    else if(cmbkode.getSelectedItem().equals("KRL003")){
        tkereta.setText("ARGO BROMO ANGGREK");
        cmbjurusan.removeAllItems();
        cmbjurusan.addItem("---- JURUSAN ----");
        cmbjurusan.addItem("JAKARTA - SURABAYA");
        cmbjurusan.addItem("JAKARTA - PEKALONGAN");
    }else if(cmbkode.getSelectedItem().equals("KRL004")){
        tkereta.setText("ARGO WILIS");
        cmbjurusan.removeAllItems();
        cmbjurusan.addItem("---- JURUSAN ----");
        cmbjurusan.addItem("BANDUNG - SURABAYA");
        cmbjurusan.addItem("BANDUNG - LEMPUYANGAN");
    }else if(cmbkode.getSelectedItem().equals("KRL005")){
        tkereta.setText("GAYAMANA");
        cmbjurusan.removeAllItems();
        cmbjurusan.addItem("---- JURUSAN ----");
        cmbjurusan.addItem("JAKARTA - MALANG");
        cmbjurusan.addItem("JAKARTA - WONOSARI");
    }else if(cmbkode.getSelectedItem().equals("---- Pilih Kode ----")){
        tkereta.setText("");
        cmbjurusan.removeAllItems();
    }
    }  

ini code pemilihan jurusan dimana akan menentukan nilai harga berdasakan Ekonomi atau Bisnis walaupun belum ditampilkan untuk harga yang akan dipilih.

   private void cmbjurusanActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
         if(cmbjurusan.getSelectedItem().equals("---- JURUSAN ----")){
        buttonGroup2.clearSelection();
        tharga.setText("");
    }else if(cmbjurusan.getSelectedItem().equals("JAKARTA - CIREBON")){
        hekonomi=75000;
        hbisnis=150000;
        heksekutif=100000;
        hexpress=200000;
    }else if(cmbjurusan.getSelectedItem().equals("JAKARTA - SOLO")){
        hekonomi=75000;
        hbisnis=155000;
        heksekutif=200000;
        hexpress=250000;
    }
    else if(cmbjurusan.getSelectedItem().equals("JAKARTA - BANDUNG")){
        hekonomi=100000;
        hbisnis=300000;
        heksekutif=250000;
        hexpress=350000;
    }
    else if(cmbjurusan.getSelectedItem().equals("JAKARTA - YOGYAKARTA")){
        hekonomi=75000;
        hbisnis=275000;
        heksekutif=300000;
        hexpress=370000;
    }
    else if(cmbjurusan.getSelectedItem().equals("JAKARTA - SURABAYA")){
        hekonomi=50000;
        hbisnis=100000;
        heksekutif=150000;
        hexpress=200000;
    }
    else if(cmbjurusan.getSelectedItem().equals("JAKARTA - PEKALONGAN")){
        hekonomi=95000;
        hbisnis=170000;
        heksekutif=200000;
        hexpress=250000;
    }else if(cmbjurusan.getSelectedItem().equals("BANDUNG - SURABAYA")){
        hekonomi=95000;
        hbisnis=150000;
        heksekutif=200000;
        hexpress=250000;
    }else if(cmbjurusan.getSelectedItem().equals("BANDUNG - LEMPUYANGAN")){
        hekonomi=45000;
        hbisnis=90000;
        heksekutif=100000;
        hexpress=200000;
    }else if(cmbjurusan.getSelectedItem().equals("JAKARTA - MALANG")){
        hekonomi=55000;
        hbisnis=100000;
        heksekutif=200000;
        hexpress=350000;
    }else if(cmbjurusan.getSelectedItem().equals("JAKARTA - WONOSARI")){
        hekonomi=75000;
        hbisnis=170000;
        heksekutif=200000;
        hexpress=250000;
    }
    }
Menampilkan pada textField untuk Harga Jenis Tiket Ekonomi berdasarkan jurusan yang berlaku.
if(rekonomi.isSelected()){
            tharga.setText(String.valueOf(hekonomi));

        }
        rbisnis.setSelected(false);
        reksekutif.setSelected(false);
        rexpress.setSelected(false);
        }

Menampilkan pada textField untuk Harga Jenis Tiket Bisnis berdasarkan jurusan yang berlaku.
if(rbisnis.isSelected()){
            tharga.setText(String.valueOf(hbisnis));
        }
        rekonomi.setSelected(false);
        reksekutif.setSelected(false);
        rexpress.setSelected(false);
    }

Menampilkan pada textField untuk Harga Jenis Tiket Ekonomi berdasarkan jurusan yang berlaku.
if(reksekutif.isSelected()){
            tharga.setText(String.valueOf(heksekutif));
        }
        rekonomi.setSelected(false);
        rbisnis.setSelected(false);
        rexpress.setSelected(false);
    }

Menampilkan pada textField untuk Harga Jenis Tiket Ekonomi berdasarkan jurusan yang berlaku.
if(rexpress.isSelected()){
            tharga.setText(String.valueOf(hexpress));
        }
        rekonomi.setSelected(false);
        reksekutif.setSelected(false);
        rbisnis.setSelected(false);
    }

code action performe pada textField beli yang akan mempengaruhi jumlah total bayar dimana didapat dari nilai harga tiket dan jumlah beli tiket.
private void tbeliActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
         beli=Integer.parseInt(tbeli.getText());
        harga=Integer.parseInt(tharga.getText());
        totalbayar=beli*harga;
        ttotalbayar.setText(String.valueOf(totalbayar));
    }

Ini code action pada Button bbeli dimana jika dklik akan menampilkan didalam table ;
String nama = tnama.getText();

        String jenis = null;
       
        if (rekonomi.isSelected()){
            jenis="Ekonomi";
        }else if (reksekutif.isSelected()){
            jenis="Eksekutif";
        }else if (rbisnis.isSelected()){
            jenis="Bisnis";
        }else if (rexpress.isSelected()){
            jenis="Express";
        }
       
        String namakereta = tkereta.getText();
        String kode = (String) cmbkode.getSelectedItem();
        String jr = (String) cmbjurusan.getSelectedItem();
        String hrga = tharga.getText();
        String jumlah = tbeli.getText();
        String total = ttotalbayar.getText();

       
        if (tnama.getText().isEmpty()||tkereta.getText().isEmpty()||cmbkode.getSelectedItem().toString().isEmpty()||cmbjurusan.getSelectedItem().toString().isEmpty()||tharga.getText().isEmpty()||tbeli.getText().isEmpty()||ttotalbayar.getText().isEmpty()){
           JOptionPane.showMessageDialog(null, "error :setiap kolom harus diisi","pesan kesalahan", JOptionPane.WARNING_MESSAGE);
          
        }
        else{
           String kd = tbeli.getText();
           boolean sudah=false;
           for (int i = 0; i < tab.getRowCount(); i++) {
               if(kd.equals(tab.getValueAt(i, 1))){
                model.setValueAt(tnama.getText(),tab.getSelectedRow(),1);
                model.setValueAt(jenis,tab.getSelectedRow(),2);
                model.setValueAt(tkereta.getText(),tab.getSelectedRow(),3);
                model.setValueAt(cmbkode.getSelectedItem().toString(),tab.getSelectedRow(),4);
                model.setValueAt(cmbjurusan.getSelectedItem().toString(),tab.getSelectedRow(),5);
                model.setValueAt(tharga.getText(),tab.getSelectedRow(),6);
                model.setValueAt(tbeli.getText(),tab.getSelectedRow(),7);
                model.setValueAt(ttotalbayar.getText(),tab.getSelectedRow(),8);
                sudah = true;
               }
           }
           if(!sudah){
               model.insertRow(model.getRowCount(),new Object[]{max+1,nama,kode,namakereta,jenis,jr,harga,jumlah,total});
               max++;
           }
         }
    }                                    
Ini code action pada Button blagi dimana jika diklik semua akan kembali ke kondisi awal untuk pembelian tiket lainnya
private void blagiActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
model.removeRow(tab.getSelectedRow());
        tharga.setText("");
        tnama.setText("");
        cmbkode.setSelectedItem("---- Pilih Kode ----");
        tkereta.setText("");
        tbeli.setText("");
        ttotalbayar.setText("");
        cmbjurusan.removeAllItems();
        rekonomi.setSelected(false);
        rbisnis.setSelected(false);
        reksekutif.setSelected(false);
        rexpress.setSelected(false);
        rekonomi.setEnabled(true);
        rbisnis.setEnabled(true);
        reksekutif.setEnabled(true);
        rexpress.setEnabled(true);
        max=0;
            for (int i = 0; i < tab.getRowCount(); i++) {
                model.setValueAt(max+1, i, 0);
                max++;}
    }
Dan ini code action buat button Hapus ;
model.removeRow(tab.getSelectedRow());
        tnama.setText("");
        tharga.setText("");
        tkereta.setText("");
        tbeli.setText("");
        ttotalbayar.setText("");
        cmbkode.setSelectedItem("---- Pilih Kode ----");
        cmbjurusan.removeAllItems();
        rekonomi.setSelected(false);
        rbisnis.setSelected(false);
        reksekutif.setSelected(false);
        rexpress.setSelected(false);
        rekonomi.setEnabled(true);
        rbisnis.setEnabled(true);
        reksekutif.setEnabled(true);
        rexpress.setEnabled(true);
        max=0;
            for (int i = 0; i < tab.getRowCount(); i++) {
                model.setValueAt(max+1, i, 0);
                max++;}
    }

Dan terakhir code action pada Button bkeluar.
private void bkeluarActionPerformed(java.awt.event.ActionEvent evt) {                                       
int answer = JOptionPane.showConfirmDialog(null, "Thanks", "Selesai", JOptionPane.OK_OPTION);
        if (answer == JOptionPane.OK_OPTION){
            dispose();
        } int answer = JOptionPane.showConfirmDialog(null, "Thanks", "Selesai", JOptionPane.OK_OPTION);
        if (answer == JOptionPane.OK_OPTION){
            dispose();
        )
    }

Berikut ini adalah hasil proram setelah dijalankan
Awalnya akan muncul  JOptionPane seperti dibawh ini;



pada saat program dijalankan



pada saat button beli lagi di klik kembali ke kondisi awal

Dan apabila klik buuton keluar maka akan menutup program tersebut.,dan akan muncul JOptionPanenya seperti yg dibawah ini ;



Nah selesai sudah tugas saya kali ini, mohon maaf ada kesalahan dalam menjelaskan program yang diatas in, semoga tidak mengecewakan Dosen saya, . Baiklah temen Temen semua semoga menginspirasi dan berguna untuk temen temen yang sedang belajar.
Wassalamualaikum w.r w.b

Aplikasi Sederhana Agen Travel Berbasis Android Menggunakan SoftWare ADT Eclipse

Assalamualaikum W.r W.b           Pada kesempatan kali ini saya akan melanjutkan sebuah program aplikasi yang pernah saya post sebelumn...