belajar java dan tutorial netbean

tutorial java, contoh aplikasi dengan netbean

a

Total Tayangan Halaman

Diberdayakan oleh Blogger.

si data gudang java mysql

sistem informasi gudang dengan java dan database mysql
Aplikasi inventory ini sudah lama saya buat dan belum 100% selesai. Tadinya memang ada keinginan untuk menyelesaikannya baru di share, tapi musuh utama saya yaitu malas susah sekali untuk dilawan :) , mungkin juga saya memang sudah tidak niat lagi untuk menyelesaikannya, karena sudah hampir 1 tahun saya tinggalkan,
Jadi daripada saya menunda nunda untuk mempostingnya lebih baik yang sudah ada saja saya posting.

Aplikasi inventory merupakan aplikasi desktop menggunakan bahasa pemrograman java, database mysql dan untuk laporan menggunakan jasper report.

Proses-proses yang dapat dilakukan aplikasi gudang ini :

Di aplikasi ini sudah diberikan hak akses kepada admin,teknisi, user dan super user. Jika yang login menggunakan aplikasi adalah admin maka semua menu item akan tampil tetapi jika yang login teknisi/user/super user maka menu item akan tampil beberapa saja (sesuai kebutuhan).
Login menggunakan NIK (nomor induk karyawan)
Untuk pengguna baru harus didaftarkan melalui admin, setelah didaftarkan maka admin harus memberitahu kepada pengguna baru password defaultnya misal : 12345 dan meminta user untuk segera login aplikasi dan mengganti password default.
Input (insert), ubah (update) dan hapus (delete) data
Perhitungan transaksi ada di form transaksi in dan transaksi out
Pembuatan laporan (disini masih terdapat kekurangan karena laporan belum dapat difilter, tadinya saya ingin memfilternya berdasarkan tanggal transaksi). Laporan transaksi juga bisa langsung di cetak, pastinya harus terhubung dengan printer.Berikut screen shootnya (screen shoot ini mewakili form-form yang lainnya) :

1. Tampilan login





2. Tampilan Menu Utama



3. Tampilan Form Supplier (ada di menu item Master --> Supplier)



4. Tampilan Form Produk (ada di menu item Master --> Produk).
Disini untuk mengisi kode departemen,dll pengguna cukup mengklik tombol search nanti akan tampil tabel untuk pilahan kode departemen dan nama departemen jika sudah memilih klik 2 kali pada pilihan atau klik tombol ok. Maka secara otomatis text field untuk kode departemen dan nama departemen terisi.
Untuk pengembangan selanjutnya saya sarankan untuk pencariannya difilter berdasarkan kode atau nama departemen.



5. Tampilan Form Transaksi In (transaksi barang masuk).



6. Tampilan laporan dari transaksi in.
untuk pengembangan selanjutnya saya sarankan laporan dapat difilter berdasarkan tanggal transaksi.




dan saya ingin mengucapkan terima kasih banyak untuk babeh varian yang telah membantu saya untuk membuat aplikasi ini. :)
Selamat ngoding dan selamat mengembangkan aplikasi ini.

link download :

source code
database
tampilan antarmukanya java dengan mysql

tampilan antarmukanya java dengan mysql

