bab ii perancangan aplikasi * 1.1. instal terlebih ......49 bab ii perancangan aplikasi * 1.1....

75
49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat Ketika pada kotak “Create database”. Lalu klik tombol “Create”. Buat database dengan nama “cepat_tepat”. B. Tabel Les Ketika telah masuk kedalam database cepat_tepat, maka kita ketikan nama table beserta jumlah field yang ada pada table. Tabel ”Les”: Field name Data type Field size Keterangan kd_les Varchar 15 Primary Key Kelas Varchar 15 Jenis Varchar 15 Jml_latihan Int Hrg Int

Upload: others

Post on 31-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

49

BAB II

PERANCANGAN APLIKASI *

1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2

A. Database Cepat_Tepat Ketika pada kotak “Create database”. Lalu klik tombol “Create”. Buat database dengan nama “cepat_tepat”.

B. Tabel Les Ketika telah masuk kedalam database cepat_tepat, maka kita ketikan nama table beserta jumlah field yang ada pada table. Tabel ”Les”:

Field name Data type Field size Keterangan

kd_les Varchar 15 Primary Key

Kelas Varchar 15

Jenis Varchar 15

Jml_latihan Int

Hrg Int

Page 2: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

50

Jika sudah mengisi nama tabel dan jumlah field maka langsung ke bagian “Null index” untuk membuat primary key.

Page 3: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

51

Jika sudah memilih index name lalu klik tombol “Go”.

Page 4: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

52

Page 5: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

53

C. Tabel Detail Les Tabel “detail_les”:

Field name Data type Field size Keterangan

kd_les Varchar 15 Foreign Key

kd_siswa Varchar 15 Foreign Key

sisah_latihan Int

kd_kry Varchar 15 Foreign Key

D. Tabel Karyawan

Tabel “karyawan”:

Field name Data type Field size Keterangan

kd_kry Varchar 15 Primary Key

nm_kry Varchar 35

Jk Varchar 10

tempat_lahir Varchar 20

tgl_lahir Date

Alamat Varchar 50

akses_lvl Varchar 10

E. Tabel Kehadiran Siswa

Tabel “kehadiran_siswa”:

Field name Data type Field size Keterangan

Tgl Date

Kehadiran Int

kd_siswa Varchar 15 Foreign Key

kd_kry Varchar 15 Foreign Key

F. Tabel Siswa

Tabel “siswa”:

Field name Data type Field size Keterangan

kd_siswa Varchar 15 Primary Key

Nik Varchar 17

nm_plg Varchar 35

Jk Varchar 10

tempat_lahir Varchar 20

tgl_lahir Date

nm_ayah Varchar 35

nm_ibu Varchar 35

Alamat Varchar 50

Ket Varchar 20

Page 6: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

54

status_bayar Varchar 20

G. Tabel Pembayaran

Tabel “pembayaran”:

Field name Data type Field size Keterangan

kd_byr Varchar 15 Primary Key

Tgl Date

Bayar Int

Tunggakan Int

kd_siswa Varchar 15 Foreign Key

kd_les Varchar 15 Foreign Key

H. Tabel Kehadiran

Tabel “kehadiran”:

Field name Data type Field size Keterangan

Tgl Date

Kehadiran Int

Kd_kry Varchar 15 Foreign Key

Lanjutkan pengerjaan database “cepat_tepat”, lalu buat kembali beberapa table berikut ini menggunakan phpMyAdmin (liat contoh pengerjaan pada pembuatan table les)

Page 7: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

55

1.2. Rancangan Form Master

A. Langkah pertama dalam pembuatan program ini adalah :

1. Menginstall aplikasi java netbeans, disini penulis menggunakan java netbeans versi 8.2.

2. Menginstall JDK sesuai dengan Bit sistem operasi masing-masing, disini penulis menggunakan JDK 1.7.2 untuk windows 64bit.

3. Download Ireport jar & Ireport plugin. 4. Download Jcalendar jar 5. Untuk link download silahkan buka link

https://drive.google.com/open?id=1lCLVN1MXPFBt_tRM5rKE9Njv-uqXO8TT

6. Setelah semua terinstall silahkan buka aplikasi netbeans dan buat project baru caranya : A. PIlih File. B. Pilih New Porject, atau bisa dengan cara tekan CTRL+SHIFT+N

7. Pilih java pada kolom Categories, dan pilih Java Application, lalu pilih Next seperti gambar di bawah.

8. Beri nama project name cepat_tepat, dan pada Create Main Class jangan di Ceklis, lalu pilih Finish, seperti pada gambar dibawah.

Page 8: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

56

9. Setelah itu buat package baru, caranya : A. Klik kanan pada Source Package, New, Java Package, seperti

gambar dibawah.

B. Beri nama cepat_tepat, lalu Finish, seperti gambar dibawah.

Page 9: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

57

10. Buat class koneksi pada package cepat_tepat, caranya : A. Klik kanan pada package cepat_tepat, New, pilih Java Class,

Seperti pada gambar dibawah.

B. Beri nama koneksi, lalu Finish, seperti gambar dibawah.

Page 10: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

58

C. Buka class koneksi yang sudah di buat tadi, lalu ketikan kode berikut.

package cepat_tepat;

import java.sql.*;

import javax.swing.JOptionPane;

public class koneksi {

Connection conn;

Statement st;

ResultSet rs;

public Connection setKoneksi()

{

try{

Class.forName("com.mysql.jdbc.Driver");

Page 11: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

59

conn=DriverManager.getConnection("jdbc:mysql://localhost/cepat_tepat","root","");

st=conn.createStatement();

}

catch(Exception e){

JOptionPane.showMessageDialog(null,"Koneksi Gagal : " +e);

}

return conn;

}

}

B. Setelah membuat class koneksi, selanjutnya meng-add library caranya sebagai berikut :

1. Klik kanan pada folder libraries lalu pilih add Library.

Page 12: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

60

2. Add library mysql, seperti pada gambar dibawah.

3. Menambahkan Library jCalendar, caranya :

A. Sama seperti menambahkan Library mysql diatas, hanya saja pada tahapan B kita pilih create.

B. Kemudian beri nama jCalendar dan Klik OK seperti gambar dibawah.

C. Kemudian pilih Add Jar / Folder.

Page 13: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

61

D. Cari File jar jCalendar yang sudah di download sebelumnya, kemudian blok semua file jar yang ada dan Add jar/Folder, dan klik Ok, Lihat gambar dibawah.

4. Menambahkan Library iReport, caranya sama seperti menambahkan Library jCalendar.

5. Meng-install plugin iReport caranya : A. Pilih Tools, Plugin.

B. Pilih Download, kemudian pilih Add Plugin

Page 14: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

62

C. Cari file jar di folder iReport Plugin yang sudah di download dan pilih semua file jar, kemudian pilih Open dan klik Install.

D. Setelah proses install selesai maka netbeans akan memberikan pemberitahuan untuk me-Restart netbeans, klik yes dan netbeans akan me-Restart otomatis.

Proses install semua kebutuhan dalam membuat aplikasi ini sudah selesai, selanjutnya kita akan membuat tampilan beserta Code-code nya.

