0% found this document useful (0 votes)
19 views

Pemrograman Berorientasi Digital

The document describes a Java program for managing lecturer data in a database. It includes code for connecting to a MySQL database, displaying lecturer data in a table, and allowing adding, updating and deleting of records.

Uploaded by

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

Pemrograman Berorientasi Digital

The document describes a Java program for managing lecturer data in a database. It includes code for connecting to a MySQL database, displaying lecturer data in a table, and allowing adding, updating and deleting of records.

Uploaded by

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

LAPORAN PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK


PERTEMUAN 9

NAMA : R Jayani Maulana S


NRP : 15-2022-250
KELAS : CC
TANGGAL PENUGASAN : 30 April 2024

LABORATORIUM DASAR KOMPUTER


PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT TEKNOLOGI NASIONAL
BANDUNG
2024
- KONEKSI JAVA
package Config;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Koneksi {


private static Connection conn;

public static Connection getConnection(){


if (conn == null) {
try {
String url = "jdbc:mysql://localhost:3306/db_campus"; // Perbaikan di sini
String user = "root";
String pass = "";
Class.forName("com.mysql.cj.jdbc.Driver"); // Menggunakan Class.forName()
untuk menginisialisasi driver JDBC
conn = DriverManager.getConnection(url, user, pass);
} catch (ClassNotFoundException | SQLException e) {
Logger.getLogger(Koneksi.class.getName()).log(Level.SEVERE, null, e);
}
}
return conn;
}
}

- FormDosen
package Form;

import Config.Koneksi;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class FormDosen extends javax.swing.JFrame {

private Connection conn;

public FormDosen() {
initComponents();
conn = Koneksi.getConnection();
getData();
nonAktifButton();
aktifButton();
}
private void getData() {
DefaultTableModel model =(DefaultTableModel) tbl_data.getModel();
model.setRowCount(0);
try {
String sql = "Select * From dosen";
PreparedStatement st = conn.prepareStatement(sql);
ResultSet rs = st.executeQuery();

while(rs.next()){
int id = rs.getInt("id");
String nama = rs.getString("nama");
String telepon = rs.getString("telepon");
String alamat = rs.getString("alamat");

Object [] rowData = {id,nama,telepon,alamat};


model.addRow(rowData);
}

rs.close();
st.close();
} catch(Exception e) {
Logger.getLogger(FormDosen.class.getName()).log(Level.SEVERE, null, e);
}
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPanel1 = new javax.swing.JPanel();


jScrollPane1 = new javax.swing.JScrollPane();
tbl_data = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
t_telepon = new javax.swing.JTextField();
t_alamat = new javax.swing.JTextField();
t_nama = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
t_cari = new javax.swing.JTextField();
btn_tambah = new javax.swing.JButton();
btn_batal = new javax.swing.JButton();
btn_perbarui = new javax.swing.JButton();
btn_hapus = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(255, 255, 255));

tbl_data.setFont(new java.awt.Font("SansSerif", 0, 12)); // NOI18N


tbl_data.setForeground(new java.awt.Color(102, 102, 102));
tbl_data.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"ID", "Name", "Number", "Address"
}
));
tbl_data.setGridColor(new java.awt.Color(204, 204, 204));
tbl_data.setRowHeight(30);
tbl_data.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tbl_dataMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tbl_data);

jLabel1.setText("Name");

t_telepon.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t_teleponActionPerformed(evt);
}
});

t_alamat.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t_alamatActionPerformed(evt);
}
});

t_nama.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t_namaActionPerformed(evt);
}
});

jLabel2.setText("Address");

jLabel3.setText("Number");

t_cari.setText("Search...");
t_cari.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
t_cariMouseClicked(evt);
}
});
t_cari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
t_cariActionPerformed(evt);
}
});
t_cari.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
t_cariKeyTyped(evt);
}
});
btn_tambah.setText("ADD");
btn_tambah.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_tambahActionPerformed(evt);
}
});

