0% found this document useful (0 votes)
33 views17 pages

Project MHS

This document contains code for a Java application that allows users to view and manage student data stored in a MySQL database. The code includes: 1) A Java class that connects to the MySQL database and retrieves the student data table. 2) A JFrame form class with GUI components like text fields, combo boxes, buttons to display, add, edit and delete student records. 3) Methods to load student data from the database into a JTable, handle button clicks for CRUD operations, and validate/save form data. The code provides the backend database connection and frontend GUI interface for a basic student management application.

Uploaded by

nicholas6657
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views17 pages

Project MHS

This document contains code for a Java application that allows users to view and manage student data stored in a MySQL database. The code includes: 1) A Java class that connects to the MySQL database and retrieves the student data table. 2) A JFrame form class with GUI components like text fields, combo boxes, buttons to display, add, edit and delete student records. 3) Methods to load student data from the database into a JTable, handle button clicks for CRUD operations, and validate/save form data. The code provides the backend database connection and frontend GUI interface for a basic student management application.

Uploaded by

nicholas6657
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Design FORM

Database di XAMPP

Coding di Java Class


package datamhs;

import java.sql.Connection;

import java.sql.DriverManager;
public class Datamhs {

private static Connection connect;

public static Connection getConnection() {

try {

String url = "jdbc:mysql://localhost:3307/dbmhs";

String user = "root";

String pass = "";

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

connect = DriverManager.getConnection(url, user, pass);

System.out.println("Koneksi berhasil");

} catch (Exception ex) {

System.out.println("Koneksi gagal " + ex.getMessage());

return connect;

public static void main(String[] args) {

// TODO code application logic here

new javagui2().setVisible(true);

Coding di Jframe Form di Source


package datamhs;

import java.sql.ResultSet;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Date;

import java.text.SimpleDateFormat;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;

public class javagui2 extends javax.swing.JFrame {

DefaultTableModel data = new DefaultTableModel();

boolean tombol = false;

public javagui2() {

initComponents();

data.addColumn("NPM");

data.addColumn("Nama");

data.addColumn("Tanggal_Lahir");

data.addColumn("Prodi");

data.addColumn("Tahun");

data.addColumn("Kelamin");

tampildataketabel();

private void tampildataketabel(){

data.setRowCount(0);

try {

ResultSet rs = Datamhs.getConnection().prepareStatement("SELECT * FROM


tabelmhs").executeQuery();

while(rs.next()){

data.addRow(new Object[]{

rs.getString(1),

rs.getString(2),

rs.getString(3),

rs.getString(4),

rs.getString(5),

rs.getString(6)

});
}

rs.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Terjadi Kesalahan " + ex.getMessage());

} finally {

tblMahasiswa.setModel(data);

private void aktifkan(boolean x){

txtNpm.setEditable(x);

txtNama.setEditable(x);

cboProdi.setEnabled(x);

spntgl.setEnabled(x);

rdbPria.setEnabled(x);

rdbWanita.setEnabled(x);

txtTahun.setEditable(x);

btnTambah.setEnabled(!x);

btnEdit.setEnabled(!x);

btnSimpan.setEnabled(x);

btnBatal.setEnabled(x);

btnHapus.setEnabled(!x);

tblMahasiswa.setEnabled(!x);

private void kosongkan(){

txtNpm.setText("");

txtNama.setText("");

cboProdi.setSelectedIndex(-1);

txtTahun.setText("");

buttonGroup1.clearSelection();
txtNpm.requestFocus();

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

buttonGroup1 = new javax.swing.ButtonGroup();

jLabel6 = new javax.swing.JLabel();

txtTahun = new javax.swing.JTextField();

btnTambah = new javax.swing.JButton();

btnEdit = new javax.swing.JButton();

btnSimpan = new javax.swing.JButton();

btnBatal = new javax.swing.JButton();

btnHapus = new javax.swing.JButton();

jScrollPane1 = new javax.swing.JScrollPane();

tblMahasiswa = new javax.swing.JTable();

jLabel1 = new javax.swing.JLabel();

txtNpm = new javax.swing.JTextField();

jLabel2 = new javax.swing.JLabel();

txtNama = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

cboProdi = new javax.swing.JComboBox<>();

jLabel5 = new javax.swing.JLabel();

rdbPria = new javax.swing.JRadioButton();

rdbWanita = new javax.swing.JRadioButton();

spntgl = new javax.swing.JSpinner();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

addComponentListener(new java.awt.event.ComponentAdapter() {

public void componentShown(java.awt.event.ComponentEvent evt) {

formComponentShown(evt);

}
});

jLabel6.setText("Tahun Masuk :");

btnTambah.setText("Tambah");

btnTambah.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnTambahActionPerformed(evt);

});

btnEdit.setText("Ubah");

btnEdit.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnEditActionPerformed(evt);

});

btnSimpan.setText("Simpan");

btnSimpan.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnSimpanActionPerformed(evt);

});

btnBatal.setText("Batal");

btnBatal.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnBatalActionPerformed(evt);

});

btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btnHapusActionPerformed(evt);

});

tblMahasiswa.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

{},

{},

{},

{}

},

