Project UTS || Full Aplikasi Tiket Bioskop - Kenal Coding

Project UTS || Full Aplikasi Tiket Bioskop

   Hay, sahabat coding...gimna kabarnya? Baik" aja kan?! Semoga slalu diberikan kesehatan. Kali ini saya akan memberikan sedikit ilmu dari yang saya dapat dalam project UTS. Langsung aja kita masuk ke pembahasan

1. Anda buat JFrame untuk bagian "Utama", dengan cara seperti gambar dibawah :

       Dan untuk JFrame bagian "Teater", dengan cara seperti gambar dibawah :
Buat seperti ini untuk "teater 2-8"

 Setelah itu akan tampil di navigation seperti ini :

2. Design JFrame "Utama" yang anda buat tadi, dan tambahkan Tabbed Pane dari Palette :

Setelah ditambahkan tabbed pane, designlah seperti gambar dibawah :
untuk tab 1, berilah nama "Teater"

untuk tab 2, berilah nama "Film"

untuk tab 3, berilah nama "Penjualan Tiket"

        untuk Design JFrame "teater" seperti gambar dibawah :
                               
untuk "teater 2-8" sama seperti yang diatas

        maka akan tampil di navigation seperti ini :
                                               

3. Selanjutnya masuk ke coding, untuk mengoding JFrame "Utama". Langsung aja ke pembahasan coding yang ada dibawah :

