Membuat Apliksai Hitung Nilai Mahasiswa Dengan Java Netbeans dan MYSQL
Selamat Malam Sobat Helmyntest. Gimana Puasanya hari ini? semoga semuanya berbuka magrib :D Udah ga kerasa beberapa hari lagi merayakan hari kemeanangan dan gw masih sendiri -_- Oke langsung aja kepembahasan, sesusai judul postingan kali ini gw mau share Cara Membuat Apliksai Hitung Nilai Mahasiswa Dengan Java Netbeans dan MYSQL.
1. Sudah Pasti Sobat membuat Project Baru, setelah membuat project baru kemudia sobat buat design Formnya seperti Gambar Diatas dengan Komponen seperti gambar dibawah sob.
2. Jika sudah jangan Lupa Untuk Membuat Database dengan MYSQL bisa dengan XAMPP, jika sobat ga ngerti bisa baca disini
Untuk Databasenya Seterah Sobat, disini gw menggunakan Nama Database "uas" karena tugas UAS :D
dengan record nama (Varchar), uts(float), tm(float), uas(float), rata(float), tingkat(char), akhir (Char).
Jika database sudah dibuat selanjutnya ke langkah berikutnya
3. Membuat File Koneksi.java dengan isi seperti dibawah pastekan setelah package name
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author badger
*/
public class koneksi {
public Statement data = null;
public Connection koneksi = null;
public String Url="jdbc:Mysql://localhost/"; //host database anda
public String DbName="uas"; //nama database Anda
public String DBUser="root"; //username dari database, jika menggunakan default xampp maka username = root
public String DBPassword="";//password db , default xampp tidak ada = "";
public koneksi(){
try { //setting driver yang digunakan untuk terhubung ke database
Class.forName("com.mysql.jdbc.Driver"); //membuat koneksi dengan parameter url +nama database, username dan password
koneksi = DriverManager.getConnection(Url+DbName, DBUser, DBPassword); //membuat statement yang akan digunakan untuk mengeksekusi query dari aplikasi
data = this.koneksi.createStatement();
}
catch (ClassNotFoundException | SQLException ex) {
System.out.println("error : "+ex);
System.exit(0);
}
}
public Connection getConnection(){
return koneksi;
}
public Statement getStatement(){
return data;
}
}
4. Mengkoneksikan Database dengan MYSQL JDBC Driver, bagi yg belum tahu caranya bisa googling atau cek disini
5. Setelah Langkah Diatas Selanjutnya Koding pada Project yang sobat buat yang ada designnya sob
Letakan Kode dibawah ini tepat setelah nama package:
import java.awt.event.KeyEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
Letakan kode dibawah ini tepat setelah public class Soal2 extends javax.swing.JFrame {
/**
* Creates new form nILAI
* @throws java.sql.SQLException
*/
public Soal2() throws SQLException {
initComponents();
setTableFromDB();
}
public void bersih(){
nama.setText("");
uts.setText("");
tm.setText("");
uas.setText("");
rata.setText("");
tingkat.setText("");
akhir.setText("");
jLabel9.setText("");
nama.requestFocus();
}
Kemudian Membuat Filter untuk menghandle Field dengan cara Lihat gambar dibawah kemudian letakan kode dibawah tepat setelah private void utsKeyTyped(java.awt.event.KeyEvent evt) { , private void tmKeyTyped(java.awt.event.KeyEvent evt) { , dan private void uasKeyTyped(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
if (!(Character.isDigit(c)
|| (c==KeyEvent.VK_BACK_SPACE)
|| (c==KeyEvent.VK_DELETE))) {
getToolkit().beep();
JOptionPane.showMessageDialog(null, "Harus Angka 0-100");
evt.consume();
}
Klik kiri 2 kali pada Button Hitung dan letakan kode dibawah ini tepat setelah private void hitungBtnActionPerformed(java.awt.event.ActionEvent evt) {
int total = 0;
if (nama.getText().length()==0 ||uts.getText().length()==0 || tm.getText().length()==0 ||uas.getText().length()==0 ){
JOptionPane.showMessageDialog(null, "Harap Masukan Semua Data!");
}
String nama1, grade, hasil;
nama1=nama.getText();
jLabel9.setText(String.valueOf(nama1));
float num1, num2, num3, rataan;
num1=Float.parseFloat(uts.getText());
num2=Float.parseFloat(tm.getText());
num3=Float.parseFloat(uas.getText());
rataan=(float) ((num2*0.3)+(num1*0.3)+(num3*0.4));
rata.setText(String.valueOf(rataan));
if (rataan >= 100)
grade="A";
if (80<=rataan && rataan <=100)
grade="A";
else
if (70<=rataan && rataan <=79.9)
grade="B";
else
if (56<=rataan && rataan <=69.9)
grade="C";
else
grade="D";
tingkat.setText(String.valueOf(grade));
if ((grade=="A") || (grade=="B") || (grade=="C"))
hasil="Lulus";
else
hasil="Tidak Lulus";
akhir.setText(String.valueOf(hasil));
Klik kiri 2 kali pada button bersihkan dan letakan kode dibawah tepat setelah private void bersihkanBtnActionPerformed(java.awt.event.ActionEvent evt) {
nama.setText("");
uts.setText("");
tm.setText("");
uas.setText("");
jLabel9.setText ("");
rata.setText ("");
tingkat.setText ("");
akhir.setText ("");
nama.requestFocus();
klik kiri 2 kali pada button simpan dan pastekan kode dibawah tepat setelah private void simpanBtnActionPerformed(java.awt.event.ActionEvent evt) {
try {
try {
this.insert(
this.nama.getText(),
this.uts.getText(),
this.tm.getText(),
this.uas.getText(),
this.rata.getText(),
this.tingkat.getText(),
this.akhir.getText());
} catch (SQLException ex) {
Logger.getLogger(Soal2.class.getName()).log(Level.SEVERE, null, ex);
}
setTableFromDB();
bersih();
} catch (SQLException ex) {
Logger.getLogger(Soal2.class.getName()).log(Level.SEVERE, null, ex);
}
lakukan hal yang sama pada button keluar
int reply =JOptionPane.showConfirmDialog(
null,
"Yakin ingin keluar?",
"Konfirmasi",
JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION){
this.dispose();
}
Lakukan hal yang sama pada hapus button
try {
this.delete(
this.nama.getText());
setTableFromDB();
bersih();
} catch (SQLException ex) {
Logger.getLogger(Soal2.class.getName()).log(Level.SEVERE, null, ex);
}
Membuat function insert dengan meletakan kode dibawah ditempat yg kosong bisa di setelah // End of variables declaration
private void insert(String nama, String uts, String tm, String uas, String rata, String tingkat, String akhir) throws SQLException{ // buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi(); // tentukan query yang akan dijalankan pada mySql/database
// kita akan memasukkan data ke dalam tabel mahasiswa
String query = "insert into soal2 (nama,uts,tm,uas,rata,tingkat,akhir) values ('"+nama+"','"+uts+"','"+tm+"','"+uas+"','"+rata+"','"+tingkat+"','"+akhir+"')";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query);
//eksekusi
JOptionPane.showMessageDialog(this, "insert berhasil");//pemberitahuan jika berhasil
}
catch (SQLException ex) { //jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah ini.
Logger.getLogger(Soal2.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "insert gagal");//pemberitahuan jika gagal
}
}
Lakukan hal yang sama untuk membuat function yang mengeset table dari database ke form yang didesain
private void setTableFromDB() throws SQLException {
koneksi conect = new koneksi();// objek koneksi utk koneksi ke DB
ResultSet data = null; //
int jumBaris=0; // variable untuk menentukan jumlah baris matriks nantinya.
//query yang akan ditampilkan, misalkan kita ingin menampilkan data ambil dari DB ke table
String query="select * from soal2";
try {
data = conect.getStatement().executeQuery(query); // query dijalankan
while(data.next()){
jumBaris++;
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Error pada jumlah baris : "+ex.getMessage());
}
//jika jumlah baris telah didapatkan maka buat array 2 dimensi untuk menyimpan data sementara
String isi[][]= new String[jumBaris][7]; //jumbaris, dan jumlah kolom = 3{nim, nama, komentar}
// masukkan data dari ResultStatement kedalam matriks
int i=0;//just for loop
//eksekusi kembali query
try {
data = conect.getStatement().executeQuery(query);
while (data.next()) {
System.out.println("disiko");
isi[i][0] = "" + data.getString("nama"); // ini sintaks untk mengambil isinya, "nama" adalah nama kolom dalam DB
System.out.println("nama="+data.getString("nama"));
isi[i][1] = "" + data.getString("uts");
isi[i][2] = "" + data.getString("tm");
isi[i][3] = "" + data.getString("uas");
isi[i][4] = "" + data.getString("rata");
isi[i][5] = "" + data.getString("tingkat");
isi[i][6] = "" + data.getString("akhir");
i++;
}
} catch
(SQLException ex) {
Logger.getLogger(Soal2.class.getName()).log(Level.SEVERE, null, ex);
}
String NamaKolom[] ={"Nama","UTS","TM","UAS","Rata-Rata","Grade","Hasil"};//nama kolom yang nantinya akan ada pada tabel
DefaultTableModel model= new DefaultTableModel(isi,NamaKolom){};
//selanjutnya adalah mlakukan pengesetan pada tabel
table.setModel(model); //done!!! }
}
membuat function delete seperti langkah diatas
private void delete(String nama) {
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query update yang akan dijalankan pada mySql/database
// dalam queri ini kita akan menghapus data yang terkait dengan nim
String query = "delete from soal2 where nama='"+nama+"' ";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query);
//eksekusi
JOptionPane.showMessageDialog(this, "data berhasil dihapus");//pemberitahuan jika berhasil
} catch (SQLException ex) { //jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah ini.
Logger.getLogger(Soal2.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "data gagal dihapus");//pemberitahuan jika gagal
}
}
Dan Selesai sudah langkah membuat aplikasi hitung nilai mahasiswa dengan netbeans dan myql, sobat tinggal jalankan programnya jangan lupa untuk menjalankan xampp sob.
Sekian untuk postingan kali ini semoga bermanfaat untuk semuanya. Jika ada yang salah-salah kata gw mohon maaf dan jika ada yang ditanyakan bisa dituliskan di kolom komentar facebook.
Sampai Jumpa di postingan gw berikutnya sob.
1 komentar:
Write komentarwah sangat bermanfaat, btw selain menggunakan xampp bisa menggunakan sofware lain tidak?
Reply