aplikasi CRUD simple menggunakan JAVA

heeh sebenernya sih ini untuk antum yang masih belajar dasar – dasar database…. tapi buat antum yang mau mengulang – ngulang lagi pelajaran javanya biar tambah inget…ga ada salahnya juga ngeliat project sederhana ini. aplikasi ini merupakan aplikasi simple CRUD menggunakan java swing…. nah langsung ke TKP aja kali ya…..

1. antum harus bikin database + tabelnya Kalo ane nama databasenya univganteng… nama tabelnya mahasiswa…

oh iya.. selain buat database dan tabel… antum juga harus ingat user dan password pada mySQL ya… karena nanti user dan password mySQL akan kita gunakan pada saat mengakses ke database di sisi pemrograman.

2. Buat Project Netbeans dan class – class nya seperti dibawah ini … kalo cara buat project dan class ga ane jelasin.. pasti antum udah ngerti … jangan lupa tambahin library mysql connector nya juga ya….

3. dari project diatas… mana dulu yang harus di ketik source codenya…???

walaupun ini hanya aplikasi simpel tapi biasakan pada saat membuat aplikasi tersebut kita mengelompokkan kode program berdasarkan fungsinya masing – masing… tujuannya adalah apabila terjadi kesalahan (exception) dalam program dapat di analisis dengan mudah…… jadi yang mana dulu…. ?

yang pertama kelas Koneksi.java

class ini berfungsi untuk memanggil driver dan mengkoneksikan program yang kita buat dengan database…..  berikut ini Source Code nya…

import java.sql.*;

public class Koneksi {

    public Koneksi(){
        try{
            String driver = "com.mysql.jdbc.Driver";
            Class.forName(driver);
            System.out.println("Sukses Memanggil Driver");
        }catch(Exception e){
            System.out.println("Gagal Memanggil Driver : "+e.getMessage());
        }
    }
    public Connection konekToDB(){
        Connection koneksi = null;
        try{
            String url = "jdbc:mysql://localhost:3306/UnivGanteng";
            String user = "root";
            String pass = "";

            koneksi = DriverManager.getConnection(url, user, pass);
            System.out.println("Koneksi Database Sukses");
        }catch(Exception e){
            System.out.println("Koneksi Gagal : "+e.getMessage());
        }

        return koneksi;
    }

}

Setelah class Koneksi.java dibuat yang harus ditulis selanjutnya adalah class Manipulasi.java…. berikut ini adalah source codenya…:

import java.sql.*;
import javax.swing.table.DefaultTableModel;