Membuat Jframe menu_utama caranya:

1. Klik kanan pada package cepat_tepat, pilih New, pilih JFarme Form, seperti gambar dibawah.

Page 15: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

63

2. Beri nama menu_utama, lalu Finish, seperti gambar dibawah.

Page 16: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

64

Desain menu_utama, caranya :

A. Tambahkan jPanel seperti gambar dibawah.

B. Buat tampilan seperti gambar dibawah menggunakan jPanel, dan

Ubah Warna jPanel sesuai selera, seperti gambar dibwah

Page 17: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

65

C. Terlihat ada 3 buah jPanel, ubahlah nama variable jPanel nomor 3

menjadi main_panel. 3. Klik navigator

4. Ubah Layout panel main_panel menjadi Card Layout, caranya : Klik kanan pada main_panel, set Layout, pilih Card Layout.

1

2

3

Page 18: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

66

5. Tambahkan panel baru ke dalam main_panel, seperti gambar

dibawah.

6. Setelah di tambahkan panel baru tadi, akan terlihat tampilan dan

navigator seperti gambar di bawah. Ubah nama variable panel yang baru di tambahkan tadi menjadi dashboard.

Page 19: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

67

Page 20: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

68

7. Tambahkan 5 panel baru ke dalam main_panel dan ubah nama variable nya seperti gambar di bawah.

8. Tambahkan tombol Button dan Label seperti gambar dibawah.

A. Ubah nama variable yang di tandai nomor :

1. tgl_skrg 2. nama_user

1 2

Page 21: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

69

A. Membuat Form Master Mengemudi Di dalam aplikasi SI CePat ini terdapat beberapa Form Master yaitu mengemudi, kesetaraan, Otomotif, dan pengguna. Disini penulis hanya menjelaskan pembuatan form master mengemudi dikarenakan cara pembuatan form master lain tidak jauh berbeda dengan pembuatan form master mengemudi. Bagaimana cara membuatnya? ikuti langkah berikut. 1. Tambahkan 2 buah panel dan Button pada panel dashboard, desain

tampilan seperti gambar di bawah.

2. Ubah layout panel nomor 2 menjadi Card Layout. 3. Tambahkan 4 buah panel ke dalam panel nomor 2 pada gambar di

atas, dan ubah nama variable panel tersebut seperti pada gambar di bawah.

1

2

2

Page 22: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

70

4. Sekarang buka mainMengemudi[jPanel] dan desain seperti gambar di bawah.

1

2 3 4

5

6

Page 23: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

71

A. Ubah nama variable nomor : 1. kd_mM 2. j_mM 3. l_mM 4. biaya_mM 5. tbl_mM 6. cari_mM

5. Klik Source seperti gambar di bawah.

6. Ketikan code berikut

package cepat_tepat; import java.awt.Color; //untuk ubah color import java.awt.event.KeyEvent; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import java.text.DateFormat; import java.io.File; import java.text.ParseException; import java.util.HashMap; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JTable; import net.sf.jasperreports.engine.JRException;

Page 24: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

72

import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import net.sf.jasperreports.view.JasperViewer; public final class menu_utama extends javax.swing.JFrame { koneksi kon = new koneksi(); JasperReport jasperReport; JasperDesign jasperDesign; JasperPrint jasperPrint; int x, y; //untuk mainKaryawan panel private Object[][] datamK = null; private String[] labelmK = {"NIK", "NAMA", "JENIS KELAMIN", "KELAHIRAN", "TANGGAL LAHIR", "ALAMAT", "BAGIAN"}; //untuk mainKesetaraan panel private Object[][] datamKes = null; private String[] labelmKes = {"KODE", "JENIS PROGRAM", "BIAYA"}; //untuk mainOtomotif panel private Object[][] datamO = null; private String[] labelmO = {"KODE", "JENIS KURSUS", "BIAYA KURSUS"}; //untuk mainMengemudi panel private Object[][] datamM = null; private String[] labelmM = {"KODE", "JENIS KURSUS", "JUMLAH LATIHAN", "BIAYA KURSUS"}; //untuk siswa panel private Object[][] datas = null; private String[] labels = {"NO.INDUK","NIK", "NAMA", "JENIS KELAMIN", "TEMPAT LAHIR", "TANGGAL LAHIR", "NAMA AYAH", "NAMA IBU", "ALAMAT", "KETERANGAN", "LES/PROGRAM"}; //untuk pembayaran panel private Object[][] datap = null; private String[] labelp = {"KODE", "TANGGAL","NO.INDUK", "NAMA","LES/PROGRAM", "BIAYA","UANG BAYAR","TUNGGAKAN","STATUS"}; //untuk absensi siswa panel private Object[][] dataas = null;

Page 25: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

73

private String[] labelas = {"TANGGAL","NO.INDUK", "NAMA", "NAMA INSTRUKTUR"}; /** * Creates new form menu_utama */ public menu_utama() { initComponents(); kon.setKoneksi(); setTanggal(); //untuk mainKaryawan panel nonaktif_mK(); Bacatbl_mK(); //untuk main Kesetaraan Panel nonaktif_mKes(); Bacatbl_mKes(); //untuk mainOtomotif panel nonaktif_mO(); Bacatbl_mO(); //untuk mainMengemudi panel nonaktif_mM(); Bacatbl_mM(); //untuk siswa panel nonaktif_s(); Bacatbl_s(); t_instruktur.setVisible(false); l_instruktur.setVisible(false); bt_instruktur.setVisible(false); jLabel2.setVisible(false); //untuk pembayaran panel nonaktif_p(); Bacatbl_p(); jButton66.setVisible(false); jComboBox1.setVisible(false); jLabel3.setVisible(false); //UNTUK ABSEN SISWA PANEL Bacatbl_as(); jLabel8.setVisible(false); } //untuk seluruh Panel void filterhuruf(KeyEvent a) { if (Character.isAlphabetic(a.getKeyChar())) {

Page 26: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

74

a.consume(); JOptionPane.showMessageDialog(null, "Hanya Boleh isi Angka"); } } //untuk mainKaryawan panel private void nonaktif_mK() { kd_mK.setEditable(false); nm_mK.setEditable(false); tempat_mK.setEditable(false); tgl_mK.setEnabled(false); alamat_mK.setEditable(false); cb_lvl_mK.setEnabled(false); jButton26.setEnabled(false); jButton47.setEnabled(false); jButton25.setEnabled(false); } private void aktif_mK() { nm_mK.setEditable(true); nm_mK.requestFocus(); tempat_mK.setEditable(true); tgl_mK.setEnabled(true); alamat_mK.setEditable(true); cb_lvl_mK.setEnabled(true); jButton26.setEnabled(true); } private void bersih_mK() { kd_mK.setText(""); nm_mK.setText(""); bg_jk.clearSelection(); tempat_mK.setText(""); tgl_mK.setDate(null); alamat_mK.setText(""); cb_lvl_mK.setSelectedIndex(0); } private String getWaktu() { DateFormat dFormat = new SimpleDateFormat("HHmmss"); Date waktu = new Date();

