09 membuat form setting - bsi
TRANSCRIPT
107
BAB 09 Membuat Form Setting
Pada form setting yang telah dibuat terdapat beberapa menu mulai dari Kelas, Biaya, Tahun Ajaran, Semester. Fungsi dari form setting sendiri untuk menginput data dari menu-menu yang telah disebutkan diatas. Langkah-langkah pembuatan form setting adalah sebagai berikut. 1. Klik kanan pada package Sips, pilih New > JFrame Form, seperti pada
bab sebelumnya. 2. Ketik Setting pada kolom Class Name. 3. Membuat desain form
Karena pada form ini terdapat beberapa menu, maka kita akan menggunakan JTabbedPane sebagai pemisah antara satu menu dengan menu lainnya. Berikut desain form setting yang telah dibuat. a. Tab menu kelas
108
Gambar 9.1 Desain Tab Kelas Di bawah ini adalah tebel penjelasan mengenai Nama Objek, Nama Variabel, dan Nilai yang digunakan untuk membuat form Setting > Tab Kelas.
Tabel 9.1 Objek-objek Tab Kelas
Nama Objek Nama Variabel Nilai
JLabel JLabel1 ID
JLabel JLable2 Kelas
JTextField Idkelas
JTextField Txtkelas
JButton btnhapuskls Hapus
JButton btnresetkls Reset
JButton btnsimpankls Simpan
JButton JButton1 Batal
JTable Tblkelas Id Kelas, Kelas
b. Tab menu Biaya
Gambar 9.2 Desain Tab Biaya
109
Di bawah ini adalah tebel penjelasan mengenai Nama Objek, Nama Variabel, dan Nilai yang digunakan untuk membuat form Setting > Tab Tahun Ajaran.
Tabel 9.2 Objek-objek Tab Tahun Ajaran Nama Objek Nama Variabel Nilai
JLabel JLabel6 Jenis Biaya
JLabel JLable8 Jumlah
JTextField txtjmlbiaya
JComboBox combojnsbiaya SPP, Daftar Ulang, Ujian, Makan
JButton btnsimpanbiaya Simpan
JButton JButton4 Batal
JTable tblbiaya Jenis biaya, jumlah
c. Tab menu Tahun Ajaran
Gambar 9.3 Desain Tab Daftar Ulang
Di bawah ini adalah tebel penjelasan mengenai Nama Objek, Nama Variabel, dan Nilai yang digunakan untuk membuat form Setting > Tab Daftar Ulang.
110
Tabel 9.3 Objek-objek Tab Daftar Ulang
Nama Objek Nama Variabel Nilai
JLabel JLabel9 TAhun Ajaran
JLabel JLabel10 ID
JTextField txtidajaran
JTextField txtajaran
JButton btnhapusthnajar Hapus
JButton btnaktifajaran Aktif
JButton btnsimpanajaran Simpan
JButton JButton5 Batal
JTable tblthnajar ID, Tahun Ajaran, Status
d. Tab menu Semester
Gambar 9.4 Desain Tab SPP
Di bawah ini adalah tebel penjelasan mengenai Nama Objek, Nama Variabel, dan Nilai yang digunakan untuk membuat form Setting > Tab SPP.
111
Tabel 9.4 Objek-objek Tab SPP Nama Objek Nama Variabel Nilai
JLabel JLabel15 Semester
JLabel JLabel16 ID
JTextField txtsemester
JTextField Txtnonaktif
JComboBox JComboBox1 (id semester)
JButton btnaktifsmster Aktif
JButton JButton6 Batal
4. Setelah membuat desain, langkah selanjutnya mengetikkan source code di bawah ini pada tab Source.
package Sips;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class JInternalFrameSetting extends
javax.swing.JInternalFrame {
private DefaultTableModel model;
private DefaultTableModel model1;
private DefaultTableModel modelajar;
public JInternalFrameSetting() {
initComponents();
initUI();
nonaktif();
112
txtnonaktif.setVisible(false);
btnaktifajaran.setEnabled(false);
GetDataThnAjar();
GetDatasmester();
//memberi penamaan pada judul kolom
tblkelas;
model = new DefaultTableModel ();
tblkelas.setModel(model);
model.addColumn("Id kelas");
model.addColumn("Kelas");
GetKelas();
//memberi penamaan pada judul kolom
tblbiaya;
model1 = new DefaultTableModel ();
tblbiaya.setModel(model1);
model1.addColumn("Jenis biaya");
model1.addColumn("Jumlah");
GetBiaya();
//memberi penamaan pada judul kolom
tblbiaya;
modelajar = new DefaultTableModel ();
tblthnajar.setModel(modelajar);
modelajar.addColumn("Id");
modelajar.addColumn("Tahun Ajaran");
modelajar.addColumn("Status");
GetThnAjar();
}
Membuat form berada di tengah private void initUI(){
getContentPane().setBackground(new Color(245,
245, 245));
Dimension windowSize = getSize();
113
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment
();
Point centerPoint = ge.getCenterPoint();
int dx = centerPoint.x - windowSize.width / 2;
int dy = centerPoint.y - windowSize.height / 2;
setLocation(dx, dy);
}
Membuat method nonaktif. private void nonaktif(){
btnhapuskls.setEnabled(false);
}
private void nonsmster(){
try{
Connection con = koneksi.getKoneksi();
Statement st=con.createStatement();
String sql = "UPDATE semester set status='"+
txtnonaktif.getText() + "'";
st.executeUpdate(sql);
con.close();
}catch (Exception e){
}
}
private void nonthnajar(){
try{
Connection con = koneksi.getKoneksi();
Statement st=con.createStatement();
String sql = "UPDATE tahunajaran set
status='"+ txtnonaktif.getText() + "'";
st.executeUpdate(sql);
con.close();
}catch (Exception e){
}
}
Method untuk mengambil data dari database. private void GetKelas(){
114
//menghapus isi table tblkelas
model.getDataVector( ).removeAllElements( );
model.fireTableDataChanged( );
try{
//membuat statemen pemanggilan data pada table
tblkelas dari database
Statement stat = (Statement)
koneksi.getKoneksi( ).createStatement( );
String sql = "Select * from kelas";
ResultSet res = stat.executeQuery(sql);
//penelusuran baris pada tabel tblkelas dari
database
while(res.next ()){
Object[ ] obj = new Object[2];
obj[0] = res.getString("idkls");
obj[1] = res.getString("kls");
model.addRow(obj);
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null,
err.getMessage() );
}
}
private void GetBiaya(){
//menghapus isi table tblbiaya
model1.getDataVector( ).removeAllElements( );
model1.fireTableDataChanged( );
try{
//membuat statemen pemanggilan data pada table
tblbiaya dari database
Statement stat = (Statement)
koneksi.getKoneksi( ).createStatement( );
String sql = "Select * from biaya";
ResultSet res = stat.executeQuery(sql);
//penelusuran baris pada tabel tblbiaya dari
database
115
while(res.next ()){
Object[ ] obj1 = new Object[2];
obj1[0] = res.getString("jnsbiaya");
obj1[1] = res.getString("jumlah");
model1.addRow(obj1);
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null,
err.getMessage() );
}
}
private void GetThnAjar(){
modelajar.getDataVector( ).removeAllElements(
);
modelajar.fireTableDataChanged( );
try{
Statement stat = (Statement)
koneksi.getKoneksi( ).createStatement( );
String sql = "Select * from tahunajaran";
ResultSet res = stat.executeQuery(sql);
while(res.next ()){
Object[ ] objAjar = new Object[3];
objAjar[0] = res.getString("idthnajar");
objAjar[1] = res.getString("tahunajar");
objAjar[2] = res.getString("status");
modelajar.addRow(objAjar);
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null,
err.getMessage() );
}
}
private void GetDataThnAjar(){
try{
Statement stat = (Statement)
koneksi.getKoneksi( ).createStatement( );
116
String sql = "select * from tahunajaran
where idthnajar='"+txtIdAjaran.getText()+"'";
ResultSet res = stat.executeQuery(sql);
while(res.next()){
txtajaran.setText(res.getString("tahunajar
"));
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null,
err.getMessage() );
}
}
private void GetDatasmester(){
try{
Statement stat = (Statement)
koneksi.getKoneksi( ).createStatement( );
String sql = "select * from semester
where idsmster='"+txtSmester.getText()+"'";
ResultSet res = stat.executeQuery(sql);
while(res.next()){
jComboBox1.setSelectedItem(res.getString("
semester"));
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null,
err.getMessage() );
}
}
private void GetComboBiaya(){
try{
Statement stat = (Statement)
koneksi.getKoneksi( ).createStatement( );
String sql = "select * from biaya where
jnsbiaya='"+combojnsbiaya.getSelectedItem()+
"'";
ResultSet res = stat.executeQuery(sql);
117
while(res.next()){
txtjmlbiaya.setText(res.getString("jumlah"
));
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null,
err.getMessage() );
}
}
Method untuk membersihkan inputan pada JTextField. private void clear(){
idkelas.setText("");
txtkelas.setText("");
}
Pada tab menu Biaya, di objek button Simpan klik kanan Events > Action > btnsimpanbiayaActionPerformed, ketikkan code berikut. private void btnsimpanbiayaActionPerformed
(java.awt.event.ActionEvent evt) {
if(!"".equals(txtjmlbiaya.getText())){
try {
Connection con = koneksi.getKoneksi();
Statement st=con.createStatement();
st.executeUpdate("UPDATE biaya SET
jumlah='" + txtjmlbiaya.getText() + "'
WHERE jnsbiaya = '" +
combojnsbiaya.getSelectedItem() + "'");
JOptionPane.showMessageDialog(null,
"Berhasil disimpan.");
con.close();
GetBiaya();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error
" + e);
}
118
}else{
JOptionPane.showMessageDialog(null, "Jumlah
biaya tidak boleh kosong.");
}
}
Pada tab Semester, di objek button Aktif klik kanan Events > Action > btnaktifsmsterActionPerformed, ketikkan code berikut. private void btnaktifsmsterActionPerformed
(java.awt.event.ActionEvent evt) {
nonsmster();
String row_idsmster =
jComboBox1.getSelectedItem().toString();
String row_status = btnaktifsmster.getText();
try {
Connection con = koneksi.getKoneksi();
Statement stm=con.createStatement();
stm.executeUpdate("UPDATE semester SET
status='" + row_status + "' WHERE idsmster =
'" + row_idsmster + "'");
JOptionPane.showMessageDialog(null, "ID
Semester " + jComboBox1.getSelectedItem() + "
Aktif");
con.close();
}catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error "
+ e);
}
}
Pada tab menu Tahun Ajaran, di objek button Aktif klik kanan Events > Action > btnaktifajaranActionPerformed, ketikkan code berikut. private void btnaktifajaranActionPerformed
(java.awt.event.ActionEvent evt) {
nonthnajar();
String row_idthnajar = txtIdAjaran.getText();
String row_status = btnaktifajaran.getText();
119
try {
Connection con = koneksi.getKoneksi();
Statement stm=con.createStatement();
stm.executeUpdate("UPDATE tahunajaran SET
status='" + row_status + "' WHERE idthnajar =
'" + row_idthnajar + "'");
JOptionPane.showMessageDialog(null, "ID Tahun
Ajaran (" + txtIdAjaran.getText() + ")
Aktif");
GetThnAjar();
btnhapusthnajar.setEnabled(false);
btnaktifajaran.setEnabled(false);
txtIdAjaran.setEnabled(true);
txtIdAjaran.setText("");
txtajaran.setEnabled(true);
txtajaran.setText("");
btnsimpanajaran.setEnabled(true);
txtIdAjaran.requestFocus();
con.close();
}catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error "
+ e);
}
}
Pada tab menu Tahun Ajaran, di objek button Simpan klik kanan Events > Action > btnsimpanajaranActionPerformed, ketikkan code berikut. private void btnsimpanajaranActionPerformed
(java.awt.event.ActionEvent evt) {
if(!"".equals(txtIdAjaran.getText()) ||
!"".equals(txtajaran.getText())){
try{
Connection con=koneksi.getKoneksi();
Statement st=con.createStatement();
String sql = "insert into tahunajaran values
('"+ txtIdAjaran.getText()+ "', '" +
120
txtajaran.getText() + "', '" +
txtnonaktif.getText() + "')";
st.executeUpdate(sql);
con.close();
GetThnAjar();
txtIdAjaran.setText("");
txtajaran.setText("");
JOptionPane.showMessageDialog(this,"Data
berhasil disimpan",
"Informasi",JOptionPane.INFORMATION_MESSAG
E);
}catch (Exception e){
JOptionPane.showMessageDialog(null,"Terdap
at ID yang sama atau data yang kosong ",
"Error",JOptionPane.ERROR_MESSAGE);
System.out.println(e.getMessage());
}
}else{
JOptionPane.showMessageDialog(this,"Terdapat
inputan kosong",
"Informasi",JOptionPane.INFORMATION_MESSAGE)
;
}
}
Pada tab menu Kelas, di objek button Simpan klik kanan Events > Action > btnsimpanklsActionPerformed, ketikkan code berikut. private void btnsimpanklsActionPerformed
(java.awt.event.ActionEvent evt) {
if(!"".equals(idkelas.getText()) ||
!"".equals(txtkelas.getText())){
try{
Connection con=koneksi.getKoneksi();
121
Statement st=con.createStatement();
String sql = "insert into kelas values ('"+
idkelas.getText()+ "', '" +
txtkelas.getText() + "')";
st.executeUpdate(sql);
con.close();
GetKelas();
clear();
JOptionPane.showMessageDialog(this,"Data
berhasil disimpan",
"Informasi",JOptionPane.INFORMATION_MESSAG
E);
}catch (Exception e){
JOptionPane.showMessageDialog(null,"Proses
penyimpanan gagal",
"Error",JOptionPane.ERROR_MESSAGE);
System.out.println(e.getMessage());
}
}else{
JOptionPane.showMessageDialog(this,"Terdapat
inputan kosong.",
"Informasi",JOptionPane.INFORMATION_MESSAGE)
;
}
}
Pada tab menu Kelas, di objek button Hapus klik kanan Events > Action > btnhapusklsActionPerformed, ketikkan code berikut. private void btnhapusklsActionPerformed
(java.awt.event.ActionEvent evt) {
String idkls = idkelas.getText();
try {
122
Statement statement = (Statement)
koneksi.getKoneksi().createStatement();
statement.executeUpdate("delete from kelas
where idkls= ('"+idkls+"');");
GetKelas();
clear();
btnsimpankls.setEnabled(true);
btnhapuskls.setEnabled(false);
JOptionPane.showMessageDialog(null, "Data
berhasil dihapus");
}catch (Exception t) {
JOptionPane.showMessageDialog(null, "Data
gagal dihapus");
}
}
Pada tab menu Kelas, di objek button Reset klik kanan Events > Action > btnresetklsActionPerformed, ketikkan code berikut. private void btnresetklsActionPerformed
(java.awt.event.ActionEvent evt) {
clear();
btnsimpankls.setEnabled(true);
btnhapuskls.setEnabled(false);
}
Pada tab menu Daftar Ulang, di objek button Edit klik kanan Events > Action > btneditDUActionPerformed, ketikkan code berikut. private void btneditDUActionPerformed
(java.awt.event.ActionEvent evt) {
btnsimpanDU.setEnabled(true);
txtjmlDU.setEnabled(true);
}
Pada tab menu Tahun Ajaran, di objek button Hapus klik kanan Events > Action > btnhapusthnajarActionPerformed, ketikkan code berikut. private void btnhapusthnajarActionPerformed
123
(java.awt.event.ActionEvent evt) {
String idthnajar = txtIdAjaran.getText();
try {
Statement statement = (Statement)
koneksi.getKoneksi().createStatement();
statement.executeUpdate("delete from
tahunajaran where idthnajar=
('"+idthnajar+"');");
GetThnAjar();
btnhapusthnajar.setEnabled(false);
btnaktifajaran.setEnabled(false);
txtIdAjaran.setEnabled(true);
txtIdAjaran.setText("");
txtajaran.setEnabled(true);
txtajaran.setText("");
btnsimpanajaran.setEnabled(true);
txtIdAjaran.requestFocus();
JOptionPane.showMessageDialog(null, "Data
berhasil dihapus");
}catch (Exception t) {
JOptionPane.showMessageDialog(null, "Data
gagal dihapus");
}
}
Pada tab menu Tahun Ajaran, di objek button Simpan Tahun Ajaran klik kanan Events > Action > btnsimpanajaranActionPerformed, ketikkan code berikut. private void btnsimpanajaranActionPerformed
(java.awt.event.ActionEvent evt) {
try {
Connection con = koneksi.getKoneksi();
Statement st=con.createStatement();
st.executeUpdate("UPDATE tahunajaran SET
tahunajar='" + txtajaran.getText() + "'");
JOptionPane.showMessageDialog(null,
"Berhasil disimpan.");
btnsimpanajaran.setEnabled(false);
txtajaran.setEnabled(false);
con.close();
124
GetDataThnAjar();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error
" + e);
}
}
Pada tab menu Kelas, di objek button Batal klik kanan Events > Action > jButton1ActionPerformed, ketikkan code berikut. private void jButton1ActionPerformed
(java.awt.event.ActionEvent evt) {
this.dispose();
}
Pada tab menu Biaya, di objek button Batal klik kanan Events > Action > jButton4ActionPerformed, ketikkan code berikut. private void jButton4ActionPerformed
(java.awt.event.ActionEvent evt) {
this.dispose();
}
Pada tab menu Tahun Ajaran, di objek button Batal klik kanan Events > Action > jButton5ActionPerformed, ketikkan code berikut. private void jButton5ActionPerformed
(java.awt.event.ActionEvent evt) {
this.dispose();
}
Pada tab menu Semester, di objek button Batal klik kanan Events > Action > jButton6ActionPerformed, ketikkan code berikut. private void jButton6ActionPerformed
(java.awt.event.ActionEvent evt) {
this.dispose();
}
125
Tambahkan method di bawah ini untuk mengaktifkan fungsi enter pada JTextField. private void txtIdAjaranKeyTyped
(java.awt.event.KeyEvent evt) {
if(txtIdAjaran.getText().length()>=4){
evt.consume();
}
char c = evt.getKeyChar();
if(!(Character.isDigit(c)) && !(c ==
KeyEvent.VK_BACK_SPACE)){
JOptionPane.showMessageDialog(null, "Inputan
hanya boleh angka", "Ilegal Input",
JOptionPane.ERROR_MESSAGE);
evt.consume();
}
}
private void txtajaranKeyTyped
(java.awt.event.KeyEvent evt) {
if(txtajaran.getText().length()>=9){
evt.consume();
}
}
private void txtkelasKeyTyped
(java.awt.event.KeyEvent evt) {
if(txtkelas.getText().length()>=2){
evt.consume();
}
char c = evt.getKeyChar();
if(c == KeyEvent.VK_ENTER){
btnsimpankls.doClick();
evt.consume();
}
}
private void idkelasKeyTyped
(java.awt.event.KeyEvent evt) {
if(idkelas.getText().length()>=5){
evt.consume();
126
}
char c = evt.getKeyChar();
if(c == KeyEvent.VK_ENTER){
txtkelas.requestFocus();
evt.consume();
}
}
private void txtjmlbiayaKeyTyped
(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
if(!(Character.isDigit(c)) && !(c ==
KeyEvent.VK_BACK_SPACE)){
JOptionPane.showMessageDialog(null, "Inputan
hanya boleh angka", "Ilegal Input",
JOptionPane.ERROR_MESSAGE);
evt.consume();
}
}
Tambahkan method berikut pada JComboBox combojnsbiaya. private void combojnsbiayaActionPerformed
(java.awt.event.ActionEvent evt) {
String kode =
jComboBox1.getSelectedItem().toString();
if ("Daftar Ulang".equals(kode)){
GetComboBiaya();
}else if ("Makan".equals(kode)){
GetComboBiaya();
}else if ("SPP".equals(kode)){
GetComboBiaya();
}else {
GetComboBiaya();
}
}
Tambahkan method berikut pada JComboBox ID yang terdapat di tab menu Semester.
127
private void jComboBox1ActionPerformed
(java.awt.event.ActionEvent evt) {
String kode =
jComboBox1.getSelectedItem().toString();
if ("1".equals(kode)){
txtSmester.setText("Ganjil");
}else if ("2".equals(kode)){
txtSmester.setText("Genap");
}else{
txtSmester.setText("");
}
}
Tambahkan method berikut pada JTable tblthnajar. private void tblthnajarMouseClicked
(java.awt.event.MouseEvent evt) {
int row = tblthnajar.getSelectedRow();
txtIdAjaran.setText((String)tblthnajar.getValue
At(row, 0));
txtajaran.setText((String)tblthnajar.getValueAt
(row, 1));
txtIdAjaran.setEnabled(false);
txtajaran.setEnabled(false);
btnsimpanajaran.setEnabled(false);
btnhapusthnajar.setEnabled(true);
btnaktifajaran.setEnabled(true);
}
Tambahkan method berikut pada JTable tblkelas. private void tblkelasMouseClicked
(java.awt.event.MouseEvent evt) {
btnhapuskls.setEnabled(true);
int rowkls =
tblkelas.getSelectedRow();
idkelas.setText((String)tblkelas.getValueAt(row
kls,0));
128
txtkelas.setText((String)tblkelas.getValueAt(ro
wkls, 1));
btnsimpankls.setEnabled(false);
}