You are on page 1of 17

1

Membangu unAplikasidatabaseClientServersederhanamenggunakanjavamy a s g ysql(2010)

Sebelum memulai p m pembuatan a aplikasi ini, pastikan so oftware berik telah ter kut rinstal di com mputer yang akan g digunaka : an J (Dalam kasus ini m Jdk menggunaka versi 6u21) an N Netbeans ID (Dalam k DE kasus ini me enggunakan versi 6.9.1) n M Mysql Server (Dalam k kasus ini me enggunakan versi 5.1.48 atau phpt n 8) triad Dalam p pembuatan a aplikasi ini diharapkan saudara tela memaham cara mem ah mi mbuat proje baru, ect membua form dan memahami penggunaa java Swin (jbutton, jtextfield, jlabel, dll), s at i an ng serta pembua database dan table menggunak mysql se atan kan erver. Sebelum memulai m m merancang f form, kita si kan data iap abase yang a akan diguna akan, Beriku struktur ut database nya: e
CREATE DATABASE dbpegawai i; USE dbp pegawai; CREATE TABLE karyawan ( nip v varchar(10 NOT NUL 0) LL, nama varchar(5 50) NOT NU ULL, tglla ahir date NOT NULL, jk va archar(7) NOT NULL, alama varchar(100) NOT NULL, at T jabat tan varcha ar(30) NOT NULL, T photo blob NOT NULL, o T PRIMA ARY KEY (n nip) ) ENGIN NE=MyISAM; CREATE TABLE use ers ( usern name varch har(50) NO NULL, OT passw word varch har(50) NO NULL, OT statu varchar(50) NOT NULL, us PRIMA ARY KEY (u username) ) ENGIN NE=MyISAM; INSERT INTO users (userna ame, passw word, stat tus) VALUE ('Nanda ES a', 'cobac coba', 'Admin'); INSERT INTO users (userna ame, passw word, stat tus) VALUE ('Nanda Ade Putr ES a ra', 'cobala agi', 'Karyawan');

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

3 Langkahpertama,de esainforminputsepertip padagambar rberikut:(na amaform:sa atu)


Jtextfield (var : xnip) d Jtextfield (var : xnama) Jlabel (va : photo) ar JdateChoo (var : xtan oser nggal) JRadioBu utton (var : xpr dan xwanit ria ta) JPanel JLabel (tid terlihat, v : Dir) dak var JTextArea (var : xalama a at) JComboB (var : xjab Box batan) JTable

an Tampila form kosong :

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

Setelah selesai desa form kita akan masu ke syntax program, ain uk x a membuat me ethod untuk koneksi ke database se k e erver : Pertama kita akan m
private void kon e neksi() { try { Clas ss.forName e("com.mys sql.jdbc.D Driver"); con = DriverM Manager.ge etConnecti ion("jdbc:mysql://1 192.168.4. .1/dbpegaw wai","root t",""); stat = con.cr t reateState ement(); JOpt tionPane.s showMessag geDialog(r rootPane, "koneksi ok..."); } catch (Exceptio e) { on JOpt tionPane.s showMessag geDialog(r rootPane, "Koneksi gagal "+e e); } }

ini ada alah ip comp puter server r

Tambah hkan variabl baru : le


pri ivate Conn nection co on; pri ivate Stat tement sta at; pri ivate Resu ultSet res s;

Lalu pan nggil metho koneksi t od tersebut pad saat form dijalankan : da

ta mbuat syntax untuk men x nampilkan p photo ke for : rm Lalu kit akan mem

an ada browse pho : oto Posisika syntax pa tombol b


Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

int jes = Chooser.showOpenDialog(this); if(jes == JFileChooser.APPROVE_OPTION){ File f = Chooser.getSelectedFile(); Dir.setText(f.getPath()); String dir = Dir.getText(); javax.swing.ImageIcon img = new javax.swing.ImageIcon(dir); photo.setIcon(img); }

tambahkan variable baru :


private JFileChooser Chooser = new JFileChooser();

Selanjutnya kita akan masuk ke syntax untuk memfilter tanggal : Pisisikan syntax pada action PropertyChange :
if(xtanggal.getDate()!=null){ SimpleDateFormat Format=new SimpleDateFormat("yyyy-MM-dd"); tanggal=Format.format(xtanggal.getDate()); }

Tambahkan variable baru :


private String tanggal;

Buat method baru untuk mengosongkan field yang ada pada form :
private void kosong() { xalamat.setText(""); xjabatan.setSelectedIndex(-1); xnama.setText(""); xnip.setText(""); xpria.setSelected(true); xtanggal.setDate(null); Dir.setText(""); String dir = Dir.getText(); javax.swing.ImageIcon img = new javax.swing.ImageIcon(dir); photo.setIcon(img); xnip.requestFocus(); }

Langkah berikutnya yaitu membuat syntax untuk mengimpan data ke database :


MembangunAplikasidatabaseClientServersederhanamenggunakanjavamysql(2010)

Posisikan syntax pada tombol save :