Page 27: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

75

return dFormat.format(waktu); } public String nomor_mK() { String urutan = null; try { kon.rs = kon.st.executeQuery("select right(kd_kry,3)+1" + " from karyawan as Nomor order by kd_kry desc"); if (kon.rs.next()) { urutan = kon.rs.getString(1); while (urutan.length() < 3) { urutan = "0" + urutan; } urutan = getWaktu() + urutan; } else { urutan = getWaktu() + "1"; } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } return urutan; } private void Bacatbl_mK() { try { String sql = "Select *From karyawan order by kd_kry"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamK = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamK[x][0] = kon.rs.getString("kd_kry"); datamK[x][1] = kon.rs.getString("nm_kry"); datamK[x][2] = kon.rs.getString("jk"); datamK[x][3] = kon.rs.getString("tempat_lahir"); datamK[x][4] = kon.rs.getString("tgl_lahir");

Page 28: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

76

datamK[x][5] = kon.rs.getString("alamat"); datamK[x][6] = kon.rs.getString("akses_lvl"); x++; } tbl_mK.setModel(new DefaultTableModel(datamK, labelmK)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Bacatbl_mKCari() { try { String sql = "Select *From karyawan where nm_kry like '%" + cari_mK.getText() + "%' " + " || kd_kry like '%" + cari_mK.getText() + "%'" + " || jk like '%" + cari_mK.getText() + "%'" + " || akses_lvl like '%" + cari_mK.getText() + "%' "; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamK = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamK[x][0] = kon.rs.getString("kd_kry"); datamK[x][1] = kon.rs.getString("nm_kry"); datamK[x][2] = kon.rs.getString("jk"); datamK[x][3] = kon.rs.getString("tempat_lahir"); datamK[x][4] = kon.rs.getString("tgl_lahir"); datamK[x][5] = kon.rs.getString("alamat"); datamK[x][6] = kon.rs.getString("akses_lvl"); x++; } tbl_mK.setModel(new DefaultTableModel(datamK, labelmK));

Page 29: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

77

} catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } //untuk mainKesetaraan panel private void nonaktif_mKes() { kd_mKes.setEditable(false); j_mKes.setEditable(false); biaya_mKes.setEditable(false); jButton48.setEnabled(false); jButton49.setEnabled(false); jButton39.setEnabled(false); } private void aktif_mKes() { j_mKes.setEditable(true); j_mKes.requestFocus(); biaya_mKes.setEditable(true); jButton48.setEnabled(true); } private void bersih_mKes() { kd_mKes.setText(""); j_mKes.setText(""); biaya_mKes.setText(""); } public String nomor_les() { String urutan = null; try { kon.rs = kon.st.executeQuery("select right(kd_les,3)+1" + " from les as Nomor order by kd_les desc"); if (kon.rs.next()) { urutan = kon.rs.getString(1); while (urutan.length() < 3) { urutan = "0" + urutan; } urutan = "L-" + getWaktu() + urutan; } else { urutan = "L-" + getWaktu() + "1"; }

Page 30: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

78

} catch (Exception e) { JOptionPane.showMessageDialog(null, e); } return urutan; } private void Bacatbl_mKes() { try { String kelas= "Kesetaraan"; String sql = "Select *From les where kelas like '%" +kelas+ "'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamKes = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamKes[x][0] = kon.rs.getString("kd_les"); datamKes[x][1] = kon.rs.getString("jenis"); datamKes[x][2] = kon.rs.getString("hrg"); x++; } tbl_mKes.setModel(new DefaultTableModel(datamKes, labelmKes)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Bacatbl_mKesCari() { try { String kelas= "Kesetaraan"; String sql = "Select *From les where jenis like '%" +cari_mKes.getText()+ "%' AND kelas='"+kelas+"'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount();

Page 31: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

79

int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamKes = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamKes[x][0] = kon.rs.getString("kd_les"); datamKes[x][1] = kon.rs.getString("jenis"); datamKes[x][2] = kon.rs.getString("hrg"); x++; } tbl_mKes.setModel(new DefaultTableModel(datamKes, labelmKes)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } //untuk mainOtomotif panel private void nonaktif_mO() { kd_mO.setEditable(false); j_mO.setEditable(false); biaya_mO.setEditable(false); jButton53.setEnabled(false); jButton54.setEnabled(false); jButton52.setEnabled(false); } private void aktif_mO() { j_mO.requestFocus(); j_mO.setEditable(true); biaya_mO.setEditable(true); jButton53.setEnabled(true); } private void bersih_mO() { kd_mO.setText(""); j_mO.setText(""); biaya_mO.setText(""); }

Page 32: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

80

private void Bacatbl_mO() { try { String kelas= "Otomotif"; String sql = "Select *From les where kelas like '%" +kelas+ "'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamO = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamO[x][0] = kon.rs.getString("kd_les"); datamO[x][1] = kon.rs.getString("jenis"); datamO[x][2] = kon.rs.getString("hrg"); x++; } tbl_mO.setModel(new DefaultTableModel(datamO, labelmO)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Bacatbl_mOCari() { try { String kelas= "Otomotif"; String sql = "Select *From les where jenis like '%" +cari_mO.getText()+ "%' AND kelas='"+kelas+"'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamO = new Object[baris][kolom];

Page 33: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

81

int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamO[x][0] = kon.rs.getString("kd_les"); datamO[x][1] = kon.rs.getString("jenis"); datamO[x][2] = kon.rs.getString("hrg"); x++; } tbl_mO.setModel(new DefaultTableModel(datamO, labelmO)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } //untuk mainMengemudi panel private void nonaktif_mM() { kd_mM.setEditable(false); j_mO.setEditable(false); l_mM.setEditable(true); biaya_mM.setEditable(false); jButton59.setEnabled(false); jButton58.setEnabled(false); jButton60.setEnabled(false); } private void aktif_mM() { j_mM.requestFocus(); j_mM.setEditable(true); l_mM.setEditable(true); biaya_mM.setEditable(true); jButton59.setEnabled(true); } private void bersih_mM() { kd_mM.setText(""); j_mM.setText(""); l_mM.setText(""); biaya_mM.setText(""); } private void Bacatbl_mM() {

Page 34: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

82

try { String kelas= "Mengemudi"; String sql = "Select *From les where kelas like '%" +kelas+ "'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamM = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datamM[x][0] = kon.rs.getString("kd_les"); datamM[x][1] = kon.rs.getString("jenis"); datamM[x][2] = kon.rs.getString("jml_latihan"); datamM[x][3] = kon.rs.getString("hrg"); x++; } tbl_mM.setModel(new DefaultTableModel(datamM, labelmM)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Bacatbl_mMCari() { try { String kelas= "Mengemudi"; String sql = "Select *From les where jenis like '%" +cari_mM.getText()+ "%' AND kelas='"+kelas+"'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datamM = new Object[baris][kolom]; int x = 0;

Page 35: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

83

kon.rs.beforeFirst(); while (kon.rs.next()) { datamM[x][0] = kon.rs.getString("kd_les"); datamM[x][1] = kon.rs.getString("jenis"); datamM[x][2] = kon.rs.getString("jml_latihan"); datamM[x][3] = kon.rs.getString("hrg"); x++; } tbl_mM.setModel(new DefaultTableModel(datamM, labelmM)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } // untuk siswa panel public String kd_kry_s; private String ket; public String kode; public String kode_lama; public String jenis; public String jml_latihan; public String getkd_kry_s() { return kd_kry_s; } public String getkkode_lama() { return kode_lama; } public String getkode() { return kode; } public String getjenis() { return jenis; } public String getjml_latihan() { return jml_latihan; } private void nonaktif_s() { kd_s.setEditable(false); ktp_s.setEditable(false);

Page 36: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

84

nm_s.setEditable(false); tempat_s.setEditable(false); // tgl_s.setEnabled(false); nma_s.setEditable(false); nmb_s.setEditable(false); alamat_s.setEditable(false); j_les_s.setEditable(false); jButton65.setEnabled(false); jButton69.setEnabled(false); jButton64.setEnabled(false); } private void aktif_s() { kd_s.setEditable(true); ktp_s.setEditable(true); nm_s.setEditable(true); tempat_s.setEditable(true); // tgl_s.setEnabled(true); nma_s.setEditable(true); nmb_s.setEditable(true); alamat_s.setEditable(true); jButton65.setEnabled(true); } private void bersih_s() { kd_s.setText(""); ktp_s.setText(""); nm_s.setText(""); tempat_s.setText(""); tgl_s.setDate(null); nma_s.setText(""); nmb_s.setText(""); alamat_s.setText(""); cb_ket.setSelectedIndex(0); j_les_s.setText(""); bg_jk.clearSelection(); cb_les.setSelectedIndex(0); } private void Bacatbl_s() { try {

Page 37: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

85

String sql = "Select p.*, l.jenis From (siswa p RIGHT JOIN detail_les dl ON p.kd_siswa=dl.kd_siswa)" + "LEFT JOIN les l ON dl.kd_les=l.kd_les "; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datas = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datas[x][0] = kon.rs.getString("p.kd_siswa"); datas[x][1] = kon.rs.getString("p.nik"); datas[x][2] = kon.rs.getString("p.nm_plg"); datas[x][3] = kon.rs.getString("p.jk"); datas[x][4] = kon.rs.getString("p.tempat_lahir"); datas[x][5] = kon.rs.getString("p.tgl_lahir"); datas[x][6] = kon.rs.getString("p.nm_ayah"); datas[x][7] = kon.rs.getString("p.nm_ibu"); datas[x][8] = kon.rs.getString("p.alamat"); datas[x][9] = kon.rs.getString("p.ket"); datas[x][10] = kon.rs.getString("l.jenis"); x++; } tbl_s.setModel(new DefaultTableModel(datas, labels)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Bacatbl_sCari() { try { String sql = "Select p.*, l.jenis From (siswa p RIGHT JOIN detail_les dl ON p.kd_siswa=dl.kd_siswa)Left JOIN les l ON dl.kd_les=l.kd_les" + "where p.nm_plg like '%" + cari_s.getText() + "%' || p.kd_siswa like '%" + cari_s.getText() + "%'"

Page 38: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

86

+ "|| p.ket like '%" + cari_s.getText() + "%' || p.jk like '%" + cari_s.getText() + "%'" + "|| l.jenis like '%" + cari_s.getText() + "%' || p.nik like '%" + cari_s.getText() + "%' "; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datas = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datas[x][0] = kon.rs.getString("p.kd_siswa"); datas[x][1] = kon.rs.getString("p.nik"); datas[x][2] = kon.rs.getString("p.nm_plg"); datas[x][3] = kon.rs.getString("p.jk"); datas[x][4] = kon.rs.getString("p.tempat_lahir"); datas[x][5] = kon.rs.getString("p.tgl_lahir"); datas[x][6] = kon.rs.getString("p.nm_ayah"); datas[x][7] = kon.rs.getString("p.nm_ibu"); datas[x][8] = kon.rs.getString("p.alamat"); datas[x][9] = kon.rs.getString("p.ket"); datas[x][10] = kon.rs.getString("l.jenis"); x++; } tbl_s.setModel(new DefaultTableModel(datas, labels)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } //untuk pembayaran panel private String kd_pp; public String tunggakan_pp; public String stts_p; public String nama_p; public String kode_p; public String jenis_p; public String biaya_p; public String kd_les_p;

Page 39: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

87

public String getkd_les_p() { return kd_les_p; } public String gettunggakan_pp() { return tunggakan_pp; } public String getstts_p() { return stts_p; } public String getnama_p() { return nama_p; } public String getkode_p() { return kode_p; } public String getjenis_p() { return jenis_p; } public String getbiaya_p() { return biaya_p; } private void nonaktif_p() { kd_byr.setEditable(false); nm_byr.setEditable(false); j_byr.setEditable(false); biaya_byr.setEditable(false); ubay_byr.setEditable(false); ukem_byr.setEditable(false); tunggakan_byr.setEditable(false); status_byr.setEditable(false); jButton72.setEnabled(false); jComboBox1.setVisible(false); } private void aktif_p() { ubay_byr.setEditable(true); jButton72.setEnabled(true); } private void bersih_p()

Page 40: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

88

{ kd_byr.setText(""); nm_byr.setText(""); j_byr.setText(""); biaya_byr.setText(""); ubay_byr.setText(""); ukem_byr.setText(""); tunggakan_byr.setText(""); status_byr.setText(""); } void setTanggal(){ java.util.Date skrg=new java.util.Date(); java.text.SimpleDateFormat kal=new java.text.SimpleDateFormat("yyyy-MM-dd"); tgl_byr.setText(kal.format(skrg)); } public String nomor_p() { String urutan=null; try{ kon.rs=kon.st.executeQuery("select right(kd_byr,3)+1" + " from pembayaran as Nomor order by kd_byr desc"); if(kon.rs.next()) { urutan=kon.rs.getString(1); while(urutan.length()<3) urutan="0"+urutan; urutan="T"+getWaktu()+urutan; }else { urutan="T"+getWaktu()+"1"; } } catch (Exception e){ JOptionPane.showMessageDialog(null, e); } return urutan; } private void Bacatbl_p() { try { String sql = "Select b.*,l.*, p.* From (siswa p RIGHT JOIN pembayaran b ON p.kd_siswa=b.kd_siswa) "

Page 41: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

89

+ "LEFT JOIN les l ON b.kd_les=l.kd_les " + "where b.tgl ='"+tgl_byr.getText()+"'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datap = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datap[x][0] = kon.rs.getString("b.kd_byr"); datap[x][1] = kon.rs.getString("b.tgl"); datap[x][2] = kon.rs.getString("p.kd_siswa"); datap[x][3] = kon.rs.getString("p.nm_plg"); datap[x][4] = kon.rs.getString("l.jenis"); datap[x][5] = kon.rs.getString("l.hrg"); datap[x][6] = kon.rs.getString("b.bayar"); datap[x][7] = kon.rs.getString("b.tunggakan"); datap[x][8] = kon.rs.getString("p.status_bayar"); x++; } tbl_byr.setModel(new DefaultTableModel(datap, labelp)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } private void Bacatbl_pCari() { try { String sql = "Select b.*,l.*, p.* From (siswa p RIGHT JOIN pembayaran b ON p.kd_siswa=b.kd_siswa) " + "LEFT JOIN les l ON b.kd_les=l.kd_les " + "where p.nm_plg like '%" + cari_p.getText() + "%' || l.jenis like '%" + cari_p.getText() + "%' ||" + "p.status_bayar like '%" + cari_p.getText() + "%' || p.kd_siswa like '%" + cari_p.getText() + "%'"; kon.rs = kon.st.executeQuery(sql); ResultSetMetaData m = kon.rs.getMetaData();

Page 42: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

90

int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } datap = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { datap[x][0] = kon.rs.getString("b.kd_byr"); datap[x][1] = kon.rs.getString("b.tgl"); datap[x][2] = kon.rs.getString("p.kd_siswa"); datap[x][3] = kon.rs.getString("p.nm_plg"); datap[x][4] = kon.rs.getString("l.jenis"); datap[x][5] = kon.rs.getString("l.hrg"); datap[x][6] = kon.rs.getString("b.bayar"); datap[x][7] = kon.rs.getString("b.tunggakan"); datap[x][8] = kon.rs.getString("p.status_bayar"); x++; } tbl_byr.setModel(new DefaultTableModel(datap, labelp)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } //untuk home panel private String kd_siswa_h,tgl_h,bln_h,thn_h,hadir_h; public String kode_user1,nama_user1; public String getkode_user1() { return kode_user1; } public String gettnama_user1() { return nama_user1; } private void cekabsen() { //ambil kode di tabel kehadiran try {

Page 43: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

91

String sql = "Select *from kehadiran where kode ='"+kd_u.getText()+"'"; kon.rs = kon.st.executeQuery(sql); if (kon.rs.next()){ kd_siswa_h= kon.rs.getString("kode"); tgl_h= kon.rs.getString("tgl"); hadir_h= kon.rs.getString("kehadiran"); } }catch(SQLException e) { JOptionPane.showMessageDialog(null, e); } if(tgl_byr.getText().equals(tgl_h)) { } } //UNTUK ABSENSI SISWA PANEL public String nik_as; public String getnik_as(){ return nik_as; } public String no_ass; public String getno_ass(){ return no_ass; } public String tgl_as; public String gettgl_as(){ return tgl_as; } private void bersih_as(){ no_as.setText(""); nm_as.setText(""); nm_i_as.setText(""); } private void Bacatbl_as() { try { String sql = "Select b.*,l.*, p.* From (siswa p RIGHT JOIN kehadiran_siswa b ON p.kd_siswa=b.kd_siswa) " + "LEFT JOIN karyawan l ON b.kd_kry=l.kd_kry " + "where b.tgl ='"+tgl_byr.getText()+"'"; kon.rs = kon.st.executeQuery(sql);

Page 44: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

92

ResultSetMetaData m = kon.rs.getMetaData(); int kolom = m.getColumnCount(); int baris = 0; while (kon.rs.next()) { baris = kon.rs.getRow(); } dataas = new Object[baris][kolom]; int x = 0; kon.rs.beforeFirst(); while (kon.rs.next()) { dataas[x][0] = kon.rs.getString("b.tgl"); dataas[x][1] = kon.rs.getString("p.kd_siswa"); dataas[x][2] = kon.rs.getString("p.nm_plg"); dataas[x][3] = kon.rs.getString("l.nm_kry"); x++; } tbl_as.setModel(new DefaultTableModel(dataas, labelas)); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

Menambahkan action performed pada tombol button Tambah

Ketikan code berikut . private void jButton56ActionPerformed(java.awt.event.ActionEvent evt) {

Page 45: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

93

kd_mM.setText(nomor_les()); aktif_mM(); }

7. Menambahkan action performed pada tombol button Batal, caranya

sama seperti menambahkan action performed tombol Tambah. Ketikan code berikut. private void jButton57ActionPerformed(java.awt.event.ActionEvent evt) { bersih_mM(); nonaktif_mM(); }

8. Menambahkan action performed pada tombol button Simpan private void jButton59ActionPerformed(java.awt.event.ActionEvent evt) { if(j_mM.getText().equals("")){ // --- 3 adalah jumlah karakter yang saya inginkan // Your Command, for examples : JOptionPane.showMessageDialog(null,"Jenis Kursus tidak boeh kosong"); // --- Memunculkan Pesan ke User j_mM.requestFocus(); }else if(l_mM.getText().equals("")){ JOptionPane.showMessageDialog(null,"Jumlah Latihan tidak boleh kosong !"); l_mM.requestFocus(); }else if(biaya_mM.getText().equals("")){ JOptionPane.showMessageDialog(null,"Biaya tidak boleh kosong !"); biaya_mM.requestFocus(); }else{ try { String kelas= "Mengemudi"; String sql = "insert into les values('" + kd_mM.getText() + "'," + "'" + kelas + "'," + "'" + j_mM.getText() + "'," + "'" + l_mM.getText() + "'," + "'" + biaya_mM.getText() + "')"; kon.st.executeUpdate(sql); Bacatbl_mM();

Page 46: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

94

bersih_mM(); nonaktif_mM(); JOptionPane.showMessageDialog(null, "Data Berhasil Di Simpan"); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } } }

9. Menambahkan action performed pada tombol button Ubah if(j_mM.getText().equals("")){ // --- 3 adalah jumlah karakter yang saya inginkan // Your Command, for examples : JOptionPane.showMessageDialog(null,"Jenis Kursus tidak boeh kosong"); // --- Memunculkan Pesan ke User j_mM.requestFocus(); }else if(l_mM.getText().equals("")){ JOptionPane.showMessageDialog(null,"Jumlah Latihan tidak boleh kosong !"); l_mM.requestFocus(); }else if(biaya_mM.getText().equals("")){ JOptionPane.showMessageDialog(null,"Biaya tidak boleh kosong !"); biaya_mM.requestFocus(); }else{ try { String sql = "UPDATE les SET kd_les='" + kd_mM.getText() + "'," + "jenis='" + j_mM.getText() + "'," + "jml_latihan='" + l_mM.getText() + "'," + "hrg='" + biaya_mM.getText() + "' where kd_les='" + kd_mM.getText() + "'"; kon.st.executeUpdate(sql); Bacatbl_mM(); bersih_mM(); JOptionPane.showMessageDialog(null, "Data Berhasil Di Ubah"); jButton58.setEnabled(false); jButton60.setEnabled(false); } catch (SQLException e) {

Page 47: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

95

JOptionPane.showMessageDialog(null, e); } } }

