SlideShare a Scribd company logo
1 of 15
Download to read offline
Project Netbeans dengan OOP




Urutan Pengerjaan :

   1. File New Project – Java Application
   2. Buat Package utils. Package Utils digunakan sebagai tempat class-class java yang
      berfungi sebagai utilitas dalam aplikasi. Untuk Project ini ada buat java.class
      DBConnection.java yang berfungsi untuk membuat koneksi antara applikasi dengan
      database mysql.
   3. Buat Package model. Package model digunakan untuk membuat java class yang
      merepresentasikan/mewakili table didalam database.
   4. Buat Package dao (data access object). Berisi java.interface yang menggambarkan
      fungsi/method apa saja yang dimiliki oleh applikasi
   5. Buat Package query. Package ini class-class yang mempunyai fungsi/method yang
      berakitan dengan pengolahan data (INSERT,UPDATE, DELETE, SELECT, dsb)
   6. Buat Pacakge Form. Package ini digunakan untuk java class yang berkaitan dengan
      desain form applikasi.
   7. Jangan lupa untuk menambahkan library mysql-jdbc driver sebagai connector antara
      applikasi java dengan database mysql.
Class DBConnection.java

      package com.moklet.utils;
      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.SQLException;
      /**
      * @author learning
      */
      public class DBConnection {
            private Connection conn = null;
            private static DBConnection dBConn = null;
            static final String DB_URL = "jdbc:mysql://localhost:3306/db";
            static final String DB_USER = "root";
            static final String DB_PASS = "";

            private DBConnection() {
                if (conn == null) {
                    try {
                        Class.forName("com.mysql.jdbc.Driver").newInstance();
                        conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                }
            }


            public static DBConnection getInstance() {
                DBConnection conn = null;
                if (dBConn == null) {
                    dBConn = new DBConnection();
                    conn = dBConn;
} else {
                  conn = dBConn;
              }
              return conn;
          }
          public Connection getCon() throws SQLException {
              return this.conn;
          }
      }


Class Siswa

      package com.moklet.model;
      public class siswa {
                  private String nis;
                  private String nama;
                  private String alamat;
                  private String IDtelp;
          public String getNis() {
              return nis;
          }
          public void setNis(String nis) {
              this.nis = nis;
          }
          public String getNama() {
              return nama;
          }
          public void setNama(String nama) {
              this.nama = nama;
          }
public String getAlamat() {
              return alamat;
          }
          public void setAlamat(String alamat) {
              this.alamat = alamat;
          }
          public String getIDtelp() {
              return IDtelp;
          }
          public void setIDtelp(String IDtelp) {
              this.IDtelp = IDtelp;
          }
      }




Interface SiswaDAO
      package com.moklet.dao;
      import com.moklet.model.siswa;
      import java.util.List;

                public interface SiswaDAO {
                         public void insert(siswa sw);
                         public void delete(String nis);
                         public void update(String oldNis, siswa sw);
                         public siswa loadNama(String nama);
                         public siswa load(String nis);
                         public List<siswa> getAll();
                         public List<siswa> getAll(String name);
                         public List<siswa>getAllNis(String nis);
                }
Class SiswaQuery
      package com.moklet.query;
      import com.moklet.dao.SiswaDAO;
      import com.moklet.model.siswa;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.logging.Level;
      import java.util.logging.Logger;
      public class SiswaQuery implements SiswaDAO {
        private Connection conn = null;
        public SiswaQuery(Connection conn) {
            this.conn = conn;
        }
        public void insert(Siswa sw) {
            String sql = "INSERT INTO siswa(nis,nama,alamat,IDtelp) VALUES(?,?,?,?)";
            try {
                PreparedStatement st = conn.prepareStatement(sql);
                st.setString(1, sw.getNis());
                st.setString(2, sw.getNama());
                st.setString(3, sw.getAlamat());
                st.setString(4, sw.getIDtelp());
                st.executeUpdate();
            } catch (SQLException ex) {
                Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
public void delete(String nis) {
    String sql = "DELETE FROM siswa WHERE nis=?";
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1, nis);
        st.executeUpdate();
    } catch (SQLException ex) {
        Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public siswa loadNama(String nama) {
    Siswa siswa = null;
    String sql = "SELECT nis,nama,alamat,IDTelp FROM siswa WHERE namasiswa=?";
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        ResultSet rs = st.executeQuery();
               if (rs.next()) {
                   siswa = new siswa();
                   siswa.setNis(rs.getString(1));
                   siswa.setNama(rs.getString(2));
                   siswa.setAlamat(rs.getString(3));
                   siswa.setIDtelp(rs.getString(4));
               }
        } catch (SQLException ex) {
         Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
         return namaSiswa;
}
public List<siswa> getAll() {
    String sql = "SELECT nis,nama,alamat,IDTelp FROM siswa";
    List<siswa> list = new ArrayList<siswa>();
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        ResultSet rs = st.executeQuery();
        while (rs.next()) {
            siswa s = new siswa();
            s.setNis(rs.getString(1));
            s.setNama(rs.getString(2));
            s.setAlamat(rs.getString(3));
            s.setIDtelp(rs.getString(4));
            list.add(s);
        }
    } catch (SQLException ex) {
        Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return list;
}
public List<siswa> getAll(String name) {
    String sql = "SELECT * FROM siswa WHERE nama like?";
    List<siswa> list = new ArrayList<siswa>();
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1, "%" + name + "%");
        ResultSet rs = st.executeQuery();
        while (rs.next()) {
            siswa s = new siswa();
            s.setNis(rs.getString(1));
            s.setNama(rs.getString(2));
s.setAlamat(rs.getString(3));
            s.setIDtelp(rs.getString(4));
            list.add(s);
        }
    } catch (SQLException ex) {
        Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return list;
}
public siswa load(String nis) {
    Siswa siswa = null;
    String sql = "SELECT nis,nama,alamat,IDtelp FROM siswa WHERE nis=?";
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1, nis);
        ResultSet rs = st.executeQuery();
        if (rs.next()) {
            siswa = new siswa();
            siswa.setNis(rs.getString(1));
            siswa.setNama(rs.getString(2));
            siswa.setAlamat(rs.getString(3));
            siswa.setIDtelp(rs.getString(4));
        }
    } catch (SQLException ex) {
        Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return namaSiswa;
}
public void update(String oldNis, siswa sw) {
    String sql = "UPDATE siswa SET nama=?,alamat=?,IDtelp=? WHERE nis=?";
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1, sw.getNama());
        st.setString(2, sw.getAlamat());
        st.setString(3, sw.getIDtelp());
        st.setString(4, oldNis);
        st.executeUpdate();
        st.executeUpdate();
    } catch (SQLException ex) {
        Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
}
public List<siswa> getAllNis(String nis) {
    String sql = "SELECT * FROM siswa WHERE nis LIKE ?";
    List<siswa> list = new ArrayList<siswa>();
    try {
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1, "%" + nis + "%");
        ResultSet rs = st.executeQuery();
        while (rs.next()) {
            siswa s = new siswa();
            s.setNis(rs.getString(1));
            s.setNama(rs.getString(2));
            s.setAlamat(rs.getString(3));
            s.setIDtelp(rs.getString(4));
            list.add(s);
        }
    } catch (SQLException ex) {
Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex);
              }
              return list;
          }
      }


