STIKOM EL RAHMA
INFORMATIKA
MODUL PERKULIAHAN
BASIS DATA II
MEMBUAT FORM INPUT NILAI & CARI DATA PADA TABEL
DENGAN JAVA NETBEANS – MYSQL / MARIADB
Ilham Aristanto, S.Kom., M.Kom.
1
1. Membuat tabel user pada database akademik
Pada database akademik, buatlah tabel dengan nama nilai :
CREATE TABLE nilai (
id_nilai INT(10) NOT NULL AUTO_INCREMENT,
nim int(10) NOT NULL,
tugas int(5) NOT NULL,
praktek int(5) NOT NULL,
uts int(5) NOT NULL,
uas int(5) NOT NULL,
ratarata int(5) NOT NULL,
grade varchar(2) NOT NULL,
keterangan varchar(20) NOT NULL,
PRIMARY KEY (id_nilai),
FOREIGN KEY (nim) REFERENCES `students` (nim)
);
2. Membuat Form Nilai pada package akademik
Klik kanan pada package akademik -> New -> JFrame Form
dengan nama Nilai / FormNilai
2
Sesuaikan Edit Text nya :
Label = NIM
Label = NAMA
Label = JURUSAN
Label = NILAI TUGAS
Label = NILAI PRAKTEK
Label = NILAI UTS
Label = NILAI UAS
Label = NILAI RATA-RATA
Label = GRADE
Label = KETERANGAN
Label = CARI NIM / NAMA / JURUSAN
Sesuaikan nama Variable nya :
Text Field = text_NIM Label – = text_RATARATA
Text Field = text_NAMA Label – = text_GRADE
Text Field = text_JURUSAN Label – = text_KETERANGAN
Text Field = input_NILAITUGAS
Text Field = input_NILAIPRAKTEK Tabel = tabel_MHS
Text Field = input_NILAIUTS Tabel = tabel_NILAI
Text Field = input_NILAIUAS
Text Field = text_CARI
Button = button_RESET
Button = button_HITUNG
Button = button_SAVE
Button = button_CLOSE
3
Input Syntax dibawah pada tab Source
note : text dengan label berwarna HIJAU tidak perlu di ketik karena sudah ada.
package akademik;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import java.awt.*;
public class FormNilai extends javax.swing.JInternalFrame {
public Statement st;
public ResultSet rs;
public DefaultTableModel tabModel;
public DefaultTableModel tabModelNILAI;
public ResultSet rsMHS=null;
Connection cn = koneksi.conn.conn();
public FormNilai() {
initComponents();
judul();
tampilData("");
tampilDataMHS();
}
4
Input Syntax dibawah pada tab Source
private void judul() {
Object[] judul = {
"NIM", "TUGAS", "PRAKTEK", "UTS", "UAS", "RATA RATA", "GRADE", ”KETERANGAN"
};
tabModelNILAI = new DefaultTableModel(null, judul);
tabel_NILAI.setModel(tabModelNILAI);
}
public void tampilData(String where) {
try {
st = cn.createStatement();
tabModelNILAI.getDataVector().removeAllElements();
tabModelNILAI.fireTableDataChanged();
rs = st.executeQuery("SELECT * FROM nilai " + where);
while (rs.next()) {
Object[] data = {
//rs.getString("id_nilai"),
rs.getString("nim"),
rs.getString("tugas"),
rs.getString("praktek"),
rs.getString("uts"),
rs.getString("uas"),
rs.getString("ratarata"),
rs.getString("grade"),
rs.getString("keterangan"),
};
tabModelNILAI.addRow(data);
}
} catch(Exception e) {
e.printStackTrace();
}
}
public void reset() {
text_NIM.setText("");
text_NAMA.setText("");
text_JURUSAN.setText("");
input_NILAITUGAS.setText("");
input_NILAIPRAKTEK.setText("");
input_NILAIUTS.setText("");
input_NILAIUAS.setText("");
text_RATARATA.setText("-");
text_GRADE.setText("-");
text_KETERANGAN.setText("-");
}
5
private void tampilDataMHS(){
try{
Object[] judul_kolom = {"NIM", "NAMA", "JURUSAN"};
tabModel=new DefaultTableModel(null,judul_kolom);
tabel_MHS.setModel(tabModel);
Connection conn=(Connection)koneksi.conn.conn();
st = cn.createStatement();
tabModel.getDataVector().removeAllElements();
rsMHS=st.executeQuery("SELECT * from students ");
while(rsMHS.next()){
Object[] data={
rsMHS.getString("nim"),
rsMHS.getString("nama"),
rsMHS.getString("jurusan")
};
tabModel.addRow(data);
}
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
private void cariData(String key){
try{
Object[] judul_kolom = {"NIM", "NAMA", "JURUSAN"};
tabModel=new DefaultTableModel(null,judul_kolom);
tabel_MHS.setModel(tabModel);
Connection conn=(Connection)koneksi.conn.conn();
Statement stt=conn.createStatement();
tabModel.getDataVector().removeAllElements();
rsMHS=stt.executeQuery("SELECT * from students WHERE nim LIKE '%"+key+"%' OR
nama LIKE '%"+key+"%' OR jurusan LIKE '%"+key+"%'");
while(rsMHS.next()){
Object[] data={
rsMHS.getString("nim"),
rsMHS.getString("nama"),
rsMHS.getString("jurusan"),
};
tabModel.addRow(data);
}
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
6
Klik kanan Text Field = text_CARI -> Event -> Key -> keyReleased
private void text_CARIKeyReleased(java.awt.event.KeyEvent evt) {
String key=text_CARI.getText();
System.out.println(key);
if(key!=""){
cariData(key);
}else{
tampilDataMHS();
}
Klik kanan tabel_MHS -> Event -> Mouse -> MouseClicked
private void tabel_MHSMouseClicked(java.awt.event.MouseEvent evt) {
text_NIM.setText(tabel_MHS.getValueAt(tabel_MHS.getSelectedRow(), 0).toString());
text_NAMA.setText(tabel_MHS.getValueAt(tabel_MHS.getSelectedRow(), 1).toString());
text_JURUSAN.setText(tabel_MHS.getValueAt(tabel_MHS.getSelectedRow(), 2).toString());
7
Klik kanan button_RESET -> Event -> Action -> actionPerformed
private void button_RESETActionPerformed(java.awt.event.ActionEvent evt) {
reset();
Klik kanan button_CLOSE -> Event -> Action -> actionPerformed
private void button_CLOSEActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
8
Klik kanan button_HITUNG -> Event -> Action -> actionPerformed
private void button_HITUNGActionPerformed(java.awt.event.ActionEvent evt) {
//untuk menghitung nilai rata-rata
if (input_NILAITUGAS.getText().isEmpty()||input_NILAIPRAKTEK.getText().isEmpty()||
input_NILAIUTS.getText().isEmpty()||input_NILAIUAS.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Input Nilai Tidak Boleh Kosong");
}
else {
Double ratarata = (Double.parseDouble(input_NILAITUGAS.getText())+
Double.parseDouble(input_NILAIPRAKTEK.getText())+
Double.parseDouble(input_NILAIUTS.getText())+Double.parseDouble
(input_NILAIUAS.getText()))/4;
text_RATARATA.setText(ratarata.toString().substring(0));
}
//Untuk menghitung nilai grade
Double a = Double.parseDouble(text_RATARATA.getText());
char grade=' ';
if (a >= 90.00){
grade = 'A';
text_GRADE.setText(""+grade);
}
else if (a >= 80.00 && a <=89.00 ){
grade ='B';
text_GRADE.setText(""+grade);
9
}
else if (a >= 70.00 && a <= 79.00){
grade = 'C';
text_GRADE.setText(""+grade);
}
else if (a >= 40.00 && a <= 69.00){
grade = 'D';
text_GRADE.setText(""+grade);
}
else if (a <= 39.00){
grade = 'E';
text_GRADE.setText(""+grade);
}
//keterangan
if (grade == 'A' || grade =='B' || grade == 'C'){
text_KETERANGAN.setText("LULUS");
}
else {
text_KETERANGAN.setText("TIDAK LULUS");
}
10
Klik kanan button_SAVE -> Event -> Action -> actionPerformed
private void button_SAVEActionPerformed(java.awt.event.ActionEvent evt) {
try {
st = cn.createStatement();
st.executeUpdate("INSERT INTO nilai VALUES(default,'"
+ text_NIM.getText() +"','"
+ input_NILAITUGAS.getText() + "','"
+ input_NILAIPRAKTEK.getText() + "','"
+ input_NILAIUTS.getText() + "','"
+ input_NILAIUAS.getText() + "','"
+ text_RATARATA.getText() + "','"
+ text_GRADE.getText() + "','"
+ text_KETERANGAN.getText() + "')");
tampilData("");
JOptionPane.showMessageDialog(null, "Data Berhasil di Simpan");
reset();
} catch (Exception e) {
e.printStackTrace();
}
11
3. Hasil
12
Cari Data Mahasiswa berdasarkan NAMA :
13
Hitung Nilai dan Simpan :
14