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

Post on 31-Oct-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

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

50

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

51

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

52

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

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)

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.

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.

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.

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");

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.

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.

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

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.

63

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

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

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

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.

67

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

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

70

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

1

2 3 4

5

6

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;

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;

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())) {

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();

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");

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));

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"; }

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();

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(""); }

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];

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() {

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;

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);

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 {

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() + "%'"

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;

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()

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) "

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();

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 {

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);

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) {

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();

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) {

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();

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(); }

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

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) {

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);

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);

}

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);

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.

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

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;

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");

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();

}

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.

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

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.

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.

111

F. Setelah selesai, selanjutnya pilih seperti gambar dibawah.

G. Pilih seperti gambar dibawah dan klik Launch Report Wizard

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.

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.

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.

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.

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.

117

3. Membuat parameter tahun

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.

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{

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();

}

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){

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);

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); }

top related