10. Menambahkan action performed pada tombol button Hapus private void jButton58ActionPerformed(java.awt.event.ActionEvent evt) { try { String sql = "Delete from les where kd_les='" + kd_mM.getText() + "'"; kon.st.executeUpdate(sql); Bacatbl_mM(); bersih_mM(); JOptionPane.showMessageDialog(null, "Data Berhasil Di Hapus"); jButton58.setEnabled(false); jButton60.setEnabled(false); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); } }

11. Menambahkan event mouse pressed pada tabel, caranya klik kanan pada tabel lalu pilih event, mouse, mouse pressed.

Ketikan code dibawah private void tbl_mMMousePressed(java.awt.event.MouseEvent evt) { int row = tbl_mM.getSelectedRow();

Page 48: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

96

kd_mM.setText((String) tbl_mM.getValueAt(row, 0)); j_mM.setText((String) tbl_mM.getValueAt(row, 1)); l_mM.setText((String) tbl_mM.getValueAt(row, 2)); biaya_mM.setText((String) tbl_mM.getValueAt(row, 3)); kd_mM.setEditable(false); jButton58.setEnabled(true); jButton60.setEnabled(true); jButton59.setEnabled(false); j_mM.setEditable(true); j_mM.requestFocus(); l_mM.setEditable(true); biaya_mM.setEditable(true); }