Class FormSiswa




      package com.moklet.form;
      import com.moklet.model.siswa;
      import com.moklet.query.SiswaQuery;
      import com.moklet.utils.DBConnection;
      import java.sql.SQLException;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class FrmSiswa extends javax.swing.JFrame {
  private List<siswa> records = new ArrayList<siswa>();
  private int row = 0;
  private boolean status;
  public FrmSiswa() {
      initComponents();
      loadRecords();
      updateRow();
  }
  public void loadRecords() {
      try {
          DBConnection conn = DBConnection.getInstance();
          SiswaQuery daoSiswa = new SiswaQuery(conn.getCon());
          records = daoSiswa.getAll();
      } catch (SQLException ex) {
          Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex);
      }
  }
  public void updateRow() {
      if (this.records.size() > 0) {
          if (row < 0) {
              row = 0;
          }
          siswa sw = records.get(row);
          txtNis.setText(sw.getNis());
          txtNama.setText(sw.getNama());
          txtAlamat.setText(sw.getAlamat());
txtNoTelp.setText(sw.getIDtelp());
    } else {
        bersihkanForm();
        editForm(false);
    }
}

private void txtNisActionPerformed(java.awt.event.ActionEvent evt) {
    loadRecords2();
    updateRow2();
}
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
    status = true;
    editForm(true);
    bersihkanForm();
    txtNis.requestFocus();
}
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
    if (status == true) {
        try {
          siswa sw = new siswa();
          sw.setNis(txtNis.getText());
          sw.setNama(txtNama.getText());
          sw.setAlamat(txtAlamat.getText());
          sw.setIDtelp(txtNoTelp.getText());
          DBConnection conn = DBConnection.getInstance();
          SiswaQuery dao = new SiswaQuery(conn.getCon());
          dao.insert(sw);
          JOptionPane.showMessageDialog(this, "Data Saved");
          loadRecords();
updateRow();
        } catch (SQLException ex) {
            Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        try {
            siswa sw = new siswa();
            sw.setNis(txtNis.getText());
            sw.setNama(txtNama.getText());
            sw.setAlamat(txtAlamat.getText());
            sw.setIDtelp(txtNoTelp.getText());
            DBConnection conn = DBConnection.getInstance();
            SiswaQuery dao = new SiswaQuery(conn.getCon());
            dao.update(sw.getNis(), sw);
            JOptionPane.showMessageDialog(this, "Data Update");
            loadRecords();
            updateRow();
        } catch (SQLException ex) {
            Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {
    status = false;
}
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
    try {
        siswa sw = new siswa();
        sw.setNis(txtNis.getText());
        DBConnection conn = DBConnection.getInstance();
SiswaQuery dao = new SiswaQuery(conn.getCon());
        dao.delete(txtNis.getText());
        JOptionPane.showMessageDialog(this, "Data Delete");
        loadRecords();
        updateRow();
    } catch (SQLException ex) {
        Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex);
    }
}


private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {
    this.dispose();
}
public void loadRecords2() {
    try {
        DBConnection conn =
              DBConnection.getInstance();
        SiswaQuery daoSiswa = new SiswaQuery(conn.getCon());
        records = daoSiswa.getAllNis(txtNis.getText());
    } catch (SQLException ex) {
        Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null,
              ex);
    }
}
public void updateRow2() {
    if (this.records.size() > 0) {
        if (row < 0) {
            row = 0;
        }
        siswa sw = records.get(row);
txtNis.setText(sw.getNis());
          txtNama.setText(sw.getNama());
          txtAlamat.setText(sw.getAlamat());
          txtNoTelp.setText(sw.getIDtelp());
    } else {
          JOptionPane.showMessageDialog(this, "Not Found");
          loadRecords();
          updateRow();
    }
}
void bersihkanForm() {
    txtNis.setText("");
    txtNama.setText("");
    txtAlamat.setText("");
    txtNoTelp.setText("");
}
void editForm(boolean x) {
    txtNis.setEditable(x);
    txtNama.setEditable(x);
    txtAlamat.setEditable(x);
    txtNoTelp.setEditable(x);
}
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
              new FrmSiswa().setVisible(true);
          }
    });
}

