SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Java & MySql
• 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 email.
• Dalam pembuatannya saya menggunakan apliaksi Netbeans dan
paket XAMPP.
• Jadi sebelum Anda mencoba tutorial ini, install terlebih dahulu
aplikasi-aplikasi tersebut.
• 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
• Selanjutnya adalah pembuatan table pada kontak_db dengan nama
tb_kontak. Masukkan nama tabel dan jumlah field.
• Masukkan parameter setiap field seperti gambar di bawah ini lalu
save
Buka NetBeans. Buat Project Baru
• Beri Nama Project dengan Buku Telepon Sederhana. Saya
menonaktifkan pembuatan Main Class. Setelah selesai, Klik Finish.
• Selanjutnya Buat Form, dengan cara Klik Kanan pada Project -> New > JFrame Form
• Beri nama Frame dengan FrameKontak. Klik Finish
Desain Form kurang lebih seperti gambar di
bawah ini.
Berikut adalah cara untuk merubah nilai
properties pada jPanel
Variable
• 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
• Selanjutnya buat Package baru dengan cara Klik Kanan pada Project ->
New -> Java Package. Beri nama Tabel. Klik Finish.
• Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel ->
New -> Java Class. Beri nama DataKontak. Klik Finish
• Buat juga class TabelDataKontak pada Package Tabel
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;
• }
• 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;
• /**
• *

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

•

}

•

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

• Penambahan pencarian pada TxtCari
• Klik kanan TxtCari -> Events -> Key -> keyReleased
•
Script untuk TxtCari
•
cari( );
Build & Jalankan Program.

Weitere ähnliche Inhalte

Andere mochten auch

Section 4.2 finance, hr and payroll services in the cloud
Section 4.2 finance, hr and payroll services in the cloudSection 4.2 finance, hr and payroll services in the cloud
Section 4.2 finance, hr and payroll services in the cloudAssociation of Colleges
 
Section 4.4 employment business focused applications in the cloud
Section 4.4 employment business focused applications in the cloudSection 4.4 employment business focused applications in the cloud
Section 4.4 employment business focused applications in the cloudAssociation of Colleges
 
Section 4.5 learner focused applications in the cloud
Section 4.5 learner focused applications in the cloudSection 4.5 learner focused applications in the cloud
Section 4.5 learner focused applications in the cloudAssociation of Colleges
 
Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...
Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...
Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...Michal Cortez
 

Andere mochten auch (9)

Section 4.6 vle in the cloud
Section 4.6 vle in the cloudSection 4.6 vle in the cloud
Section 4.6 vle in the cloud
 
F l u i d a
F l u i d aF l u i d a
F l u i d a
 
Chesterfield 1
Chesterfield 1Chesterfield 1
Chesterfield 1
 
Section 4.2 finance, hr and payroll services in the cloud
Section 4.2 finance, hr and payroll services in the cloudSection 4.2 finance, hr and payroll services in the cloud
Section 4.2 finance, hr and payroll services in the cloud
 
Section 4.4 employment business focused applications in the cloud
Section 4.4 employment business focused applications in the cloudSection 4.4 employment business focused applications in the cloud
Section 4.4 employment business focused applications in the cloud
 
Section 4.5 learner focused applications in the cloud
Section 4.5 learner focused applications in the cloudSection 4.5 learner focused applications in the cloud
Section 4.5 learner focused applications in the cloud
 
Yeovil
YeovilYeovil
Yeovil
 
Patterns in JavaScript
Patterns in JavaScriptPatterns in JavaScript
Patterns in JavaScript
 
Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...
Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...
Michal Cortez - Marketing automation on-site @ Kongres Marketing Automation, ...
 

Ähnlich wie Java & my sql

Database operation di C++
Database operation di C++Database operation di C++
Database operation di C++FgroupIndonesia
 
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
Tutorial lanjutan java netbeans 8 : Create Read Update DeleteTutorial lanjutan java netbeans 8 : Create Read Update Delete
Tutorial lanjutan java netbeans 8 : Create Read Update DeleteSMK Negeri 6 Malang
 
Database Operation di VB.NET
Database Operation di VB.NETDatabase Operation di VB.NET
Database Operation di VB.NETFgroupIndonesia
 
17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sqlSaprudin Eskom
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriSyarif Fudin
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorialyunus pramono
 
17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sqlSaprudin Eskom
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQLHari Setiaji
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLitecreatorb dev
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxBBXSQUAD
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamentalLaode ADB Ali
 
Membuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaMembuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaEko Kurniawan Khannedy
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)Debby Ummul
 
sqlinjection-230606224413-2efc0d99.pptx
sqlinjection-230606224413-2efc0d99.pptxsqlinjection-230606224413-2efc0d99.pptx
sqlinjection-230606224413-2efc0d99.pptxAhmadSyaifuddin35
 
Mengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basicMengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basicFirdaus MKom
 
Native Xml Tutorial
Native Xml TutorialNative Xml Tutorial
Native Xml TutorialHari Setiaji
 

Ähnlich wie Java & my sql (20)

Database operation di C++
Database operation di C++Database operation di C++
Database operation di C++
 
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
Tutorial lanjutan java netbeans 8 : Create Read Update DeleteTutorial lanjutan java netbeans 8 : Create Read Update Delete
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
 
Database Operation di VB.NET
Database Operation di VB.NETDatabase Operation di VB.NET
Database Operation di VB.NET
 
17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQL
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamental
 
Membuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan javaMembuat aplikasi sederhana menggunakan java
Membuat aplikasi sederhana menggunakan java
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
 
sqlinjection-230606224413-2efc0d99.pptx
sqlinjection-230606224413-2efc0d99.pptxsqlinjection-230606224413-2efc0d99.pptx
sqlinjection-230606224413-2efc0d99.pptx
 
Vibi net sql server 2005 dan my sql
Vibi net sql server 2005 dan my sqlVibi net sql server 2005 dan my sql
Vibi net sql server 2005 dan my sql
 
Mengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basicMengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basic
 
SQL Injection.pdf
SQL Injection.pdfSQL Injection.pdf
SQL Injection.pdf
 
Laporan tugas akhir daspro kelompok
Laporan tugas akhir daspro kelompok Laporan tugas akhir daspro kelompok
Laporan tugas akhir daspro kelompok
 
Native Xml Tutorial
Native Xml TutorialNative Xml Tutorial
Native Xml Tutorial
 

Java & my sql

  • 2. • 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 email. • Dalam pembuatannya saya menggunakan apliaksi Netbeans dan paket XAMPP. • Jadi sebelum Anda mencoba tutorial ini, install terlebih dahulu aplikasi-aplikasi tersebut.
  • 3. • 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
  • 4. • Selanjutnya adalah pembuatan table pada kontak_db dengan nama tb_kontak. Masukkan nama tabel dan jumlah field.
  • 5. • Masukkan parameter setiap field seperti gambar di bawah ini lalu save
  • 6. Buka NetBeans. Buat Project Baru
  • 7. • Beri Nama Project dengan Buku Telepon Sederhana. Saya menonaktifkan pembuatan Main Class. Setelah selesai, Klik Finish.
  • 8. • Selanjutnya Buat Form, dengan cara Klik Kanan pada Project -> New > JFrame Form
  • 9. • Beri nama Frame dengan FrameKontak. Klik Finish
  • 10. Desain Form kurang lebih seperti gambar di bawah ini.
  • 11. Berikut adalah cara untuk merubah nilai properties pada jPanel
  • 13. • 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
  • 14.
  • 15. • Selanjutnya buat Package baru dengan cara Klik Kanan pada Project -> New -> Java Package. Beri nama Tabel. Klik Finish.
  • 16.
  • 17. • Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel -> New -> Java Class. Beri nama DataKontak. Klik Finish
  • 18.
  • 19. • Buat juga class TabelDataKontak pada Package Tabel
  • 20. 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; • }
  • 21. • 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; • }
  • 22. • public String getTelepon() { • return telepon; •} • public void setTelepon(String telepon) { • this.telepon = telepon; •} •}
  • 23. 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(); • }
  • 24. • @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; • } • }
  • 25. • @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()); • }
  • 26. • public void delete(int i, int baris){ • list.remove(i); • fireTableRowsDeleted(i, baris); •} • public DataKontak get(int baris){ • return (DataKontak) list.get(baris); •} •}
  • 27. 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{
  • 28. 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( )
  • 29. • ModelDataKontak = new TabelDataKontak(); • TblKontak.setModel(ModelDataKontak); • KoneksiDb( ); • tampil( ); • bersih( ); •}
  • 30. 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); } }
  • 31. • • • • • • 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( );
  • 32. • 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); } }
  • 33. • • • • • • • • • 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( ) {
  • 34. • @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); • }
  • 35. • private void simpan( ){ • try{ • String sql = "insert into tb_kontak values (" • +"'"+TxtNama.getText( )+"'," • +"'"+TxtTelepon.getText( )+"'," • +"'"+TxtEmail.getText( )+"'" • +")"; • script.executeUpdate(sql);
  • 36. • • • • • tampil( ); JOptionPane.showMessageDialog(null, TxtNama.getText( )+" berhasil Disimpan"); bersih( ); } catch(SQLException ex){ • JOptionPane.showMessageDialog(this, "No Telepon sudah Ada"); • bersih(); • } • } • ;
  • 37. • • • • • • • • • 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);
  • 38. • tampil( ); • JOptionPane.showMessageDialog(null, "Kontak berhasil dirubah"); • bersih( ); •} • catch(SQLException ex){ • System.err.print(ex); •} •} •}
  • 39. • 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);
  • 40. • tampil( ); • JOptionPane.showMessageDialog(null, "Kontak berhasil dihapus"); • bersih( ); •} • catch(SQLException ex){ • System.err.print(ex); •} •} •}
  • 41. • 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()+"%'";
  • 42. • 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); • } • }
  • 43. • 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.
  • 44. • Untuk menambahkan fungsi masing-masing pada setiap tombol (button) yang kita desain, dengan cara. • Klik kanan Button -> Events -> Action -> actionPerformed
  • 45. • Script untuk Button Simpan • simpan( ); • Script untuk Button Ubah • ubah( ); • Script untuk Button Hapus • hapus( );
  • 46. • Penambahan fungsi klik pada Tabel. • Klik Kanan Tabel -> Events -> Mouse -> mousePressed • Script untuk TblKontak • tabel( );
  • 47. cari( ); • Penambahan pencarian pada TxtCari • Klik kanan TxtCari -> Events -> Key -> keyReleased • Script untuk TxtCari • cari( );
  • 48. Build & Jalankan Program.