Membuat Applikasi Parkir dengan Java Net Beans.
Hubungi email saya untuk mendapatkan file yang sudah jadi untuk mencobanya.
email : pebri.haerudin@hotmail.com
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Program Parkir dengan JavaNetBeans
1. JAVA Programming - Membuat Program Parkir
Pembuat : Pebri Haerudin
NIM : 2018081112
Saya namakan Program ini “ System Monitoring Parkir” .
1. Login dengan Hakakses masuk
2. Input Data Plat Mobil/Motor dengan catatn tanggal dan jam secara realtime
3. Input Data Plat Mobil/Motor di hitung biaya.
Mobil bertarif 4000 dijam pertama dan 1000 jam berikutnya.
Motor bertarif 2000 dijam pertama dan 1000 jam berikutnya.
4. Menu dan Form dibuat jFrame, jDialog, jMenu
5. Database mysql “projectparkir” dengan dua data “userdb” untuk data Login dan “parkirdb”
untuk data kendaraan parkir.
2. JAVA Programming - Membuat Program Parkir
1. Login ke Applikasi
Membuat database, disini saya membuat database dengan nama “projectparkir” berisi dua database.
Pertama “userdb” dan kedua “parkirdb”
“userdb” berisi 5 index adapun didalamnya (userid”primary”, username, password, nama, hakakses).
Hakakses untuk membuat kategori hak akses dalam membuka program saat Login.
Semunya bertipe varchar.
“parkirdb” berisi 8 index adapun didalamnya (nomorkendaraan”primary”, nomortiket,jeniskendaraan,
Tglmasuk,jammasuk,tglkeluar,jamkeluar dan biaya).
“tglkeluar” dan “jamkeluar” untuk seting NULL saya pilih Yes dan Defaul NULL sedangkan “biaya”
Saya buat DEFAULT “0” untuk nantinya mencari data parkir yang masih didalam atau belum bayar.
Untuk type disesuaikan dapat dilihat pada gambar dibawah ini.
Add Libary ; MYSQL untuk database, jCalendar untuk Realtime Waktu. Jika tidak ada bisa download
Cari di internet dan add file
3. JAVA Programming - Membuat Program Parkir
Program parkir di seting harga jam pertama Mobil Rp. 4000 dan Motor Rp. 2000 untuk jam pertama
Jam berikutnya Mobil dan Motor dikenakan tarif Rp. 1000.
Adapun Program Menu Utama dibawah ini;
Ini untuk Login hakakses “Administrator” username”Administrator” dan pass “admin”.
Ini Tampilan dari menu “INPUT DATA KENDARAAN” masuk jika ingin input kendaraan dengan cara
Isi Field lalu klik Tombol “Simpan” untuk save ke database seting Tanggal dan jam adalah Realtime.
Tersedia Tombol Tampil data kendaraan Yang belum keluar untuk melihat Nomor Kendaraan yang
belu mkeluar sebelum proses Input Keluar.Tombol “Parkir Keluar” untuk llink Dialog INPUT KENDARAAN
KELUAR. Ketik Nomor Kendaraan lalu Klik tombol “Cari” akan muncul data dengan hitungan Biaya Parkir.
Jika keluar maka klik tombol “Simpan” untuk menyimpan kedalam database semua data. Untuk kembali
Ke INPUT DATA MASUK tersedia Tombol “Input Data Masuk”.
Tampilan Menu sebelum Login
Hakakses ada Input Kendaraan dan Admin
4. JAVA Programming - Membuat Program Parkir
Untuk Menu “Admin” dibuat dengan jTabbePane di buat 2 untuk Administrasi dapat melihat
“DATA PARKIR” Keseluruhan juga dapat meng hapusnya dan satunya adalah melihat “DATA PENGGUNA”.
Bisa untuk Tambah, Ubah dan Hapus.
Tampilan Hakakses “User” hanya muncul “Input Kendaraan”.
Tampilan Tentang Pembuat
Hakakses ada Input Kendaraan dan User
5. JAVA Programming - Membuat Program Parkir
Coding “Login “ pada Source
public MainApps() {
initComponents();
setMenuLogout();
}
private void login(){
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/projectparkir", "root", "");
String password;
password = new String (passW.getPassword());
Statement stm = koneksi.createStatement();
String data = "SELECT * FROM userdb WHERE username ='"+nm.getText()+"' and
password='"+password+"'";
ResultSet rss = stm.executeQuery(data);
while(rss.next())
{
hakakses = rss.getString(5);
}
if(hakakses.equals(""))
{
JOptionPane.showMessageDialog(this, "Masukan User dan Password","Error",
JOptionPane.ERROR_MESSAGE);
}
else{
DialogLogin.dispose();
setMenuLogin();
JOptionPane.showMessageDialog(null, "Silahkan Masuk");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Periksa Nama dan Password Anda
!","Information",JOptionPane.INFORMATION_MESSAGE);
System.out.println(e.getMessage());
}
}
6. JAVA Programming - Membuat Program Parkir
Coding “Login “ pada Source
private void setMenuLogin(){
if (hakakses.equals("Admin")){
JOptionPane.showMessageDialog(null, "Anda Masuk Sebagai Admin");
jMenuLogout.setVisible(true);
jMenuLogin.setVisible(false);
jMenuAdmin.setVisible(true);
jMenuInput.setVisible(true);
}
else if(hakakses.equals("User")){
JOptionPane.showMessageDialog(null, "Anda Masuk Sebagai User");
jMenuLogout.setVisible(true);
jMenuLogin.setVisible(false);
jMenuAdmin.setVisible(false);
jMenuInput.setVisible(true);
}
}
private void setMenuLogout(){
jMenuLogin.setVisible(true);
jMenuLogout.setVisible(false);
jMenuAdmin.setVisible(false);
jMenuInput.setVisible(false);
private void jMenuLogoutActionPerformed(java.awt.event.ActionEvent evt) {
this.setTitle("Anda Keluar dari Applikasi");
this.setMenuLogout();
}
private void jMenuLoginActionPerformed(java.awt.event.ActionEvent evt) {
nm.setText("");
passW.setText("");
DialogLogin.setVisible(true);
}
private void mskActionPerformed(java.awt.event.ActionEvent evt) {
login();
DialogLogin.setVisible(true);
DialogLogin.dispose();
}
7. JAVA Programming - Membuat Program Parkir
Coding “INPUT DATA KENDARAAN “
//Tombol Simpan
private void jBtnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
if (jTextNopol.getText().isEmpty()) {
JOptionPane.showMessageDialog(this, "Nomor kendaraan belum ada");
} else if (jComboJenis.getSelectedItem().equals("-Pilih Jenis Kendaraan-")) {
JOptionPane.showMessageDialog(this, "Jenis kendaraan belum dipilih");
} else {
String nomorkendaraan,nomortiket,jeniskendaraan, data;
nomorkendaraan = jTextNopol.getText();
nomortiket = jTextTiket.getText();
jeniskendaraan = jComboJenis.getSelectedItem().toString();
data = "INSERT INTO
parkirdb(nomorkendaraan,nomortiket,jeniskendaraan,tglmasuk,jammasuk)"
+
"VALUES('"+nomorkendaraan+"','"+nomortiket+"','"+jeniskendaraan+"',CURDATE(),CURTIME())";
try{
st = koneksi.createStatement();
st.execute(data);
}
catch (SQLException e){
JOptionPane.showMessageDialog(this, "Data gagal disimpan"+e);
return;
}
JOptionPane.showMessageDialog(this, "Data telah tersimpan");
}
reset_semua();
input_masuk();
input_keluar();
}
//Tombol Kendaraan Keluar
private void jBtnKendKeluarActionPerformed(java.awt.event.ActionEvent evt) {
DialogKeluar.setLocationRelativeTo(this);
DialogKeluar.setVisible(true);
}
//Tampilkan Kendaraan yang ada didalam
private void jBtnDataDalamActionPerformed(java.awt.event.ActionEvent evt) {
reset_semua(); // dibuat reset semua atau refresh
input_masuk(); // lalu baca database yang nilai rupiah masih 0
}
8. JAVA Programming - Membuat Program Parkir
Coding “INPUT DATA KENDARAAN KELUAR “
//Tombol CARI
private void jBtnCariActionPerformed(java.awt.event.ActionEvent evt) {
if(jTextNopol2.getText().isEmpty())
JOptionPane.showMessageDialog(this, "Nomor Kendaraan Kosong");
else {
sql = "SELECT *, DATEDIFF(CURDATE(), tglmasuk) durasihari, (TIME_FORMAT(CURTIME(),'%H')-
TIME_FORMAT(jammasuk, '%H')) durasijam "
+ "FROM parkirdb WHERE nomorkendaraan='"+jTextNopol2.getText()+"' AND biaya=0";
int size=0;
try {
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/projectparkir", "root", "");
st = koneksi.createStatement();
rs = st.executeQuery(sql);
size++;
while (rs.next()) {
jTextTiket2.setText(rs.getString("nomortiket"));
jTextJenis.setText(rs.getString("jeniskendaraan"));
jTextTglMasuk2.setText(rs.getString("tglmasuk"));
jTextJamMasuk2.setText(rs.getString("jammasuk"));
switch (jTextJenis.getText()) {
case "Motor":
jTextTarif.setText("2000");
break;
case "Mobil":
jTextTarif.setText("4000");
break;
}
int hari = Integer.parseInt(rs.getString("durasihari"));
int jam = Integer.parseInt(rs.getString("durasijam"));
int biaya;
int tarif = Integer.parseInt(jTextTarif.getText());
if(hari>0){
jTextLamaHari.setText(""+hari+" hari");
jTextLamaJam.setText("-");
biaya = tarif + (50000*hari);
DecimalFormat rupiah = new DecimalFormat("0");
jTextBiaya.setText(rupiah.format(biaya));
}
else{
jTextLamaHari.setText("0 hari");
jTextLamaJam.setText(rs.getString("durasijam")+" jam");
biaya = tarif + (1000*jam);
DecimalFormat rupiah = new DecimalFormat("0");
jTextBiaya.setText(rupiah.format(biaya));
}
javax.swing.JOptionPane.showMessageDialog(null, "Data Ditemukan");
}
} catch (Exception e) {
javax.swing.JOptionPane.showMessageDialog(null, "Gagal Proses Cari Data "+e);
}
}
}
9. JAVA Programming - Membuat Program Parkir
Coding “INPUT DATA KENDARAAN KELUAR “
//Tombol SIMPAN
private void jBtnSimpan2ActionPerformed(java.awt.event.ActionEvent evt) {
String nomorkendaraan = jTextNopol2.getText();
String nomortiket = jTextTiket2.getText();
String jeniskendaraan = jTextJenis.getText();
String tglmasuk = jTextTglMasuk2.getText();
String jammasuk = jTextJamMasuk2.getText();
String tglkeluar = jTextTglKeluar.getText();
String jamkeluar = jTextJamKeluar.getText();
String biaya = jTextBiaya.getText();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
try (com.mysql.jdbc.Connection konek = (com.mysql.jdbc.Connection)
DriverManager.getConnection("jdbc:mysql://localhost/projectparkir", "root", "");
com.mysql.jdbc.Statement statement = (com.mysql.jdbc.Statement)
konek.createStatement()) {
String data="UPDATE parkirdb SET
nomorkendaraan='"+nomorkendaraan+"',nomortiket='"+nomortiket+"',jeniskendaraan='"+jeniskenda
raan+"',tglmasuk='"+tglmasuk+"',jammasuk='"+jammasuk+"',tglkeluar='"+tglkeluar+"',jamkeluar='"+j
amkeluar+"',biaya='"+biaya+"' WHERE nomorkendaraan LIKE '"+nomorkendaraan+"'";
statement.executeUpdate(data);
}
JOptionPane.showMessageDialog(null, "Data berhasil diedit..","Insert
Data",JOptionPane.INFORMATION_MESSAGE);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
SQLException | HeadlessException e) {
JOptionPane.showMessageDialog(null, "Eror:
"+e,"Gagal",JOptionPane.WARNING_MESSAGE);
//System.err.println("Exception: "+e.getMessage());
}finally{
}
}
// Tombol untuk kembali ke INPUT DATA KENDARAAN MASUK
private void jBtnBackInputActionPerformed(java.awt.event.ActionEvent evt) {
DialogInput.setLocationRelativeTo(this);
DialogInput.setVisible(true);
}
// Tampilkan data yang belu mkeluar
private void jBtnDataParkirActionPerformed(java.awt.event.ActionEvent evt) {
reset_semua();
input_masuk();
}
10. JAVA Programming - Membuat Program Parkir
//Coding “KONEKSI”
package MonitorParkir;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;
public class koneksi {
static void close() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated
methods, choose Tools | Templates.
}
void testkoneksi(){
}
public static void main(String[] args) {
try {Class.forName("com.mysql.jdbc.Driver").newInstance();
try (Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/projectparkir",
"root", "")) {
System.out.println("Koneksi Berhasil");
JOptionPane.showMessageDialog(null," Koneksi Berhasil","Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Koneksi Gagal");
koneksi test = new koneksi();
test.testkoneksi();
System.exit(0);
}
}
}
11. JAVA Programming - Membuat Program Parkir
// Coding - Realtime Tanggal dan Jam
public void setTanggal(){
java.util.Date skrg = new java.util.Date();
java.text.SimpleDateFormat kal = new
java.text.SimpleDateFormat("yyyy-MM-dd");
jLabel17.setText(kal.format(skrg));
jTextTglMasuk.setText(kal.format(skrg));
jTextTglKeluar.setText(kal.format(skrg));
}
public void setJam(){
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String nol_jam = "", nol_menit = "",nol_detik = "";
java.util.Date dateTime = new java.util.Date();
int nilai_jam = dateTime.getHours();
int nilai_menit = dateTime.getMinutes();
int nilai_detik = dateTime.getSeconds();
if(nilai_jam <= 9) nol_jam= "0";
if(nilai_menit <= 9) nol_menit= "0";
if(nilai_detik <= 9) nol_detik= "0";
String waktu = nol_jam + Integer.toString(nilai_jam);
String menit = nol_menit + Integer.toString(nilai_menit);
String detik = nol_detik + Integer.toString(nilai_detik);
jLabel19.setText(waktu+":"+menit+":"+detik+"");
jTextJamMasuk.setText(waktu+":"+menit+":"+detik+"");
jTextJamKeluar.setText(waktu+":"+menit+":"+detik+"");
}
};
new Timer(1000, taskPerformer).start();
}
12. JAVA Programming - Membuat Program Parkir
// Coding - reset semua dan input masuk
public void reset_semua(){
jTextNopol.setText("");
jComboJenis.setSelectedIndex(0);
DefaultTableModel input = (DefaultTableModel) jTblInput.getModel();
DefaultTableModel keluar = (DefaultTableModel) jTblKeluar.getModel();
int rowCount1 = input.getRowCount();
int rowCount2 = keluar.getRowCount();
//Remove rows one by one from the end of the table
for (int i = rowCount1 - 1; i >= 0; i--) {
input.removeRow(i);
}
for (int i = rowCount2 - 1; i >= 0; i--) {
keluar.removeRow(i);
}
}
//Tampilkan Data Yang Belum keluar parkir “ganti nama table bisa disesuikan”
public void input_masuk(){
DefaultTableModel input = (DefaultTableModel) jTblInput.getModel();
try {
st = koneksi.createStatement();
String query = "SELECT * FROM parkirdb WHERE biaya=0 ORDER BY nomortiket DESC LIMIT
25";
rs = st.executeQuery(query);
while (rs.next()) {
String nomortiket = rs.getString("nomortiket");
String nomorkendaraan = rs.getString("nomorkendaraan");
String jeniskendaraan = rs.getString("jeniskendaraan");
String tglmasuk = rs.getString("tglmasuk");
String jammasuk = rs.getString("jammasuk");
String fmt="%."+rs.getString("biaya")+"f";
DecimalFormat rupiah = new DecimalFormat("0");
String biaya = rs.getString("biaya");
Double biaya2 = Double.parseDouble(biaya);
String biaya_final = (rupiah.format(biaya2));
String [] data = {nomortiket, nomorkendaraan, jeniskendaraan, tglmasuk, jammasuk,
biaya_final};
input.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Gagal ambil data"+e);
}
jTblInput.setModel(input);
}
13. JAVA Programming - Membuat Program Parkir
// Coding - Input keluar Munculkan Data yang sudah keluar
public void input_keluar(){
DecimalFormat rupiah = (DecimalFormat) DecimalFormat.getCurrencyInstance();
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
formatRp.setCurrencySymbol("Rp ");
formatRp.setMonetaryDecimalSeparator(',');
formatRp.setGroupingSeparator('.');
rupiah.setDecimalFormatSymbols(formatRp);
DefaultTableModel keluar = (DefaultTableModel) jTblKeluar.getModel();
try {
st = koneksi.createStatement();
String query = "SELECT * FROM parkirdb WHERE biaya <> 0 ORDER BY tglkeluar
DESC,jamkeluar DESC LIMIT 15";
rs = st.executeQuery(query);
while (rs.next()) {
String nomortiket = rs.getString("nomortiket");
String nomorkendaraan = rs.getString("nomorkendaraan");
String jeniskendaraan = rs.getString("jeniskendaraan");
String tglkeluar = rs.getString("tglkeluar");
String jamkeluar = rs.getString("jamkeluar");
String biaya = rs.getString("biaya");
Double biaya2 = Double.parseDouble(biaya);
String biaya_final = (rupiah.format(biaya2));
String [] data = {nomortiket, nomorkendaraan, jeniskendaraan, tglkeluar, jamkeluar,
biaya_final};
keluar.addRow(data);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Gagal ambil data"+e);
}
jTblKeluar.setModel(keluar);
}
14. JAVA Programming - Membuat Program Parkir
// Coding - Admin Table Hapus
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel tbl = (DefaultTableModel) jTblDataParkir.getModel();
int baris = jTblDataParkir.getSelectedRow();
String strnomorkendaraan=(String)tbl.getValueAt(baris, 0);
String query = "DELETE FROM parkirdb WHERE nomorkendaraan='"+strnomorkendaraan+"'";
try {
st.executeUpdate(query);
JOptionPane.showMessageDialog(this, "Data berhasil di hapus");
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Data tidak dihapus " + ex.getMessage());
}
//update table setelah dihapus
try{
rs = st.executeQuery("select * from pasien;");
tbl.setNumRows(0);
while(rs.next())
{tbl.addRow(new Object[]{rs.getString("nomorkendaraan"),
rs.getString("jeniskendaraan"),
rs.getString("nomortiket"),
rs.getString("tglmasuk"),
rs.getString("jammasuk"),
rs.getString("tglkeluar"),
rs.getString("jamkeluar"),
rs.getString("biaya")});
}
}
catch (Exception e) {
JOptionPane.showMessageDialog (null, "koneksi gagal" +e.getMessage());
}
}
15. JAVA Programming - Membuat Program Parkir
// Coding - Admin Table Hapus
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel tbl = (DefaultTableModel) jTblDataParkir.getModel();
int baris = jTblDataParkir.getSelectedRow();
String strnomorkendaraan=(String)tbl.getValueAt(baris, 0);
String query = "DELETE FROM parkirdb WHERE nomorkendaraan='"+strnomorkendaraan+"'";
try {
st.executeUpdate(query);
JOptionPane.showMessageDialog(this, "Data berhasil di hapus");
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Data tidak dihapus " + ex.getMessage());
}
//update table setelah dihapus
try{
rs = st.executeQuery("select * from pasien;");
tbl.setNumRows(0);
while(rs.next())
{tbl.addRow(new Object[]{rs.getString("nomorkendaraan"),
rs.getString("jeniskendaraan"),
rs.getString("nomortiket"),
rs.getString("tglmasuk"),
rs.getString("jammasuk"),
rs.getString("tglkeluar"),
rs.getString("jamkeluar"),
rs.getString("biaya")});
}
}
catch (Exception e) {
JOptionPane.showMessageDialog (null, "koneksi gagal" +e.getMessage());
}
}
LAINNYA Didalam Admin hampir sama Codingnya dengan Imput Data