More Related Content

What's hot

JAVA DUMP SET.pdf
JAVA DUMP SET.pdfJAVA DUMP SET.pdf
JAVA DUMP SET.pdfanandn24
 
Data Persistence in Android with Room Library
Data Persistence in Android with Room LibraryData Persistence in Android with Room Library
Data Persistence in Android with Room LibraryReinvently
 
Collection v3
Collection v3Collection v3
Collection v3Sunil OS
 
Collections Framework
Collections FrameworkCollections Framework
Collections FrameworkSunil OS
 
Introduction To Angular's reactive forms
Introduction To Angular's reactive formsIntroduction To Angular's reactive forms
Introduction To Angular's reactive formsNir Kaufman
 
Dependency injection - the right way
Dependency injection - the right wayDependency injection - the right way
Dependency injection - the right wayThibaud Desodt
 
Exception Handling
Exception HandlingException Handling
Exception HandlingSunil OS
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/ServletSunil OS
 
Hibernate
Hibernate Hibernate
Hibernate Sunil OS
 
Serialization & De-serialization in Java
Serialization & De-serialization in JavaSerialization & De-serialization in Java
Serialization & De-serialization in JavaInnovationM
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIhabib_786
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14Cihan Özhan
 
Android Training (Storing & Shared Preferences)
Android Training (Storing & Shared Preferences)Android Training (Storing & Shared Preferences)
Android Training (Storing & Shared Preferences)Khaled Anaqwa
 
Deep dive into Android Data Binding
Deep dive into Android Data BindingDeep dive into Android Data Binding
Deep dive into Android Data BindingRadek Piekarz
 