12. Menambahkan event key typed pada textfield cari_mM, caranya klik kanan pada textfield cari_mM lalu pilih event, key, key typed.

Ketikan code di bawah. private void cari_mMKeyTyped(java.awt.event.KeyEvent evt) { Bacatbl_mMCari(); }

Page 49: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

97

1.3. Rancangan Form Transaksi Pembayaran

Untuk pembuatan Form Transaksi pembayaran, caranya pilih

pembayaran panel yang sudah dibuat sebelum nya lalu desain seperti

gambar dibawah.

A. Ubah nama variable dengan nomor :

1. kd_byr

2. nm_byr

3. cari_p

4. j_byr

5. biaya_byr

6. ubay_byr

7. tbl_byr

8. ukem_byr

9. status_byr

10. tunggakan_byr

B. Menambahkan action performed pada button Tambah

private void

jButton68ActionPerformed(java.awt.event.ActionEvent evt) {

kd_byr.setText(nomor_p());

aktif_p();

jButton66.setVisible(true);

1 8 9 10

4

7

5

2

6 3

Page 50: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

98

}

C. Menambahkan action performed pada button Batal

private void

jButton70ActionPerformed(java.awt.event.ActionEvent evt) {

nonaktif_p();

bersih_p();

jButton66.setVisible(false);

jComboBox1.setVisible(false);

jComboBox1.setSelectedIndex(0);

jLabel3.setText("");

biaya_byr.setText(""); }

