Home >Unlabelled > Membangun Aplikasi Sederhana Menggunakan Java & MySQL
Membangun Aplikasi Sederhana Menggunakan Java & MySQL
Tutorial kali ini, saya akan membahas pembuatan aplikasi database menggunakan Java & MySQL.
Sebagai contoh saya akan membuat aplikasi Buku Telepon Sederhana. Dimana memuat data Nama, No Telepon, dan e-mail.
Dalam hal ini pembuatannya saya menggunakan Netbeans 7.0 dan database-nya saya menggunakan pake XAMPP & MySQL.
Jadi sebelum Anda mencoba tutorial ini, install dahulu aplikasi-aplikasi tersebut.
Langsung saja,
1. Untuk langkah awalnya, kita buat Database dengan nama kontak_db. Buka MySQL Command Line, dan ketikkan "create database kontak_db;" seperti gambar di bawah ini.
2. Untuk merunjuk atau menggunakan database kontak_db, ketikkan script "use kontak_db;"
3. Selanjutnya adalah pembuatan table pada kontak_db. Ketikkan "create table tb_kontak (nama varchar(30) not null, telepon varchar(15) not null, e_mail varchar(25));"
Setelah selesai membuat Table, tutup MySQL.
Langkah berikutnya adalah tahap pembuatan Aplikasinya.
4. Buka NetBeans. Buat Project Baru.
5. Beri Nama Project dengan Buku Telepon Sederhana. Saya menonaktifkan pembuatan Main Class. Setelah selesai, Klik Finish.
6. Selanjutnya Buat Form, dengan cara Klik Kanan pada Project -> New -> JFrame Form
7. Beri nama Frame dengan FrameKontak. Klik Finish.
8. Desain Form kurang lebih seperti gambar di bawah ini.
Berikut Komponen dan Properti-propertinya:
Komponen | Properties | Nilai |
jFrame | title | Buku Telepon Sederhana |
rezizable | false | |
jLabel1 | text | Buku Telepon Sederhana |
jPanel1 | border | Titled Border (Title = Kontak) |
jLabel2 | text | Nama |
jTextField1 | text | |
Variable Name | TxtNama | |
jLabel3 | text | Telepon |
jTextField2 | text | |
Variable Name | TxtTelepon | |
jLabel4 | text | e-mail |
jTextField3 | text | |
Variable Name | TxtEmail | |
jPanel2 | border | Titled Border (Title = Tombol) |
jButton1 | text | Simpan |
Variable Name | BtnSimpan | |
jButton2 | text | Ubah |
Variable Name | BtnUbah | |
jButton3 | text | Hapus |
Variable Name | BtnHapus | |
jPanel3 | border | Titled Border (Title = Daftar Kontak) |
jTable1 | Variable Name | TblKontak |
jPanel4 | border | Titled Border (Title = Cari Kontak) |
jLabel5 | text | Cari berdasarkan |
jComboBox1 | model | nama telepon e_mail |
Variable Name | CmbCari | |
jTextField4 | text | |
Variable Name | TxtCari |
Berikut adalah cara untuk merubah nilai properties pada jPanel
Jika bingung dalam memberi nilai pada Variable Name, berikut adalah caranya.
Klik Kanan pada Komponen -> Change Variable Name
9. 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. Klik tombol Import. Cari Library MySQL JDBC Driver, Kemudian Klik Import Library. Klik Add Library.
10. Selanjutnya buat Package baru dengan cara Klik Kanan pada Project -> New -> Java Package. Beri nama Tabel. Klik Finish.
11. Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel -> New -> Java Class. Beri nama DataKontak. Klik Finish.
12. Buat juga class TabelDataKontak pada Package Tabel.
Setelah selesai, selanjutnya adalah pemberian script.
Untuk Script pada Class DataKontak, sebagai berikut:
package Tabel;
/**
*
* @author TheGunk
*/
public class DataKontak {
private String nama, telepon, e_mail;
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;
}
}
Script untuk Class TabelDataKontak
package Tabel;
/**
*
* @author TheGunk
*/
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class TabelDataKontak extends AbstractTableModel{
private List
@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
Tambahkan variable-variabel berikut pada class FrameKontak dan pada Konstruktor FrameKontak, seperti gambar berikut
Selanjutnya tambahkan script berikut di bawah blok Konstruktor FrameKontak.
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){
System.err.print(ex);
}
}
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);
}
}
Catatan:
Pada script di atas, terdapat script
pada hal ini penulis memberikan username =root, dan password tidak saya isi pada database MySQL.
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
table();
Penambahan pencarian pada TxtCari
Klik kanan TxtCari -> Events -> Key -> keyReleased
Script untuk TxtCari
cari();
Build & Jalankan Program.
--
Source: http://blognapibelog.blogspot.com/2011/08/membangun-aplikasi-sederhana.html
~
Manage subscription | Powered by rssforward.com
Related Post :
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Now I really want to try this… themolesworthdiarist 26 Aug, 2011 -- Source: http://thehacknovelist.wordpress.com/2011/08/25/a-...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
-
Thank you for using rssforward.com ! This service has been made possible by all our customers. In order to provide a sustainable, bes...
