Sharing Data Between Angular Components
Sharing Data Between Angular ComponentsSharing Data Between Angular Components
Sharing Data Between Angular ComponentsSquash Apps Pvt Ltd
 

What's hot (20)

JAVA DUMP SET.pdf
JAVA DUMP SET.pdfJAVA DUMP SET.pdf
JAVA DUMP SET.pdf
 
Data Persistence in Android with Room Library
Data Persistence in Android with Room LibraryData Persistence in Android with Room Library
Data Persistence in Android with Room Library
 
Collection v3
Collection v3Collection v3
Collection v3
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Introduction To Angular's reactive forms
Introduction To Angular's reactive formsIntroduction To Angular's reactive forms
Introduction To Angular's reactive forms
 
Dependency injection - the right way
Dependency injection - the right wayDependency injection - the right way
Dependency injection - the right way
 
Exception Handling
Exception HandlingException Handling
Exception Handling
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Express JS
Express JSExpress JS
Express JS
 
Hibernate
Hibernate Hibernate
Hibernate
 
CSS
CSS CSS
CSS
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Serialization & De-serialization in Java
Serialization & De-serialization in JavaSerialization & De-serialization in Java
Serialization & De-serialization in Java
 
Log4 J
Log4 JLog4 J
Log4 J
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
 
Android Training (Storing & Shared Preferences)
Android Training (Storing & Shared Preferences)Android Training (Storing & Shared Preferences)
Android Training (Storing & Shared Preferences)
 
Deep dive into Android Data Binding
Deep dive into Android Data BindingDeep dive into Android Data Binding
Deep dive into Android Data Binding
 
Sharing Data Between Angular Components
Sharing Data Between Angular ComponentsSharing Data Between Angular Components
Sharing Data Between Angular Components
 
Angular Directives
Angular DirectivesAngular Directives
Angular Directives
 

Viewers also liked

modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)Reza Pramana
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamentalFanani M. Ihsan
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Melina Krisnawati
 
Belajar pemrograman java dasar
Belajar pemrograman java dasarBelajar pemrograman java dasar
Belajar pemrograman java dasarVina Rahmi
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingMelina Krisnawati
 
Belajar oop-php-mysql
Belajar oop-php-mysqlBelajar oop-php-mysql
Belajar oop-php-mysqlzainal abidin
 
Kolaborasi jQuery, AJAX, PHP, dan MySQL
Kolaborasi jQuery, AJAX, PHP, dan MySQLKolaborasi jQuery, AJAX, PHP, dan MySQL
Kolaborasi jQuery, AJAX, PHP, dan MySQLI Putu Arya Dharmaadi
 
Aplikasi penjualan barang bekas
Aplikasi penjualan barang bekas Aplikasi penjualan barang bekas
Aplikasi penjualan barang bekas jodhysimanjuntak
 
PHP CRUD Database Mysql
PHP CRUD Database MysqlPHP CRUD Database Mysql
PHP CRUD Database MysqlYusuf A.H.
 
Kelas, Kontrol Kelas, dan Konstruktor
Kelas, Kontrol Kelas, dan KonstruktorKelas, Kontrol Kelas, dan Konstruktor
Kelas, Kontrol Kelas, dan KonstruktorI Putu Arya Dharmaadi
 
Seri Belajar Mandiri – Pemrograman Java Untuk Pemula
Seri Belajar Mandiri – Pemrograman Java Untuk PemulaSeri Belajar Mandiri – Pemrograman Java Untuk Pemula
Seri Belajar Mandiri – Pemrograman Java Untuk PemulaAgus Kurniawan
 

Viewers also liked (13)

modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
Belajar pemrograman java dasar
Belajar pemrograman java dasarBelajar pemrograman java dasar
Belajar pemrograman java dasar
 
Buku jvv jilid 1 ok
Buku jvv jilid 1 okBuku jvv jilid 1 ok
Buku jvv jilid 1 ok
 
Buku jvv jilid 2 ok
Buku jvv jilid 2 okBuku jvv jilid 2 ok
Buku jvv jilid 2 ok
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
 
Belajar oop-php-mysql
Belajar oop-php-mysqlBelajar oop-php-mysql
Belajar oop-php-mysql
 