D. Menambahkan action performed pada button Simpan

try {

//update data siswa

String sql_p = "UPDATE siswa SET status_bayar='" +

status_byr.getText()+ "'"

+ " where kd_siswa='" + kode_p + "'";

kon.st.executeUpdate(sql_p);

//simpan pembayaran

String kosong = "";

int nol = 0;

String sql = "insert into pembayaran values('" +

kd_byr.getText() + "',"

+ "'" + tgl_byr.getText() + "',"

+ "'" + ubay_byr.getText() + "',"

+ "'" + tunggakan_byr.getText() + "',"

+ "'" + kode_p + "',"

+ "'" + kd_les_p + "')";

kon.st.executeUpdate(sql);

Bacatbl_p();

jButton66.setVisible(false);

JOptionPane.showMessageDialog(null, "Data Berhasil Di

Simpan");

} catch (SQLException e) {

Page 51: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

99

JOptionPane.showMessageDialog(null, e);

}

// bORt.setText("BIAYA");

//Cetak Struk

if(JOptionPane.showConfirmDialog(this, "Cetak

Struk?","Konfirmasi",JOptionPane.YES_NO_OPTION)==JOptionPan

e.YES_OPTION){

jstruk struk= new jstruk(null, true);

struk.setLocationRelativeTo(null);

struk.tgl=tgl_byr.getText();

struk.kode_byr=kd_byr.getText();

struk.nama=nm_byr.getText();

struk.les=j_byr.getText();

struk.biaya=biaya_byr.getText();

struk.ubay=ubay_byr.getText();

struk.ukem=ukem_byr.getText();

struk.tunggakan=tunggakan_byr.getText();

struk.setVisible(true);

}

jComboBox1.setVisible(false);

jComboBox1.setSelectedIndex(0);

bersih_p();

nonaktif_p();

}

E. Menambahkan action performed pada button Browse. Note : code

disini akan error dikarenakan kita belum membuat jDialog Form,

cukup ikuti saja langkah pembuatannya.

private void

jButton66ActionPerformed(java.awt.event.ActionEvent evt) {

jComboBox1.setSelectedIndex(0);

jComboBox1.setVisible(true);

boolean closable = true;

jtbl_plg_bayar plg = new jtbl_plg_bayar(null, closable);

plg.mu = this;

plg.setVisible(true);

Page 52: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

100

plg.setResizable(true);

nm_byr.setText(nama_p);

j_byr.setText(jenis_p);

biaya_byr.setText(biaya_p);

//untuk pertama kali transaksi

String cek_stts=stts_p;

if(cek_stts.equals(""))

{

jComboBox1.setVisible(true);

}

//untuk pelunasan transaksi

else if(cek_stts.equals("Belum Lunas"))

{

jComboBox1.setVisible(false);

bORt.setText("TUNGGAKAN");

biaya_byr.setText(tunggakan_pp);

status_byr.setText(stts_p);

}

ubay_byr.requestFocus();

}

F. Menambahkan action performed pada button ComboBox

private void

jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {

if(jComboBox1.getSelectedItem().equals("50%"))

{

int biaya, tunggakan;

biaya=Integer.parseInt(biaya_byr.getText());

tunggakan=(biaya*50)/100;

biaya_byr.setText(Integer.toString(tunggakan));

jLabel14.setVisible(true);

tunggakan_byr.setVisible(true);

tunggakan_byr.setText(Integer.toString(tunggakan));

status_byr.setText("Belum Lunas");

biaya_byr.setEditable(false);

}

Page 53: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

101

else if(jComboBox1.getSelectedItem().equals("CUSTOM"))

{

biaya_byr.setEditable(true);

biaya_byr.setText(jLabel3.getText());

// status_byr.setText("");

//tunggakan_byr.setText("");

}

else

{

biaya_byr.setEditable(false);

biaya_byr.setText(jLabel3.getText());

// status_byr.setText("");

// tunggakan_byr.setText("");

}

}

G. Menambahkan action performed pada Textfield ubay_byr

private void

ubay_byrActionPerformed(java.awt.event.ActionEvent evt) {

int bi,ub,uk,tg;

bi=Integer.parseInt(biaya_byr.getText());

ub=Integer.parseInt(ubay_byr.getText());

uk=ub-bi;

tg=bi-ub;

String tt=Integer.toString(tg);

//validasi uang kembalian

if(ub>=bi || bi>=ub && tt.equals("0")||tt.equals("")){

ukem_byr.setText(Integer.toString(uk));

tunggakan_byr.setText("0");

status_byr.setText("Lunas");

}

else {

ukem_byr.setText("0");

tunggakan_byr.setText(Integer.toString(tg));

status_byr.setText("Belum Lunas");

jLabel14.setVisible(true);

tunggakan_byr.setVisible(true);

Page 54: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

102

}

}

H. Menambahkan Event key typed pada Textfield cari_p

private void cari_pKeyTyped(java.awt.event.KeyEvent evt) {

Bacatbl_pCari();

}

I. Menambahkan Event Mouse pressed pada Table tbl_p

private void tbl_byrMousePressed(java.awt.event.MouseEvent evt)

{

jButton66.setVisible(true);

kd_byr.setText(nomor_p());

int row = tbl_byr.getSelectedRow();

kode_p=(String) tbl_byr.getValueAt(row, 2);

nm_byr.setText((String) tbl_byr.getValueAt(row, 3));

j_byr.setText((String) tbl_byr.getValueAt(row, 4));

biaya_byr.setText((String) tbl_byr.getValueAt(row, 7));

tunggakan_byr.setText((String) tbl_byr.getValueAt(row, 7));

status_byr.setText((String) tbl_byr.getValueAt(row, 8));

try {

String sql = "Select * from les where

jenis='"+j_byr.getText()+"'";

kon.rs = kon.st.executeQuery(sql);

while (kon.rs.next()) {

kd_les_p=kon.rs.getString("kd_les");

}

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, e);

}

aktif_p();

jButton66.setVisible(false);

}

