Sebelumnya saya akan menjelaskan terlebih dahulu konsep aplikasi ini. Konsepnya adalah pemesanan kursi di bioskop dimana operator kasirlah yang akan mengoperasikan aplikasi ini. di aplikasi ini kasir bisa tau, mana kursi bioskop yang sudah di booking dan mana yang belum, juga mana kursi bioskop yang di unbooking.
Menu Utama aplikasi ini berupa menu pilihan film dan studio sebagai berikut :
Disini ada 3 pilihan film dimana satu film menempati satu studio.
Ketika operator mengklik salah satu tombol studio, dengan maksud ingin melihat pilihan kursi yang pelanggan dapat pilih, maka akan muncul frame beriku
Disini setiap kursi saya buat berupa tombol sehingga setiap kursi dapat memunculkan menu berikut ketika di klik:
Ada 3 pilihan utama menu ini dimana fungsinya berbeda-beda. Pertama-tama saya jelaskan yang status dulu :
Di bagian nama film dan studionya, saya buat berbentuk pilihan sehingga memungkinkan kesalahan pengetikan semakin kecil. Sedangkan untuk kode kursinya masih harus diketik oleh operator, karna ada kode yang berbeda disetiap film-nya untuk kursi yang sama. Sepert
nama film : coboy junior the movie
studio : studio 1
kursi nomor : 01 (ini adalah kode studio dan film) D1 (kode bangku) jika kursi belum di pesan (booking) maka akan muncul teksdialog berikut :
Ini berarti di database belum ada record bangku tersebut.
Jika kursi sudah terpesan maka akan muncul teksdialog :
Ini berarti di database sudah ada record kursi tersebut.
Nah, selanjutnya saya akan menjelaskan yang booking :
Sama seperti menu status, bentuk dan cara penggunaan frame sama tetapi hasilnya berbeda. Saat di klik BOOKING, jika kursi masih kosong maka akan muncul dialog :
dimana artinya kursi sudah dibooking dan direcord ke database.
Jika tidak bisa dibooking maka akan muncul dialog berikut:
Kemungkinannya, bangku sudah di record fi database atau program tidak konek database.
Yang terakhir, UNBOOK. Menu ini adalah penghapusan record yang ada di kursi tersebut :
Sama seperti menu-menu yang sebelumnya, penggunaan menu ini pun sama. Hanya saja menu ini berfungsi membatalkan kursi dan menghapus record yang dilakukan sebelumnya saat BOOKING.
Jika berhasil UNBOOK maka akan muncul dialog :
Nah, selanjutnya saya akan menjelaskan bagaimana membuat aplikasi ini.
Pertama kita harus membuat databasenya terlebih dahulu. Database ini nantinya akan menjadi sarana penyimpanan data booking an nya.
1. Aktifkan mysql didalam xampp
2. Masuk ke cmd, dan masuk ke mysql
3. Buat databaase”databioskopku”
4. Gunakan database “databioskopku” dan buat tabel “inputan” dengan kolom-kolom : kodekursi varchar(10), film varchar(100), studio varchar (10), dengan primary keynya (kodekursi).
Jadi, karena kodekursi adalah primary key, isian kodekursi tidak boleh sama, jadi setiap kursi hanya bisa di booking satu kali.
5.Jika sudah, maka tabel yang terbentuk sebagai berikut :
Nah, setelah database jadi, kita buat projek kita di netbeans:
Projek “bioskopKu”
Java Class : - BioskopKu
- koneksiDB
Jframe Form : - booking
- cekStatus
- menuUtam
- pilihan
- studio
- unbook
Sebelum memulai coding, kita harus load library MySQL JDBC, yaitu Driver yang menghubungkan aplikasi java dengan database server, dimana database server yang saya pakai adalah MySQL.
Oke, sekarang kita tinggal coding... ^^
Pertama kita masuk ke java class koneksiDB, ketik coding berikut :
package bioskopku;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Acer
*/
import java.sql.*;
publicclass koneksiDB {
public Connection conn;
public Statement st;
public ResultSet rs;
publicvoid koneksi() //fungsi koneksi
{
konek("localhost", "databioskopku", "root",""); //memanggil fungsi konek() untuk melakukan koneksi
}
publicvoid konek(String server, String db, String user, String passwd) //program untuk melakukan koneksi
{
System.out.println("Keterangan");
try//memanggil driver
{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
System.out.println(
"Ada kesalahan Driver JDBC tidak berhasil Load");
return;
}
System.out.println("Mysql JDBC Driver berhasil di Load");
conn = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/databioskopku","root","");
}
catch (SQLException e) {
System.out.println("tidak bisa koneksi ke database");
return;
}
if (conn != null)
{
System.out.println("berhasil koneksi!");
}
else
{
System.out.println("koneksi gagal");
}
}
}
selanjutnya, masuk ke frame menuUtama dan buat desain seperti ini :
pada tombol studio 1, studio 2, studio 3 buat event :
Dan ketik coding berikut untuk semua studio :
privatevoid jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new studio().setVisible(true); //membuat frame studio muncul
dispose(); //membuat frame menuUtama tertutup
}
pada tombol exit buat event :
Dan buat coding berikut :
privatevoid jButton4MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if ( JOptionPane.showConfirmDialog(null, "Apakah Anda yakin akan keluar ?","Konfirmasi", //
JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION)
System.exit(0); //membuat keluar dari aplikasi
}
lalu kita masuk ke frame studio,
buat desain seperti berikut :
Buat event seperti saat untuk studio 1, 2, 3. Lalu buat coding untuk setiap tombol kursi (A1, A2, B1, dst) :
privatevoid jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new pilihan().setVisible(true);
dispose();
}
dan tombol back :
privatevoid jButton37ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new menuUtama().setVisible(true);
dispose();
}
masuk ke frame pilihan. Buat sedain berikut :
Buat event sama dengan saat event studio 1. Pada tombol ‘status’ buat coding :
privatevoid jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new cekStatus().setVisible(true);
dispose();
}
pada tombol ‘booking’ buat coding:
privatevoid jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new booking().setVisible(true);
dispose();
}
pada tombol ‘unbook’ buat coding :
privatevoid jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new unbook().setVisible(true);
dispose();
}
pada tombol ‘back’ buat coding :
privatevoid jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new studio().setVisible(true);
dispose();
}
sekarang pindah ke frame cekStatus. Buat desain berikut :
Masuk ke SOURCE buat coding berikut :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bioskopku;
/**
*
* @author Acer
*/
import javax.swing.*;
import java.sql.SQLException;
publicclasscekStatusextends javax.swing.JFrame {
koneksiDB x; //deklarasi kelas
/**
* Creates new form booking
*/
publiccekStatus() {
initComponents();
x = new koneksiDB();
x.koneksi(); //panggil koneksi
}
Pada tombol ‘ok’buat event seperti tombol exit di menuUtama, dan buat coding berikut :
privatevoid jButton1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
String film, studio, kodeKursi, sql1, sql2;
film = (String) namaFilm.getSelectedItem();
studio = (String) tempatStudio.getSelectedItem();
kodeKursi = jTextField1.getText();
sql1 = "INSERT INTO inputan(kodeKursi,film,studio) VALUES ('"+kodeKursi+"', '"+film+"', '"+studio+"')";
try
{
x.st = x.conn.createStatement();
x.st.execute(sql1);
}
catch (SQLException e){
JOptionPane.showMessageDialog(null, "sudah dibooking sebelumnya");
return;
}
JOptionPane.showMessageDialog(null, "kosong");
sql2 = "delete from inputan where kodeKursi='"+kodeKursi+"'";
try
{
x.st = x.conn.createStatement();
x.st.execute(sql2);
}
catch (SQLException e){
}
}
pada tombol back buat event seperti studio 1. Dan buat coding :
privatevoid jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new pilihan().setVisible(true);
dispose();
}
pada frame booking, buat desain sama seperti pada cekStatus, tinggal ganti judulnya saja. Jangan lupa tambahkan coding di source seperti di cekStatus.
Pada tombol ‘booking’ buat event seperti tombol exit di menuUtama, dan buat coding berikut :
privatevoid jButton1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
String film, studio, kodeKursi, sql1, sql2;
film = (String) namaFilm.getSelectedItem();
studio = (String) tempatStudio.getSelectedItem();
kodeKursi = jTextField1.getText();
sql1 = "INSERT INTO inputan(kodeKursi,film,studio) VALUES ('"+kodeKursi+"', '"+film+"', '"+studio+"')";
try
{
x.st = x.conn.createStatement();
x.st.execute(sql1);
}
catch (SQLException e){
JOptionPane.showMessageDialog(null, "sudah dibooking sebelumnya");
return;
}
JOptionPane.showMessageDialog(null, "kosong");
sql2 = "delete from inputan where kodeKursi='"+kodeKursi+"'";
try
{
x.st = x.conn.createStatement();
x.st.execute(sql2);
}
catch (SQLException e){
}
}
pada tombol ‘back’ buat sama seperti pada tombol ‘back’ di cekStatus, sama eventnya maupun codingnya.
Selanjutnya ke frame unbook. Pada frame UNBOOK, buat desain sama seperti pada cekStatus, tinggal ganti judulnya saja. Jangan lupa tambahkan coding di source seperti di cekStatus.
Pada tombol ‘UNBOOK’ buat event seperti tombol exit di menuUtama, dan buat coding berikut :
privatevoid jButton1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
String film, studio, kodeKursi, sql;
film = (String) namaFilm.getSelectedItem();
studio = (String) tempatStudio.getSelectedItem();
kodeKursi = jTextField1.getText();
sql = "delete from inputan where kodeKursi='"+kodeKursi+"'";
try
x.st = x.conn.createStatement();
x.st.execute(sql);
}
catch (SQLException e){
JOptionPane.showMessageDialog(null, "gagal");
return;
}
JOptionPane.showMessageDialog(null, "baik. sudah diunbooking");
}
pada tombol ‘back’ buat sama seperti pada tombol ‘back’ di cekStatus, sama eventnya maupun codingnya.
Nah, program sudah selesai. Tinggal di aktifkan di class utama “BioskopKu”. Buat coding berikut :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package bioskopku;
/**
*
* @author Acer
*/
publicclass BioskopKu {
/**
* @param args the command line arguments
*/
publicstaticvoid main(String[] args) {
// TODO code application logic here
menuUtama frameku = new menuUtama();
frameku.setVisible(true);
}
}
Silahkan di coba.
Tambahan :
1.Mememasukan gambar ke panel :
Buat di panel sebuah label
Masuk ke properties
Hapus text, dan pilih ... di icon
Lalu jendela icon, pilih external image dan import gambar
Pilih gambar di alamat yang kamu mau :
Pilih finish -> yes -> ok -> close dan gambar sudah ada di panel. Tinggal di resize sesukamu ^^
2. Membuat combobox
Klik kanan tombol combo box
Pada properties klik ... pada model
Tinggal ketik pilihan yang mau ditunjukan.
Klik ok dan jadi deh ^^
Sekian penjelasan dari saya terima kasih.