dibawah ini tampilan antarmukanya..
antarmuka 
antarmuka
pertama yang kita buat adalah databasenya. disini saya membuat database dengan nama sisteminformasi dan terdapat satu tabel yaitu tabel mahasiswa. bagi yang sudah terbiasa dengan mysql saya yakin tidak sulit untuk membuat database ini. :D
CREATE TABLE mahasiswa (
  `nim` varchar(8) NOT NULL,
  `nama` varchar(40) NOT NULL,
  `alamat` varchar(50) NOT NULL,
  PRIMARY KEY (`nim`)
) ;
setelah itu kita buat project di netbeans dengan nama crudjava. lalu buat package untuk menampung class koneksi supaya mudah bacanya. dibawah ini code koneksi yang saya buat.. jangan lupa sebelumnya harus sudah memasukkan library mySQL jdbc connector.
package crudjava.koneksi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DatabaseUtilities {

    private static Connection conn;

    public static Connection getConnection(){
        if(conn==null){
            try {
                DriverManager.registerDriver(new com.mysql.jdbc.Driver());
                conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sisteminformasi","root","root");
//db nya sisteminformasi, usernya root, dan passwordnya root
            } catch (SQLException ex) {
                Logger.getLogger(DatabaseUtilities.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return conn;
    }
}

untuk hirarki projectnya dapat dilihat dibawah.. :D

project
Project
lalu setelah kita buat koneksi, kita buat class yang merepresentasikan tabel yang ada di database. atau istilahnya adalah POJO (Plain Old Java Object ). karena di database nama tabelnya mahasiswa, jadi diproject saya juga beri nama classnya Mahasiswa dan saya letakkan di dalam package entity.
package crudjava.entity;

public class Mahasiswa {

    private String nim;
    private String nama;
    private String alamat;

    public Mahasiswa() {
    }

    public Mahasiswa(String nim, String nama, String alamat) {
        this.nim = nim;
        this.nama = nama;
        this.alamat = alamat;
    }

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }
}
setelah class Mahasiswa saya membuat Interface dengan nama InterMahasiswa, fungsi interface bisa dicari di google. dan saya juga pernah memposting apa bedanya interface dengan abstract. mungkin bisa dibaca-baca..hehe. bagi saya interface itu adalah aturan awal yang harus dibuat untuk dipatuhi dalam membuat crud(create, read, update, delete) yang nantinya di implement ke class yang berfungsi sebagai control. kenapa harus di buat interface, itu karena bila nanti kita ingin merubah class control dari mysql ke oracle atau postgre, class yang baru yang menuju oracle tinggal implement ke interface, dengan begitu class mysql oracle ataupun yang lainnya memiliki aturan yang sama. karena implement dari satu interface.. wah panjang juga ya..hehee , oke dibawah ini code untuk interfacenya.
package crudjava.interfc;

import crudjava.entity.Mahasiswa;
import java.sql.SQLException;
import java.util.List;

public interface InterMahasiswa {

    Mahasiswa insert(Mahasiswa o) throws SQLException;

    void update(Mahasiswa o) throws SQLException;

    void delete(String nim) throws SQLException;

    List getAll() throws SQLException;
}
setelah membuat interface, kita buat class yang mengimplement interface yang nanti isinya adalah coding insert update delete read. dan disini saya beri nama ImpleMahasiswa.
package crudjava.implement;

import crudjava.entity.Mahasiswa;
import crudjava.interfc.InterMahasiswa;
import crudjava.koneksi.DatabaseUtilities;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class ImpleMahasiswa implements InterMahasiswa{

    public Mahasiswa insert(Mahasiswa o) throws SQLException {//untuk insert ke database
        PreparedStatement st=DatabaseUtilities.getConnection().prepareStatement("insert into mahasiswa values(?,?,?)");
        st.setString(1, o.getNim());
        st.setString(2, o.getNama());
        st.setString(3, o.getAlamat());
        st.executeUpdate();
        return o;
    }

    public void update(Mahasiswa o) throws SQLException {//untuk update ke database
        PreparedStatement st=DatabaseUtilities.getConnection().prepareStatement("update mahasiswa set nama=?,alamat=? where nim=?");
        
        st.setString(1, o.getNama());
        st.setString(2, o.getAlamat());
        st.setString(3, o.getNim());
        st.executeUpdate();
    }

    public void delete(String nim) throws SQLException {// untuk delete berdasarkan nim
        PreparedStatement st=DatabaseUtilities.getConnection().prepareStatement("delete from mahasiswa where nim=?");
        st.setString(1, nim);
        st.executeUpdate();
    }

    public List getAll() throws SQLException { // untuk read all, jadi semua data diambil dan ditampilkan
        Statement st=DatabaseUtilities.getConnection().createStatement();
        ResultSet rs=st.executeQuery("select * from mahasiswa");
        Listlist=new ArrayList();
        while(rs.next()){
            Mahasiswa mhs=new Mahasiswa();
            mhs.setNim(rs.getString("nim"));
            mhs.setNama(rs.getString("nama"));
            mhs.setAlamat(rs.getString("alamat"));
            list.add(mhs);
        }
        return list;
    }

}
setelah implement jadi, skrng kita tinggal membaut form untuk input dan output. dengan desaign seperti diatas. dan saya beri nama FormUtama.
koding dibelakang nya seperti ini :
dibawah ini adalah coding yang butuhkan sebelum memberikan kode pada tombol tambah, ubah, hapus.
 List record=new ArrayList();//untuk menampung getAll()
    InterMahasiswa mhsServis;//untuk membuat objek dari class implement mahasiswa
    int row;//untuk membantu dalam menampilkan data di textfield nim nama alamat.
    /** Creates new form FormUtama */
    public FormUtama() {
        
            initComponents();
            mhsServis = new ImpleMahasiswa();
           
//supaya kalo data di table di klik maka data akan muncul langsung di textfield nim nama alamat
            jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

                public void valueChanged(ListSelectionEvent e) {
                    row=jTable1.getSelectedRow();
                    if(row!=-1){
                        isiText();
                    }
                }
            });
            this.statusAwal();
       
    }