Kolaborasi jQuery, AJAX, PHP, dan MySQL
Kolaborasi jQuery, AJAX, PHP, dan MySQLKolaborasi jQuery, AJAX, PHP, dan MySQL
Kolaborasi jQuery, AJAX, PHP, dan MySQL
 
Aplikasi penjualan barang bekas
Aplikasi penjualan barang bekas Aplikasi penjualan barang bekas
Aplikasi penjualan barang bekas
 
PHP CRUD Database Mysql
PHP CRUD Database MysqlPHP CRUD Database Mysql
PHP CRUD Database Mysql
 
Kelas, Kontrol Kelas, dan Konstruktor
Kelas, Kontrol Kelas, dan KonstruktorKelas, Kontrol Kelas, dan Konstruktor
Kelas, Kontrol Kelas, dan Konstruktor
 
Seri Belajar Mandiri – Pemrograman Java Untuk Pemula
Seri Belajar Mandiri – Pemrograman Java Untuk PemulaSeri Belajar Mandiri – Pemrograman Java Untuk Pemula
Seri Belajar Mandiri – Pemrograman Java Untuk Pemula
 

Similar to Modul Praktek Java OOP

#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Spring and dependency injection
Spring and dependency injectionSpring and dependency injection
Spring and dependency injectionSteve Ng
 
Fee managment system
Fee managment systemFee managment system
Fee managment systemfairy9912
 
[PL] O klasycznej, programistycznej elegancji
[PL] O klasycznej, programistycznej elegancji[PL] O klasycznej, programistycznej elegancji
[PL] O klasycznej, programistycznej elegancjiJakub Marchwicki
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages VictorSzoltysek
 
JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)Craig Dickson
 
Ast transformations
Ast transformationsAst transformations
Ast transformationsHamletDRC
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEDarwin Durand
 