a. Pada tab 1 (Teater)
  • Deklarasi Global Variabel Integer :
    private Vector<Vector<String>> DB = new Vector(), data = new Vector();
    private Vector head = new Vector();
    private int max = 0;
    private String fileName = "F:/dataBioskop.txt";
    private DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
    private teater t1 = new teater(this);
    private teater2 t2 = new teater2(this);
    private teater3 t3 = new teater3(this);
    private teater4 t4 = new teater4(this);
    private teater5 t5 = new teater5(this);
    private teater6 t6 = new teater6(this);
    private teater7 t7 = new teater7(this);
    private teater8 t8 = new teater8(this);

    public Utama() {
        initComponents();
        rightRenderer.setHorizontalAlignment(SwingConstants.RIGHT);
        bacaData();
        updateTabel();
    }

    private void bacaData() {
        try {
            BufferedReader br = new BufferedReader(new FileReader(fileName));
            String tmp;
            while ((tmp = br.readLine()) != null) {
                StringTokenizer st = new StringTokenizer(tmp, "#");
                Vector<String> tmp2 = new Vector();
                String No = st.nextToken();
                String Nama = st.nextToken();
                String Teater = st.nextToken();
                String Film = st.nextToken();
                String Jam = st.nextToken();
                String Hari = st.nextToken();
                String Kursi = st.nextToken();
                String Jml = st.nextToken();
                String Total = st.nextToken();
                tmp2.add(No);
                tmp2.add(Nama);
                tmp2.add(Teater);
                tmp2.add(Film);
                tmp2.add(Jam);
                tmp2.add(Hari);
                tmp2.add(Kursi);
                tmp2.add(Jml);
                tmp2.add(Total);
                DB.add(tmp2);
                if (Integer.parseInt(No) > max) {
                    max = Integer.parseInt(No);
                }
            }
            br.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    private void updateTabel() {
        data = new Vector();
        head = new Vector();
        head.add("No");
        head.add("Nama");
        head.add("Teater");
        head.add("Film");
        head.add("Jam");
        head.add("Hari");
        head.add("No.Kursi");
        head.add("Jumlah");
        if (CkbShowAlamat.isSelected()) {
            head.add("Total");
        }

        for (Vector<String> v1 : DB) {
            Vector<String> v2 = new Vector<>();
            v2.add(v1.get(0));
            v2.add(v1.get(1));
            v2.add(v1.get(2));
            v2.add(v1.get(3));
            v2.add(v1.get(4));
            v2.add(v1.get(5));
            v2.add(v1.get(6));
            v2.add(v1.get(7));
            if (CkbShowAlamat.isSelected()) {
                v2.add(v1.get(8));
            }
            data.add(v2);
        }

        tabdata.setModel(new DefaultTableModel(data, head));
        tabdata.getColumnModel().getColumn(0).setPreferredWidth(50);
        tabdata.getColumnModel().getColumn(1).setPreferredWidth(200);
        tabdata.getColumnModel().getColumn(2).setPreferredWidth(100);
        tabdata.getColumnModel().getColumn(3).setPreferredWidth(200);
        tabdata.getColumnModel().getColumn(4).setPreferredWidth(100);
        tabdata.getColumnModel().getColumn(5).setPreferredWidth(100);
        tabdata.getColumnModel().getColumn(6).setPreferredWidth(100);
        tabdata.getColumnModel().getColumn(7).setPreferredWidth(100);
        //tabdata.getColumnModel().getColumn(8).setPreferredWidth(100);
        if (CkbShowAlamat.isSelected()) {
            tabdata.getColumnModel().getColumn(8).setPreferredWidth(200);
        }
        tabdata.getColumnModel().getColumn(0).setCellRenderer(rightRenderer);
        tabdata.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);
        tabdata.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);
        tabdata.getColumnModel().getColumn(3).setCellRenderer(rightRenderer);
        //tabdata.getColumnModel().getColumn(8).setCellRenderer(rightRenderer);
    }

    private void simpanData() {
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
            for (Vector<String> v : DB) {
                bw.write(v.get(0) + "#" + v.get(1) + "#" + v.get(2) + "#" + v.get(3) + "#" + v.get(4) + "#" + v.get(5) + "#" + v.get(6) + "#" + v.get(7) + "#" + v.get(8));
                bw.newLine();
            }
            bw.close();
        } catch (Exception e) {
        }
    }

    private void hapusData() {
        String nama = txnama.getText().trim();
        if (nama.equals("")) {
            JOptionPane.showMessageDialog(this, "Tentukan Nama yang ingin dihapus.");
        } else {
            if (JOptionPane.showConfirmDialog(this, "Data " + nama + " dihapus?", "Konfirmasi", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
                return;
            }
            boolean b = false;
            int i;
            for (i = 0; i < DB.size(); i++) {
                if (DB.get(i).get(1).equals(nama)) {
                    b = true;
                    break;
                }
            }
            if (b) {
                DB.remove(i);
                JOptionPane.showMessageDialog(this, "Proses Hapus sukses.");
                max = 0;
                for (Vector<String> v : DB) {
                    if (Integer.parseInt(v.get(0)) > max) {
                        max = Integer.parseInt(v.get(0));
                    }
                }
                updateTabel();
                txnama.setText("");
                txtteater.setText("");
                txtfilm.setText("");
                cmbjam.setSelectedItem("--- Pilih Jam ---");
                cmbhari.setSelectedItem("--- Pilih Hari ---");
                txtno.setText("");
                txjml.setText("");
                txtotal.setText("");
            } else {
                JOptionPane.showMessageDialog(this, "Data tidak ditemukan.");
            }
        }
    }

Pada Deklarasi Global, terdapat juga public untuk BufferReader dan BufferWriter. Lebih jelasnya bisa dilihat KlikDisni


  • Codingan pada action Button Studio 1 - 8 :
private void studio1ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t1.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio2ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t2.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio3ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t3.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio4ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t4.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio5ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t5.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio6ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t6.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio7ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t7.showMe();   //membuat frame studio muncul
        setVisible(false);
    }                                    

    private void studio8ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        t8.showMe();   //membuat frame studio muncul
        setVisible(false);
    }


  • Coding pada action Button Exit :


b. Pada tab 2 (Film)

  • Coding pada action ComboBox Film :
private void cmbfilmActionPerformed(java.awt.event.ActionEvent evt) {                                      
        if (cmbfilm.getSelectedItem().equals("BATMAN VS SUPERMAN")) {
            txtfilm.setText("BATMAN VS SUPERMAN");

        } else if (cmbfilm.getSelectedItem().equals("IRON MAN 3")) {
            txtfilm.setText("IRON MAN 3");

        } else if (cmbfilm.getSelectedItem().equals("G.I.JOE")) {
            txtfilm.setText("G.I.JOE");

        } else if (cmbfilm.getSelectedItem().equals("EXPENDABLES3")) {
            txtfilm.setText("EXPENDABLES3");

        } else if (cmbfilm.getSelectedItem().equals("3 DARA")) {
            txtfilm.setText("3 DARA");

        } else if (cmbfilm.getSelectedItem().equals("TALAK 3")) {
            txtfilm.setText("TALAK 3");

        } else if (cmbfilm.getSelectedItem().equals("MAGIC HOUR")) {
            txtfilm.setText("MAGIC HOUR");

        } else if (cmbfilm.getSelectedItem().equals("SURGA YANG TAK DIRINDUKAN")) {
            txtfilm.setText("SURGA YANG TAK DIRINDUKAN");

        } else if (cmbfilm.getSelectedItem().equals("---- Pilih Film ----")) {
            txtfilm.setText("");
        }
    } 


  • Coding pada action ComboBox Teater :