new String [] {

));

jScrollPane1.setViewportView(tblMahasiswa);

jLabel1.setText("NPM :");

jLabel2.setText("Nama :");

jLabel4.setText("Program Studi :");

jLabel5.setText("Jenis Kelamin :");

buttonGroup1.add(rdbPria);

rdbPria.setText("Pria");

buttonGroup1.add(rdbWanita);

rdbWanita.setText("Wanita");
spntgl.setModel(new javax.swing.SpinnerDateModel(new java.util.Date(), null, new
java.util.Date(), java.util.Calendar.DAY_OF_MONTH));

spntgl.setBorder(javax.swing.BorderFactory.createTitledBorder("Tanggal Lahir:"));

spntgl.setEditor(new javax.swing.JSpinner.DateEditor(spntgl, "dd/MM/yyyy"));

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jScrollPane1)

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel5)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(rdbPria)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(rdbWanita))

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel4)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(cboProdi, javax.swing.GroupLayout.PREFERRED_SIZE, 109,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jLabel6)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtTahun, javax.swing.GroupLayout.PREFERRED_SIZE, 82,


javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
)
.addGroup(layout.createSequentialGroup()

.addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(txtNama, javax.swing.GroupLayout.PREFERRED_SIZE, 214,


javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(txtNpm, javax.swing.GroupLayout.PREFERRED_SIZE, 79,


javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(18, 18, 18)

.addComponent(spntgl, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(0, 105, Short.MAX_VALUE)))

.addContainerGap())

.addGroup(layout.createSequentialGroup()

.addGap(64, 64, 64)

.addComponent(btnTambah)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btnEdit)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btnSimpan)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btnBatal)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btnHapus)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel1)

.addComponent(txtNpm, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel2)

.addComponent(txtNama, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addGap(1, 1, 1)

.addComponent(spntgl, javax.swing.GroupLayout.PREFERRED_SIZE, 45,


javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGap(10, 10, 10)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel4)

.addComponent(cboProdi, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel6)

.addComponent(txtTahun, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(rdbPria)

.addComponent(jLabel5)

.addComponent(rdbWanita))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(btnTambah)

.addComponent(btnEdit)

.addComponent(btnSimpan)

.addComponent(btnBatal)

.addComponent(btnHapus))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 135,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

pack();

setLocationRelativeTo(null);

}// </editor-fold>

