Hello World!, perkenalkan saya Al Moslem ingin memposting UAS Pemprograman 2 dimana harus diupload di blogspot untuk mendapatkan nilainya dan yuk kita simak aja!
1. Foto Lembar Jawaban
Program yang saya buat ini adalah untuk memudahkan pengguna yang membaca buku, khusus nya komik karena banyak sekali chapter dan judul komik yang dibaca jadi dengan aplikasi ini pengguna bisa menyimpan daftar komiknya di MY KOMIK LIST, dimana harapan saya pengguna akan dimudahkan mengingatnya jika menggunakan program yang dibuat ini .
3. Screen Shot Desain JFrame
4. Source Code
1. Data Komik / Tampilan awal
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import com.mysql.jdbc.Statement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import koneksi.koneksi;
/**
*
* @author moslem
*/
public class DataKomik extends javax.swing.JFrame {
/**
* Creates new form DataKomik
*/
public DataKomik() {
initComponents();
refresh();
txtId.setVisible(false);
}
private void ambilData() {
DefaultTableModel tbl = new DefaultTableModel();
tbl.addColumn("#");
tbl.addColumn("ID");
tbl.addColumn("Judul");
tbl.addColumn("Tipe");
tbl.addColumn("Chapter");
tbl.addColumn("Genre");
tbl.addColumn("Status");
tbl.addColumn("Rating");
table_anime.setModel(tbl);
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
ResultSet res = statement.executeQuery("Select * from data_komik");
int index = 1;
while (res.next())
{
tbl.addRow(new Object []{
index,
res.getString("id"),
res.getString("judul"),
res.getString("tipe"),
res.getString("chapter"),
res.getString("genre"),
res.getString("status"),
res.getString("rating"),
});
table_anime.setModel(tbl);
index++;
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Gagal Mengambil Data: " + e.getMessage());
}
}
private void refresh()
{
txtId.setText("");
txtJudul.setText("");
cmbTipe.setSelectedItem("Manga");
txtChapter.setText("");
txtGenre.setText("");
cmbStatus.setSelectedItem("Selesai");
txtRating.setText("");
txtCari.setText("");
txtJudul.requestFocus();
ambilData();
}
/**
* 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() {
jScrollPane1 = new javax.swing.JScrollPane();
table_anime = new javax.swing.JTable();
jLabel3 = new javax.swing.JLabel();
txtCari = new javax.swing.JTextField();
btnCari = new javax.swing.JButton();
txtJudul = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
cmbStatus = new javax.swing.JComboBox<>();
txtChapter = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
txtRating = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
txtGenre = new javax.swing.JTextField();
btnSimpan = new javax.swing.JButton();
btnDelete = new javax.swing.JButton();
btnNew = new javax.swing.JButton();
btnEdit = new javax.swing.JButton();
btnKeluar = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jLabel9 = new javax.swing.JLabel();
txtId = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
cmbTipe = new javax.swing.JComboBox<>();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new java.awt.Dimension(1545, 860));
table_anime.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{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", "Title 5", "Title 6", "Title 7", "Title 8"
}
));
table_anime.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
table_anime.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
table_animeMouseClicked(evt);
}
});
jScrollPane1.setViewportView(table_anime);
jLabel3.setFont(new java.awt.Font("Manga", 0, 48)); // NOI18N
jLabel3.setText("MY KOMIK LIST");
txtCari.setToolTipText("");
txtCari.setName("Judul"); // NOI18N
txtCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtCariActionPerformed(evt);
}
});
btnCari.setText("SEARCH");
btnCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCariActionPerformed(evt);
}
});
txtJudul.setToolTipText("");
txtJudul.setName("Judul"); // NOI18N
txtJudul.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtJudulActionPerformed(evt);
}
});
jLabel2.setText("Judul*");
jLabel2.setToolTipText("");
jLabel4.setText("Tipe*");
jLabel4.setToolTipText("");
jLabel5.setText("Status*");
jLabel5.setToolTipText("");
cmbStatus.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Selesai", "Belum Selesai", "Rencana di Baca", "Tidak di Baca Lagi" }));
cmbStatus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbStatusActionPerformed(evt);
}
});
txtChapter.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtChapterActionPerformed(evt);
}
});
jLabel6.setText("Chapter*");
jLabel6.setToolTipText("");
jLabel7.setText("Rating*");
jLabel7.setToolTipText("");
txtRating.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtRatingActionPerformed(evt);
}
});
jLabel8.setText("Genre*");
jLabel8.setToolTipText("");
txtGenre.setToolTipText("");
txtGenre.setName("Judul"); // NOI18N
txtGenre.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtGenreActionPerformed(evt);
}
});
btnSimpan.setText("SIMPAN");
btnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSimpanActionPerformed(evt);
}
});
btnDelete.setForeground(new java.awt.Color(255, 0, 0));
btnDelete.setText("HAPUS");
btnDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDeleteActionPerformed(evt);
}
});
btnNew.setText("REFRESH");
btnNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNewActionPerformed(evt);
}
});
btnEdit.setText("UPDATE");
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});
btnKeluar.setForeground(new java.awt.Color(255, 0, 0));
btnKeluar.setText("EXIT");
btnKeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnKeluarActionPerformed(evt);
}
});
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jTextArea1.setText("Judul * - Berikan judul komik yang ingin di daftar.\n\nStatus * - Status komik yang Anda baca.\nSelesai - Seri yang telah Anda selesaikan (baca semua chapter)\nBelum Selesai - Seri yang sedang Anda baca\nRencana di Baca - Seri yang ingin Anda baca di masa mendatang\nTidak di Baca Lagi - Seri yang Anda putuskan untuk berhenti membaca\n\nChapter * - Chapter apa yang Anda baca komik.\n\nRating * - Anda memberi skor dari komik yang Anda baca 1/10.\n\nTipe * - Jenis komik yang Anda baca.\nManga - Komik dari Jepang\nManwha - Komik dari Korea\nManhua - Komik dari Tiongkok\nDll - Komik selain 3 pilihan yang ada.\n\nGenre * - Genre komik yang ingin Anda daftarkan.\n\nSEARCH - Tombol untuk mencari komik yang anda daftarkan.\nSIMPAN - Tombol untuk menyimpan komik yang ingin Anda daftarkan.\nHAPUS - Tombol untuk menghapus komik yang ingin Anda hapus dari daftar.\nUPDATE - Tombol untuk memperbarui chapter atau apa pun.\nREFRESH - Tombol untuk menyegarkan daftar.\nEXIT - Tombol untuk menutup aplikasi.");
jScrollPane2.setViewportView(jTextArea1);
jLabel9.setText("Penjelasan*");
jLabel13.setIcon(new javax.swing.ImageIcon("C:\\Users\\moslem\\Downloads\\Galeri\\gin sas.png")); // NOI18N
jLabel14.setIcon(new javax.swing.ImageIcon("C:\\Users\\moslem\\Downloads\\Galeri\\Gintama.png")); // NOI18N
jLabel10.setFont(new java.awt.Font("Manga", 0, 48)); // NOI18N
jLabel10.setText("AL MOSLEM BINTANG SASMITO");
cmbTipe.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Manga", "Manwha", "Manhua", "Dll" }));
cmbTipe.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbTipeActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(29, 29, 29)
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(txtCari, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnCari, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel3))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel12))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel14))))
.addGroup(layout.createSequentialGroup()
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1300, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel5)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(txtRating, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel6))
.addGroup(layout.createSequentialGroup()
.addComponent(cmbStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(130, 130, 130)
.addComponent(jLabel4)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtChapter, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbTipe, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(35, 35, 35)
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(196, 196, 196)
.addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txtGenre, javax.swing.GroupLayout.PREFERRED_SIZE, 490, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(53, 53, 53)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnKeluar, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnNew, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(48, 48, 48)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel9)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel2)
.addComponent(txtJudul, javax.swing.GroupLayout.PREFERRED_SIZE, 490, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 208, Short.MAX_VALUE)
.addComponent(jLabel11)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtCari, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnCari, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel13))
.addGap(7, 7, 7))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel11))
.addComponent(jLabel12))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE)
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel10)
.addGap(28, 28, 28)))))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(11, 11, 11)
.addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(jLabel9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 73, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtJudul, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(cmbStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnNew, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4)
.addComponent(cmbTipe, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(txtChapter, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtRating, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addGap(38, 38, 38))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(btnEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27)))
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnKeluar, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtGenre, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(155, 155, 155))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(85, 85, 85))))
);
pack();
}// </editor-fold>
private void table_animeMouseClicked(java.awt.event.MouseEvent evt) {
int i = table_anime.getSelectedRow();
if (i == -1){
return;
}
String id = (String) table_anime.getValueAt(i, 1);
txtId.setText(id);
String judul = (String) table_anime.getValueAt(i, 2);
txtJudul.setText(judul);
String tipe = (String) table_anime.getValueAt(i, 3);
cmbTipe.setSelectedItem(tipe);
String chapter = (String) table_anime.getValueAt(i, 4);
txtChapter.setText(chapter);
String genre = (String) table_anime.getValueAt(i, 5);
txtGenre.setText(genre);
String status = (String) table_anime.getValueAt(i, 6);
cmbStatus.setSelectedItem(status);
String rating = (String) table_anime.getValueAt(i, 7);
txtRating.setText(rating);
}
private void txtCariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
ResultSet res = statement.executeQuery("Select * from data_komik where "
+ "judul like'%" + txtCari.getText() + "%'");
DefaultTableModel tbl = new DefaultTableModel();
tbl.addColumn("#");
tbl.addColumn("ID");
tbl.addColumn("Judul");
tbl.addColumn("Tipe");
tbl.addColumn("Chapter");
tbl.addColumn("Genre");
tbl.addColumn("Status");
tbl.addColumn("Rating");
table_anime.setModel(tbl);
int index = 1;
while (res.next()){
tbl.addRow(new Object[]{
index,
res.getString("id"),
res.getString("judul"),
res.getString("tipe"),
res.getString("chapter"),
res.getString("genre"),
res.getString("status"),
res.getString("rating"),
});
table_anime.setModel(tbl);
index++;
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Gagal mencari: " + e.getMessage());
}
}
private void txtJudulActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void cmbStatusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtChapterActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtRatingActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtGenreActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
if(!txtId.getText().equals("")){
JOptionPane.showMessageDialog(null,
"Silahkan refresh terlebih dahulu!");
}
else{
String judul = txtJudul.getText();
String tipe = (String) cmbTipe.getSelectedItem();
String chapter = txtChapter.getText();
String genre = txtGenre.getText();
String status = (String) cmbStatus.getSelectedItem();
String rating = txtRating.getText();
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
statement.executeUpdate("insert into data_komik VALUES (null, '" + judul + "','"
+ tipe +"','"+ chapter+"','"+ genre +"','"+ status +"','"+ rating +"')");
statement.close();
JOptionPane.showMessageDialog(null, "Data Berhasil disimpan");
refresh();
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Data Gagal Disimpan: " + e.getMessage());
}
}
}
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
if(txtId.getText().equals("")){
JOptionPane.showMessageDialog(null,
"Silahkan pilih terlebih dahulu anime yang akan dihapus!");
}
else{
String id = txtId.getText();
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
statement.executeUpdate("delete from data_komik where id = '" + id + "'");
JOptionPane.showMessageDialog(null, "Data Berhasil di Hapus");
refresh();
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Data Gagal di Hapus: " + e.getMessage());
}
}
}
private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {
refresh();
}
private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {
if(txtId.getText().equals("")){
JOptionPane.showMessageDialog(null,
"Silahkan pilih terlebih dahulu anime yang akan diupdate!");
}
else{
String id = txtId.getText();
String judul = txtJudul.getText();
String tipe = (String) cmbTipe.getSelectedItem();
String chapter = txtChapter.getText();
String genre = txtGenre.getText();
String status = (String) cmbStatus.getSelectedItem();
String rating = txtRating.getText();
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
statement.executeUpdate("update data_komik SET judul='"+judul+"'," + "tipe='"+tipe+"',"
+ "chapter='"+chapter+"'," + "genre='"+genre+"'," + "status='"+status+"',"
+ "rating='"+rating+"' " + "WHERE id = '"+id+"'");
statement.close();
JOptionPane.showMessageDialog(null, "Data Berhasil diubah");
refresh();
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Data Gagal diubah: " + e.getMessage());
}
}
}
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private void cmbTipeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
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(DataKomik.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(DataKomik.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(DataKomik.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(DataKomik.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() {
new DataKomik().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnCari;
private javax.swing.JButton btnDelete;
private javax.swing.JButton btnEdit;
private javax.swing.JButton btnKeluar;
private javax.swing.JButton btnNew;
private javax.swing.JButton btnSimpan;
private javax.swing.JComboBox<String> cmbStatus;
private javax.swing.JComboBox<String> cmbTipe;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTable table_anime;
private javax.swing.JTextField txtCari;
private javax.swing.JTextField txtChapter;
private javax.swing.JTextField txtGenre;
private javax.swing.JTextField txtId;
private javax.swing.JTextField txtJudul;
private javax.swing.JTextField txtRating;
// End of variables declaration
}
Nama : Al Moslem Bintang Sasmito
Nim : 171021400158
Ini contoh aplikasi yang saya buat, penyimpan daftar komik bernama MY KOMIK LIST
Nim : 171021400158
Ini contoh aplikasi yang saya buat, penyimpan daftar komik bernama MY KOMIK LIST
1. Foto Lembar Jawaban
2. Deksripsi / Penjelasan Program
3. Screen Shot Desain JFrame
1. Data Komik / Tampilan awal
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import com.mysql.jdbc.Statement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import koneksi.koneksi;
/**
*
* @author moslem
*/
public class DataKomik extends javax.swing.JFrame {
/**
* Creates new form DataKomik
*/
public DataKomik() {
initComponents();
refresh();
txtId.setVisible(false);
}
private void ambilData() {
DefaultTableModel tbl = new DefaultTableModel();
tbl.addColumn("#");
tbl.addColumn("ID");
tbl.addColumn("Judul");
tbl.addColumn("Tipe");
tbl.addColumn("Chapter");
tbl.addColumn("Genre");
tbl.addColumn("Status");
tbl.addColumn("Rating");
table_anime.setModel(tbl);
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
ResultSet res = statement.executeQuery("Select * from data_komik");
int index = 1;
while (res.next())
{
tbl.addRow(new Object []{
index,
res.getString("id"),
res.getString("judul"),
res.getString("tipe"),
res.getString("chapter"),
res.getString("genre"),
res.getString("status"),
res.getString("rating"),
});
table_anime.setModel(tbl);
index++;
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Gagal Mengambil Data: " + e.getMessage());
}
}
private void refresh()
{
txtId.setText("");
txtJudul.setText("");
cmbTipe.setSelectedItem("Manga");
txtChapter.setText("");
txtGenre.setText("");
cmbStatus.setSelectedItem("Selesai");
txtRating.setText("");
txtCari.setText("");
txtJudul.requestFocus();
ambilData();
}
/**
* 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() {
jScrollPane1 = new javax.swing.JScrollPane();
table_anime = new javax.swing.JTable();
jLabel3 = new javax.swing.JLabel();
txtCari = new javax.swing.JTextField();
btnCari = new javax.swing.JButton();
txtJudul = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
cmbStatus = new javax.swing.JComboBox<>();
txtChapter = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
txtRating = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
txtGenre = new javax.swing.JTextField();
btnSimpan = new javax.swing.JButton();
btnDelete = new javax.swing.JButton();
btnNew = new javax.swing.JButton();
btnEdit = new javax.swing.JButton();
btnKeluar = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jLabel9 = new javax.swing.JLabel();
txtId = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
cmbTipe = new javax.swing.JComboBox<>();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new java.awt.Dimension(1545, 860));
table_anime.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{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", "Title 5", "Title 6", "Title 7", "Title 8"
}
));
table_anime.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
table_anime.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
table_animeMouseClicked(evt);
}
});
jScrollPane1.setViewportView(table_anime);
jLabel3.setFont(new java.awt.Font("Manga", 0, 48)); // NOI18N
jLabel3.setText("MY KOMIK LIST");
txtCari.setToolTipText("");
txtCari.setName("Judul"); // NOI18N
txtCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtCariActionPerformed(evt);
}
});
btnCari.setText("SEARCH");
btnCari.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCariActionPerformed(evt);
}
});
txtJudul.setToolTipText("");
txtJudul.setName("Judul"); // NOI18N
txtJudul.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtJudulActionPerformed(evt);
}
});
jLabel2.setText("Judul*");
jLabel2.setToolTipText("");
jLabel4.setText("Tipe*");
jLabel4.setToolTipText("");
jLabel5.setText("Status*");
jLabel5.setToolTipText("");
cmbStatus.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Selesai", "Belum Selesai", "Rencana di Baca", "Tidak di Baca Lagi" }));
cmbStatus.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbStatusActionPerformed(evt);
}
});
txtChapter.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtChapterActionPerformed(evt);
}
});
jLabel6.setText("Chapter*");
jLabel6.setToolTipText("");
jLabel7.setText("Rating*");
jLabel7.setToolTipText("");
txtRating.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtRatingActionPerformed(evt);
}
});
jLabel8.setText("Genre*");
jLabel8.setToolTipText("");
txtGenre.setToolTipText("");
txtGenre.setName("Judul"); // NOI18N
txtGenre.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtGenreActionPerformed(evt);
}
});
btnSimpan.setText("SIMPAN");
btnSimpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSimpanActionPerformed(evt);
}
});
btnDelete.setForeground(new java.awt.Color(255, 0, 0));
btnDelete.setText("HAPUS");
btnDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDeleteActionPerformed(evt);
}
});
btnNew.setText("REFRESH");
btnNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNewActionPerformed(evt);
}
});
btnEdit.setText("UPDATE");
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});
btnKeluar.setForeground(new java.awt.Color(255, 0, 0));
btnKeluar.setText("EXIT");
btnKeluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnKeluarActionPerformed(evt);
}
});
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jTextArea1.setText("Judul * - Berikan judul komik yang ingin di daftar.\n\nStatus * - Status komik yang Anda baca.\nSelesai - Seri yang telah Anda selesaikan (baca semua chapter)\nBelum Selesai - Seri yang sedang Anda baca\nRencana di Baca - Seri yang ingin Anda baca di masa mendatang\nTidak di Baca Lagi - Seri yang Anda putuskan untuk berhenti membaca\n\nChapter * - Chapter apa yang Anda baca komik.\n\nRating * - Anda memberi skor dari komik yang Anda baca 1/10.\n\nTipe * - Jenis komik yang Anda baca.\nManga - Komik dari Jepang\nManwha - Komik dari Korea\nManhua - Komik dari Tiongkok\nDll - Komik selain 3 pilihan yang ada.\n\nGenre * - Genre komik yang ingin Anda daftarkan.\n\nSEARCH - Tombol untuk mencari komik yang anda daftarkan.\nSIMPAN - Tombol untuk menyimpan komik yang ingin Anda daftarkan.\nHAPUS - Tombol untuk menghapus komik yang ingin Anda hapus dari daftar.\nUPDATE - Tombol untuk memperbarui chapter atau apa pun.\nREFRESH - Tombol untuk menyegarkan daftar.\nEXIT - Tombol untuk menutup aplikasi.");
jScrollPane2.setViewportView(jTextArea1);
jLabel9.setText("Penjelasan*");
jLabel13.setIcon(new javax.swing.ImageIcon("C:\\Users\\moslem\\Downloads\\Galeri\\gin sas.png")); // NOI18N
jLabel14.setIcon(new javax.swing.ImageIcon("C:\\Users\\moslem\\Downloads\\Galeri\\Gintama.png")); // NOI18N
jLabel10.setFont(new java.awt.Font("Manga", 0, 48)); // NOI18N
jLabel10.setText("AL MOSLEM BINTANG SASMITO");
cmbTipe.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Manga", "Manwha", "Manhua", "Dll" }));
cmbTipe.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmbTipeActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(29, 29, 29)
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(txtCari, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnCari, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel3))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel12))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel10)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel14))))
.addGroup(layout.createSequentialGroup()
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1300, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel5)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(txtRating, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel6))
.addGroup(layout.createSequentialGroup()
.addComponent(cmbStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(130, 130, 130)
.addComponent(jLabel4)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtChapter, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmbTipe, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(35, 35, 35)
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(196, 196, 196)
.addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txtGenre, javax.swing.GroupLayout.PREFERRED_SIZE, 490, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(53, 53, 53)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btnKeluar, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnNew, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(48, 48, 48)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel9)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 600, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel2)
.addComponent(txtJudul, javax.swing.GroupLayout.PREFERRED_SIZE, 490, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 208, Short.MAX_VALUE)
.addComponent(jLabel11)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtCari, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnCari, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel13))
.addGap(7, 7, 7))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel11))
.addComponent(jLabel12))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE)
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel10)
.addGap(28, 28, 28)))))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(11, 11, 11)
.addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(jLabel9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 73, Short.MAX_VALUE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtJudul, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(cmbStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnNew, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4)
.addComponent(cmbTipe, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(txtChapter, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtRating, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addGap(38, 38, 38))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(btnEdit, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27)))
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnKeluar, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtGenre, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(155, 155, 155))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnSimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(85, 85, 85))))
);
pack();
}// </editor-fold>
private void table_animeMouseClicked(java.awt.event.MouseEvent evt) {
int i = table_anime.getSelectedRow();
if (i == -1){
return;
}
String id = (String) table_anime.getValueAt(i, 1);
txtId.setText(id);
String judul = (String) table_anime.getValueAt(i, 2);
txtJudul.setText(judul);
String tipe = (String) table_anime.getValueAt(i, 3);
cmbTipe.setSelectedItem(tipe);
String chapter = (String) table_anime.getValueAt(i, 4);
txtChapter.setText(chapter);
String genre = (String) table_anime.getValueAt(i, 5);
txtGenre.setText(genre);
String status = (String) table_anime.getValueAt(i, 6);
cmbStatus.setSelectedItem(status);
String rating = (String) table_anime.getValueAt(i, 7);
txtRating.setText(rating);
}
private void txtCariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
ResultSet res = statement.executeQuery("Select * from data_komik where "
+ "judul like'%" + txtCari.getText() + "%'");
DefaultTableModel tbl = new DefaultTableModel();
tbl.addColumn("#");
tbl.addColumn("ID");
tbl.addColumn("Judul");
tbl.addColumn("Tipe");
tbl.addColumn("Chapter");
tbl.addColumn("Genre");
tbl.addColumn("Status");
tbl.addColumn("Rating");
table_anime.setModel(tbl);
int index = 1;
while (res.next()){
tbl.addRow(new Object[]{
index,
res.getString("id"),
res.getString("judul"),
res.getString("tipe"),
res.getString("chapter"),
res.getString("genre"),
res.getString("status"),
res.getString("rating"),
});
table_anime.setModel(tbl);
index++;
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Gagal mencari: " + e.getMessage());
}
}
private void txtJudulActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void cmbStatusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtChapterActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtRatingActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtGenreActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
if(!txtId.getText().equals("")){
JOptionPane.showMessageDialog(null,
"Silahkan refresh terlebih dahulu!");
}
else{
String judul = txtJudul.getText();
String tipe = (String) cmbTipe.getSelectedItem();
String chapter = txtChapter.getText();
String genre = txtGenre.getText();
String status = (String) cmbStatus.getSelectedItem();
String rating = txtRating.getText();
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
statement.executeUpdate("insert into data_komik VALUES (null, '" + judul + "','"
+ tipe +"','"+ chapter+"','"+ genre +"','"+ status +"','"+ rating +"')");
statement.close();
JOptionPane.showMessageDialog(null, "Data Berhasil disimpan");
refresh();
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Data Gagal Disimpan: " + e.getMessage());
}
}
}
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
if(txtId.getText().equals("")){
JOptionPane.showMessageDialog(null,
"Silahkan pilih terlebih dahulu anime yang akan dihapus!");
}
else{
String id = txtId.getText();
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
statement.executeUpdate("delete from data_komik where id = '" + id + "'");
JOptionPane.showMessageDialog(null, "Data Berhasil di Hapus");
refresh();
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Data Gagal di Hapus: " + e.getMessage());
}
}
}
private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {
refresh();
}
private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {
if(txtId.getText().equals("")){
JOptionPane.showMessageDialog(null,
"Silahkan pilih terlebih dahulu anime yang akan diupdate!");
}
else{
String id = txtId.getText();
String judul = txtJudul.getText();
String tipe = (String) cmbTipe.getSelectedItem();
String chapter = txtChapter.getText();
String genre = txtGenre.getText();
String status = (String) cmbStatus.getSelectedItem();
String rating = txtRating.getText();
try{
Statement statement = (Statement) koneksi.getConnection().createStatement();
statement.executeUpdate("update data_komik SET judul='"+judul+"'," + "tipe='"+tipe+"',"
+ "chapter='"+chapter+"'," + "genre='"+genre+"'," + "status='"+status+"',"
+ "rating='"+rating+"' " + "WHERE id = '"+id+"'");
statement.close();
JOptionPane.showMessageDialog(null, "Data Berhasil diubah");
refresh();
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Data Gagal diubah: " + e.getMessage());
}
}
}
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private void cmbTipeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
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(DataKomik.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(DataKomik.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(DataKomik.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(DataKomik.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() {
new DataKomik().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnCari;
private javax.swing.JButton btnDelete;
private javax.swing.JButton btnEdit;
private javax.swing.JButton btnKeluar;
private javax.swing.JButton btnNew;
private javax.swing.JButton btnSimpan;
private javax.swing.JComboBox<String> cmbStatus;
private javax.swing.JComboBox<String> cmbTipe;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTable table_anime;
private javax.swing.JTextField txtCari;
private javax.swing.JTextField txtChapter;
private javax.swing.JTextField txtGenre;
private javax.swing.JTextField txtId;
private javax.swing.JTextField txtJudul;
private javax.swing.JTextField txtRating;
// End of variables declaration
}
2. Form Login
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author moslem
*/
public class login extends javax.swing.JFrame {
/**
* Creates new form login
*/
public login() {
initComponents();
}
/**
* 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() {
jButton2 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
txtuser = new javax.swing.JTextField();
txtpass = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jButton3 = new javax.swing.JButton();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new java.awt.Dimension(1545, 860));
jButton2.setText("LOGIN");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel1.setText("USERNAME");
jLabel2.setText("PASSWORD");
jLabel13.setIcon(new javax.swing.ImageIcon("C:\\Users\\moslem\\Downloads\\Galeri\\gin sas.png")); // NOI18N
jLabel3.setFont(new java.awt.Font("Manga", 0, 48)); // NOI18N
jLabel3.setText("MY KOMIK LIST");
jLabel5.setIcon(new javax.swing.ImageIcon("C:\\Users\\moslem\\Downloads\\Galeri\\ginchan.jpg")); // NOI18N
jLabel4.setText("*USERNAME/PASSWORD = admin/admin");
jButton3.setText("EXIT");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jLabel6.setFont(new java.awt.Font("Manga", 0, 24)); // NOI18N
jLabel6.setText("SILAHKAN LOGIN DAHULU");
jLabel7.setFont(new java.awt.Font("Manga", 0, 24)); // NOI18N
jLabel7.setText("SELAMAT DATANG DI MY KOMIK LIST");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel3))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(129, 129, 129)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(txtuser, javax.swing.GroupLayout.DEFAULT_SIZE, 233, Short.MAX_VALUE)
.addGap(240, 240, 240))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(jLabel4)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(txtpass, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(130, 130, 130))))
.addGroup(layout.createSequentialGroup()
.addGap(138, 138, 138)
.addComponent(jLabel6)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
.addComponent(jLabel5)))
.addContainerGap(921, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(86, 86, 86)
.addComponent(jLabel7)
.addContainerGap(1780, Short.MAX_VALUE)))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jLabel13))
.addGroup(layout.createSequentialGroup()
.addGap(44, 44, 44)
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(22, 22, 22)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel6)
.addGap(18, 18, 18)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtuser, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(txtpass, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(jLabel4)
.addGap(58, 58, 58))
.addComponent(jLabel5))
.addContainerGap(256, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(192, 192, 192)
.addComponent(jLabel7)
.addContainerGap(634, Short.MAX_VALUE)))
);
pack();
}// </editor-fold>
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String username="admin";
String password="admin";
if(username.equalsIgnoreCase(txtuser.getText()) && password.equalsIgnoreCase(txtpass.getText())) {
this.setVisible(false);
new DataKomik().setVisible(true);
}else{
javax.swing.JOptionPane.showMessageDialog(null, "Maaf Username atau Password Anda Salah");
txtuser.setText("");
txtpass.setText("");
txtuser.requestFocus();
}
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
/**
* @param args the command line arguments
*/
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(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(login.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() {
new login().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JTextField txtpass;
private javax.swing.JTextField txtuser;
// End of variables declaration
}
3. Koneksi Database
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package koneksi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
*
* @author moslem
*/
public class koneksi {
static Connection conn;
public static void main(String args[]){
}
public static Connection getConnection(){
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost/db_komik","root","");
}catch (SQLException e){
JOptionPane.showMessageDialog(null, "Koneksi Database Gagal");
}
return conn;
}
}
5. Screenshot Run Program
- Pertama saya akan run form Login, isikan username "admin" dan password "admin" klik LOGIN
- maka akan muncul form utama MY KOMIK LIST
- lalu kalau ingin menyimpan suatu komik isikan semua kolom dengan benar seperti dibawah
- kalau yakin sudah benar, selanjutnya klik simpan dan akan muncul message "Data Berhasil Disimpan"
- lalu scroll kebawah daftar nya untuk melihat kalau data berhasil dimasukan
- selanjutnya bila ada kesalahan atau ingin mengupdate komiknya klik yang ingin dirubah, ganti kolom nya sesuai informasi terbaru, lalu klik tombol "UPDATE"
- selanjutnya bila ada komik yang ingin di hapus klik komiknya, klik tombol "HAPUS"
- untuk memudahkan pencarian komik bila sudah ada puluhan atau bahkan ratusan, saya memasukan tombol "SEARCH" gunanya untuk mencari komik sesuai kata yang di ketik, contohnya "one" maka akan muncul list yang di judul nya ada tulisan one
- dan terakhir kita lihat di database mysql nya, apa sudah masuk komik yang sebelumnya kita simpan
- dan ternyata muncul, artinya program sudah terhubung dengan baik dengan database
SELESAI.
mohon maaf bila ada salah,sekian terimakasih!.















Komentar
Posting Komentar