- Netbeans
- Xampp
Step 1
Buka localhost/phpmyadmin di firefox kemudian buat database baru dengan nama dbkereta.
Step 2
Buat tabel dengan nama tbtiket dan isikan 9 untuk jumlah kolom yang akan dibuat.
Step 3
Kemudian isikan ke 9 kolom yang telah dibuat seperti gambar berikut :
Jika sudah silahkan tekan tombol Save untuk menyimpan field yang telah kita isikan.
Apabila langkah diatas telah dilalui berati database telah selesai dibuat dan siap digunakan. Langkah selanjutnya adalah membuat Master/Detail Sample Form di NetBeans.
Step 3
Sebelum membuat form kita buka Program NetBeans, selanjutnya klik File – New Project – Java – Java Application, kemudian berikan nama project dengan nama UAS_2.
Setelah project sudah dibuat, kemudian buat file Master/Detail Sample Form seperti gambar berikut:
Step 4
Tunggu sampai selesai, setelah selesai maka akan muncul form seperti gambar berikut :
Step 5
Tambahkan field form di atas seperti gambar berikut :
- Setelah sudah di tambahkan, klik kanan pada Combo Kode Kereta Api – Properties – find Properties Model – isi seperti ini “- Pilih Kode -, TR111, TR222, TR333”
- Kemudian klik kanan pada Combo Jurusan – Properties – find Properties Model – isi seperti ini “- Pilih Jurusan -, Gambir - Madiun, Gambir - Semarang, Gambir - Yogyakarta, Pasar Senen - Madiun, Pasar Senen - Solo, Pasar Senen - Tegal, Tanah Abang - Semarang, Tanah Abang - Solo, Tanah Abang - Yogyakarta"
Step 6
Code – 1
Code – 2
private void kode() {
String kode = String.valueOf(cmbKode.getSelectedItem());
switch(kode) {
case "- Pilih Kode -" :
cmbJurusan.removeAllItems();
cmbJurusan.addItem("- Pilih Jurusan -");
cmbJurusan.addItem("Gambir - Madiun");
cmbJurusan.addItem("Gambir - Semarang");
cmbJurusan.addItem("Gambir - Yogyakarta");
cmbJurusan.addItem("Pasar Senen - Madiun");
cmbJurusan.addItem("Pasar Senen - Solo");
cmbJurusan.addItem("Pasar Senen - Tegal");
cmbJurusan.addItem("Tanah Abang - Semarang");
cmbJurusan.addItem("Tanah Abang - Solo");
cmbJurusan.addItem("Tanah Abang - Yogyakarta");
break;
case "TR111" :
namaKeretaApiField.setText("Mata Maja");
cmbJurusan.removeAllItems();
cmbJurusan.addItem("- Pilih Jurusan -");
cmbJurusan.addItem("Pasar Senen - Madiun");
cmbJurusan.addItem("Pasar Senen - Solo");
cmbJurusan.addItem("Pasar Senen - Tegal");
break;
case "TR222" :
namaKeretaApiField.setText("Brantas");
cmbJurusan.removeAllItems();
cmbJurusan.addItem("- Pilih Jurusan -");
cmbJurusan.addItem("Tanah Abang - Semarang");
cmbJurusan.addItem("Tanah Abang - Solo");
cmbJurusan.addItem("Tanah Abang - Yogyakarta");
break;
case "TR333" :
namaKeretaApiField.setText("Bengawan");
cmbJurusan.removeAllItems();
cmbJurusan.addItem("- Pilih Jurusan -");
cmbJurusan.addItem("Gambir - Madiun");
cmbJurusan.addItem("Gambir - Semarang");
cmbJurusan.addItem("Gambir - Yogyakarta");
break;
}
if(kode == "- Pilih Kode -") {
kodeKeretaApiField.setText("");
namaKeretaApiField.setText("");
} else {
kodeKeretaApiField.setText(kode);
}
}
Code – 3Kode dibawah ini adalah function jurusan untuk memilih Jurusan.
private void jurusan() {
int jrs = cmbJurusan.getSelectedIndex();
String jrsn = String.valueOf(cmbJurusan.getSelectedItem());
switch(jrs) {
case 0: tfTiket = 0; break;
case 1: tfTiket = 150000; break;
case 2: tfTiket = 125000; break;
case 3: tfTiket = 100000; break;
case 4: tfTiket = 125000; break;
case 5: tfTiket = 100000; break;
case 6: tfTiket = 75000; break;
case 7: tfTiket = 110000; break;
case 8: tfTiket = 125000; break;
case 9: tfTiket = 100000; break;
}
if(jrsn == "- Pilih Jurusan -") {
jurusanField.setText("");
} else {
jurusanField.setText(jrsn);
}
}
Code – 4Kode dibawah ini adalah function anak untuk memilih Jenis Penumpang Anak - anak.
private void anak() {
try {
if(jenis1.isSelected() == true) {
jenisPenumpangField.setText("Anak - anak");
resTfTiket = String.valueOf(tfTiket);
tarifTiketField.setText(resTfTiket);
}
} catch(Exception e) { }
}
Code – 5Kode dibawah ini adalah function dewasa untuk memilih Jenis Penumpang Dewasa.
private void dewasa() {
try {
if(jenis2.isSelected() == true) {
jenisPenumpangField.setText("Dewasa");
tfTiket = tfTiket+10000;
resTfTiket = String.valueOf(tfTiket);
tarifTiketField.setText(resTfTiket);
}
} catch(Exception e) { }
}
Code – 6Kode dibawah ini adalah function clear untuk membersihkan field pada form.
private void clear() {
jurusanField.setText("");
jenis.clearSelection();
jenisPenumpangField.setText("");
tarifTiketField.setText("");
qtyField.setText("");
totalField.setText("");
}
Code – 7Kode dibawah ini adalah function event Kode Kereta Api untuk memilih Kode Kereta Api.
private void cmbKodeItemStateChanged(java.awt.event.ItemEvent evt) {
try {
clear();
kode();
if(jenis1.isSelected() == true) {
anak();
} else {
dewasa();
}
} catch(Exception e) {}
}
Code – 8Kode dibawah ini adalah function event Jurusan untuk memilih Jurusan.
private void cmbJurusanItemStateChanged(java.awt.event.ItemEvent evt) {
try {
jurusan();
if(jenis1.isSelected() == true) {
anak();
} else {
dewasa();
}
} catch(Exception e) {}
}
Code – 9Kode dibawah ini adalah function event Anak untuk memilih Jenis Penumpang Anak.
private void jenis1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
anak();
} catch(Exception e) { }
}
Code – 10Kode dibawah ini adalah function event Dewasa untuk memilih Jenis Penumpang Dewasa.
private void jenis2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
dewasa();
} catch(Exception e) { }
}
Code – 11Kode dibawah ini adalah function event Quantity, jika kita menuliskan quantity pada field qty maka field Total akan otamatis terhitung.
private void qtyFieldFocusLost(java.awt.event.FocusEvent evt) {
int qty = Integer.parseInt(qtyField.getText());
tfTiket = tfTiket*qty;
resTfTiket = String.valueOf(tfTiket);
totalField.setText(resTfTiket);
}
Code – 12Kode dibawah ini adalah function event Save, ketika kita sudah selesai mengisi form tersebut dan form tersebut belum lengkap Nama Penumpang nya maka aka nada alert “Silahkah isi Nama Penumpang terlebih dahulu!”.
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
if(namaPenumpangField.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Silahkah isi Nama Penumpang terlebih dahulu!");
} else {
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
}
} catch (RollbackException rex) {
rex.printStackTrace();
entityManager.getTransaction().begin();
List merged = new ArrayList(list.size());
for (uas_2.Tbtiket t : list) {
merged.add(entityManager.merge(t));
}
list.clear();
list.addAll(merged);
}
}