String kelamin = (xpria.isSelected() ? "Pria" : "Wanita"); try { FileInputStream fis = null; PreparedStatement statement = con.prepareStatement("insert into karyawan (nip, nama, tgllahir, jk, alamat, jabatan, photo) values (?, ?, ?, ?, ?, ?, ?)"); File file = new File(Dir.getText()); fis = new FileInputStream(file); statement.setString(1, xnip.getText()); statement.setString(2, xnama.getText()); statement.setString(3, tanggal); statement.setString(4, kelamin); statement.setString(5, xalamat.getText()); statement.setString(6, (String) xjabatan.getSelectedItem()); statement.setBinaryStream(7, fis, (int) file.length()); statement.executeUpdate(); JOptionPane.showMessageDialog(rootPane, "Data berhasil disimpan"); } catch (Exception e) { JOptionPane.showMessageDialog(rootPane, "Data Gagal disimpan, kesalahan pada "+e); }

Setelah itu, kita akan membuat syntax pemanggilan data dari database untuk keperluan edit dan delete data : Posisikan syntax pada tombol cari data :
try { res = stat.executeQuery("select * from karyawan where nip = '"+xnip.getText()+"'"); if (res.next()); { xnama.setText(res.getString("nama")); xtanggal.setDate(res.getDate("tgllahir")); if (res.getString("jk").equals("Pria")) { xpria.setSelected(true); } if (res.getString("jk").equals("Wanita")) { xwanita.setSelected(true); } xalamat.setText(res.getString("alamat"));
MembangunAplikasidatabaseClientServersederhanamenggunakanjavamysql(2010)

7
xjabatan.setSelectedItem(res.getString("jabatan")); Blob blob = res.getBlob("photo"); byte[] data = blob.getBytes(1, (int) blob.length()); ImageIcon icon = new ImageIcon(data); photo.setIcon(icon); } } catch (Exception e) { xalamat.setText(""); xjabatan.setSelectedIndex(-1); xnama.setText(""); xpria.setSelected(true); xtanggal.setDate(null); Dir.setText(""); String dir = Dir.getText(); javax.swing.ImageIcon img = new javax.swing.ImageIcon(dir); photo.setIcon(img); xnama.requestFocus(); }

Berikut syntax untuk edit data :


String kelamin = (xpria.isSelected() ? "Pria" : "Wanita"); try { int ok=JOptionPane.showConfirmDialog(rootPane, "Apakah anda juga melakukan perubahan pada photo???","Tanya",JOptionPane.OK_OPTION); if (ok==0) { FileInputStream fis = null; PreparedStatement statement = con.prepareStatement("update karyawan set nama=?, tgllahir=?, jk=?, alamat=?, jabatan=?, photo=? where nip=?"); File file = new File(Dir.getText()); fis = new FileInputStream(file); statement.setString(1, xnama.getText()); statement.setString(2, tanggal); statement.setString(3, kelamin); statement.setString(4, xalamat.getText()); statement.setString(5, (String) xjabatan.getSelectedItem()); statement.setBinaryStream(6, fis, (int) file.length()); statement.setString(7, xnip.getText()); statement.executeUpdate(); }else
MembangunAplikasidatabaseClientServersederhanamenggunakanjavamysql(2010)

8
{ PreparedStatement statement = con.prepareStatement("update karyawan set nama=?, tgllahir=?, jk=?, alamat=?, jabatan=? where nip=?"); statement.setString(1, xnama.getText()); statement.setString(2, tanggal); statement.setString(3, kelamin); statement.setString(4, xalamat.getText()); statement.setString(5, (String) xjabatan.getSelectedItem()); statement.setString(6, xnip.getText()); statement.executeUpdate(); } JOptionPane.showMessageDialog(rootPane, "Data berhasil update"); } catch (Exception e) { JOptionPane.showMessageDialog(rootPane, "Data Gagal diupdate, kesalahan pada "+e); }

Berikut syntax untuk delete data :


try { PreparedStatement statement = con.prepareStatement("delete from karyawan where nip=?"); statement.setString(1, xnip.getText()); statement.executeUpdate(); JOptionPane.showMessageDialog(rootPane, "Data berhasil dihapus..."); } catch (Exception e) { JOptionPane.showMessageDialog(rootPane, "Data gagal dihapus..."); }

Setelah itu buat method untuk menampilkan data ke dalam table :


private void tampiltabel(String sql) { DefaultTableModel tbl = new DefaultTableModel(); tbl.addColumn("No"); tbl.addColumn("NIP"); tbl.addColumn("NAMA"); tbl.addColumn("TANGGAL LAHIR"); tbl.addColumn("JK"); tbl.addColumn("ALAMAT"); tbl.addColumn("JABATAN");
MembangunAplikasidatabaseClientServersederhanamenggunakanjavamysql(2010)

9
try { int n=1; res = stat.ex xecuteQuer ry(sql); whil (res.ne le ext()) { tbl.addRo ow(new Obj ject[]{(n+ ++), res.getSt tring(1), res.getSt tring(2), res.getSt tring(3), res.getSt tring(4), res.getSt tring(5), res.getSt tring(6) }); jTable1.s setModel(t tbl); } } catch (Exceptio e) { on JOpt tionPane.s showMessag geDialog(n null, "Err ror "+e); } }