public class Manipulasi {
    public void insert(String npm, String nama, String alamat){
        try{
            Connection koneksi = new Koneksi().konekToDB();
            String sql = "<a class="zem_slink" title="Insert (SQL)" href="http://en.wikipedia.org/wiki/Insert_%28SQL%29" rel="wikipedia">INSERT</a> INTO mahasiswa VALUES ('"+npm+"', '"+nama+"', '"+
                alamat+"')";
            PreparedStatement ps = koneksi.prepareStatement(sql);
            ps.executeUpdate();
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

    public void update(String npm, String nama, String alamat){
        try{
            Connection koneksi = new Koneksi().konekToDB();
            String sql = "UPDATE mahasiswa SET nama ='"+nama+"', alamat = '"+
                        alamat+"' where npm ='"+npm+ "'";
            PreparedStatement ps = koneksi.prepareStatement(sql);
            ps.executeUpdate();
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

    public void delete(String npm){
        try{
            Connection koneksi = new Koneksi().konekToDB();
            String sql =  "DELETE FROM mahasiswa WHERE npm ='"+npm+"'";
            PreparedStatement ps = koneksi.prepareStatement(sql);
            ps.executeUpdate();
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

    public void select(String sql, DefaultTableModel model){
    int a = 1;

    try{
        Connection koneksi = new Koneksi().konekToDB();
        Statement statement = koneksi.createStatement();
        ResultSet result = statement.executeQuery(sql);
        while(result.next()){
            String npm = result.getString(1);
            String nama = result.getString(2);
            String alamat = result.getString(3);

            String[]data = {
               npm, nama, alamat
            };
            model.addRow(data);
            a++;
        }
        statement.close();
    }catch(Exception e){
        System.out.println(e.getMessage());
    }
}

}

perlu di ketahui class Manipulasi.java ini berfungsi sebagai Controller… yaitu class yang menangani mekanisme manipulasi pada database…. manipulasi tersebut seperti Insert, Update, Delete, Select… dsb……

class selanjutnya yang harus dibuat adalah form tampilannya FormBiodata,java.. karena kita pake netbeans jadi tinggal drag n drop aja… bikin tampilannya seperti ini nih.. :

nah… tinggal mengisi event – event pada setiap tombolnya kan….  nih ane rincikan…

1. event untuk tombol Insert :

private void InsertBtnActionPerformed(java.awt.event.ActionEvent evt) {
        String npm = npmTxt.getText();
        String nama = namaTxt.getText();
        String alamat = alamatTxt.getText();

        try{
            new Manipulasi().insert(npm, nama, alamat);
            JOptionPane.showMessageDialog(this, "Berhasil Dimasukkan");
            initTabel();
            refresh();
        }catch(Exception e){
            JOptionPane.showMessageDialog(this, "gagal karena "+e.getMessage());
        }
    }

2. Event untuk tombol Update :

private void UpdateBtnActionPerformed(java.awt.event.ActionEvent evt) {
       String npm = npmTxt.getText();
        String nama = namaTxt.getText();
        String alamat = alamatTxt.getText();

        try{
            new Manipulasi().update(npm, nama, alamat);
            JOptionPane.showMessageDialog(this, "Berhasil Dirubah");
            initTabel();
            refresh();
        }catch(Exception e){
            JOptionPane.showMessageDialog(this, "gagal karena "+e.getMessage());
        }
    }

3. event untuk tombol delete :

private void DeleteBtnActionPerformed(java.awt.event.ActionEvent evt) {
       String npm = npmTxt.getText();

        if(npm.equals("")){
            JOptionPane.showMessageDialog(this, "Npm Tidak Boleh Kosong");
        }else{
         try{
            new Manipulasi().delete(npm);
            JOptionPane.showMessageDialog(this, "Berhasil Dihapus");
            initTabel();
            refresh();
        }catch(Exception e){
            JOptionPane.showMessageDialog(this, "gagal karena "+e.getMessage());
        }}
    }

4. event untuk tombol refresh :

private void RefreshBtnActionPerformed(java.awt.event.ActionEvent evt) {
            refresh();
    }

5. Event untuk MouseClicked pada tabel :

private void mhsTabelMouseClicked(java.awt.event.MouseEvent evt) {
        InsertBtn.setEnabled(false);

        int pilih = mhsTabel.getSelectedRow();
        String npm = mhsTabel.getValueAt(pilih, 0).toString();
        String nama = mhsTabel.getValueAt(pilih, 1).toString();
        String alamat = mhsTabel.getValueAt(pilih, 2).toString();

        npmTxt.setText(npm);
        namaTxt.setText(nama);
        alamatTxt.setText(alamat);
    }

6. buat juga beberapa method seperti dibawah ini :

public void initTabel(){
        Object[]row = {"NPM", "NAMA", "ALAMAT"};
        DefaultTableModel model = new DefaultTableModel(null, row);
        mhsTabel.setModel(model);

         String tampil = "SELECT * FROM mahasiswa ORDER BY npm ASC";

         new Manipulasi().select(tampil, model);
    }

    public void refresh(){
        npmTxt.setText("");
        namaTxt.setText("");
        alamatTxt.setText("");
        InsertBtn.setEnabled(true);
    }

khusus untuk method initTable(); panggil method tersebut pada bagian konstruktor .. tepatnya di bawah initComponents();

adapun class tampilan.java hanya class tambahan dan tidak wajib… tapi kalo antum mau buat juga ga apa – apa … nih kode programmnya :

import javax.swing.JOptionPane;
import javax.swing.UIManager;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Muhammad Ghufron
 */
public class tampilan {
    public tampilan(){
        try{

    UIManager.setLookAndFeel("com.jtattoo.plaf.aero.AeroLookAndFeel");

    }catch(Exception e){
    JOptionPane.showMessageDialog(null, "Tampilan Themes Tidak Tersedia");
    }
    }

}

nah kalo antum yang mau nyoba langsung… tanpa ngetik2 ribet… nih download project netbeans nya.. :

http://www.4shared.com/file/lxIiLPkn/KursusAne1.html

20 thoughts on “aplikasi CRUD simple menggunakan JAVA

  1. mas programnya bagus,,,
    cmn perlu diperbaiki dikit,,,
    insert, delete, refresh ama tabel udah bisa cuman tidak bisa untuk update npm :D

  2. aslkum mas muhammadghufron…. terima kasih atas bantuannya mas boleh minta bantuannya g kalo buat artikel seacrhnya ad ga??? dr asep pemula java

      • begini mas muhammadghufron,,, buat di atas kan ada insert, delete, hapus, edit, dan refresh nah.. artinya ada tambah, hapus, ubah dan segarkan kalo buat pencarian data kayak mencari data di tabel itu gimana mas buat sintaknya??? sebelumnya maaf kurang jelas di comment kemarin.. mohonnya ya mas muhammadghufron..

        • biasanya untuk query pencarian data bisa menggunakan ‘like’ .. tapi untuk lebih jelasnya insya Alloh nanti saya upload lagi contoh aplikasi simple yang ada fitur pencariannya… terima kasih ya mas sudah mengunjungi blog saya…

        • bisa lah … saya dulu pernah nyoba koq …
          misal
          — komputer A sebagai server IP address 192.168.1.1, pada komputer A terinstall mysql pada port 3306.
          — komputer B sebagai client IP address 192.168.1.2, pada komputer B tidak usah di install mysql, karena databasenya hanya ada di komputer A(server)
          — class koneksi pada program java yang semula “jdbc:mysql://localhost:3306/UnivGanteng” dirubah menjadi “jdbc:mysql://192.168.1.1:3306/UnivGanteng

          itu buat contoh sederhana aja …

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>