private void formComponentShown(java.awt.event.ComponentEvent evt) {

DefaultComboBoxModel model = new DefaultComboBoxModel();

model.addElement("Sistem Informasi");

model.addElement("Informatika");

model.addElement("Bisnis Digital");

model.addElement("Manajemen");

model.addElement("Akuntansi");

model.addElement("Bahasa Inggris");

cboProdi.setModel(model);

aktifkan(false);

private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {

aktifkan(true);

tombol = true;

kosongkan();

private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {

int baris = tblMahasiswa.getSelectedRow();

String npm = tblMahasiswa.getValueAt(baris, 0).toString();

if(baris < 0) {

JOptionPane.showMessageDialog(this, "Pilih Data Dulu !");


} else {

try{

ResultSet rs = Datamhs.getConnection().

prepareStatement("SELECT * FROM tabelmhs WHERE npm= '" + npm + "'").executeQuery();

if(rs.next()){

txtNpm.setText(npm);

txtNama.setText(rs.getString(2));

spntgl.setValue(rs.getDate("tgllahir"));

cboProdi.setSelectedItem(rs.getString(4));

txtTahun.setText(rs.getString(5));

if(rs.getString(6).equals("Pria")) {

rdbPria.setSelected(true);

} else {

rdbWanita.setSelected(true);

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Terjadi Kesalahan" + ex);

tombol = false;

aktifkan(true);

private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {

String npm = txtNpm.getText();

String nama = txtNama.getText();

Date tgllahir = (Date) spntgl.getValue();

SimpleDateFormat tglsql = new SimpleDateFormat("yyyy/MM/dd");

String prodi = cboProdi.getSelectedItem().toString();

String tahun = txtTahun.getText();

String jk = rdbPria.isSelected() ? "Pria" : "Wanita";


if(tombol&&!npm.isEmpty()) {

// mulai proses cek redudansi data

try {

ResultSet rs = Datamhs.getConnection().

prepareStatement("SELECT * FROM tabelmhs WHERE npm = '" + npm + "'").

executeQuery();

if(rs.next()){

JOptionPane.showMessageDialog(this, "NPM sudah terdaftar");

txtNpm.requestFocus();

return;

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Terjadi kesalahan" + ex.getMessage());

} // akhir dari proses pengecekan redudansi data

try { // mulai proses INSERT INTO tabelmhs

PreparedStatement ps = Datamhs.getConnection().

prepareStatement("INSERT INTO tabelmhs VALUES (?, ?, ?, ?, ?, ?)");

ps.setString(1, npm);

ps.setString(2, nama);

ps.setString(3, tglsql.format(tgllahir));

ps.setString(4, prodi);

ps.setString(5, tahun);

ps.setString(6, jk);

ps.executeUpdate();

ps.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Data gagal simpan" + ex.getMessage());

} finally {

tampildataketabel();

} else {

try { // mulai proses UPDATE tabelmhs

npm = tblMahasiswa.getValueAt(tblMahasiswa.getSelectedRow(), 0).toString();


PreparedStatement ps = Datamhs.getConnection().

prepareStatement("UPDATE tabelmhs SET npm=?, nama=?, tgllahir=?, prodi=?, thnmasuk=?,


jk=? WHERE" + " npm=?");

ps.setString(1, txtNpm.getText());

ps.setString(2, nama);

ps.setString(3, tglsql.format(tgllahir));

ps.setString(4, prodi);

ps.setString(5, tahun);

ps.setString(6, jk);

ps.setString(7, npm);

ps.executeUpdate();

ps.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Data gagal diubah" + ex.getMessage());

} finally {

tampildataketabel();

kosongkan();

aktifkan(false);

private void btnBatalActionPerformed(java.awt.event.ActionEvent evt) {

aktifkan(false);

kosongkan();

private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {

int baris = tblMahasiswa.getSelectedRow();

if(baris < 0) {

JOptionPane.showMessageDialog(this, "Pilih Data Dulu !");

} else {
if(JOptionPane.showConfirmDialog(this, "Yakin Hapus ?", "Hapus Data",

JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) ==

JOptionPane.YES_OPTION) {

String npm = tblMahasiswa.getValueAt(tblMahasiswa.getSelectedRow(), 0).toString();

try {

PreparedStatement ps = Datamhs.getConnection().prepareStatement("DELETE FROM


tabelmhs WHERE npm = '" + npm + "'");

ps.executeUpdate();

ps.close();

} catch (SQLException ex) {

JOptionPane.showMessageDialog(this, "Data gagal dihapus" + ex.getMessage());

} finally {

tampildataketabel();

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :


javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

} catch (ClassNotFoundException ex) {


java.util.logging.Logger.getLogger(javagui2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(javagui2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(javagui2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(javagui2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

});

// Variables declaration - do not modify

private javax.swing.JButton btnBatal;

private javax.swing.JButton btnEdit;

private javax.swing.JButton btnHapus;

private javax.swing.JButton btnSimpan;

private javax.swing.JButton btnTambah;

private javax.swing.ButtonGroup buttonGroup1;

private javax.swing.JComboBox<String> cboProdi;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;


private javax.swing.JLabel jLabel6;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JRadioButton rdbPria;

private javax.swing.JRadioButton rdbWanita;

private javax.swing.JSpinner spntgl;

private javax.swing.JTable tblMahasiswa;

private javax.swing.JTextField txtNama;

private javax.swing.JTextField txtNpm;

private javax.swing.JTextField txtTahun;

// End of variables declaration

You might also like