private void cmbteaterActionPerformed(java.awt.event.ActionEvent evt) {                                        
        if (cmbteater.getSelectedItem().equals("Teater 1")) {
            txtteater.setText("Teater 1");

        } else if (cmbteater.getSelectedItem().equals("Teater 2")) {
            txtteater.setText("Teater 2");

        } else if (cmbteater.getSelectedItem().equals("Teater 3")) {
            txtteater.setText("Teater 3");

        } else if (cmbteater.getSelectedItem().equals("Teater 4")) {
            txtteater.setText("Teater 4");

        } else if (cmbteater.getSelectedItem().equals("Teater 5")) {
            txtteater.setText("Teater 5");

        } else if (cmbteater.getSelectedItem().equals("Teater 6")) {
            txtteater.setText("Teater 6");

        } else if (cmbteater.getSelectedItem().equals("Teater 7")) {
            txtteater.setText("Teater 7");

        } else if (cmbteater.getSelectedItem().equals("Teater 8")) {
            txtteater.setText("Teater 8");

        } else if (cmbteater.getSelectedItem().equals("---- Pilih Film ----")) {
            txtteater.setText("");
        }
    } 


  • Coding pada action Button Konfirmasi :


c. Pada tab 3 (Penjualan)

  • Coding pada action Button Baru.ico :

  • Coding pada action Button Beli Tiket :
private void btnbeli4btnbeliActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        int Bil = Integer.parseInt(txjml.getText());
        if (cmbhari.getSelectedItem() == "Senin") {
            int hasil = Bil * 30000;
            txtotal.setText("" + hasil);
        } else if (cmbhari.getSelectedItem() == "Selasa") {
            int hasil = Bil * 30000;
            txtotal.setText("" + hasil);
        } else if (cmbhari.getSelectedItem() == "Rabu") {
            int hasil = Bil * 30000;
            txtotal.setText("" + hasil);
        } else if (cmbhari.getSelectedItem() == "Kamis") {
            int hasil = Bil * 30000;
            txtotal.setText("" + hasil);
        } else if (cmbhari.getSelectedItem() == "Jumat") {
            int hasil = Bil * 35000;
            txtotal.setText("" + hasil);
        } else if (cmbhari.getSelectedItem() == "Sabtu") {
            int hasil = Bil * 40000;
            txtotal.setText("" + hasil);
        } else {
            int hasil = Bil * 40000;
            txtotal.setText("" + hasil);
        }
    }


  • Coding pada action Button Keluar :

  • Coding pada action CheckBox Tampilkan Total Harga :

  • Coding pada action Button Simpan.ico :
private void btnsimpanbtnverifikasiActionPerformed(java.awt.event.ActionEvent evt) {                                                      
        String no = String.valueOf(max + 1);
        String nama = txnama.getText().trim();
        String teater = txtteater.getText().trim();
        String film = txtfilm.getText().trim();
        String jam = cmbjam.getSelectedItem().toString();
        String hari = cmbhari.getSelectedItem().toString();
        String kursi = txtno.getText().trim();
        String jml = txjml.getText().trim();
        String total = txtotal.getText().trim();
        if (nama.equals("") || teater.equals("") || film.equals("") || jam.equals("") || hari.equals("") || kursi.equals("") || jml.equals("") || total.equals("")) {
            JOptionPane.showMessageDialog(this, "Semua isian harus diisi.");
        } else {
            boolean b = false;
            int i;
            Vector<String> v = new Vector<>();

            for (i = 0; i < DB.size(); i++) {
                if (DB.get(i).get(1).equals(nama)) {
                    b = true;
                    break;
                }
            }
            if (b) {
                v.add(DB.get(i).get(0));
                v.add(nama);
                v.add(teater);
                v.add(film);
                v.add(jam);
                v.add(hari);
                v.add(kursi);
                v.add(jml);
                v.add(total);
                DB.setElementAt(v, i);
                updateTabel();
                JOptionPane.showMessageDialog(this, "Proses update sukses.");
            } else {
                v.add(no);
                v.add(nama);
                v.add(teater);
                v.add(film);
                v.add(jam);
                v.add(hari);
                v.add(kursi);
                v.add(jml);
                v.add(total);
                DB.add(v);
                updateTabel();
                max++;
                JOptionPane.showMessageDialog(this, "Proses simpan sukses.");
            }
            txnama.setText("");
            txtteater.setText("");
            txtfilm.setText("");
            cmbjam.setSelectedItem("--- Pilih Jam ---");
            cmbhari.setSelectedItem("--- Pilih Hari ---");
            txtno.setText("");
            txjml.setText("");
            txtotal.setText("");
            txnama.setEditable(false);
        }
    }


  • Coding pada action Button Hapus.ico :

  • Coding pada action Button PDF :
