Professional Documents
Culture Documents
Pbo - MVC 2
Pbo - MVC 2
Absen : 28
Firmanmvc.DAO
package firmanmvc.DAO;
import firmanmvc.koneksi.koneksi;
import firmanmvc.model.mahasiswa;
import firmanmvc.DAOImplement.implementMahasiswa;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
* @author ISTI
*/
Connection connection;
final String insert = "INSERT INTO tblmahasiswa (nim, nama,jk, alamat) VALUES (?, ?, ?,?);";
final String update = "UPDATE tblmahasiswa set nim=?, nama=?, jk=?, alamat=? where id=? ;";
final String carinama = "SELECT * FROM tblmahasiswa where nama like ?";
public daoMahasiswa() {
connection = koneksi.connection();
try {
statement = connection.prepareStatement(insert,Statement.RETURN_GENERATED_KEYS);
statement.setString(1, b.getNim());
statement.setString(2, b.getNama());
statement.setString(3, b.getJk());
statement.setString(4, b.getAlamat());
statement.executeUpdate();
ResultSet rs = statement.getGeneratedKeys();
while (rs.next()) {
b.setId(rs.getInt(1));
ex.printStackTrace();
} finally {
try {
statement.close();
ex.printStackTrace();
try {
statement = connection.prepareStatement(update);
statement.setString(1, b.getNim());
statement.setString(2, b.getNama());
statement.setString(3, b.getJk());
statement.setString(4, b.getAlamat());
statement.setInt(5, b.getId());
statement.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
statement.close();
ex.printStackTrace();
try {
statement = connection.prepareStatement(delete);
statement.setInt(1, id);
statement.executeUpdate();
ex.printStackTrace();
} finally {
try {
statement.close();
List<mahasiswa> lb = null;
try {
lb = new ArrayList<mahasiswa>();
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery(select);
while (rs.next()) {
b.setId(rs.getInt("id"));
b.setNim(rs.getString("nim"));
b.setNama(rs.getString("nama"));
b.setJk(rs.getString("jk"));
b.setAlamat(rs.getString("alamat"));
lb.add(b);
return lb;
}
List<mahasiswa> lb = null;
try {
lb = new ArrayList<mahasiswa>();
PreparedStatement st = connection.prepareStatement(carinama);
ResultSet rs = st.executeQuery();
while (rs.next()) {
b.setId(rs.getInt("id"));
b.setNim(rs.getString("nim"));
b.setNama(rs.getString("nama"));
b.setJk(rs.getString("jk"));
b.setAlamat(rs.getString("alamat"));
lb.add(b);
return lb;
}
Firmanmvc.DAOImplement
package firmanmvc.DAOImplement;
import java.util.List;
import firmanmvc.model.*;
/**
* @author ISTI
*/
Firmanmvc.controller
package firmanmvc.controller;
import firmanmvc.DAO.daoMahasiswa;
import firmanmvc.DAOImplement.implementMahasiswa;
import firmanmvc.model.mahasiswa;
import firmanmvc.model.tableModelMahasiswa;
import firmanmvc.view.FormMahasiswa;
import java.util.List;
import javax.swing.JOptionPane;
/**
* @author ISTI
*/
FormMahasiswa frame;
implementMahasiswa implMahasiswa;
List<mahasiswa> lb;
this.frame = frame;
lb = implMahasiswa.getALL();
//mengosongkan field
frame.getTxtNim().setText("");
frame.getTxtNama().setText("");
frame.getTxtJk().setSelectedItem("");
frame.getTxtAlamat().setText("");
lb = implMahasiswa.getALL();
frame.getTabelData().setModel(tmb);
frame.getTxtID().setText(lb.get(row).getId().toString());
frame.getTxtNim().setText(lb.get(row).getNim());
frame.getTxtNama().setText(lb.get(row).getNama());
frame.getTxtJk().setSelectedItem(lb.get(row).getJk());
frame.getTxtAlamat().setText(lb.get(row).getAlamat());
//merupakan fungsi untuk insert data berdasarkan inputan user dari textfield di frame
public void insert() {
if (!frame.getTxtNim().getText().trim().isEmpty()& !frame.getTxtNama().getText().trim().isEmpty()) {
b.setNim(frame.getTxtNim().getText());
b.setNama(frame.getTxtNama().getText());
b.setJk(frame.getTxtJk().getSelectedItem().toString());
b.setAlamat(frame.getTxtAlamat().getText());
implMahasiswa.insert(b);
} else {
//berfungsi untuk update data berdasarkan inputan user dari textfield di frame
if (!frame.getTxtID().getText().trim().isEmpty()) {
b.setNim(frame.getTxtNim().getText());
b.setNama(frame.getTxtNama().getText());
b.setJk(frame.getTxtJk().getSelectedItem().toString());
b.setAlamat(frame.getTxtAlamat().getText());
b.setId(Integer.parseInt(frame.getTxtID().getText()));
implMahasiswa.update(b);
} else {
if (!frame.getTxtID().getText().trim().isEmpty()) {
int id = Integer.parseInt(frame.getTxtID().getText());
implMahasiswa.delete(id);
} else {
lb = implMahasiswa.getCariNama(frame.getTxtCariNama().getText());
tableModelMahasiswa tmb = new tableModelMahasiswa(lb);
frame.getTabelData().setModel(tmb);
if (!frame.getTxtCariNama().getText().trim().isEmpty()) {
implMahasiswa.getCariNama(frame.getTxtCariNama().getText());
isiTableCariNama();
} else {
Firmanmvc.koneksi
package firmanmvc.koneksi;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.sql.Connection;
import java.sql.SQLException;
/**
* @author ISTI
*/
if (con == null) {
data.setDatabaseName("db_crud");
data.setUser("root");
data.setPassword("");
try {
con = data.getConnection();
ex.printStackTrace();
return con;
Firmanmvc.model
mahasiswa
package firmanmvc.model;
/**
*
* @author ISTI
*/
return id;
this.id = id;
return nim;
this.nim = nim;
}
public String getNama() {
return nama;
this.nama = nama;
return jk;
this.jk = jk;
return alamat;
this.alamat = alamat;
}
}
tableModelMahasiswa
package firmanmvc.model;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
* @author ISTI
*/
List<mahasiswa> lb;
this.lb = lb;
@Override
return 5;
@Override
switch (column) {
case 0:
return "ID";
case 1:
return "Nim";
case 2:
return "Nama";
case 3:
return "Kelamin";
case 4:
return "Alamat";
default:
return null;
@Override
switch (column) {
case 0:
return lb.get(row).getId();
case 1:
return lb.get(row).getNim();
case 2:
return lb.get(row).getNama();
case 3:
return lb.get(row).getJk();
case 4:
return lb.get(row).getAlamat();
default:
return null;
firmanmvc.view
package firmanmvc.view;
import firmanmvc.controller.controllerMahasiswa;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JTextArea;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.text.*;
/**
* @author ISTI
*/
controllerMahasiswa cbt;
/**
*/
public FormMahasiswa() {
initComponents();
cbt.isiTable();
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
*/
@SuppressWarnings("unchecked")
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jLabel1.setText("ID");
jLabel2.setText("NIM");
jLabel3.setText("Nama");
jLabel4.setText("Kelamin");
jLabel5.setText("Alamat");
tabelData.setModel(new javax.swing.table.DefaultTableModel(
},
new String [] {
));
tabelData.addMouseListener(new java.awt.event.MouseAdapter() {
tabelDataMouseClicked(evt);
});
jScrollPane1.setViewportView(tabelData);
buttonUpdate.setText("Ubah");
buttonUpdate.addActionListener(new java.awt.event.ActionListener() {
buttonUpdateActionPerformed(evt);
});
buttonInsert.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
buttonInsert.setText("Simpan");
buttonInsert.addActionListener(new java.awt.event.ActionListener() {
buttonInsertActionPerformed(evt);
});
buttonDelete.setText("Hapus");
buttonDelete.addActionListener(new java.awt.event.ActionListener() {
buttonDeleteActionPerformed(evt);
});
buttonReset.setText("Batal");
buttonReset.addActionListener(new java.awt.event.ActionListener() {
buttonResetActionPerformed(evt);
});
txtAlamat.setColumns(20);
txtAlamat.setRows(5);
jScrollPane2.setViewportView(txtAlamat);
jLabel6.setText("Cari>--Nama");
buttonCariNama.setText("Cari");
buttonCariNama.addActionListener(new java.awt.event.ActionListener() {
buttonCariNamaActionPerformed(evt);
});
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILI
NG, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addComponent(setJk, 0, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel6)
.addComponent(buttonCariNama))
.addGap(8, 8, 8)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabel2)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELI
NE)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADIN
G)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel5))))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonUpdate)
.addComponent(buttonInsert)
.addComponent(buttonDelete)
.addComponent(buttonReset, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
cbt.insert();
cbt.isiTable();
cbt.reset();
cbt.update();
cbt.isiTable();
cbt.delete();
cbt.isiTable();
}
private void buttonCariNamaActionPerformed(java.awt.event.ActionEvent evt) {
return txtID;
return txtNim;
return txtNama;
return setJk;
return txtAlamat;
}
public JTable getTabelData(){
return tabelData;
return buttonInsert;
return buttonUpdate;
return buttonDelete;
return buttonReset;
return buttonCariNama;
return txtCariNama;
}
OUTPUT