Tugas Pbo MVC 2
Tugas Pbo MVC 2
1. 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
*/
public class daoMahasiswa implements implementMahasiswa{
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 delete = "DELETE FROM tblmahasiswa where id=? ;";
final String select = "SELECT * FROM tblmahasiswa;";
final String carinama = "SELECT * FROM tblmahasiswa where nama like ?";
public daoMahasiswa() {
connection = koneksi.connection();
}
statement.setInt(1, id);
statement.executeUpdate();
return lb;
}
2. Firmanmvc.DAOImplement
package firmanmvc.DAOImplement;
import java.util.List;
import firmanmvc.model.*;
/**
*
* @author ISTI
*/
public interface implementMahasiswa {
3. 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
*/
public class controllerMahasiswa {
FormMahasiswa frame;
implementMahasiswa implMahasiswa;
List<mahasiswa> lb;
//mengosongkan field
public void reset() {
frame.getTxtID().setText("");
frame.getTxtNim().setText("");
frame.getTxtNama().setText("");
frame.getTxtJk().setSelectedItem("");
frame.getTxtAlamat().setText("");
//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()) {
implMahasiswa.insert(b);
JOptionPane.showMessageDialog(null, "Simpan Data sukses");
} else {
JOptionPane.showMessageDialog(frame, "Data Tidak Boleh Kosong");
}
}
//berfungsi untuk update data berdasarkan inputan user dari textfield di frame
public void update() {
if (!frame.getTxtID().getText().trim().isEmpty()) {
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import java.sql.Connection;
import java.sql.SQLException;
/**
*
* @author ISTI
*/
public class koneksi {
5. Firmanmvc.model
- mahasiswa
package firmanmvc.model;
/**
*
* @author ISTI
*/
public class mahasiswa {
}
- tableModelMahasiswa
package firmanmvc.model;
import java.util.List;
import javax.swing.table.AbstractTableModel;
/**
*
* @author ISTI
*/
public class tableModelMahasiswa extends AbstractTableModel{
List<mahasiswa> lb;
@Override
public int getColumnCount() {
return 5;
}
@Override
public String getColumnName(int column) {
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
public Object getValueAt(int row, int column) {
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;
}
}
}
6. 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
*/
public class FormMahasiswa extends javax.swing.JFrame {
controllerMahasiswa cbt;
/**
* Creates new form FormMahasiswa
*/
public FormMahasiswa() {
initComponents();
cbt = new controllerMahasiswa(this);
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
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
tabelData.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 [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
tabelData.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tabelDataMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tabelData);
txtAlamat.setColumns(20);
txtAlamat.setRows(5);
jScrollPane2.setViewportView(txtAlamat);
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.T
RAILING, 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)
.addComponent(txtID, javax.swing.GroupLayout.PREFERRED_SIZE,
221, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(txtNim,
javax.swing.GroupLayout.PREFERRED_SIZE, 221,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(61, 61, 61)
.addComponent(txtNama,
javax.swing.GroupLayout.PREFERRED_SIZE, 221,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(47, 47, 47)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING, false)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 221, Short.MAX_VALUE)
.addComponent(setJk, 0,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtCariNama,
javax.swing.GroupLayout.PREFERRED_SIZE, 221,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonCariNama,
javax.swing.GroupLayout.PREFERRED_SIZE, 62,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 513, Short.MAX_VALUE))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(buttonInsert,
javax.swing.GroupLayout.PREFERRED_SIZE, 121,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonUpdate,
javax.swing.GroupLayout.PREFERRED_SIZE, 113,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(buttonDelete,
javax.swing.GroupLayout.PREFERRED_SIZE, 121,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonReset,
javax.swing.GroupLayout.PREFERRED_SIZE, 100,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(16, 16, 16)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel1)
.addComponent(txtID, javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtCariNama, javax.swing.GroupLayout.PREFERRED_SIZE,
29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addComponent(buttonCariNama))
.addGap(8, 8, 8)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel2)
.addComponent(txtNim, javax.swing.GroupLayout.PREFERRED_SIZE,
29, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel3)
.addComponent(txtNama,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(jLabel4)
.addComponent(setJk, javax.swing.GroupLayout.PREFERRED_SIZE,
31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.L
EADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 88,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jLabel5))))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
193, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(32, 32, 32)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.B
ASELINE)
.addComponent(buttonUpdate)
.addComponent(buttonInsert)
.addComponent(buttonDelete)
.addComponent(buttonReset, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
pack();
}// </editor-fold>
cbt.update();
cbt.isiTable();
cbt.reset();// TODO add your handling code here:
}
cbt.delete();
cbt.isiTable();
cbt.reset();// TODO add your handling code here:
}