//untuk meload semua data yg ada di tabel mahasiswa ke dalam aplikasi ketika dibuka
    void loadData(){
        try {
            record = mhsServis.getAll();
        } catch (SQLException ex) {
            Logger.getLogger(FormUtama.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
//untuk mengurusi table yang ada di antarmuka. supaya mempunya judul nim, nama, alamat, serta dengan isinya yang //selalu update.
    void isiTabel(){
        Object data[][]=new Object[record.size()][3];
        int x=0;
        for(Mahasiswa mhs:record){
            data[x][0]=mhs.getNim();
            data[x][1]=mhs.getNama();
            data[x][2]=mhs.getAlamat();
            x++;
        }
        String judul[]={"nim","nama","alamat"};
        jTable1.setModel(new DefaultTableModel(data, judul));
        jScrollPane1.setViewportView(jTable1);
    }
//coding untuk isi text ke dalam textfield nim nama alamat
    void isiText(){
        Mahasiswa mhs=record.get(row);
        txtNim.setText(mhs.getNim());
        txtNama.setText(mhs.getNama());
        txtAlamat.setText(mhs.getAlamat());
    }
//untuk mengosongkan text bila setelah tambah data atau yang lainnya
    void kosongkanText(){
        txtNim.setText("");
        txtNama.setText("");
        txtAlamat.setText("");
    }
//untuk menyatukan method2 yang kita buat diatas supaya dapat berjalan secara teratur dan memanggilnya dengan //mudah.
    void statusAwal(){
        kosongkanText();
        loadData();
        isiTabel();
    }
nah yang dibawah ini adalah isi dari tombol2nya.
//tombol tambah
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            // TODO add your handling code here:
            Mahasiswa mhs = new Mahasiswa();
            mhs.setNim(txtNim.getText());
            mhs.setNama(txtNama.getText());
            mhs.setAlamat(txtAlamat.getText());
            mhsServis.insert(mhs);
            this.statusAwal();
            JOptionPane.showMessageDialog(this, "data tersimpan");
        } catch (SQLException ex) {
            Logger.getLogger(FormUtama.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                        
//tombol ubah
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            // TODO add your handling code here:
            Mahasiswa mhs = new Mahasiswa();
            mhs.setNim(txtNim.getText());
            mhs.setNama(txtNama.getText());
            mhs.setAlamat(txtAlamat.getText());
            mhsServis.update(mhs);
            this.statusAwal();
            JOptionPane.showMessageDialog(this, "data berhasil diubah");
        } catch (SQLException ex) {
            Logger.getLogger(FormUtama.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                        
//tombol delete
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            // TODO add your handling code here:
            String nim = txtNim.getText();
            mhsServis.delete(nim);
            this.statusAwal();
            JOptionPane.showMessageDialog(this, "data berhasil dihapus");
        } catch (SQLException ex) {
            Logger.getLogger(FormUtama.class.getName()).log(Level.SEVERE, null, ex);
        }
    }          
dan dibawah ini isi untuk class main nya..
public class Main {
  
    public static void main(String[] args) {
        try {
            // TODO code application logic here
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
            SwingUtilities.invokeLater(new Runnable() {

                public void run() {
                    FormUtama form = new FormUtama();
                    form.setLocationRelativeTo(null);
                    form.setVisible(true);
                }
            });
        } catch (UnsupportedLookAndFeelException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}
dengan coding yang sebelumnya, saya rasa lebih ringkas coding ini
aplikasi dekstop java mysql

aplikasi dekstop java mysql

Membuat Aplikasi Desktop Sederhana dengan JAVA dan mySQL menggunakan netbeans 7.1
1. Create Database
pada tab service klik kanan->Rgister MySql Server.
aplikasi dekstop java mysql
kemudian akan muncul Mysqlnya klik kanan -> connect.

klik tanda + pada MySql, perhatiakan pada jendela netbeans anda, disana ada list database yang sudah pernah di buat sebelumnya.

klik kanan lg -> create database. Masukan nama database yang akan dibuat pada kotak dialog (misal:db_mahasiswa)

perhatikan garis merah pada gambar dibawah. itu menunjukan bahwa netbeans sudah terkoneksi dengan database db_mahasiswa.

klik kanan pada tables -> create table. tekan tomnil Add column untuk manambahkan filed baru. buat filed nim,nama,kelas,jurusan,fakultas persis seperti pada gambar.

setelah tabel terbentuk klik kanan -> view data untuk melihat isi tabel. di netbeans bisa langsung insert record juga lho... silahkan di buktikan sendiri... :)


2. Create project
create new project -> pilih java desktop application.

Ketikan nama project -> pada Choose aplication shell pilih Database aplication karena kita akan membuat aplikasi database.


pada database coonection pilih db_mahasiswa.


Aplikasi sedang di buat. silahkan tunggu beberapa detik saja :D


Kemudian klik kanan pada project -> klik RUN
aplikasi dekstop java mysql

contoh class java transaksi

contoh class


public class transaksi {
    
    public static void main(String[] args) {
   
    akuntansi myob = new akuntansi();
    myob.open ="file";
    myob.create ="company";
    myob.explore ="folder";
    myob.whatnew ="what";
    myob.exit ="close";
    
    System.out.println(myob.open);
    System.out.println(myob.create);
    System.out.println(myob.explore);
    System.out.println(myob.whatnew);
    System.out.println(myob.exit);
    }
}

contoh class java transaksi


class akuntansi {
String open;
String create;
String explore;
String whatnew;
String exit;
final String perusahaan = "perusahaan";

}
contoh class java transaksi

demikian contoh contoh class java transaksi

aplikasi java dengan database mysql

sekarang kita belajar mysql sebagai database, walaupun besok sabtu kampus libur.belajar tetep jalan. mysql merupakan salah satu database yang sudah familier di telinga mahasiswa karena saya juga pernah mengajar database dengan bahasa pemrograman MySql. ada 2 jenis yaitu MySql editor dengan visual contohnya pada xamm,appserv sedangkan versi yang uderdos adlah mysql. oke langsung saja kita langsung praktik. agar seragam penggunaan database silahkan digunakan AppServ

Langsung saja,
1. Untuk langkah awalnya. Buka web browser favorit Anda dan masuk ke phpmyadmin (ketikkanlocalhost/phpmyadmin pada address bar web browser). Kemudian buat Database dengan namakontak_db



2. Selanjutnya adalah pembuatan table pada kontak_db dengan nama tb_kontak. Masukkan nama tabel dan jumlah field.




3. Masukkan parameter setiap field seperti gambar di bawah ini.


Kemudian Klik tombol Save




Setelah selesai membuat Database, tutup web browser Anda


Langkah berikutnya adalah tahap pembuatan Aplikasinya.
4. Buka NetBeans. Buat Project Baru.



5. Beri Nama Project dengan Buku Telepon Sederhana. Saya menonaktifkan pembuatan Main Class. Setelah selesai, Klik Finish.




6. Selanjutnya Buat Form, dengan cara Klik Kanan pada Project -> New -> JFrame Form




7. Beri nama Frame dengan FrameKontak. Klik Finish.




8. Desain Form kurang lebih seperti gambar di bawah ini.




Berikut Komponen dan Properti-propertinya:
Komponen
Properties
Nilai
jFrame
title
Buku Telepon Sederhana
rezizable
false
jLabel1
text
Buku Telepon Sederhana
jLayeredPanel1
border
Titled Border (Title = Kontak)
jLabel2
text
Nama
jTextField1
text
Variable Name
TxtNama
jLabel3
text
Telepon
jTextField2
text
Variable Name
TxtTelepon
jLabel4
text
e-mail
jTextField3
text
Variable Name
TxtEmail
jLayeredPanel2
border
Titled Border (Title = Tombol)
jButton1
text
Simpan
Variable Name
BtnSimpan
jButton2
text
Ubah
Variable Name
BtnUbah
jButton3
text
Hapus
Variable Name
BtnHapus
jLayeredPanel3
border
Titled Border (Title = Daftar Kontak)
jTable1
Variable Name
TblKontak
jLayeredPanel4
border
Titled Border (Title = Cari Kontak)
jLabel5
text
Cari berdasarkan
jComboBox1
model
nama
telepon
e_mail
Variable Name
CmbCari
jTextField4
text
Variable Name
TxtCari



Berikut adalah cara untuk merubah nilai properties pada jLayeredPanel




Jika bingung dalam memberi nilai pada Variable Name, berikut adalah caranya.
Klik Kanan pada Komponen -> Change Variable Name



Hasil dari layouting akhir



9. Untuk dapat terkoneksi dengan database, pada Java telah disediakan Library MySQL JDBC Driver. Kita tinggal meng-import-nya saja. Klik Kanan pada folder Libraries yang ada Pada Project. Klik tombol Import. Cari Library MySQL JDBC Driver, Kemudian Klik Import Library. Klik Add Library.



10. Selanjutnya buat Package baru dengan cara Klik Kanan pada Project -> New -> Java Package. Beri nama Tabel. Klik Finish.



11. Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel -> New -> Java Class. Beri nama DataKontak. Klik Finish.



12. Buat juga class TabelDataKontak pada Package Tabel.
Struktur dari project sekarang terlihat seperti gambar berikut.




Setelah selesai, selanjutnya adalah pemberian script.

class DataKontak: 

package Tabel;
/**
*
* @author TheGunk
*/
public class DataKontak {
private String nama, telepon, e_mail; 

public DataKontak(){ 

public String getE_mail() {
return e_mail;
}

public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}

public String getNama() {
return nama;
}

public void setNama(String nama) {
this.nama = nama;
}

public String getTelepon() {
return telepon;
}

public void setTelepon(String telepon) {
this.telepon = telepon;
}
}

class TabelDataKontak: 

package Tabel;
/**
*
* @author TheGunk
*/
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

public class TabelDataKontak extends AbstractTableModel{
private List<DataKontak> list = new ArrayList<DataKontak>();

@Override
public int getRowCount() {
return list.size();
}

@Override
public int getColumnCount() {
return 3;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0 : return list.get(rowIndex).getNama();
case 1 : return list.get(rowIndex).getTelepon();
case 2 : return list.get(rowIndex).getE_mail();
default : return null;
}
}

@Override
public String getColumnName(int kolom){
switch(kolom){
case 0 : return "Nama";
case 1 : return "HP/Telepon";
case 2 : return "e-mail";
default : return null;
}
}

public void add(DataKontak kontak){
list.add(kontak);
fireTableRowsInserted(getRowCount(), getColumnCount());
}

public void delete(int i, int baris){
list.remove(i);
fireTableRowsDeleted(i, baris);
}

public DataKontak get(int baris){
return (DataKontak) list.get(baris);
}
}


Tambahkan Script berikut pada class FrameKontak: 

import Tabel.DataKontak;
import Tabel.TabelDataKontak;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class FrameKontak extends javax.swing.JFrame{




Tambahkan variable-variabel berikut pada class FrameKontak dan pada Konstruktor FrameKontak

public class FrameKontak extends javax.swing.JFrame{private Connection koneksi;
private Statement script;
private TabelDataKontak ModelDataKontak;
/** Creates new from FrameKontak */
public FrameKontak( ) {

initComponents( );
ModelDataKontak = new TabelDataKontak();
TblKontak.setModel(ModelDataKontak);

KoneksiDb( );
tampil( );
bersih( );
}



*catatan:
TEXT BERWARNA BIRU ADALAH SCRIPT YANG TELAH DIBUATKAN OLEH NETBEANS.

Selanjutnya tambahkan script berikut di bawah blok Konstruktor FrameKontak (setelah BLOK class FrameKontak extends javax.swing.JFrame).

private void KoneksiDb( ){ try{
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/kontak_db", "root", " ");
script = koneksi.createStatement( );
}
catch(SQLException ex){
System.err.print(ex);
}
catch(ClassNotFoundException ex){
System.err.print(ex);
}
}

private void tampil( ){
try{
int baris = TblKontak.getRowCount( );
for(int i=0; i<baris; i++){
ModelDataKontak.delete(0, baris);
}

String sql = "select * from tb_kontak";
ResultSet rs = script.executeQuery(sql);

while (rs.next( )){
DataKontak kontak = new DataKontak( );

kontak.setNama(rs.getString(1));
kontak.setTelepon(rs.getString(2));
kontak.setE_mail(rs.getString(3));

ModelDataKontak.add(kontak);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}

private void bersih( ){
TxtNama.setText(null);
TxtTelepon.setText(null);
TxtEmail.setText(null);
TxtCari.setText(null);
BtnSimpan.setEnabled(true);
BtnUbah.setEnabled(false);
BtnHapus.setEnabled(false);
}

private void tabel( ){
TblKontak.getSelectionModel( ).addListSelectionListener(new ListSelectionListener( ) {

@Override
public void valueChanged(ListSelectionEvent e) {
int baris = TblKontak.getSelectedRow( );

if(baris != -1){
DataKontak kontak = ModelDataKontak.get(baris);
TxtNama.setText(kontak.getNama( ));
TxtTelepon.setText(kontak.getTelepon( ));
TxtEmail.setText(kontak.getE_mail( ));
}
}
});
BtnSimpan.setEnabled(false);
BtnUbah.setEnabled(true);
BtnHapus.setEnabled(true);
}

private void simpan( ){
try{
String sql = "insert into tb_kontak values ("
+"'"+TxtNama.getText( )+"',"
+"'"+TxtTelepon.getText( )+"',"
+"'"+TxtEmail.getText( )+"'"
+")";

script.executeUpdate(sql);

tampil( );
JOptionPane.showMessageDialog(null, TxtNama.getText( )+" berhasil Disimpan");
bersih( );
}
catch(SQLException ex){

JOptionPane.showMessageDialog(this, "No Telepon sudah Ada");
bersih();

}
}

private void ubah( ){
int app;

if((app = JOptionPane.showConfirmDialog(null, "Ubah kontak"
+" ?","Perhatian",JOptionPane.YES_NO_OPTION))==0){
try{
String sql = "update tb_kontak set"
+" nama = '"+TxtNama.getText()+"',"
+" e_mail = '"+TxtEmail.getText()+"' where"
+" telepon = '"+TxtTelepon.getText()+"'";

script.executeUpdate(sql);

tampil( );
JOptionPane.showMessageDialog(null, "Kontak berhasil dirubah");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}
}

private void hapus( ){
int app, bantu;

if((app = JOptionPane.showConfirmDialog(null, "Hapus data"
+" ?","Perhatian",JOptionPane.YES_NO_OPTION))==0){
try{
String sql = "delete from tb_kontak where"
+" nama = '"+TxtNama.getText()+"'";

bantu = script.executeUpdate(sql);

tampil( );
JOptionPane.showMessageDialog(null, "Kontak berhasil dihapus");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}
}

private void cari( ){
int baris = TblKontak.getRowCount( );
String bantu = CmbCari.getSelectedItem( ).toString( );

for(int i=0; i<baris; i++){
ModelDataKontak.delete(i, baris);
}

try{
String sql = "select * from tb_kontak where "
+bantu+" like '%"+TxtCari.getText()+"%'";

ResultSet rs = script.executeQuery(sql);

while(rs.next( )){
DataKontak kontak = new DataKontak( );

kontak.setNama(rs.getString(1));
kontak.setTelepon(rs.getString(2));
kontak.setE_mail(rs.getString(3));

ModelDataKontak.add(kontak);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}


Catatan:
Pada script di atas, terdapat script

koneksi = DriverManager.getConnection("jdbc:mysql://localhost/kontak_db","root","");

saya memberikan nilai username=root, dan password tidak saya isi menyesuaikan konfigurasi phpmyadmin. Silahkan Anda sesuaikan dengan konfigurasi phpmyadmin Anda.

Untuk menambahkan fungsi masing-masing pada setiap tombol (button) yang kita desain, dengan cara.
Klik kanan Button -> Events -> Action -> actionPerformed




Script untuk Button Simpan

simpan();


Script untuk Button Ubah

ubah();

Script untuk Button Hapus

hapus();


Penambahan fungsi klik pada Tabel.
Klik Kanan Tabel -> Events -> Mouse -> mousePressed




Script untuk TblKontak

tabel();


Penambahan pencarian pada TxtCari
Klik kanan TxtCari -> Events -> Key -> keyReleased




Script untuk TxtCari

cari();


Saya tambahkan script berikut, untuk merubah tampilan tema default menjadi windows
(letakkan script di bawah ini sebelum method initComponents(); )

try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch (Exception ex) {
ex.getMessage();
}

initComponents();