J. Setelah itu kita membuat jDialog Form baru dengan nama

jtbl_plg_bayar, seperti gambar dibawah.

Page 55: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

103

K. Desain seperti gambar dibawah.

a. Ubah nama variable dengan nomor :

1. cari_p

2. tbl_p

b. Ketikan code berikut

package cepat_tepat;

import cepat_tepat.*;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;

/**

*

1

2

Page 56: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

104

* @author username

*/

public class jtbl_plg_bayar extends javax.swing.JDialog {

koneksi kon = new koneksi();

public menu_utama mu = null;

private Object[][] datas = null;

private String[] labels = {"NO.INDUK", "NAMA","JENIS

KELAMIN", "TEMPAT", "TANGGAL LAHIR","LES", "BIAYA"};

/**

* Creates new form jtbl_plg

*/

public jtbl_plg_bayar(java.awt.Frame parent, boolean modal)

{

super(parent, modal);

initComponents();

kon.setKoneksi();

Bacatbl_s();

}

private void Bacatbl_s() {

try {

String a="";

String sql = "Select p.*,l.hrg, l.jenis From (siswa p LEFT

JOIN detail_les dl ON p.kd_siswa=dl.kd_siswa)"

+ "Left JOIN les l ON dl.kd_les=l.kd_les "

+ "where p.status_bayar ='"+a+"'";

kon.rs = kon.st.executeQuery(sql);

ResultSetMetaData m = kon.rs.getMetaData();

int kolom = m.getColumnCount();

int baris = 0;

while (kon.rs.next()) {

baris = kon.rs.getRow();

}

datas = new Object[baris][kolom];

int x = 0;

Page 57: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

105

kon.rs.beforeFirst();

while (kon.rs.next()) {

datas[x][0] = kon.rs.getString("p.kd_siswa");

datas[x][1] = kon.rs.getString("p.nm_plg");

datas[x][2] = kon.rs.getString("p.jk");

datas[x][3] = kon.rs.getString("p.tempat_lahir");

datas[x][4] = kon.rs.getString("p.tgl_lahir");

datas[x][5] = kon.rs.getString("l.jenis");

datas[x][6] = kon.rs.getString("l.hrg");

x++;

}

tbl_p.setModel(new DefaultTableModel(datas, labels));

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, e);

}

}

private void Bacatbl_sCari() {

try {

String a="";

String sql = "Select p.*,l.hrg, l.jenis From (siswa p LEFT

JOIN detail_les dl ON p.kd_siswa=dl.kd_siswa)"

+ "Left JOIN les l ON dl.kd_les=l.kd_les "

+ " where nm_plg like '%" + cari_p.getText() + "%'

AND where p.status_bayar ='"+a+"'";

kon.rs = kon.st.executeQuery(sql);

ResultSetMetaData m = kon.rs.getMetaData();

int kolom = m.getColumnCount();

int baris = 0;

while (kon.rs.next()) {

baris = kon.rs.getRow();

}

datas = new Object[baris][kolom];

int x = 0;

kon.rs.beforeFirst();

while (kon.rs.next()) {

datas[x][0] = kon.rs.getString("p.kd_siswa");

Page 58: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

106

datas[x][1] = kon.rs.getString("p.nm_plg");

datas[x][2] = kon.rs.getString("p.jk");

datas[x][3] = kon.rs.getString("p.tempat_lahir");

datas[x][4] = kon.rs.getString("p.tgl_lahir");

datas[x][5] = kon.rs.getString("l.jenis");

datas[x][6] = kon.rs.getString("l.hrg");

x++;

}

tbl_p.setModel(new DefaultTableModel(datas, labels));

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, e);

}

}

public String tes;

c. Menambahkan event key typed pada Textfield cari_p

private void cari_pKeyTyped(java.awt.event.KeyEvent evt) {

Bacatbl_sCari();

}

Page 59: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

107

d. Menambahkan event mouse pressed pada Table tbl_p

private void tbl_pMousePressed(java.awt.event.MouseEvent

evt) {

int tabel = tbl_p.getSelectedRow();

mu.kode_p=tbl_p.getValueAt(tabel, 0).toString();

mu.nama_p=tbl_p.getValueAt(tabel, 1).toString();

mu.jenis_p=tbl_p.getValueAt(tabel, 5).toString();

mu.biaya_p=tbl_p.getValueAt(tabel, 6).toString();

mu.jLabel3.setText(tbl_p.getValueAt(tabel, 6).toString());

//ambil_kode_les

String a=tbl_p.getValueAt(tabel, 5).toString();

try {

String sql = "Select * from les where jenis='"+a+"'";

kon.rs = kon.st.executeQuery(sql);

while (kon.rs.next()) {

mu.kd_les_p=kon.rs.getString("kd_les");

}

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, e);

}

this.dispose();

}

Silahkan simpan makan di jFrame Form menu_utama yang tadi

sudah kita buat tidak akan error.

Page 60: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

108

1.4. Rancangan Laporan Transaksi

Untuk pembuatan Form Laporan, caranya pilih laporan panel yang

sudah dibuat sebelum nya lalu desain seperti gambar dibawah. Cara

buat sama seperti membuat membuat desain Form transaksi

pembayaran.

1. Ubah nama variable dengan nomor :

a. cmbbulan

b. yctahun

2. Menambahkan action performed pada tombol cetak.

Note : code ini pasti error, Karena kita belum membuat

laporannya,lanjutkan saja.

private void

