Friday, April 17, 2015

[Part 2] Program Sederhana Java Dengan Database MySQL

nahh kita sampai di part 2 bro biar kayak harry potter gitu ber sequel jajajajaja :D.
untuk part 1 nya bisa dilihat disini nih bro.
oke lanjut ya kita langsung menuju ke program aja tanpa basa basi.

Membuat Form Sederhana

klik new file di netbeans pilih category Swing GUI Forms dan File Typesnya: JFrame Form lalu beri nama Form

nah tampilannya masih kosong kan, kita perlu menambahkan beberapa text box dan button button.
untuk menambahkannya , tinggal Drag and Drop saja dari layer palatte.
dan ubah nama variabelnya sesuaikan seperti punya saya silahkan lihat gambar berikut:



semoga temen temen bisa ngerti ya ini semua , saya memisahkan setiap jenis jenis palettenya dengan warna yang berbeda-beda , untuk nama variabelnya bisa dilihat di kolom Navigator (di sebelah kiri) samakan saja variabelnya ya untuk menghindari error. untuk mengubah nama variabel tinggal klik kanan palette yang mau diubah , lalu klik Change Variabel Name.
oke setelah kita selesai membuat form , kita beralih untuk coding codingnya ya


package universitas;

import java.sql.*; //maksud dari (*) bintang adalah memanggil library semua yang ada di properti sql
import java.sql.SQLException; //library exception
import java.sql.Connection; //library koneksi sql
import javax.swing.table.DefaultTableModel; //library default table model
public class Form extends javax.swing.JFrame {

    private DefaultTableModel model; //variabel model table yang kita inginkan atau custom

    public Form() 
    {
        initComponents();
        
        model = new DefaultTableModel(); //model default membentuk table yang kita inginkan kolom dan barisnya
        
        tabelmahasiswa.setModel(model); //untuk mengatur table model
        model.addColumn("NIM");             //mengatur kolom
        model.addColumn("Nama");            //mengatur kolom
        model.addColumn("Tanggal Lahir");   //mengatur kolom
        model.addColumn("Jurusan");         //mengatur kolom
        model.addColumn("Alamat");          //mengatur kolom
        
        loadData(); //memanggil metode loadData
    }
    
    public void loadData() //metode loadData
           
    {
        model.getDataVector().removeAllElements();  //menghapus seluruh data
        
        
        model.fireTableDataChanged(); //memberi tahu bahwa data telah kosong
         
        try
        {
            Connection c = KoneksiDatabase.getkoneksi();
            Statement s = c.createStatement();
            
            String sql = "SELECT * FROM mahasiswa"; //query database berfungsi untuk menampilkan semua data dari tabel mahasiswa
            ResultSet r = s.executeQuery(sql);
            
            while(r.next())
            {
                //lakukan penelusuran baris
                Object[] o = new Object[5];
                o[0] = r.getString("NIM");
                o[1] = r.getString("NAMA");
                o[2] = r.getDate("TANGGAL_LAHIR");
                o[3] = r.getString("JURUSAN");
                o[4] = r.getString("ALAMAT");
                
                model.addRow(o);
            }
            
            r.close();
            s.close();
        
        }
        
        catch(SQLException e)
        {
            System.out.println("Terjadi Error di loaddata");
        }
        kosongin(); //memanggil metode kosongin
    }