Tampilk data ke dalam table saat form d kan e dibuka :

Berikut syntax untu tombol cancel : uk


kosong(); tabel("sel lect * fro karyawa om an"); tampilt

Berikut syntax untu tombol cl uk lose :


dispose e();

Setelah form input selesai, bua form login sederhana berikut desainnya : (n at n a, nama form : login)
Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

10

JTextfield (var : xuser) d JPassword dfield (var : xp pass)

rm i, n kedatabase, k koneksi ke d database sam ma Pada for login ini anda harus melakukan koneksi k dengan pada form y yang pertam tadi. ma

, kan a gin Setelah koneksi ok, kita lanjutk dengan syntax pada tombol log :
try { res = stat.ex xecuteQuer ry("select * from u t users wher re usernam me='"+xuse er.getText t()+"' and password d d='"+xpass s.getText( ()+"'"); if(res.next() )) { new satu( ().show(); JOptionPa ane.showMe essageDial log(rootPa ane, "Logi sukses, in , Selamat datang u t user "+xus ser.getTex xt()+""); this.disp pose(); } else e { JOptionPa ane.showMe essageDial log(rootPa ane, "User / Passwo r ord salah!!!"); } } catch (Exceptio e) { on }

Tombol cancel : l
xuser.s setText("" "); xpass.se etText("") ); xuser.re equestFocu us();

Tombol Close : l
System.exit(0);

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

11

Langka berikutn adalah yang terpenting, yaitu melakuka setting p ah nya u an pada databa mysql ase server, nda unakan data abase mysq dari phpt ql triad2-2-1, tidak perlu lagi meng u gikuti Jika an menggu langkah ini : h B Buka databa mysql m ase menggunaka Phpmyad an dmin atau EM SQL M MS Manager P Pilih databa mysql, la pilih tab user, dan klik insert ase alu ble n

Isi I host : % : root User U Password P : Dan D yang la ainnya pilih value Y Lalu L klik Go o

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

12

Membangu unAplikasidatabaseClientServersederhanamenggunakanjavamysql(2010) a s g y

13

S Setelah setti ingan ini selesai, aplika siap digu asi unakan, dan jika terjadi error pada koneksi n ke k database seperti : 1.

ector mysql nya belum di add pada library pro driver conne l a ogram yang kita rancan cara ng, Berarti d mengata asinya : pad jendela pr da rojent klik k kanan pada L Libraries, pilih add libr rary.

Lalu tam form be mpil erikut : Pilih My JDBC Driver, alau klik Add L ysql u Library

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

14

2.

Cara me engatasinya : pastikan f firewall com mputer anda dalam kead daan off

3.

Cara me engatasinya : anda belu menambahkan host % pada ta user di d um abel database mysql,la akukan lang gkah setting diatas den g ngan benar.

4.

engatasinya : koneksi g gagal saat ak mengek kan ksekusi print SQL, jik koneksi O error tah ka OK, Cara me ini akan hilang. n

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

15

Tips & Trik J tidak in Jika ngin repot m melakukan s setting datab base mysql, lebih baik menggunak mysql , kan bawaan dari phptriad, n b i namun kelem mahannya d database baw waan phptria ini versi 3, jadi ad tidak mendu t ukung untuk pembuatan View. k n J bingung meletakka syntax m Jika an method, letak kkan saja di sini :

Posisika an variebe el disini

Letakka method b an berikutnya se ecara beruru agar tid bingung utan dak g. J terjadi error pada s Jika syntax, pada sudah m ahal mengetik de engan benar, silahkan co ocokkan Syntax i import berik yang ber kut rada pada bagian paling atas sourc program : g ce

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

16

U Untuk tangg lahir gun gal nakan jcalen ndar U Ukuran pho tidak leb dari 500k oto bih kb S Syntax pada java bersif case sens a fat sitive, jadi, p perhatihan p penggunaan huruf besa dan n ar kecil pada s k syntax. Cont : Connec toh ction berbe dengan connectio , eda on xuser.setT x Text(""); berbeda den ngan xuser.settext(""); A Agar memp percepat dala mengeti syntax, an cukup m am ik nda mengetik sat huruf atau dua tu u huruf awal, lalu tekan C + Space maka akan muncul pi h Ctrl e, n ilihan synta anda ting ax, ggal memilih dan tekan ente Contoh : m n er.

Jika ada yang ingin ditanyakan silahkan hu a n n ubungi saya di : a Facebook.co F om/nandaad deputra adeputranan a nda@gmail. .com

Membangu unAplikasidataba aseClientServers sederhanamengg gunakanjavamy ysql(2010)

17

Membangu unAplikasidatabaseClientServersederhanamengg a s gunakanjavamysql(2010) y

You might also like