jButton90ActionPerformed(java.awt.event.ActionEvent evt) {

try {

File file = new File("src/laporan/lap_bayar_bulan.jrxml");

jasperDesign = JRXmlLoader.load(file);

HashMap param = new HashMap();

param.put("bulan", cmbbulan.getSelectedItem());

param.put("tahun", yctahun.getYear());

jasperReport =

JasperCompileManager.compileReport(jasperDesign);

jasperPrint = JasperFillManager.fillReport(jasperReport,

param, kon.setKoneksi());

b b

Page 61: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

109

JasperViewer viewer = new JasperViewer(jasperPrint, false);

viewer.setFitPageZoomRatio();

viewer.setVisible(true);

viewer.setExtendedState(MAXIMIZED_BOTH);

} catch (JRException e) {

JOptionPane.showMessageDialog(null, e.getMessage());

}

}

3. Membuat laporan dengan Ireport

A. Buka tampilan welcome to jasper Report caranya seperti pada

gambar dibawah.

B. Pilih seperti gambar dibawah.

Page 62: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

110

C. Lalu pilih Database jdbc Connection, lalu Next.

D. Isi Form seperti di gambar dibawah.

E. Pilih Test, jika berhasil maka akan muncul alert seperti gambar

dibawah.

Page 63: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

111

F. Setelah selesai, selanjutnya pilih seperti gambar dibawah.

G. Pilih seperti gambar dibawah dan klik Launch Report Wizard

Page 64: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

112

H. Ubah nama report menjadi lap_bayar_bulan dan letak lokasi

penyimanan laporan yang akan di buat, sesuaikan seperti

gambar di bawah, sebelumnya penulis sudah membuat package

laporan, cara membuatnya sama seperti cara membuat package

cepat_tepat.

I. Ketik query seperti pada gambar dibawah. Note : dibawah

bukan menggunakan tanda kutip satu biasa ( ‘ ) , tetapi

menggunakan Backtic ( ` ) bisa dilihat perbedaannya.

Page 65: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

113

J. Pilih semua data dengan menekan tombol >> seperti gambar

dibawah, ikuti langkahnya dan klik Finish.

K. Selanjutnya mendesain tampilan laporan, perhatikan gambar

dan langkah dibawah.

Page 66: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

114

1. Pilih Report Inspector seperti yang di tandai warna merah.

2. Pilih Fields, Blok semua yang ada di dalamnya dan Drag ke

dalam Band Detail 1 seperti yang ditandai warna biru.

L. Hapus Band Column footer dan Page footer, maka akan terlihat

seperti gambar dibawah.

M. Tarik field ke dalam Band Summary lalu pilih seperti gambar

dibawah dan OK.

Page 67: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

115

N. Desain tampilan seperti gambar dibawah, untuk text

menggunakan statictext.

O. Membuat Border, blok atau pilih yang ingin dibuat border lalu

klik kanan, pilih padding, lalu ubah seperti gambar dibawah.

Page 68: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

116

P. Proses desain laporan selesai, selanjutnya membuat filter

parameter berdasarkan bulan dan tahun.

1. Pilih icon

2. Membuat parameter bulan, dengan cara klik New parameter.

Ini isi form seperti gambar dibawah.

Page 69: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

117

3. Membuat parameter tahun

Page 70: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

118

4. Ketik query dan drag parameter yang sudah dibuat, lalu klik

read fields dan klik OK seperti pada gambar dibawah.

5. Klik preview dan ikuti saja langkahnya.

Page 71: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

119

Pembuatan Form laporan pun selesai.

1.5. Rancangan Backup Data/Keamanan Data

Backup dan Restore database sudah tidak asing lagi terdengar bagi

seorang programmer. bahkan disetiap Software aplikasi yang dibuat harus

memiliki backup dan restore karena keutunganya sangat banyak. Backup

digunakan untuk meng-copy atau menyalin seluruh data yang ada di

database sedangkan restore untuk mengembalikan data yang pernah di

backup.

1. Buatlah jFrame Form baru dengan nama backup.

2. Kemudian desain tampilan seperti gambar dibawah.

3. Menambahkan action performed tombol button backup data

private void jButton35ActionPerformed(java.awt.event.ActionEvent evt)

{

try{

Page 72: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

120

String dbname = tgl_byr.getText()+"cepat_tepat";

String dbuser = "root";

String dbpass = "";

String folderpath = "src" + "\\Backup database";

File fl = new File(folderpath);

fl.mkdir();

String savepath = "\"" + folderpath + "\\" + "" + dbname +

""+".sql\"";

String execudecmd =

"D:\\\\xampp\\\\mysql\\\\bin\\\\mysqldump -u" + dbuser + " -r"

+ dbpass + " --database " + dbname + " -r " + savepath;

// "D:\\xampp\\mysql\\bin\\mysqldump -hlocalhost -uroot

cepat_tepat -r "+"\""+lokasi_backup.getText()+"\""

Process runtimeprocess =

Runtime.getRuntime().exec(execudecmd);

int processcomplete = runtimeprocess.waitFor();

if (processcomplete == 0){

JOptionPane.showMessageDialog(rootPane,"Backup

Successfully");

}

else{

JOptionPane.showMessageDialog(rootPane,"Backup Failed");

File f2 = new File("src\\Backup Database\\"+ dbname+".sql");

f2.delete();

}

Page 73: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

121

}catch(Exception e){

JOptionPane.showMessageDialog(rootPane,e);

}

}

4. Menambahkan action performed tombol button backup data

private void

jButton36ActionPerformed(java.awt.event.ActionEvent evt) {

try{

String database="cepat_tepat";

String user="root";

String password="";

String[] kata = new String[]{"D:\\xampp\\mysql\\bin\\mysql",

database, "-u" + user, "-e", " source

"+"D:\\TA\\cepat_tepat\\src\\Backup

database\\cepat_tepat.sql"};

Process runtimeProcess=Runtime.getRuntime().exec(kata);

int prosesSukses=runtimeProcess.waitFor();

if(prosesSukses==0){

JOptionPane.showMessageDialog(null, "Restore database

Sukses");

} else {

JOptionPane.showMessageDialog(null, "Restore database

gagal");

}

}catch(Exception e){

Page 74: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

122

JOptionPane.showMessageDialog(null,"Restore database gagal,

Periksa kembali");

}

setTanggal();

//untuk mainKaryawan panel

nonaktif_mK();

Bacatbl_mK();

//untuk main Kesetaraan Panel

nonaktif_mKes();

Bacatbl_mKes();

//untuk mainOtomotif panel

nonaktif_mO();

Bacatbl_mO();

//untuk mainMengemudi panel

nonaktif_mM();

Bacatbl_mM();

//untuk siswa panel

nonaktif_s();

Bacatbl_s();

t_instruktur.setVisible(false);

l_instruktur.setVisible(false);

bt_instruktur.setVisible(false);

jLabel2.setVisible(false);

Page 75: BAB II PERANCANGAN APLIKASI * 1.1. Instal terlebih ......49 BAB II PERANCANGAN APLIKASI * 1.1. Rancangan Database Instal terlebih dahulu software Xampp v3.2.2 A. Database Cepat_Tepat

123

//untuk pembayaran panel

nonaktif_p();

Bacatbl_p();

jButton66.setVisible(false);

jComboBox1.setVisible(false);

jLabel3.setVisible(false);

//UNTUK ABSEN SISWA PANEL

Bacatbl_as();

jLabel8.setVisible(false); }