package singlylinkedlist; public class Node { public String valu.pdf
package singlylinkedlist; public class Node { public String valu.pdfpackage singlylinkedlist; public class Node { public String valu.pdf
package singlylinkedlist; public class Node { public String valu.pdfamazing2001
 
Scala in practice
Scala in practiceScala in practice
Scala in practicepatforna
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript IntroductionDmitry Sheiko
 
Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?Jesper Kamstrup Linnet
 
JDBC JAVA DATABASE CONNECTIVITY AND JAVA
JDBC JAVA DATABASE CONNECTIVITY AND JAVAJDBC JAVA DATABASE CONNECTIVITY AND JAVA
JDBC JAVA DATABASE CONNECTIVITY AND JAVAAdarshSrungarapu
 
Refactoring Jdbc Programming
Refactoring Jdbc ProgrammingRefactoring Jdbc Programming
Refactoring Jdbc Programmingchanwook Park
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodecamp Romania
 
Introduction à Dart
Introduction à DartIntroduction à Dart
Introduction à DartSOAT
 

Similar to Modul Praktek Java OOP (20)

#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
Spring and dependency injection
Spring and dependency injectionSpring and dependency injection
Spring and dependency injection
 
Fee managment system
Fee managment systemFee managment system
Fee managment system
 
[PL] O klasycznej, programistycznej elegancji
[PL] O klasycznej, programistycznej elegancji[PL] O klasycznej, programistycznej elegancji
[PL] O klasycznej, programistycznej elegancji
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages
 
JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)JDBC Basics (In 20 Minutes Flat)
JDBC Basics (In 20 Minutes Flat)
 
Ast transformations
Ast transformationsAst transformations
Ast transformations
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
 
VISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLEVISUALIZAR REGISTROS EN UN JTABLE
VISUALIZAR REGISTROS EN UN JTABLE
 
Scala - en bedre Java?
Scala - en bedre Java?Scala - en bedre Java?
Scala - en bedre Java?
 
package singlylinkedlist; public class Node { public String valu.pdf
package singlylinkedlist; public class Node { public String valu.pdfpackage singlylinkedlist; public class Node { public String valu.pdf
package singlylinkedlist; public class Node { public String valu.pdf
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?
 
JDBC JAVA DATABASE CONNECTIVITY AND JAVA
JDBC JAVA DATABASE CONNECTIVITY AND JAVAJDBC JAVA DATABASE CONNECTIVITY AND JAVA
JDBC JAVA DATABASE CONNECTIVITY AND JAVA
 
Refactoring Jdbc Programming
Refactoring Jdbc ProgrammingRefactoring Jdbc Programming
Refactoring Jdbc Programming
 
CodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical GroovyCodeCamp Iasi 10 march 2012 - Practical Groovy
CodeCamp Iasi 10 march 2012 - Practical Groovy
 
Week 12 code
Week 12 codeWeek 12 code
Week 12 code
 
Introduction à Dart
Introduction à DartIntroduction à Dart
Introduction à Dart
 
XTW_Import
XTW_ImportXTW_Import
XTW_Import
 

More from Zaenal Arifin

Lampiran Proposal Cakrawala
Lampiran Proposal CakrawalaLampiran Proposal Cakrawala
Lampiran Proposal CakrawalaZaenal Arifin
 
Cakrawala Awards 2.0
Cakrawala Awards 2.0Cakrawala Awards 2.0
Cakrawala Awards 2.0Zaenal Arifin
 
7 jurus trainer perpuseru
7 jurus trainer perpuseru7 jurus trainer perpuseru
7 jurus trainer perpuseruZaenal Arifin
 
Prototype IntelAgent On Mobile Device
Prototype IntelAgent On Mobile DevicePrototype IntelAgent On Mobile Device
Prototype IntelAgent On Mobile DeviceZaenal Arifin
 
Workshop Guru Nasional 2011
Workshop Guru Nasional 2011Workshop Guru Nasional 2011
Workshop Guru Nasional 2011Zaenal Arifin
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1Zaenal Arifin
 
Smart – way to success
Smart – way to successSmart – way to success
Smart – way to successZaenal Arifin
 

More from Zaenal Arifin (7)

Lampiran Proposal Cakrawala
Lampiran Proposal CakrawalaLampiran Proposal Cakrawala
Lampiran Proposal Cakrawala
 
Cakrawala Awards 2.0
Cakrawala Awards 2.0Cakrawala Awards 2.0
Cakrawala Awards 2.0
 
7 jurus trainer perpuseru
7 jurus trainer perpuseru7 jurus trainer perpuseru
7 jurus trainer perpuseru
 
Prototype IntelAgent On Mobile Device
Prototype IntelAgent On Mobile DevicePrototype IntelAgent On Mobile Device
Prototype IntelAgent On Mobile Device
 
Workshop Guru Nasional 2011
Workshop Guru Nasional 2011Workshop Guru Nasional 2011
Workshop Guru Nasional 2011
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1
 
Smart – way to success
Smart – way to successSmart – way to success
Smart – way to success
 

Recently uploaded

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 

Recently uploaded (20)

Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 

Modul Praktek Java OOP

  • 1. Project Netbeans dengan OOP Urutan Pengerjaan : 1. File New Project – Java Application 2. Buat Package utils. Package Utils digunakan sebagai tempat class-class java yang berfungi sebagai utilitas dalam aplikasi. Untuk Project ini ada buat java.class DBConnection.java yang berfungsi untuk membuat koneksi antara applikasi dengan database mysql. 3. Buat Package model. Package model digunakan untuk membuat java class yang merepresentasikan/mewakili table didalam database. 4. Buat Package dao (data access object). Berisi java.interface yang menggambarkan fungsi/method apa saja yang dimiliki oleh applikasi 5. Buat Package query. Package ini class-class yang mempunyai fungsi/method yang berakitan dengan pengolahan data (INSERT,UPDATE, DELETE, SELECT, dsb) 6. Buat Pacakge Form. Package ini digunakan untuk java class yang berkaitan dengan desain form applikasi. 7. Jangan lupa untuk menambahkan library mysql-jdbc driver sebagai connector antara applikasi java dengan database mysql.
  • 2. Class DBConnection.java package com.moklet.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * @author learning */ public class DBConnection { private Connection conn = null; private static DBConnection dBConn = null; static final String DB_URL = "jdbc:mysql://localhost:3306/db"; static final String DB_USER = "root"; static final String DB_PASS = ""; private DBConnection() { if (conn == null) { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS); } catch (Exception ex) { ex.printStackTrace(); } } } public static DBConnection getInstance() { DBConnection conn = null; if (dBConn == null) { dBConn = new DBConnection(); conn = dBConn;
  • 3. } else { conn = dBConn; } return conn; } public Connection getCon() throws SQLException { return this.conn; } } Class Siswa package com.moklet.model; public class siswa { private String nis; private String nama; private String alamat; private String IDtelp; public String getNis() { return nis; } public void setNis(String nis) { this.nis = nis; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; }
  • 4. public String getAlamat() { return alamat; } public void setAlamat(String alamat) { this.alamat = alamat; } public String getIDtelp() { return IDtelp; } public void setIDtelp(String IDtelp) { this.IDtelp = IDtelp; } } Interface SiswaDAO package com.moklet.dao; import com.moklet.model.siswa; import java.util.List; public interface SiswaDAO { public void insert(siswa sw); public void delete(String nis); public void update(String oldNis, siswa sw); public siswa loadNama(String nama); public siswa load(String nis); public List<siswa> getAll(); public List<siswa> getAll(String name); public List<siswa>getAllNis(String nis); }
  • 5. Class SiswaQuery package com.moklet.query; import com.moklet.dao.SiswaDAO; import com.moklet.model.siswa; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; public class SiswaQuery implements SiswaDAO { private Connection conn = null; public SiswaQuery(Connection conn) { this.conn = conn; } public void insert(Siswa sw) { String sql = "INSERT INTO siswa(nis,nama,alamat,IDtelp) VALUES(?,?,?,?)"; try { PreparedStatement st = conn.prepareStatement(sql); st.setString(1, sw.getNis()); st.setString(2, sw.getNama()); st.setString(3, sw.getAlamat()); st.setString(4, sw.getIDtelp()); st.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } }
  • 6. public void delete(String nis) { String sql = "DELETE FROM siswa WHERE nis=?"; try { PreparedStatement st = conn.prepareStatement(sql); st.setString(1, nis); st.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } } public siswa loadNama(String nama) { Siswa siswa = null; String sql = "SELECT nis,nama,alamat,IDTelp FROM siswa WHERE namasiswa=?"; try { PreparedStatement st = conn.prepareStatement(sql); ResultSet rs = st.executeQuery(); if (rs.next()) { siswa = new siswa(); siswa.setNis(rs.getString(1)); siswa.setNama(rs.getString(2)); siswa.setAlamat(rs.getString(3)); siswa.setIDtelp(rs.getString(4)); } } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } return namaSiswa; }
  • 7. public List<siswa> getAll() { String sql = "SELECT nis,nama,alamat,IDTelp FROM siswa"; List<siswa> list = new ArrayList<siswa>(); try { PreparedStatement st = conn.prepareStatement(sql); ResultSet rs = st.executeQuery(); while (rs.next()) { siswa s = new siswa(); s.setNis(rs.getString(1)); s.setNama(rs.getString(2)); s.setAlamat(rs.getString(3)); s.setIDtelp(rs.getString(4)); list.add(s); } } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } return list; } public List<siswa> getAll(String name) { String sql = "SELECT * FROM siswa WHERE nama like?"; List<siswa> list = new ArrayList<siswa>(); try { PreparedStatement st = conn.prepareStatement(sql); st.setString(1, "%" + name + "%"); ResultSet rs = st.executeQuery(); while (rs.next()) { siswa s = new siswa(); s.setNis(rs.getString(1)); s.setNama(rs.getString(2));
  • 8. s.setAlamat(rs.getString(3)); s.setIDtelp(rs.getString(4)); list.add(s); } } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } return list; } public siswa load(String nis) { Siswa siswa = null; String sql = "SELECT nis,nama,alamat,IDtelp FROM siswa WHERE nis=?"; try { PreparedStatement st = conn.prepareStatement(sql); st.setString(1, nis); ResultSet rs = st.executeQuery(); if (rs.next()) { siswa = new siswa(); siswa.setNis(rs.getString(1)); siswa.setNama(rs.getString(2)); siswa.setAlamat(rs.getString(3)); siswa.setIDtelp(rs.getString(4)); } } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } return namaSiswa; }
  • 9. public void update(String oldNis, siswa sw) { String sql = "UPDATE siswa SET nama=?,alamat=?,IDtelp=? WHERE nis=?"; try { PreparedStatement st = conn.prepareStatement(sql); st.setString(1, sw.getNama()); st.setString(2, sw.getAlamat()); st.setString(3, sw.getIDtelp()); st.setString(4, oldNis); st.executeUpdate(); st.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } } public List<siswa> getAllNis(String nis) { String sql = "SELECT * FROM siswa WHERE nis LIKE ?"; List<siswa> list = new ArrayList<siswa>(); try { PreparedStatement st = conn.prepareStatement(sql); st.setString(1, "%" + nis + "%"); ResultSet rs = st.executeQuery(); while (rs.next()) { siswa s = new siswa(); s.setNis(rs.getString(1)); s.setNama(rs.getString(2)); s.setAlamat(rs.getString(3)); s.setIDtelp(rs.getString(4)); list.add(s); } } catch (SQLException ex) {
  • 10. Logger.getLogger(SiswaDAO.class.getName()).log(Level.SEVERE, null, ex); } return list; } } Class FormSiswa package com.moklet.form; import com.moklet.model.siswa; import com.moklet.query.SiswaQuery; import com.moklet.utils.DBConnection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level;
  • 11. import java.util.logging.Logger; import javax.swing.JOptionPane; public class FrmSiswa extends javax.swing.JFrame { private List<siswa> records = new ArrayList<siswa>(); private int row = 0; private boolean status; public FrmSiswa() { initComponents(); loadRecords(); updateRow(); } public void loadRecords() { try { DBConnection conn = DBConnection.getInstance(); SiswaQuery daoSiswa = new SiswaQuery(conn.getCon()); records = daoSiswa.getAll(); } catch (SQLException ex) { Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex); } } public void updateRow() { if (this.records.size() > 0) { if (row < 0) { row = 0; } siswa sw = records.get(row); txtNis.setText(sw.getNis()); txtNama.setText(sw.getNama()); txtAlamat.setText(sw.getAlamat());
  • 12. txtNoTelp.setText(sw.getIDtelp()); } else { bersihkanForm(); editForm(false); } } private void txtNisActionPerformed(java.awt.event.ActionEvent evt) { loadRecords2(); updateRow2(); } private void btnAddActionPerformed(java.awt.event.ActionEvent evt) { status = true; editForm(true); bersihkanForm(); txtNis.requestFocus(); } private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) { if (status == true) { try { siswa sw = new siswa(); sw.setNis(txtNis.getText()); sw.setNama(txtNama.getText()); sw.setAlamat(txtAlamat.getText()); sw.setIDtelp(txtNoTelp.getText()); DBConnection conn = DBConnection.getInstance(); SiswaQuery dao = new SiswaQuery(conn.getCon()); dao.insert(sw); JOptionPane.showMessageDialog(this, "Data Saved"); loadRecords();
  • 13. updateRow(); } catch (SQLException ex) { Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex); } } else { try { siswa sw = new siswa(); sw.setNis(txtNis.getText()); sw.setNama(txtNama.getText()); sw.setAlamat(txtAlamat.getText()); sw.setIDtelp(txtNoTelp.getText()); DBConnection conn = DBConnection.getInstance(); SiswaQuery dao = new SiswaQuery(conn.getCon()); dao.update(sw.getNis(), sw); JOptionPane.showMessageDialog(this, "Data Update"); loadRecords(); updateRow(); } catch (SQLException ex) { Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex); } } } private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) { status = false; } private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) { try { siswa sw = new siswa(); sw.setNis(txtNis.getText()); DBConnection conn = DBConnection.getInstance();
  • 14. SiswaQuery dao = new SiswaQuery(conn.getCon()); dao.delete(txtNis.getText()); JOptionPane.showMessageDialog(this, "Data Delete"); loadRecords(); updateRow(); } catch (SQLException ex) { Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); } public void loadRecords2() { try { DBConnection conn = DBConnection.getInstance(); SiswaQuery daoSiswa = new SiswaQuery(conn.getCon()); records = daoSiswa.getAllNis(txtNis.getText()); } catch (SQLException ex) { Logger.getLogger(FrmSiswa.class.getName()).log(Level.SEVERE, null, ex); } } public void updateRow2() { if (this.records.size() > 0) { if (row < 0) { row = 0; } siswa sw = records.get(row);
  • 15. txtNis.setText(sw.getNis()); txtNama.setText(sw.getNama()); txtAlamat.setText(sw.getAlamat()); txtNoTelp.setText(sw.getIDtelp()); } else { JOptionPane.showMessageDialog(this, "Not Found"); loadRecords(); updateRow(); } } void bersihkanForm() { txtNis.setText(""); txtNama.setText(""); txtAlamat.setText(""); txtNoTelp.setText(""); } void editForm(boolean x) { txtNis.setEditable(x); txtNama.setEditable(x); txtAlamat.setEditable(x); txtNoTelp.setEditable(x); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FrmSiswa().setVisible(true); } }); }