     public void kosongin() //metode kosongin berfungsi untuk mengosongkan semua field
    {
        String ksong = "";
        String nulll = null;
        inputnama.setText(ksong);
        inputnim.setText(ksong);
        inputjurusan.setText(ksong);
        inputlahir.setText(nulll);
        inputalamat.setText(ksong);
     
    }

metode loadData berguna untuk me load data yang kita simpan di database kita ketika program di jalankan , makanya loaddata terletak di dalam konstruktor Form.
perlu di ingat , ketika kita memakai Default Table Model kita hanya di perkenankan untuk memasukan data bertipe Array Object ke dalam Default Table Model.
metode kosongin berguna untuk mengosongkan atau meng clear kan semua yang ada di text field agar user tidak susah susah menghapus setiap ingin mengisi data berikutnya.
oke kita lanjut

Menambah Aksi Ke Button Tambah

kita akan menambahkan aksi aksi ke dalam button yang telah kita buat.
pertama mari kita buat aksi untuk button Tambah.
silahkan klik kanan button Tambah >> Events >> Action >> actionPerformed
nah otomatis kita akan di arahkan ke script action button Tambah.
Silahkan isi Seperti ini


private void tambahActionPerformed(java.awt.event.ActionEvent evt) {                                       
        String nim = inputnim.getText();    //mendapatkan text dati field inputnim  
        String nama= inputnama.getText();   //mendapatkan text dati field inputnama
        java.util.Date tanggaLahir = (java.util.Date) inputlahir.getValue(); 
        String jurusan = inputjurusan.getText(); //mendapatkan text dati field inputjurusan
        String alamat = inputalamat.getText();   //mendapatkan text dati field inputalamat
        
        
        try
        {
            Connection c = KoneksiDatabase.getkoneksi();
            String sql = "INSERT INTO mahasiswa VALUES (?, ?, ?, ?, ?)"; //query database memasukan data ke values sekian sekian
            PreparedStatement p = c.prepareStatement(sql);
            
            p.setString(1, nim);
            p.setString(2, nama);
            p.setDate(3, new java.sql.Date(tanggaLahir.getTime()));
            p.setString(4, jurusan);
            p.setString(5, alamat);
            
            p.executeUpdate();
            p.close();
        }
        
        catch(SQLException e)
        {
            System.out.println("Terjadi Error di tambah");
        }
        finally //akan tetap dijalankan walaupun error tertangkap
        {
            loadData();
        }  
    }                 

bisa dilihat , pada button Tambah kita mencoba menambahkan , data data yang telah di input di field ke dalam database mahasiswa yang sudah kita buat tadi , syntaks getText() berguna untuk mendapatkan text dari Field yang bersangkutan

Menambahkan Aksi Ke Button Ubah

untuk aksi button Ubah , agak sedikit berbeda dengan aksi button Tambah,  perbedaannya adalah pertama kita harus mendeteksi baris yang sedang di klik, setelah itu baru melakukan proses pengubahan data yang diklik dengan data baru yang ada dalam input field.
langsung saja skrip button ubah:


private void ubahActionPerformed(java.awt.event.ActionEvent evt) {                                     
        int i = tabelmahasiswa.getSelectedRow();
        if (i == -1) 
        {
           return; //tidak ada baris terseleksi 
        }
        
        //ambil nim yg terseleksi karna nim primary key
        String nim = (String) model.getValueAt(i, 0);
        String nama = inputnama.getText();
        java.util.Date tanggallahir = (java.util.Date) inputlahir.getValue();
        String jurusan = inputjurusan.getText();
        String alamat = inputalamat.getText();
        
        try
        {
            Connection c = KoneksiDatabase.getkoneksi();
            String sql = "update mahasiswa set nama = ?, tanggal_lahir = ?, jurusan = ?, alamat = ? where nim = ?"; //query update mysql
            PreparedStatement p = c.prepareStatement(sql);
            
            p.setString(1, nama);
            p.setDate(2, new java.sql.Date(tanggallahir.getTime()));
            p.setString(3, jurusan);
            p.setString(4, alamat);
            p.setString(5, nim);
            
            p.executeUpdate();
            p.close();
        }
        
        catch (SQLException e)
        {
            System.out.println("Terjadi Error");
        }
        finally
        {
            loadData();
        }
        
    }                           

kondisional if berguna untuk mendapatkan baris yang terseleksi pada tabel, jika tidak ada baris yang terseleksi, maka proses Ubah dibatalkan.
untuk mendapatkan baris yang terlseksi dengan menggunakan metode getSelectedRow()  dan jika returnnya -1 maka baris tidak ada yang terseleksi.

Menambahkan Aksi Baris Terseleksi

aksi ini berguna ketika baris Table terseleksi, misalnya: jika baris pertama terseleksi, maka program akan menampilkan data yang terseleksi tersebut pada Form. Hal ini agar pengubahan lebih mudah, karna kita tidak perlu memasukan seluruh datanya lagi.

Untuk menambahkan aksi ketika baris terseleksi, kita dapat menggunakan aksi Mouse Click, yaitu aksi yang dijalankan ketika mouse mengklik. Caranya , klik kanan komponen Table pada Form, setelah itu pilih Events >> Mouse >> mouseClicked. Kita otomatis akan diarahkan ke script tersebut.
Silahkan isi skripnya seperti ini:


 private void tabelmahasiswaMouseClicked(java.awt.event.MouseEvent evt) {                                            
       int i = tabelmahasiswa.getSelectedRow();
       
       if (i == -1)
       {
           return;
       }
       
       String nim = (String) model.getValueAt(i, 0);
       inputnim.setText(nim); //setText untuk mengatur text sesuai nim yang di seleksi
       
       String nama = (String) model.getValueAt(i, 1);
       inputnama.setText(nama); //setText untuk mengatur text sesuai nama yang di seleksi

       
       java.util.Date tanggalLahir = (java.util.Date) model.getValueAt(i, 2);
       inputlahir.setValue(tanggalLahir); //setValue untuk mengatur Date sesuai Date yang di seleksi

       
       String jurusan = (String) model.getValueAt(i, 3);
       inputjurusan.setText(jurusan); //setText untuk mengatur text sesuai jurusan yang di seleksi

       
       String alamat = (String) model.getValueAt(i, 4);
       inputalamat.setText(alamat); //setText untuk mengatur text sesuai alamat yang di seleksi

       
       
    }                            


Menambahkan Aksi Ke Button Hapus

Untuk aksi Hapus, kita tidak perlu menggunakan Input Form, yang kita perlukan hanyalah baris yang terseleksi. Jika baris tidak ada yang terseleksi, maka proses penghapusan dibatalkan.
Isikan Script berikut di aksi Button Hapus


 int i = tabelmahasiswa.getSelectedRow();
       if (i == -1) //mengecek apakah ada baris yang terseleksi
       {
           return;
       }
       
       String nim = (String) model.getValueAt(i, 0);
       
       try
       {
           Connection c = KoneksiDatabase.getkoneksi();
           
           String sql = "delete from mahasiswa where nim = ?"; //delete dari kolom nim
           PreparedStatement p = c.prepareStatement(sql);
           
           p.setString(1, nim);
           
           p.executeUpdate();
           p.close();
       }
       
       catch(SQLException e)
       {
           System.err.println("Terjadi Error");
       }
       
       finally
       {
           kosongin();
           loadData();
       }
    }                                     

lihat kita hanya perlu mengecek apakah ada baris yang terseleksi atau tidak.
mudah kan brooooo, oke untuk aksi button terahir mari kita tambahkan

Menambahkan Aksi Ke Button Clear

button Clear berfungsi untuk mengosongkan semua field yang ada agar user tidak usah menghapus field apabila ingin mengisi data yang selanjutnya.
ini yang paling susah brooo parah bener nihhhhh , siapin kopi, rokok , kembang 7 rupa deh untuk nulis script ini.
langsung aja ya


private void btnclearActionPerformed(java.awt.event.ActionEvent evt) {                                         
        kosongin();
    }    

gimana susah kan broooo, hahahaha just kidding :D ini yang paling gampang dari semuanya hahahaha.

oke kalo semua udah di tulis coba jalanin brooo di running aja, jangan lupa Xampp nya di run juga broooo nanti gabisa konek ke MySQL.
nih hasilnya ane skrinsutin

gimana pusing kan loe , sama TS juga dulu pusing juga , tapi setelah bertapa di kalijodo  di baca baris per baris , dan di ganti ganti variabelnya , ehh ngerti dehhhh.
Program ini masih bisa di kembangin bro sesuai kreativitas loe loe pada.
kira kira segini bro ilmu yang TS berikan , TS juga masih belajar broo tolong di maklumin ya kalo ada yang salah salah, silahkan kalo ada yang masih bingung insyaallah TS jawab (kalau bisa :D).
oke sekian ya bro TS ngantuk mau bobo Cantik duluuu Muachh :*

5 comments:

  1. untuk Menambahkan Aksi Baris Terseleksi, pada bagian menampilkan tanggalnya(date) ko error ya?

    ReplyDelete
  2. coba boleh saya tahu error stacknya seperti apa gan ?

    ReplyDelete
  3. kak kok pas tambah data gak muncul data nya pada tabelnya

    ReplyDelete
    Replies
    1. apa karena koding di input nim,akamat jurusan dan alamany belum kak kasih ?

      Delete
  4. kodingan input nimnya alamatnya jurusan dan juga namanya belum ada ?? kenapa gak diposting ya kak ???

    ReplyDelete