btn_batal.setText("CANCEL");
btn_batal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_batalActionPerformed(evt);
}
});

btn_perbarui.setText("UPDATE");
btn_perbarui.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_perbaruiActionPerformed(evt);
}
});

btn_hapus.setText("DELETE");
btn_hapus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_hapusActionPerformed(evt);
}
});

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(btn_tambah)

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

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_perbarui,
javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btn_hapus))
.addComponent(t_nama,
javax.swing.GroupLayout.PREFERRED_SIZE, 312,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(t_telepon,
javax.swing.GroupLayout.PREFERRED_SIZE, 312,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(t_alamat,
javax.swing.GroupLayout.PREFERRED_SIZE, 312,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addGap(12, 12, 12)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(t_cari)
.addComponent(jScrollPane1)))
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 37,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(t_nama, javax.swing.GroupLayout.PREFERRED_SIZE, 42,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(t_cari, javax.swing.GroupLayout.PREFERRED_SIZE, 42,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(t_telepon,
javax.swing.GroupLayout.PREFERRED_SIZE, 42,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel2)
.addGap(4, 4, 4)
.addComponent(t_alamat, javax.swing.GroupLayout.PREFERRED_SIZE,
42, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(btn_tambah,
javax.swing.GroupLayout.PREFERRED_SIZE, 35,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_batal,
javax.swing.GroupLayout.PREFERRED_SIZE, 35,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_perbarui,
javax.swing.GroupLayout.PREFERRED_SIZE, 35,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btn_hapus,
javax.swing.GroupLayout.PREFERRED_SIZE, 35,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 298,
javax.swing.GroupLayout.PREFERRED_SIZE)))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

pack();
setLocationRelativeTo(null);
}// </editor-fold>

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


// TODO add your handling code here:
}

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


// TODO add your handling code here:
}

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


// TODO add your handling code here:
}

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


// TODO add your handling code here:
}
private void btn_tambahActionPerformed(java.awt.event.ActionEvent evt) {
String nama = t_nama.getText();
String telepon = t_telepon.getText();
String alamat = t_alamat.getText();

if(nama.isEmpty() || telepon.isEmpty() || alamat.isEmpty()){


JOptionPane.showMessageDialog(this, "Semua kolom harus diisi!","Validasi",
JOptionPane.ERROR_MESSAGE);
return;
}

try {
String sql = "INSERT INTO dosen (nama,telepon,alamat) VALUES (?,?,?)";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, nama);
st.setString(2, telepon);
st.setString(3, alamat);

int rowInserted = st.executeUpdate();


if(rowInserted > 0){
JOptionPane.showMessageDialog(this, "Data Berhasil Di Tambahkan");
resetForm();
getData();
}

st.close();
}catch (Exception e) {
Logger.getLogger(FormDosen.class.getName()).log(Level.SEVERE, null, e);
}
}

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


int selectedRow = tbl_data.getSelectedRow();
if (selectedRow == -1){
JOptionPane.showMessageDialog(this, "Pilih Baris Yang Akan DiUpdate");
return;
}

String id = tbl_data.getValueAt(selectedRow, 0).toString();


String nama = t_nama.getText();
String telepon = t_telepon.getText();
String alamat = t_alamat.getText();

if(nama.isEmpty() || telepon.isEmpty() || alamat.isEmpty()){


JOptionPane.showMessageDialog(this, "Semua kolom harus diisi!","Validasi",
JOptionPane.ERROR_MESSAGE);
return;
}

try {
String sql = "UPDATE dosen SET nama=?,telepon=?,alamat=? WHERE id=?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, nama);
st.setString(2, telepon);
st.setString(3, alamat);
st.setString(4, id);

int rowUpdate = st.executeUpdate();


if(rowUpdate > 0){
JOptionPane.showMessageDialog(this, "Data Berhasil DiUpdate");
resetForm();
getData();
}

st.close();
}catch (Exception e) {
Logger.getLogger(FormDosen.class.getName()).log(Level.SEVERE, null, e);
}
}

