Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
P – 10 Bab 6 : JDBC & MySQL
6.1 Tujuan Mahasiswa mampu : • Mengetahui dan memahami JDBC, ODBC, langkah-langkah pemrograman JDBC dan konfigurasinya. • Mengetahui dan memahami koneksi database dengan JDBC, • Mengetahui dan memahami manipulasi database dengan menggunakan JDBC.
6.2 Materi 1. 2. 3. 4. 5. 6. 7.
MySQL JDBC Konfigurasi JDBC Koneksi MySQL dengan JDBC Membuat Database dan Table Input, Update, Delete, Search Data View Table Dengan Jtable
6.3 MySQL •
Secara umum dalam bahasa SQL, dibagi menjadi tiga bagian : 1. DDL (Data Definition Language) Merupakan perintah SQL yang berkaitan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. perintah DDL adalah: CREATE, ALTER, RENAME, DROP. 2. DML (Data Manipulation Language) Merupakan perintah SQL yang berkaitan dengan manipulasi atau pengolahan data atau record dalam table. perintah DML antara lain: SELECT, INSERT, UPDATE, DELETE. SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 1
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
3. DCL (Data Control Language) Merupakan perintah SQL yang berkaitan dengan manipulasi user dan hak akses (priviledges). perintah SQL yang termasuk dalam DCL antara lain: GRANT, REVOKE.
6.4 JDBC • • •
•
•
JDBC = Java Database Connectivity JDBC API = Application Proggramming Interface → merupakan Java API. JDBC API terdiri dari class dan interface (Dalam Pemrograman Java) yang menyediakan tools untuk mengembangkan database dan mengembangkan aplikasi database dengan pemrograman Java sesuai dengan standar API. Arsitektur JDBC API terdiri dari dua bagian, antara lain yaitu : 1. JDBC API digunakan untuk pengambangan aplikasi 2. JDBC Diver API digunakan untuk pengembangan driver JDBC Driver terdiri dari empat bagian, antara lain yaitu : 1. JDBC-ODBC Bridge and ODBC Driver ▪ Menggunakan ODBC Driver untuk mengakses JDBC 2. Native API Partly Java Technology-Enable Driver ▪ Mengkonversikan perintah JDBC menjadi client API untuk DBMS tertentu. 3. Pure Java Driver for Database Middleware ▪ Mengkonversikan perintah JDBC menjadi Middleware Vendor Protocol, yang selanjutnya diterjemaahkan oleh Middleware server ke dalam DBMS protocol. 4. Direct-to-Database Pure Java Driver ▪ Mengkonversikan perintah JDBC menjadi network protocol yang digunakan langsung oleh DBMS.
6.5 Konfigurasi JDBC Kebutuhan : 1.
Jdk • Download : http://www.oracle.com/technetwork/java/javase/downloads/index.html • Install : • http://sidiq.mercubuana-yogya.ac.id/installasi-dan-konfigurasi-java-jdkdan-jre-format-tar-gz-my-os-ubuntu-linux/ • http://sidiq.mercubuana-yogya.ac.id/installasi-dan-konfigurasi-java-jdkdan-jre-di-ubuntu-dan-windows/ SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 2
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
2.
Xampp / Lampp • Microsoft Windows (XP/Vista/7/8) Download : http://www.apachefriends.org/en/xampp-windows.html Install : Double klik File xampp-win32-1.7.3.exe •
My OS / Ubuntu (Linux) Download : http://www.apachefriends.org/en/xampp-linux.html Install : dnd@riyaniezt:~$ sudo tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt
3.
JDBC • Download “MySQL Connector For Java” : http://dev.mysql.com/downloads/connector/j/ Install : ◦ Microsoft Windows (XP/Vista/7) 1. Ekstrak file “mysql-connector-java-5.1.22.tar.gz”. 2. copy-kan file “mysql-connector-java-5.1.22-bin.jar” ke directory : “C:\Program Files\Java\jdk1.7.0_07\lib\”
◦
My OS / Ubuntu (Linux) 1. Ekstrak file “mysql-connector-java-5.1.22.tar.gz” 2. Copy-kan file “mysql-connector-java-5.1.22-bin.jar” ke directory : “/opt/java/jdk1.7.0_07/lib/”
Console : dnd@riyaniezt:~$ sudo cp mysql-connector-java-5.1.22bin.jar /opt/java/jdk1.7.0_07/lib/
Konfigurasi CLASSPATH : ▪
Microsoft Windows (XP/Vista/7/8) 1. Klik kanan icon My Computer, kemudian klik Properties, 2. Kemudian pilih Advanced System Setting, 3. Setelah muncul window System Properties, 4. Pilih tab Advanced klik Environment Variables, maka akan muncul window Environment Variables , 5. Untuk menambahkan CLASSPATH, Pada bagian System variables klik New , 6. Pada text box Variable name isi dengan CLASSPATH, 7. Pada Variable value isi dengan Alamat dari directory dimana MySQL Conector diletakkan, .;C:\Program bin.jar
Files\Java\jdk1.7.0_07\lib\mysql-connector-java-5.1.22-
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 3
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
8. 9.
Klik OK sebanyak tiga kali berturut-turut, Buka Command Prompt Windows (CMD), selanjutnya ketikkan perintah, > echo %CLASSPATH%
10. Restart komputer. ▪
My OS / Ubuntu (Linux) 1. Edit File “Environment”, dnd@riyaniezt:~$ sudo gedit /etc/environment
2.
Tambahkan baris perintah berikut ke dalam file “Environment” : CLASSPATH=".:/opt/java/jdk1.7.0_07/lib/mysql-connector-java-5.1.22bin.jar"
3.
kemudian Save. Tulis perintah : dnd@riyaniezt:~$ echo $CLASSPATH
4.
Restart komputer. dnd@riyaniezt:~$ sudo reboot
6.6 Koneksi MySQL Dengan JDBC •
Mengaktifkan JDBC Driver : Class.forName("com.mysql.jdbc.Driver");
•
Membuat koneksi ke database : con = DriverManager.getConnection(url,usr,pwd);
Keterangan : • con → merupakan variable bertipe Connection, • url → merupakan informasi jenis database + host database + nama database • usr → merupakan nama user yang digunakan untuk koneksi ke database • pwd → merupakan password yang digunakan untuk masuk ke database
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 4
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
•
Contoh program : /* ------------------------* KoneksiMySQL.java * author : SidiQ - UMBY --------------------------- */ import java.sql.*; class KoneksiMySQL { String url, usr, pwd, dbn; public KoneksiMySQL() { dbn = "Prak"; url = "jdbc:mysql://localhost/" + dbn; usr = "root"; pwd = ""; } public Connection getConnection() { Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(url, usr,pwd); System.out.println("Ok : Driver Ditemukan"); } catch (ClassNotFoundException e) { System.out.println("Error: Driver Tidak Ditemukan \n" +e+ "\n"); } catch (SQLException e) { System.out.println("Error: Tidak Bisa Koneksi Ke Database \n"+e+"\n"); } return con; } private void PembuatDialog() { System.out.println("Created By : DnD ~ http://sq.web.id"); System.exit(0); } public static void main(String[] args) { KoneksiMySQL dnd = new KoneksiMySQL(); dnd.getConnection(); dnd.PembuatDialog(); }
} SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 5
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Output :
6.7 Membuat Database dan Table Database : mysql > CREATE DATABASE Prak; mysql > USE Prak ;
Table Dengan MySQL : mysql > CREATE TABLE `Prak`.`T_Mahasiswa` ( `NIM` char( 10 ) , `Name` varchar( 40 ), `Address` varchar( 45 ), `Gender` varchar( 6 ), `Kelas` varchar( 20 )) ;
Table Dengan MySQL dan JAVA : • •
Dalam pemrograman Java pernyataan DDL (CREATE, DROP, ALTER) dijalankan dengan menggunakan method executeUpdate. Contoh pembuatan table dengan Java : SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 6
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
String sql = "CREATE TABLE T_Mahasiswa"+"(NIM char(10),"+ "Name varchar(40),"+"Address varchar(45)," + "Gender varchar(6), " +"Kelas varchar(20))"; stmt.executeUpdate(sql);
•
Contoh program : /* ------------------------* SetupTable_Mahasiswa.java * author : SidiQ - UMBY --------------------------- */ import import import import
java.awt.*; javax.swing.*; java.awt.event.*; java.sql.*;
class SetupTable_Mahasiswa { public static void main(String args[]) { KoneksiMySQL open = new KoneksiMySQL (); Connection mysql = open.getConnection(); try { Statement stmt = mysql.createStatement(); String sql = "CREATE TABLE T_Mahasiswa"+"(NIM char(10),"+ "Name varchar(40),"+"Address varchar(45)," + "Gender varchar(6), " +"Kelas varchar(20))"; stmt.executeUpdate(sql); stmt.close(); JOptionPane.showMessageDialog(null, "Table Mahasiswa Berhasil Dibuat"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } }
} Output :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 7
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Keterangan : • Pernyataan SQL yang seharusnya diakhir pernyataan selalu diakhiri dengan tanda titik koma “ ; “, dalam pemrograman Java tidak perlu menambahkan tanda titik koma “ ; “ tersebut, karena akan secara otomatis tanda titik koma “ ; “ akan dilakukan oleh JDBC API.
6.8 Input Table Input Table Dengan MySQL : mysql > INSERT INTO `T_Mahasiswa` VALUES ( 'NIM', 'Name','Address','Gender','Kelas');
Input Table Dengan Java : •
Contoh input table dengan Java : String sql = "INSERT INTO T_Mahasiswa VALUES ('"+NIM+"', '"+Name+"','"+Address+"','"+Gender+"','"+Kelas+"');"; stmt.executeUpdate (sql);
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 8
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
•
Contoh program : /* ------------------------* Input_Mahasiswa.java * author : SidiQ - UMBY --------------------------- */ import import import import import
java.awt.*; javax.swing.*; java.awt.event.*; java.io.*; java.sql.*;
class Input_Mahasiswa extends JFrame { JLabel labelNIM=new JLabel("NIM"); JTextField textNIM=new JTextField(30); JLabel labelName=new JLabel("Name"); JTextField textName=new JTextField(30); JLabel labelAddress=new JLabel("Address"); JTextField textAddress=new JTextField(50); JLabel labelGender=new JLabel("Gender"); JButton buttonSAVE=new JButton("SAVE"); JButton buttonEXIT=new JButton("EXIT"); JRadioButton radioMale=new JRadioButton("Male"); JRadioButton radioFemale=new JRadioButton("Female"); ButtonGroup groupGender=new ButtonGroup(); JLabel labelClass=new JLabel("Class"); String[] GClass={"Morning","Evening","Extension"}; JComboBox comboClass=new JComboBox(GClass); Input_Mahasiswa() { setTitle("Data Mahasiswa"); setLocation(300,100); setSize(300,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void GUI() { getContentPane().setLayout(null); getContentPane().add(labelNIM); labelNIM.setBounds(10,10,70,20); getContentPane().add(textNIM); textNIM.setBounds(80,10,110,20); getContentPane().add(labelName);labelName.setBounds(10,30,70,20); getContentPane().add(textName); textName.setBounds(80,30,110,20); getContentPane().add(labelAddress);labelAddress.setBounds(10,50,70,20); getContentPane().add(textAddress); textAddress.setBounds(80,50,160,20); getContentPane().add(labelGender); labelGender.setBounds(10,70,70,20); getContentPane().add(radioMale); radioMale.setBounds(80,70,80,20); getContentPane().add(radioFemale); radioFemale.setBounds(160,70,80,20); groupGender.add(radioMale); groupGender.add(radioFemale);
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 9
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 getContentPane().add(labelClass);labelClass.setBounds(10,90,70,20); getContentPane().add(comboClass);comboClass.setBounds(80,90,100,20); getContentPane().add(buttonSAVE); buttonSAVE.setBounds(60,120,90,20); getContentPane().add(buttonEXIT);buttonEXIT.setBounds(160,120,80,20); setVisible(true); } void Perintah() { // button exit buttonEXIT.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { if (JOptionPane.showConfirmDialog( null, "Apakah Anda benar-benar akan keluar?","Konfirmasi", JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { System.exit(0); } } } ); //button save buttonSAVE.addActionListener ( new ActionListener() { public void actionPerformed (ActionEvent e) { String NIM, Name, Address, Gender, Kelas; NIM = textNIM.getText(); Name = textName.getText(); Address = textAddress.getText(); if(radioMale.isSelected()==true) { Gender = radioMale.getText(); } else { Gender = radioFemale.getText(); } Kelas = (String) comboClass.getSelectedItem(); //input ke database KoneksiMySQL open = new KoneksiMySQL (); Connection mysql = open.getConnection(); try { Statement stmt = mysql.createStatement();
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 10
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 String sql = "INSERT INTO T_Mahasiswa VALUES ('"+NIM+"', '"+Name+"','"+Address+"','"+Gender+"','"+Kelas+"');"; int i = stmt.executeUpdate (sql); if (i == 1) { JoptionPane.showMessageDialog(null, "Data Mahasiswa Berhasil Disimpan"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } } }); } public static void main(String[]args) { Input_Mahasiswa sq=new Input_Mahasiswa(); sq.GUI(); sq.Perintah(); }
}
Output :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 11
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
6.9 Search dan Update Update Table Dengan MySQL : mysql > UPDATE `T_Mahasiswa` SET `Name`='Name', `Address`='Address', `Gender`='Gender', `Kelas`='Kelas' WHERE `NIM`='NIM';
Update Table Dengan Java : •
Contoh update data dengan Java : String sql = "UPDATE T_Mahasiswa SET Name='"+Name+"', Address='"+Address+"', Gender='"+Gender+"', Kelas='"+Kelas+"' WHERE NIM='"+NIM+"'"; int i = stmt.executeUpdate (sql);
•
Contoh program : /* ------------------------* Update_Mahasiswa.java * author : SidiQ - UMBY --------------------------- */ import import import import import
java.awt.*; javax.swing.*; java.awt.event.*; java.io.*; java.sql.*;
class Update_Mahasiswa extends JFrame { JLabel labelNIM=new JLabel("NIM"); JTextField textNIM=new JTextField(30); JLabel labelName=new JLabel("Name"); JTextField textName=new JTextField(30); JLabel labelAddress=new JLabel("Address"); JTextField textAddress=new JTextField(50); JLabel labelGender=new JLabel("Gender"); JButton buttonSEARCH=new JButton("SEARCH"); JButton buttonUPDATE=new JButton("UPDATE"); JButton buttonEXIT=new JButton("EXIT"); JRadioButton radioMale=new JRadioButton("Male"); JRadioButton radioFemale=new JRadioButton("Female");
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 12
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
ButtonGroup groupGender=new ButtonGroup(); JLabel labelClass=new JLabel("Class"); String[] GClass={"Morning","Evening","Extension"}; JComboBox comboClass=new JComboBox(GClass); Update_Mahasiswa() { setTitle("Data Mahasiswa"); setLocation(300,100); setSize(300,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void GUI() { getContentPane().setLayout(null); getContentPane().add(labelNIM); labelNIM.setBounds(10,10,70,20); getContentPane().add(textNIM); textNIM.setBounds(80,10,110,20); getContentPane().add(buttonSEARCH); buttonSEARCH.setBounds(200,10,90,20); getContentPane().add(labelName);labelName.setBounds(10,30,70,20); getContentPane().add(textName); textName.setBounds(80,30,110,20); getContentPane().add(labelAddress);labelAddress.setBounds(10,50,70,20); getContentPane().add(textAddress); textAddress.setBounds(80,50,160,20); getContentPane().add(labelGender); labelGender.setBounds(10,70,70,20); getContentPane().add(radioMale); radioMale.setBounds(80,70,80,20); getContentPane().add(radioFemale); radioFemale.setBounds(160,70,80,20); groupGender.add(radioMale); groupGender.add(radioFemale); getContentPane().add(labelClass);labelClass.setBounds(10,90,70,20); getContentPane().add(comboClass);comboClass.setBounds(80,90,100,20); getContentPane().add(buttonUPDATE);buttonUPDATE.setBounds(60,120,90,20); getContentPane().add(buttonEXIT);buttonEXIT.setBounds(160,120,80,20); setVisible(true); } void Perintah() { // button exit buttonEXIT.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { if (JOptionPane.showConfirmDialog( null, "Apakah Anda benar-benar akan keluar?","Konfirmasi", JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { System.exit(0); } } } );
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 13
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
// button search buttonSEARCH.addActionListener ( new ActionListener() { public void actionPerformed (ActionEvent e) { String search; String NIM, Name, Address, Gender, Kelas; KoneksiMySQL open = new KoneksiMySQL (); Connection mysql = open.getConnection(); try { search=textNIM.getText(); Statement stmt = mysql.createStatement(); String sql = "SELECT * FROM T_Mahasiswa WHERE NIM like '"+search+"'"; ResultSet i = stmt.executeQuery (sql); if(i.next()) { textNIM.setText(i.getString(1)); textName.setText(i.getString(2)); textAddress.setText(i.getString(3)); Gender = i.getString(4); if(Gender.equals("Male")) { radioMale.setSelected(true); } else { radioFemale.setSelected(true); } comboClass.setSelectedItem(i.getString(5)); } else { JOptionPane.showMessageDialog(null, "Data Mahasiswa Tidak Ada"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } } }); // button update buttonUPDATE.addActionListener ( new ActionListener() { public void actionPerformed (ActionEvent e) { String NIM, Name, Address, Gender, Kelas; NIM = textNIM.getText();
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 14
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 Name = textName.getText(); Address = textAddress.getText(); if(radioMale.isSelected()==true) { Gender = radioMale.getText(); } else { Gender = radioFemale.getText(); } Kelas = (String) comboClass.getSelectedItem(); //input ke database KoneksiMySQL open = new KoneksiMySQL (); Connection mysql = open.getConnection(); try { Statement stmt = mysql.createStatement(); String sql = "UPDATE T_Mahasiswa SET Name='"+Name+"', Address='"+Address+"', Gender='"+Gender+"', Kelas='"+Kelas+"' WHERE NIM='"+NIM+"'"; int i = stmt.executeUpdate (sql); if (i == 1) { JOptionPane.showMessageDialog(null, "Data Mahasiswa Berhasil Diupdate"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } } });
} public static void main(String[]args) { Update_Mahasiswa sq=new Update_Mahasiswa(); sq.GUI(); sq.Perintah(); } }
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 15
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Output :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 16
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
6.10 Delete Delete Table Dengan MySQL : mysql > DELETE FROM `T_Mahasiswa` WHERE `NIM`='NIM';
Delete Table Dengan Java : •
Contoh update data dengan Java : String sql = "DELETE FROM T_Mahasiswa WHERE NIM='"+NIM+"'"; int i = stmt.executeUpdate (sql);
•
Contoh Program : /* ------------------------* Delete_Mahasiswa.java * author : SidiQ - UMBY --------------------------- */ import import import import import
java.awt.*; javax.swing.*; java.awt.event.*; java.io.*; java.sql.*;
class Delete_Mahasiswa extends JFrame { JLabel labelNIM=new JLabel("NIM"); JTextField textNIM=new JTextField(30); JLabel labelName=new JLabel("Name"); JTextField textName=new JTextField(30); JLabel labelAddress=new JLabel("Address"); JTextField textAddress=new JTextField(50); JLabel labelGender=new JLabel("Gender"); JButton buttonSEARCH=new JButton("SEARCH"); JButton buttonDELETE=new JButton("DELETE"); JButton buttonEXIT=new JButton("EXIT"); JRadioButton radioMale=new JRadioButton("Male"); JRadioButton radioFemale=new JRadioButton("Female"); ButtonGroup groupGender=new ButtonGroup(); JLabel labelClass=new JLabel("Class"); String[] GClass={"Morning","Evening","Extension"}; JComboBox comboClass=new JComboBox(GClass); Delete_Mahasiswa() { setTitle("Data Mahasiswa"); setLocation(300,100); setSize(300,200);
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 17
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} void GUI() { getContentPane().setLayout(null); getContentPane().add(labelNIM); labelNIM.setBounds(10,10,70,20); getContentPane().add(textNIM); textNIM.setBounds(80,10,110,20); getContentPane().add(buttonSEARCH); buttonSEARCH.setBounds(200,10,90,20); getContentPane().add(labelName);labelName.setBounds(10,30,70,20); getContentPane().add(textName); textName.setBounds(80,30,110,20); getContentPane().add(labelAddress);labelAddress.setBounds(10,50,70,20); getContentPane().add(textAddress); textAddress.setBounds(80,50,160,20); getContentPane().add(labelGender); labelGender.setBounds(10,70,70,20); getContentPane().add(radioMale); radioMale.setBounds(80,70,80,20); getContentPane().add(radioFemale); radioFemale.setBounds(160,70,80,20); groupGender.add(radioMale); groupGender.add(radioFemale); getContentPane().add(labelClass);labelClass.setBounds(10,90,70,20); getContentPane().add(comboClass);comboClass.setBounds(80,90,100,20); getContentPane().add(buttonDELETE);buttonDELETE.setBounds(60,120,90,20); getContentPane().add(buttonEXIT);buttonEXIT.setBounds(160,120,80,20); setVisible(true); } void Perintah() { // button exit buttonEXIT.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { if (JOptionPane.showConfirmDialog( null, "Apakah Anda benar-benar akan keluar?","Konfirmasi", JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { System.exit(0); } } } ); // button search buttonSEARCH.addActionListener ( new ActionListener() { public void actionPerformed (ActionEvent e) { String search; String NIM, Name, Address, Gender, Kelas; KoneksiMySQL open = new KoneksiMySQL ();
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 18
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 Connection mysql = open.getConnection(); try { search=textNIM.getText(); Statement stmt = mysql.createStatement(); String sql = "SELECT * FROM T_Mahasiswa WHERE NIM like '"+search+"'"; ResultSet i = stmt.executeQuery (sql); if(i.next()) { textNIM.setText(i.getString(1)); textName.setText(i.getString(2)); textAddress.setText(i.getString(3)); Gender = i.getString(4); if(Gender.equals("Male")) { radioMale.setSelected(true); } else { radioFemale.setSelected(true); } comboClass.setSelectedItem(i.getString(5)); } else { JOptionPane.showMessageDialog(null, "Data Mahasiswa Tidak Ada"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); }
} });
// button delete buttonDELETE.addActionListener ( new ActionListener() { public void actionPerformed (ActionEvent e) { String NIM, Name, Address, Gender, Kelas; NIM = textNIM.getText(); Name = textName.getText(); Address = textAddress.getText(); if(radioMale.isSelected()==true) { Gender = radioMale.getText(); } else { Gender = radioFemale.getText(); }
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 19
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 Kelas = (String) comboClass.getSelectedItem(); //input ke database KoneksiMySQL open = new KoneksiMySQL (); Connection mysql = open.getConnection(); try { Statement stmt = mysql.createStatement(); String sql = "DELETE FROM T_Mahasiswa WHERE NIM='"+NIM+"'"; int i = stmt.executeUpdate (sql); if (i == 1) { JOptionPane.showMessageDialog(null,"Data Mahasiswa Berhasil Dihapus"); } } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); }
} }); } public static void main(String[]args) { Delete_Mahasiswa sq=new Delete_Mahasiswa(); sq.GUI(); sq.Perintah(); } }
Output :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 20
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
6.11 View Table dengan JTable View Table Dengan MySQL : mysql > SELECT * FROM `T_Mahasiswa`;
View Table Dengan Java : •
Contoh view table dengan Java : String sql = "SELECT * FROM T_Mahasiswa"; stmt.executeQuery(sql);
•
Contoh program : /* ------------------------* View_Mahasiswa.java * author : SidiQ - UMBY --------------------------- */ import java.awt.*; import java.sql.*;
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 21
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
import javax.swing.*; import javax.swing.table.*; public class View_Mahasiswa extends JPanel { String[] header = {"NIM","Name","Address","Gender","Class"}; JTable table = new JTable(); JScrollPane scrollTable = new JScrollPane(); private Object[][] dataTable = null; View_Mahasiswa() { KoneksiMySQL open = new KoneksiMySQL (); Connection mysql = open.getConnection(); try { Statement stmt = mysql.createStatement(); String sql = "SELECT * FROM T_Mahasiswa"; ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData meta = rs.getMetaData(); int kolom = meta.getColumnCount(); int baris = 0; while(rs.next()) { baris = rs.getRow(); } dataTable = new Object[baris][kolom]; int x = 0; rs.beforeFirst(); while(rs.next()) { dataTable[x][0] = rs.getString("NIM"); dataTable[x][1] = rs.getString("Name"); dataTable[x][2] = rs.getString("Address"); dataTable[x][3] = rs.getString("Gender"); dataTable[x][4] = rs.getString("Kelas"); x++; } scrollTable.setViewportView(table); table.setModel(new DefaultTableModel(dataTable, header)); add(scrollTable, BorderLayout.NORTH); stmt.close(); rs.close(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Data Mahasiswa Error"); } } void GUI() {
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 22
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703 JFrame frame = new JFrame("Data Mahasiswa"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); View_Mahasiswa content = new View_Mahasiswa(); content.setOpaque(true); frame.setContentPane(content); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String [] args) { View_Mahasiswa sq=new View_Mahasiswa(); sq.GUI(); }
}
Output :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 23
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
6.12 Tugas 1. Lengkapilah program di atas dengan menu sehingga menjadi seperti berikut ini : Menu :
Hasil :
2. Pada Program di atas, jika di klik tombol Exit atau Silang di jendela form (ex : form Input Data Mahasiswa), maka akan keluar seluruh program / menu. Tugas : Modifikasilah program tersebut, sehingga jika di klik tombol Exit atau Silang di jendela form (ex : form Input Data Mahasiswa), maka jendela Menu masih terlihat. 3. Berdasarkan contoh yang telah diberikan di atas. Buat satu database dan table. Dengan tema kasus bebas (ditentukan sendiri). Tugas : Kemudian buat file Java untuk melakukan operasi edit, input maupun delete. Kemudian buat Menu untuk mengakses semua bagian program tersebut. SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 24
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Ketentuan Tugas : • • •
Tugas (no 1,2 dan 3) di print (source code dan screenshot hasil eksekusi) dan dikumpulkan pada pertemuan selanjutnya (pertemuan ke 11) Tugas sebagai syarat mengikuti perkuliahan pada tanggal 12 Desember 2013. Tugas (no 4) tulis tangan : ◦ Tuliskan jika ada kesulitan Anda (baik dalam memahami alur maupun konfigurasi) yang belum dimengerti mengenai materi JDBC dan MySQL.
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 25