private void reportActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        JOptionPane.showMessageDialog(null, "Karcis telah Siap");
        DefaultTableModel mod = (DefaultTableModel) tabdata.getModel();
       if(CkbShowAlamat.isSelected()){
        String[] jud = {"No ", "Nama", "Teater", "Film", "jam", "hari", "no kursi", "tiket", "total harga"};
        String[][] isi = new String[tabdata.getRowCount()][tabdata.getColumnCount()];

        for (int i = 0; i < tabdata.getRowCount(); i++) {
            for (int j = 0; j < tabdata.getColumnCount(); j++) {
                isi[i][j] = mod.getValueAt(i, j).toString();
            }
            try {
                cetakkarcisbioskop cetak
                        = new cetakkarcisbioskop(jud, isi, tabdata.getRowCount(), tabdata.getColumnCount());
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
            } catch (DocumentException ex) {
                Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
       }else{
           String[] jud = {"No ", "Nama", "Teater", "Film", "jam", "hari", "no kursi", "tiket"};
        String[][] isi = new String[tabdata.getRowCount()][tabdata.getColumnCount()];

        for (int i = 0; i < tabdata.getRowCount(); i++) {
            for (int j = 0; j < tabdata.getColumnCount(); j++) {
                isi[i][j] = mod.getValueAt(i, j).toString();
            }
            try {
                cetakkarcisbioskop cetak
                        = new cetakkarcisbioskop(jud, isi, tabdata.getRowCount(), tabdata.getColumnCount());
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
            } catch (DocumentException ex) {
                Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
       }
    }


Selanjutnya masuk ke coding, untuk mengoding JFrame "Teater". Langsung aja ke pembahasan coding yang ada dibawah :

  • Deklarasi Global Variabel Integer :
  private Utama u;
    private Vector<javax.swing.JRadioButton> t4duduk = new Vector();
    private JRadioButton jb = null;
    public teater(Utama u) {
        initComponents();
        this.u = u;
    }
     public void showMe(){
         jb = null;
         setVisible(true);
     }

  • Coding pada action RadioButton klikt4 :
Block semua radio button lalu pilih Propertise-> Events-> ActionPerformed-> add
  • Coding pada action Reset :


  • Coding pada action Next :

4. Dan inilah hasil yang sudah di Run seperti gambar-gambar dibawah ini :





   Lebih jelasnya ada pada link dibawah ini :

   Download projectnya ada pada link dibawah ini :

  Sekian dari kami, semoga bermanfaat bagi kalangan pemrograman. Dan aplikasi diatas jauh dari kata sempurna, maklum karna kami masih pemula mohon maaf apabila ada kurangnya.
   Sampai ketemu di postingan VIP CODING selanjutnya...dah...dah,,,dah








Previous
Next Post »

5 comments

Write comments
Rofiq
AUTHOR
June 1, 2016 at 4:22 PM delete

terima kasih, ijin sedot.
ini sangat membantu saya, semoga amal kebaikan mu ini di ganti oleh tuhan dengan kenikmatan yang luar biasa... hehehehe

Reply
avatar
ardidoaibu
AUTHOR
January 1, 2017 at 5:45 AM delete

Sama" mas, amiin yaa rabbal alamin. Smoga bisa bermanfaat

Reply
avatar
Anonymous
AUTHOR
May 22, 2018 at 8:36 PM delete

bro2, linknya rusak. bisa diperbaiki gk bro?

Reply
avatar
ainurmalaneko
AUTHOR
July 27, 2018 at 9:07 PM delete

mas link download project ny rusak

Reply
avatar
amandaa
AUTHOR
October 7, 2019 at 8:08 AM delete

Gan mau nanya,kan disitu contoh hasil runnya pembeli membeli dua tiket sedangkan kode kursi nya cmn satu itu gimana ya??apakah bisa jika kita ingin memesan tiket lebih dr satu dan kode kursinya bisa kita pilih checkbox nya juga lebih dr satu??

pleasee respon ya Gan

Reply
avatar