2011
Membuat Aplikasi Sederhana Menggunakan Java Swing , Netbeans IDE dan RDBMS MYSQL Mini E-book ini adalah corat coret iseng saya yang dibuat secara tidak sengaja,berisikan step by step pembuatan aplikasi sangat sangat sangat sederhana, bagi yang sudah mahir saya rasa tidak perlu membaca catatan saya ini.
Dany Candra Febroanto danydongkrak.worpress.com 11/7/2011
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Membuat Aplikasi Sederhana Menggunakan Java Swing , Netbeans IDE dan RDBMS MYSQL Dalam bahasan kali ini saya akan membahas sedikit banyak tentang pembuatan aplikasi sederhana menggunakan java swing. Aplikasi yang akan saya buat adalah aplikasi java yang terhubung dengan sistem basis data MYSQL. Tidak terlalu banyak aksi hanya ada aksi Simpan Data,Ubah Data,Hapus Data dan Cari Data atau lebih dikenal dengan CRUD (Create Read Update Delete).Untuk membantu pembuatan aplikasi ini saya menggunakan Netbeans IDE sebagai tool pendukung. Sebelum memulai membuat aplikasi kita harus memiliki sebuah database, database yang akan kita buat sangat sederhana juga hanya memiliki satu table dimana table tersebut memiliki beberapa kolom.Misal kita akan membuat database SEKOLAH yang memiliki table SISWA dan didalamnya ada kolom: no induk, nama, nama wali,tanggal lahir, telepon, alamat. Step By step : 1. Buat Database Seperti dijelaskan diatas kita akan membuat database SEKOLAH maka kita akan menggunakan perintah CREATE DATABASE `SEKOLAH`; 2. Buat Table Setelah membuat Database kita lanjut mebuat table yang berisi kolom – kolom yang kita inginkan dengan menngunakan perintah CREATE TABLE `siswa` ( `no_induk` varchar(10) NOT NULL, `nama` varchar(50) DEFAULT NULL, `nama_wali` varchar(50) DEFAULT NULL, `tanggal_lahir` date DEFAULT NULL, `telepon` varchar(20) DEFAULT NULL, `alamat` varchar(20) DEFAULT NULL, PRIMARY KEY (`no_induk`) )
3. Buat Project Klik “File” >> “New Project” setelah itu pilih “Java” di jendela “Categories” dan pilih “Java Application” pada jendela “Projects”
danydongkrak.wordpress.com
Page 1
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL
Pilih tombol “Next >” untuk menuju jendela selanjutnya. Kemudian beri nama pada project yang kana kita buat setelah itu uncheck pada checkbox create main class karena kita menyeting main class di akhir pembuatan project.
danydongkrak.wordpress.com
Page 2
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Berikut adalah struktur project yang di generate secara otomatis oleh Netbeans IDE.
4. Membuat Form yang diinginkan Setelah membuat project kita akan membuat GUI (Grapich User Interface) atau tampilan pada aplikasi yang akan kita buat. Karena pada project kita belum disediakan package oleh netbeans maka kita perlu membuat package sendiri untuk menempatkan form yang akan kita buat.Klik Kanan pada folder “Source Packages” >> “New” >> ”Java Package” setelah itu beri nama dan “Finish”.
danydongkrak.wordpress.com
Page 3
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Setelah membuat package untuk meletakan form, sekarang kita akan membuat Form menggunakan “JFrame”, langkahnya sama seperti membuat package . Klik Kanan pada package “SekolahCrud” >> “New” >> ”JFrameForm” setelah itu beri nama dan “Finish”.
Sekarang kita dapat melihat Form yang kita buat tadi di GUI Builder yang disediakan oleh Netbeans yang disebelah kanannya terdapat palete dan propertis yang merupakan komponen dan atribute yang dapat kita setting sesuai keinginan.
Untuk menambahkan sebuah komponen yang kita inginkan, kita cukup memilih satu komponen dari pallete dan men-drag ke dalam Form di GUI Builder. Semisal kita akan menambahkan komponen Jlabel. Kita hanya perlu memilih Jlabel dan menarik kedalam GUI Builder.
Kemudian Drag ke dalam Form di GUI Builder danydongkrak.wordpress.com
Page 4
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL
Untuk merubah “Variable Name” sebuah komponen kita hanya perlu “Klik kana komponen”>>”Edit Variable Name”>>Beri Nama>>”OK” “Dalam pemberian nama sebuah variable tidak boleh menggangung spasi” .
Untuk merubah property kita hanya perlu memilih komponen, masuk ke menu “Properties” pilih propery yang akan diubah dan kita tinggal beri value (nilai). Misal kita akan merubah text dari komponen Jlabel. Kita pilih label yang akan kita ubah propertinya >> Menu Properties >> pilih propert “Text” >> beri Nilai.
danydongkrak.wordpress.com
Page 5
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Kita akan membuat tampilan sebagai berikut
danydongkrak.wordpress.com
Page 6
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Komponen JFrame Jlabel Jlabel Jlabel Jlabel Jlabel Jlabel Jlabel
Variable Name
Property
-
Title text text text text text text text
JTextField JTextField JFormatedTextField JTextField JTextField JTextArea jTextField jTable jButton jButton jButton jButton jButton
textNoInduk textNama textTanggal textWali textTelepon textAlamat textCari tabelSiswa btnRefresh btnSimpan btnUbah btnHapus btnBatal
text text value text text text text text text text text text
Value Aplikasi Sekolah No Induk Nama Siswa Nama Wali Tanggal Lahir No Telepon Alamat Cari Berdasarkan Nama Siswa
new java.util.Date()
Refresh Simpan Data Ubah Data Hapus Data Batal
Untuk JformatedTextField kita akan membuat fromat tanggal secara otomatis, caranya pilih komponen “textTanggal” >> “Menu Properties” >> “formatedFactory” >> ubah dengan cara klik tombol [...]
danydongkrak.wordpress.com
Page 7
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Lalu akan muncul jendela dialog formatterFactory, pilih datepadakolom Categories, pilih long pada kolom Format kemudian klik OK.
Mengubah property value pada JformattedTextField adalah sebagai berikut: masuk ke menu property >> “value” >> klik tombol *. ...]
Lalu akan muncul dialog sekarang pilih “Custum Code” pada combo box
danydongkrak.wordpress.com
Page 8
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL
Lalu ketikan new java.util.Date()
5. Membuat Kelas Koneksi Ke Database Setelah membuat Database dan Form kita sekarang akan membuat kelas koneksi yang berguna untuk menghubungkan Aplikasi yang kita buat dengan Database yang telah kita buat. Langkah pertama yang harus dilakukan untuk membuat koneksi ke database adalah menambahkan Library MySQLConnectorJDBCDiver ke Project yang kita buat.
danydongkrak.wordpress.com
Page 9
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Klik kanan “Libraries” >> “Add Library” >> “Import” >> Pilih MySQL JDBC Driver>>“Import Library” >> “Add library”
danydongkrak.wordpress.com
Page 10
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL
Kemudian kita membuat kelas baru dengan cara “SekolahCrud” >> “New” >> ”Java Class” setelah itu beri nama “SekolahDatabase” dan “Finish”.
Maka Netbeans akan mengenerate kode sebagai berikut
danydongkrak.wordpress.com
Page 11
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL
Kemudian tambahkan variable bertipe data Connection dari kelas java.sql.Connection lalu berinama “connection” dan berikan sifat static agar variable ini dapat digunakan secara langsung tanpa mebuat object terlebih dahulu. (Ketik yang dicetak tebal) package SekolahCrud; import java.sql.Connection; public class SekolahDatabase { private static Connection connection; }
Tambahkan metode getConnection() untuk memanggil variable connection itu sendiri dikelas lain. package SekolahCrud; import java.sql.Connection; public class SekolahDatabase { private static Connection connection; public static Connection getConnection() { return connection; } } Sekarang variable connection yang akan kita gunakan untuk mengkoneksikan ke database sudah dapat di panggil dari kelas lain. Namun akan terjadi error karena pada metode getConnection() masih kosong hanya berisikan perintah mengembalikan nilai
danydongkrak.wordpress.com
Page 12
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL connection. Maka dari itu kita perlu menambah kan perintah pengecekan koneksi dan pengambilan driver. package SekolahCrud; import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import java.sql.Connection; import java.sql.SQLException; public class SekolahDatabase { private static Connection connection; public static Connection getConnection() { //pengecekan koneksi database if (connection==null) { try { String userName="root";//user Database String password="12345";//password Database String URL="jdbc:mysql://localhost:3306/sekolah";//lokasi database MysqlDataSource source=new MysqlDataSource(); source .setUser(userName); source .setPassword(password); source .setURL(URL); conne ction=source .getConnection(); } catch (SQLException ex) { System.out.println("Terjadi Error saat koneksi database dengan pesan"); } } return connection; } }
Catatan : User Name dan Password disesuaikan dengan Setting database di komputer kita masing masing. Nah sekarang kita sudah selesai dengan membuat koneksi database. 6. Menyesuaikan Tabel Setelah membuat koneksi kita akan menyesuaikan tabel agar sesuai dengan database yang kita buat caranya sebagi berikut. Pilih Form yang telah kita buat lalu masuk ke tab “Source” untuk mengubah kode kode program yang ada.
Kita sekarang sudah ada di tab Source di sini kita sudah dapat melakukan coding terhadap aplikasi yang kita buat. Pertama kita akan membuat variable bertipe data DefaultTableModel.
danydongkrak.wordpress.com
Page 13
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL
Kemudian kita buat method initTable()yang berfungsi untuk menyesuaikan kolom kolom dengan kolom yang ada di database.Method ini diletakan sebelum kurang kurawal di akhir perintah program.
Kemudian panggil method initTable() di konstruktor
danydongkrak.wordpress.com
Page 14
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL 7. Menambahkan Event Setelah selesai menyesuaikan table sekarang kita akan membuat event atau aksi untuk memanipulasi data seprti tambah data, load data,cari data dll. a. Event Load Data Event ini berfungsi untuk melakukan load data pada saat form pertamakali dibuka,dan mengisi tabelSiswa dengan data yang ada di database.Pertama kita buat dulu variablebertipe Connection untuk melakukan koneksi.
Kemudian Tambahkan Method loadData() di bawah method initTable() dan isikan kode seperti berikut.
danydongkrak.wordpress.com
Page 15
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Lalu panggil method loadData() di konstruktor .
b. Menambahkan Event Simpan Data Sekarang kita akan menambahkan event yang ebrjalan ketika tombol simpan data kita click. Pertama masuk ke tab Design, kemudian pilih tombol Simpan Data klik kanan >> “Events” >> “Action” >>“Action Permormed”
lalu netbeans akan mengenerate kode sebagai berikut.
Dalam method ini kita akan memasukan data ke tabel “siswa” yang ada di database “Sekolah” maka kita memerlukan inputan yang diperoleh dari beberapa textFiled yang ada di Form yang kita buat. Untuk mendapatkan inputan tersebut diperlukan method getText() untuk mendapatkan inputan dari text Field dan getValue() untuk danydongkrak.wordpress.com
Page 16
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL mendapatkan inputan dari FormatedTextField.Untuk selengkapnya tuliskan source di bawah ini. private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { // mengambil inputan dari form String noInduk=textNoInduk.getText(); String nama=textNama.getText(); String namaWali=textWali.getText(); Date tanggalLahir=(Date) textTanggal.getValue(); String telepon=textTelepon.getText(); String alamat=textalamat.getText(); //masukan data ke database connection=SekolahDatabase.getConnection(); String query="insert into siswa " + "(no_induk,nama,nama_wali,tanggal_lahir,telepon,alamat) " +"values (?,?,?,?,?,?)"; try { PreparedStatement statement=connection.prepareStatement(query); statement.setString(1, noInduk); statement.setString(2, nama); statement.setString(3, namaWali); statement.setDate(4, new java.sql.Date(tanggalLahir.getTime())); statement.setString(5, telepon); statement.setString(6, alamat); statement.executeUpdate(); } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Terjadi error pada saat input data") } finally{ loadData(); } } Pada akhir perintah di blok finally ditambahkan methode loadData() yang berfungsi untuk mereload table sehingga data yang didapat adalah data yang telah mengalami perubahan di database setelah terjadi penambahan data.
danydongkrak.wordpress.com
Page 17
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL c. Menambahkan Event Ubah Data Sekarang kita akan menambahkan event yang berjalan ketika tombol ubah data kita click. Pertama masuk ke tab Design, kemudian pilih tombol Ubah Data klik kanan >> “Events” >> “Action” >>“Action Permormed” lalu netbeans akan mengenerate kode sebagai berikut.
Dalam method ini kita kan mengubah data dari data yang kita seleksi di tabel,maka dari itu kita perlu melakukan seleksi data di tabel sebelum merubah data di database melalui inputan yang akan dikirm ke database.Untuk selengkapnya tuliskan source di bawah ini. private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // method untuk menyeleksi data yang akan di ubah int row = tabelSiswa.getSelectedRow(); if (row == -1) { return; } // mengambil inputan untuk data yang akan di ubah String noInduk = (String) tableModel.getValueAt(row, 0); String nama = textNama.getText(); String namaWali = textWali.getText(); Date tanggalLahir = (Date) textTanggal.getValue(); String telepon = textTelepon.getText(); String alamat = textalamat.getText(); //lakukan perubahan data ke database connection = SekolahDatabase.getConnection(); String query = "update siswa set " + "nama=?,nama_wali=?,tanggal_lahir=?,telepon=?,alamat=? " + "where no_induk=?"; try { PreparedStatement statement = connection.prepareStatement(query); statement.setString(1, nama); statement.setString(2, namaWali); statement.setDate(3, new java.sql.Date(tanggalLahir.getTime())); statement.setString(4, telepon); statement.setString(5, alamat); statement.setString(6, noInduk); statement.executeUpdate(); } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Terjadi error pada saat update data"); } finally { loadData(); }
} danydongkrak.wordpress.com
Page 18
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Pada akhir perintah di blok finally ditambahkan methode loadData() yang berfungsi untuk mereload table sehingga data yang didapat adalah data yang telah mengalami perubahan di database setelah terjadi penambahan data. d. Menambahkan Event Hapus Data Sekarang kita akan menambahkan event yang berjalan ketika tombol hapus data kita click. Pertama masuk ke tab Design, kemudian pilih tombol Hapus Data klik kanan >> “Events” >> “Action” >>“Action Permormed” lalu netbeans akan mengenerate kode sebagai berikut.
Sama seperti tombol ubah,dalam tombol hapus kita perlu melakukan seleksi terhadap data yang akan di hapus baru kita bisa melakukan hapus data.Untuk selengkapnya tuliskan source di bawah ini. private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // method untuk menyeleksi data yang akan di ubah int row = tabelSiswa.getSelectedRow(); if (row == -1) { return; } // mengambil inputan untuk data yang akan di ubah String noInduk = (String) tableModel.getValueAt(row, 0); //lakukan perubahan data ke database connection = SekolahDatabase.getConnection(); String query = "delete from siswa where no_induk=?"; try { PreparedStatement statement = connection.prepareStatement(query); statement.setString(1, noInduk); statement.executeUpdate(); } catch (SQLException ex) { JOptionPane.showMessageDialog(this, "Terjadi error pada saat delete data"); } finally { loadData(); } } danydongkrak.wordpress.com
Page 19
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL e. Menambahkan Event Cari Pada TextField Cari Untuk melakukan pencarian kita akan menggunakan event “Key Released” agar pada saat kita mengetikan karakter tabel akan secara otomatis merubah data dengan data yang akan kita cari. Pertama masuk ke tab Design, kemudian pilih textField Cari klik kanan >> “Events” >> “Key” >>“Key Released”
lalu netbeans akan mengenerate kode sebagai berikut.
Dalam event ini jika kita menuliskan sesuatu di textField cari maka perintah pencarian akan langsung dikirim ke database dan langsung merubah tampilan pada tabelSiswa.Untuk lebih jelas silahkan ketikan soource dibawah ini.
danydongkrak.wordpress.com
Page 20
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL private void textCariKeyReleased(java.awt.event.KeyEvent evt) { tableModel.getDataVector().removeAllElements(); //pemberitahuan bahwa table telah kosong tableModel.fireTableDataChanged(); try { String cari=textCari.getText(); connection = SekolahDatabase.getConnection(); String query = "select * from siswa where nama LIKE '%"+cari+"%'"; Statement statement=connection.createStatement(); ResultSet resultSet = statement.executeQuery(query); while (resultSet.next()) { Object[] siswa = new Object[6]; siswa[0] = resultSet.getString("no_induk"); siswa[1] = resultSet.getString("nama"); siswa[2] = resultSet.getString("nama_wali"); siswa[3] = resultSet.getString("tanggal_lahir"); siswa[4] = resultSet.getString("telepon"); siswa[5] = resultSet.getString("alamat"); tableModel.addRow(siswa); } resultSet.close();//menutup result set statement.close();//menutup statement } catch (SQLException ex) { System.out.println(ex.getMessage()); } f. Menambahkan Event Pada Button Refresh } Di dalam button refresh kita hanya akan melakukan reload menggunakan method loadData() yang telah kita buat sebelumnya.Maka kita hanya perlu malakukan pemanggilan method loadData(). Seperti button sebelumnya kita harus membuat event terlebih dahulu. Pertama masuk ke tab Design, kemudian pilih button Refresh klik kanan >> “Events” >> “Action” >>“Action Performed” lalu tambahkan source berikut private void btnRefreshActionPerformed(java.awt.event.ActionEvent evt) { loadData(); }
danydongkrak.wordpress.com
Page 21
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL g. Menambahkan Event Pada Button Batal Dalam button Batal kita hanya akan menghapus semua inputan yang kita tuliskan di setiap textField. Sebelumnya kita buat dulu metho reset() di bawah method loadData yang kita buat tadi. private void reset(){ textNoInduk.setText(""); textCari.setText(""); textNama.setText(""); textTanggal.setValue(new java.util.Date()); textTelepon.setText(""); textWali.setText(""); textalamat.setText(""); } Kemudian masuk ke tab Design, kemudian pilih button Batal klik kanan >> “Events” >> “Action” >>“Action Performed” lalu tambahkan source berikut
h. Menambahkan Event Seleksi pada Tabel Siswa Kita perlu menambahkan event ini untuk menampilkan data di setiap text Field, text Area dan Formatted Text ketika kita memilih data di tabel Siswa. Pertama masuk ke tab Design, kemudian pilih tabel siswa klik kanan >> “Events” >> “Mouse” >>“Mouse Clicked”
danydongkrak.wordpress.com
Page 22
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL lalu tambahkan source berikut private void tabelSiswaMouseClicked(java.awt.event.MouseEvent evt) { try { //mendapatkan baris yang terseleksi int row=tabelSiswa.getSelectedRow(); if (row==-1) { return; } //mengambil data dan ditampung String noInduk = (String) tableModel.getValueAt(row, 0); String nama = (String) tableModel.getValueAt(row, 1); String namaWali = (String) tableModel.getValueAt(row, 2); String tanggal= (String) tableModel.getValueAt(row, 3); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date=sdf.parse(tanggal); String telepon = (String) tableModel.getValueAt(row, 4); String alamat = (String) tableModel.getValueAt(row, 5); //memberi data di setiap inputan textNoInduk.setText(noInduk); textNama.setText(nama); textWali.setText(namaWali); textTanggal.setValue(date); textTelepon.setText(telepon); textalamat.setText(alamat); } catch (ParseException ex) { Logger.getLogger(FormUtama.class.getName()).log(Level.SEVERE, null, ex); } }
i. Event Terkahir Di Event Terkahir tambahkan methode reset() pada blok finnaly di Simpan Data,Ubah Data dan Hapus Data. 8. Jalankan Program Klik Tombol
kemudian akan muncul dialog
danydongkrak.wordpress.com
Page 23
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Karena tadi di awal kita tidak membuat main class,maka kita pilih Form yang kita buat tadi sebagai main class. Kita pilih Form yang kita buat pada dialog Run Project lalu klik OK.
danydongkrak.wordpress.com
Page 24
Membuat Aplikasi Sederhana Menggunakan Java 2011 Swing , Netbeans IDE dan RDBMS MYSQL Tentang Saya Saya bernama Dany Candra Febriantolahir Purwokerto 20 Februari 1992. Mengapa ada bagian “tentang saya” bukan bagian “tentang penulis” seperti layaknya di bukubuku lain? Karena saya bukan penulis. Melainkan saya hanya seorang mahasiswa yang iseng – iseng masih kuliah di Teknik Informatika Universitas Muhammadiyah Purwokerto. Kegiatan saya sekarang hanya mencoba hal-hal yang masih aneh untuk saya seperti programming yang sebelumnya tidak pernah saya inginkan namun entah mengapa sekarang saya mulai tertarik dengan dunia pemrograman. Terima kasih telah membaca corat coret yang tidak sengaja di buat juga. Saya sangat senang sekali mempunyai teman untuk bertukar pikiran. Saya bisa dihubungi di:
[email protected] http://danydongkrak.wordpress.com
danydongkrak.wordpress.com
Page 25
di