48
Java & MySql

Java & my sql

  • Upload
    mbolwol

  • View
    298

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Java  & my sql

Java & MySql

Page 2: Java  & my sql

• saya akan membahas pembuatan aplikasi database menggunakan Java & MySQL. Sebagai contoh saya akan membuat aplikasi Buku Telepon Sederhana. Dimana memuat data Nama, No Telepon, dan e-mail.

• Dalam pembuatannya saya menggunakan apliaksi Netbeans dan paket XAMPP.

• Jadi sebelum Anda mencoba tutorial ini, install terlebih dahulu aplikasi-aplikasi tersebut.

Page 3: Java  & my sql

• Untuk langkah awalnya. Buka web browser favorit Anda dan masuk ke phpmyadmin (ketikkan localhost/phpmyadmin pada address bar web browser). Kemudian buat Database dengan nama kontak_db

Page 4: Java  & my sql

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

Page 5: Java  & my sql

• Masukkan parameter setiap field seperti gambar di bawah ini lalu save

Page 6: Java  & my sql

Buka NetBeans. Buat Project Baru

Page 7: Java  & my sql

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

Page 8: Java  & my sql

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

Page 9: Java  & my sql

• Beri nama Frame dengan FrameKontak. Klik Finish

Page 10: Java  & my sql

Desain Form kurang lebih seperti gambar di bawah ini.

Page 11: Java  & my sql

Berikut adalah cara untuk merubah nilai properties pada jPanel

Page 12: Java  & my sql

Variable

Page 13: Java  & my sql

• 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

Page 14: Java  & my sql
Page 15: Java  & my sql

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

Page 16: Java  & my sql
Page 17: Java  & my sql

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

Page 18: Java  & my sql
Page 19: Java  & my sql

• Buat juga class TabelDataKontak pada Package Tabel

Page 20: Java  & my sql

Setelah selesai, selanjutnya adalah pemberian script.

• class DataKontak: • package Tabel;• /**• *• */• public class DataKontak {• private String nama, telepon, e_mail;• public DataKontak(){ • }

• public String getE_mail() {• return e_mail;• }

Page 21: Java  & my sql

• 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;• }

Page 22: Java  & my sql

• public String getTelepon() {• return telepon;• }

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

Page 23: Java  & my sql

class TabelDataKontak

• package Tabel;• /**• *• */• 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();• }

Page 24: Java  & my sql

• @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;• }• }

Page 25: Java  & my sql

• @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());• }

Page 26: Java  & my sql

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

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

Page 27: Java  & my sql

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{

Page 28: Java  & my sql

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( )

Page 29: Java  & my sql

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

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

Page 30: Java  & my sql

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);• }• }

Page 31: Java  & my sql

• 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( );

Page 32: Java  & my sql

• 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);• }• }

Page 33: Java  & my sql

• 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( ) {

Page 34: Java  & my sql

• @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);• }

Page 35: Java  & my sql

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

• script.executeUpdate(sql);

Page 36: Java  & my sql

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

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

• }• }• ;

Page 37: Java  & my sql

• 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);

Page 38: Java  & my sql

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

Page 39: Java  & my sql

• 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);

Page 40: Java  & my sql

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

Page 41: Java  & my sql

• 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()+"%'";

Page 42: Java  & my sql

• 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);• }• }

Page 43: Java  & my sql

• 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.

Page 44: Java  & my sql

• Untuk menambahkan fungsi masing-masing pada setiap tombol (button) yang kita desain, dengan cara.

• Klik kanan Button -> Events -> Action -> actionPerformed

Page 45: Java  & my sql

• Script untuk Button Simpan• simpan( );• Script untuk Button Ubah• ubah( );• Script untuk Button Hapus• hapus( );

Page 46: Java  & my sql

• Penambahan fungsi klik pada Tabel.• Klik Kanan Tabel -> Events -> Mouse -> mousePressed• Script untuk TblKontak• tabel( );

Page 47: Java  & my sql

• Penambahan pencarian pada TxtCari• Klik kanan TxtCari -> Events -> Key -> keyReleased• Script untuk TxtCari• cari( );

Script untuk TxtCari

cari( );

Page 48: Java  & my sql

Build & Jalankan Program.