private void tbl_dataMouseClicked(java.awt.event.MouseEvent evt) {


int selectedRow = tbl_data.getSelectedRow();
if(selectedRow != -1){
String nama = tbl_data.getValueAt(selectedRow, 1).toString();
String telepon = tbl_data.getValueAt(selectedRow, 2).toString();
String alamat = tbl_data.getValueAt(selectedRow, 3).toString();

t_nama.setText(nama);
t_telepon.setText(telepon);
t_alamat.setText(alamat);
}

btn_perbarui.setEnabled(true);
btn_tambah.setEnabled(false);
btn_hapus.setEnabled(true);
}

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


resetForm();
aktifButton();
nonAktifButton();

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


int selectedRow = tbl_data.getSelectedRow();
if (selectedRow == -1){
JOptionPane.showMessageDialog(this, "Pilih Baris Yang Akan Diperbaharui");
return;
}

int confirm = JOptionPane.showConfirmDialog(this, "Apakah anda yakin ingin


menghapus data ini?","Konfirmasi",JOptionPane.YES_NO_OPTION);
if(confirm == JOptionPane.YES_OPTION){
String id = tbl_data.getValueAt(selectedRow, 0).toString();

try {
String sql = "DELETE FROM dosen WHERE id=?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, id);

int rowDelete = st.executeUpdate();


if(rowDelete > 0){
JOptionPane.showMessageDialog(this, "Data Berhasil Dihapus");
}

st.close();

}catch(Exception e) {
Logger.getLogger(FormDosen.class.getName()).log(Level.SEVERE, null, e);
}
}
resetForm();
getData();
aktifButton();
nonAktifButton();

private void t_cariKeyTyped(java.awt.event.KeyEvent evt) {


DefaultTableModel model =(DefaultTableModel) tbl_data.getModel();
model.setRowCount(0);

String cari = t_cari.getText();

try {
String sql = "Select * From dosen WHERE nama LIKE ? OR telepon LIKE ? OR
alamat LIKE ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, "%" + cari + "%");
st.setString(2, "%" + cari + "%");
st.setString(3, "%" + cari + "%");

ResultSet rs = st.executeQuery();

while(rs.next()){
int id = rs.getInt("id");
String nama = rs.getString("nama");
String telepon = rs.getString("telepon");
String alamat = rs.getString("alamat");

Object [] rowData = {id,nama,telepon,alamat};


model.addRow(rowData);
}

rs.close();
st.close();
} catch(Exception e) {
Logger.getLogger(FormDosen.class.getName()).log(Level.SEVERE, null, e);
}
}

private void t_cariMouseClicked(java.awt.event.MouseEvent evt) {


t_cari.setText("");
}

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 ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(FormDosen.class.getName()).log(java.util.logging.Le
vel.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(FormDosen.class.getName()).log(java.util.logging.Le
vel.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(FormDosen.class.getName()).log(java.util.logging.Le
vel.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(FormDosen.class.getName()).log(java.util.logging.Le
vel.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormDosen().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btn_batal;
private javax.swing.JButton btn_hapus;
private javax.swing.JButton btn_perbarui;
private javax.swing.JButton btn_tambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField t_alamat;
private javax.swing.JTextField t_cari;
private javax.swing.JTextField t_nama;
private javax.swing.JTextField t_telepon;
private javax.swing.JTable tbl_data;
// End of variables declaration

private void resetForm() {


t_nama.setText("");
t_telepon.setText("");
t_alamat.setText("");
}

private void nonAktifButton() {


btn_perbarui.setEnabled(false);
btn_hapus.setEnabled(false);
}

private void aktifButton() {


btn_tambah.setEnabled(true);
btn_batal.setEnabled(true);
}

- Output
Create
Update
Delete

You might also like