imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program...

25
A. PENDAHULUAN Pada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat berupa Contact Book Sederhana yang dapat digunakan untuk mengelola, yaitu menyimpan, mengedit, dan menghapus data no. telepon. B. PEMBAHASAN 1. Desain Database Aplikasi Database aplikasi dibuat dengan menggunakan MySQL. Berikut adalah keterangan lengkap dari database aplikasi Contact Book Sederhana. Nama database : dbcontact Jumlah tabel : 2 Keterangan tabel: Nama Tabel : tblcontact Nama Tabel : tbldetail Nama Field Type Data Nama Field Type Data idContac t int(5), auto increment id int(5), auto increment nama varchar(30) idContac t int(5) alamat varchar(50) telp varchar(15) email varchar(50) ket varchar(20) deskrips i text Aplikasi akan menyimpan data contact berupa data identitas pemilik no telepon pada tblcontact dan data no telepon akan disimpan dalam tbldetail. Dalam hal ini, satu individu pemilik dapat memiliki lebih dari satu no

Transcript of imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program...

Page 1: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

A. PENDAHULUAN

Pada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis

Java dan database MySQL. Program aplikasi yang dibuat berupa Contact Book Sederhana

yang dapat digunakan untuk mengelola, yaitu menyimpan, mengedit, dan menghapus data

no. telepon.

B. PEMBAHASAN

1. Desain Database Aplikasi

Database aplikasi dibuat dengan menggunakan MySQL. Berikut adalah keterangan

lengkap dari database aplikasi Contact Book Sederhana.

Nama database : dbcontact

Jumlah tabel : 2

Keterangan tabel:

Nama Tabel : tblcontact Nama Tabel : tbldetailNama Field Type Data Nama Field Type DataidContact int(5), auto increment id int(5), auto incrementnama varchar(30) idContact int(5)alamat varchar(50) telp varchar(15)email varchar(50) ket varchar(20)deskripsi text

Aplikasi akan menyimpan data contact berupa data identitas pemilik no telepon pada

tblcontact dan data no telepon akan disimpan dalam tbldetail. Dalam hal ini, satu

individu pemilik dapat memiliki lebih dari satu no telepon. Sehingga dapat dibuat

suatu relasi antar tabel yang bersifat one to many, seperti pada gambar berikut.

tblcontact tbldetail* idContact * id

nama ** idContactalamat telpemail ketdeskripsi

Dimana field bertanda (*) sebagai primary key dan field bertanda (**) sebagai foreign

key. Dalam relasi di atas dapat diperhatikan bahwa tblcontact dan tbldetail memiliki

relasi one to many dengan penghubung idContact yang menjadi prymary key di

tblcontact merupakan foreign key di tbl detail. Artinya, jika dilihat dari tblcontact, 1

data kontak bisa memiliki lebih dari satu data detail telepon atau jika dilihat dari

tbldetail, lebih dari satu data detail telepon dapat dimiliki oleh 1 data kontak.

Page 2: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

2. Tampilan dan Kode Program

Program aplikasi ini berbasis java. Project aplikasinya diberi nama

SimpleContactBook. Project terdiri dari 2 package yaitu package ui yaitu untuk

membuat user interface dan package utility untuk keperluan penting bagi package ui.

a. Package utility terdiri dari 2 class yaitu class Koneksi.java dan ModelTabel.java.

1) Class Koneksi.java

Class ini berfungsi untuk melakukan koneksi ke database dan mengeksekusi

setiap query yang akan dijalankan, sehingga setiap memerlukan koneksi ke

database atau setiap akan mengeksekusi suatu statement query hanya perlu

memanggil class ini.

Codenya:

package utility;

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;

public class Koneksi {public void executeUpdate(String query) throws Exception{

String driver = "com.mysql.jdbc.Driver";Class.forName(driver);Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/

dbContact","root","");Statement st = con.createStatement();st.executeUpdate(query);

}

public ResultSet executeSelect(String query) throws Exception{

String driver = "com.mysql.jdbc.Driver";Class.forName(driver);Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/

dbContact","root","");Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);return st.executeQuery(query);

}

}

2) Class ModelTabel.java

Class ini berfungsi dalam pembuatan tabel pada FormUtama.java dan

FormDetail.java untuk menampilkan data contact.

Page 3: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

Code:

package utility;import java.sql.*;import javax.swing.table.AbstractTableModel;import utility.Koneksi;

public class ModelTabel extends AbstractTableModel {private static final long serialVersionUID = 1L;private int jmlBaris;private String[] namaKolom;private Koneksi koneksi;private ResultSet rs;

public ModelTabel(Koneksi koneksi, String[] namaKolom) {this.koneksi = koneksi;this.namaKolom = namaKolom;

}

public Object getValueAt(int noBaris, int noKolom) {try {

rs.absolute(noBaris+1);return rs.getObject(noKolom+1);

} catch (SQLException e) {e.printStackTrace();

}return "";

}

public int getColumnCount() {return namaKolom.length;

}

public int getRowCount() {return jmlBaris;

}

public String getColumnName(int kolom) {String nmKolom;nmKolom = namaKolom[kolom];return nmKolom;

}

public void runQuery(String query) throws Exception {if (query.toLowerCase().startsWith("select")) {

rs = koneksi.executeSelect(query);rs.last();this.jmlBaris = rs.getRow();this.fireTableDataChanged();

}else {

koneksi.executeUpdate(query);}

}

Page 4: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

public void setEmpty() {jmlBaris = 0;this.fireTableDataChanged();

}}

b. Package ui terdiri dari 4 class yaitu class FormUtama.java, FormAddContact.java,

FormAddNumber.java, dan FormDetail.java.

1) FormUtama.java

Dalam FormUtama.java kita dapat melakukan searching data contact, dan

menampilkan data kontak, serta terdapat akses untuk menambah kontak baru.

Code:

package ui;import javax.swing.*;import javax.swing.table.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import ui.*;import utility.*;

public class FormUtama extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;public String dataSearch;private JButton btnAdd;

private JButton btnShow; private JButton btnSearch; private JScrollPane paneSearch; private JPanel paneBack; private JPanel paneFront; private JTable tblSearch; private JTextField txtSearch; private FormAddContact formAdd; private FormDetail formDetail; private Koneksi con; private ModelTabel modelSearch; private String[] namaKolom = {"ID", "Name", "Address", "Email"};

public FormUtama() { setDefaultCloseOperation(EXIT_ON_CLOSE); con = new Koneksi(); modelSearch = new ModelTabel(con, namaKolom); formAdd = new FormAddContact(this); txtSearch = new JTextField(42); paneSearch = new JScrollPane(); tblSearch = new JTable(); btnSearch = new JButton("Search");

Page 5: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

btnAdd = new JButton("Add New Contact"); btnShow = new JButton("Show All"); paneBack = new JPanel(); paneFront = new JPanel(); btnAdd.addActionListener(this); btnShow.addActionListener(this); btnSearch.addActionListener(this); setLayout(null); tblSearch.setModel(modelSearch); tblSearch.setFont(new Font("Calibri", 0, 11)); tblSearch.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { tblSearchMouseClicked(e); } }); paneSearch.setViewportView(tblSearch); paneBack.setBackground(new java.awt.Color(0, 100, 150)); paneFront.setBackground(new java.awt.Color(255, 255, 255));

paneBack.setBounds(0, 0, 600, 480); paneFront.setBounds(10, 10, 575, 430); txtSearch.setBounds(20, 24, txtSearch.getPreferredSize().width, txtSearch.getPreferredSize().height); btnSearch.setBounds(30 + txtSearch.getPreferredSize().width, 20, btnSearch.getPreferredSize().width, btnSearch.getPreferredSize().height); tblSearch.setBounds(20, 55, 555, 330); paneSearch.setBounds(20, 55, 555, 330); btnShow.setBounds(20, 400, btnShow.getPreferredSize().width, btnShow.getPreferredSize().height); btnAdd.setBounds(30 + btnShow.getPreferredSize().width, 400, btnAdd.getPreferredSize().width, btnAdd.getPreferredSize().height); add(txtSearch); add(btnSearch); add(btnAdd); add(btnShow); add(paneSearch); add(paneFront); add(paneBack);

setSize(600, 480); }

public Koneksi getConnection() {return this.con;

}

public void SearchContact() throws Exception {dataSearch = txtSearch.getText();modelSearch.runQuery("Select idContact, nama, alamat, email from tblcontact where

nama like '%"+dataSearch+"%'");}

public void AddContact() throws Exception {

Page 6: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

formAdd.setLocationRelativeTo(this);formAdd.setVisible(true);

}

public void ShowContact() throws Exception {modelSearch.runQuery("Select idContact, nama, alamat, email from tblcontact");

}

public void tblSearchMouseClicked(MouseEvent evt) { FormDetail formDetail = new FormDetail(this, String.valueOf(tblSearch.getValueAt(tblSearch.getSelectedRow(),0)) ); formDetail.setLocationRelativeTo(this); formDetail.setVisible(true); } public static void main(String args[]) throws Exception { FormUtama formUtama = new FormUtama(); formUtama.setVisible(true); formUtama.setTitle("Contact Book Application"); formUtama.setResizable(false); formUtama.setLocation(300, 100); }

public void actionPerformed(ActionEvent e) {if (e.getSource() == btnAdd)

try {this.AddContact();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnShow)

try {this.ShowContact();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnSearch)

try {this.SearchContact();txtSearch.setText("");

} catch (Exception e1) {e1.printStackTrace();

}}

}

Page 7: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

Tampilan:

2) FormAddContact.java

Form ini berfungsi untuk menambah data kontak baru ke dalam database.

Code:

package ui;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import ui.*;import utility.*;import java.sql.ResultSet;

public class FormAddContact extends JFrame implements ActionListener { public String vNama, vAlamat, vEmail, vDesk, vTelp, vKetTelp;

private JButton btnSave; private JScrollPane paneDesk; private JLabel lblAlamat; private JLabel lblDesk; private JLabel lblEmail; private JLabel lblNama; private JLabel lblTelp; private JPanel paneBack;

Page 8: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

private JPanel paneFront; private JTextField txtAlamat; private JTextField txtEmail; private JTextArea txtDesk; private JComboBox cmbKetTelp; private JTextField txtNama; private JTextField txtTelp; private FormUtama parentForm; private Koneksi con;

public FormAddContact(FormUtama parent) { setDefaultCloseOperation(HIDE_ON_CLOSE); parentForm = parent; con = parent.getConnection(); paneBack = new JPanel(); paneFront = new JPanel(); lblNama = new JLabel("Name :"); lblAlamat = new JLabel("Address :"); lblEmail = new JLabel("Email :"); lblDesk = new JLabel("Contact Description :"); lblTelp = new JLabel("Phone Number"); txtNama = new JTextField(); txtAlamat = new JTextField(); txtEmail = new JTextField(); txtTelp = new JTextField(); paneDesk = new JScrollPane(); txtDesk = new JTextArea(); cmbKetTelp = new JComboBox(); btnSave = new JButton("Save Contact"); setLayout(null);

txtDesk.setColumns(20); txtDesk.setRows(5); cmbKetTelp.setModel(new DefaultComboBoxModel( new String[] {"Telephone","Telephone (Home)","Telephone (Bussiness)","Mobile","Mobile (Home)","Mobile (Bussiness)"} )); paneBack.setBackground(new java.awt.Color(0, 150, 50)); paneFront.setBackground(new java.awt.Color(255, 255, 255)); paneDesk.setViewportView(txtDesk);

paneBack.setBounds(0, 0, 295, 430); paneFront.setBounds(10, 10, 275, 400); lblNama.setBounds(20, 20, lblNama.getPreferredSize().width, lblNama.getPreferredSize().height); txtNama.setBounds(20, 40, 255, txtNama.getPreferredSize().height); lblAlamat.setBounds(20, 70, lblAlamat.getPreferredSize().width, lblAlamat.getPreferredSize().height); txtAlamat.setBounds(20, 90, 255, txtAlamat.getPreferredSize().height); lblEmail.setBounds(20, 120, lblEmail.getPreferredSize().width, lblEmail.getPreferredSize().height); txtEmail.setBounds(20, 140, 255, txtEmail.getPreferredSize().height);

Page 9: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

lblTelp.setBounds(20, 170, lblTelp.getPreferredSize().width, lblTelp.getPreferredSize().height); txtTelp.setBounds(20, 190, 255, txtTelp.getPreferredSize().height); cmbKetTelp.setBounds(20, 215, cmbKetTelp.getPreferredSize().width, cmbKetTelp.getPreferredSize().height); lblDesk.setBounds(20, 250, lblDesk.getPreferredSize().width, lblDesk.getPreferredSize().height); paneDesk.setBounds(20, 270, paneDesk.getPreferredSize().width, paneDesk.getPreferredSize().height); btnSave.setBounds(20, 375, btnSave.getPreferredSize().width, btnSave.getPreferredSize().height); add(btnSave); add(lblTelp); add(txtTelp); add(cmbKetTelp); add(lblNama); add(txtNama); add(lblAlamat); add(txtAlamat); add(lblEmail); add(txtEmail); add(lblDesk); add(paneDesk); add(paneFront); add(paneBack); setSize(300, 450); setResizable(false); setTitle("New Contact"); btnSave.addActionListener(this); }

public void Data() {vNama = txtNama.getText();vAlamat = txtAlamat.getText();vEmail = txtEmail.getText();vDesk = txtDesk.getText();vTelp = txtTelp.getText();vKetTelp = String.valueOf(cmbKetTelp.getSelectedItem());

}

public void SaveContact() throws Exception {vNama = txtNama.getText();vAlamat = txtAlamat.getText();vEmail = txtEmail.getText();vDesk = txtDesk.getText();vTelp = txtTelp.getText();vKetTelp = String.valueOf(cmbKetTelp.getSelectedItem());

String qrIdContact = "Select max(idContact)+1 as newId from tblcontact";ResultSet rsIdContact = con.executeSelect(qrIdContact);String idContact;rsIdContact.absolute(1);if (rsIdContact.getString("newId") == null)

idContact = "0";else

idContact = rsIdContact.getString("newId");

String qrIdDetail = "Select max(id)+1 as newId from tbldetail";ResultSet rsIdDetail = con.executeSelect(qrIdDetail);String idDetail;

Page 10: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

rsIdDetail.absolute(1);if (rsIdDetail.getString("newId") == null)

idDetail = "0";else

idDetail = rsIdDetail.getString("newId");

String qrSaveCt = "Insert into tblcontact values("+idContact+", '"+vNama+"', '"+vAlamat+"', '"+vEmail+"', '"+vDesk+"')";

con.executeUpdate(qrSaveCt);String qrSaveDet = "Insert into tbldetail values("+idDetail+", "+idContact+", '"+vTelp+"',

'"+vKetTelp+"')";con.executeUpdate(qrSaveDet);parentForm.ShowContact();this.dispose();

}

public static void main(String args[]) throws Exception { }

public void actionPerformed(ActionEvent e) {if (e.getSource() == btnSave)

try {this.SaveContact();

} catch (Exception e1) {e1.printStackTrace();

}}

}

Tampilan:

Page 11: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

3) FormAddNumber.java

Fungsi form ini adalah untuk menambahkan detail no telepon baru ataupun

mengedit detail no telpon dari suatu data kontak. Form ini akan dipanggil

melalui FormDetail.java

Code:

package ui;import javax.swing.*;

import java.awt.*;import java.awt.event.*;import java.sql.*;

import ui.*;import utility.*;

public class FormAddNumber extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;private JButton btnSave;

private JButton btnUpdate; private JLabel lblTelp; private JPanel paneBack; private JPanel paneFront; private JComboBox cmbKetTelp; private JTextField txtTelp; private String idContact;

Page 12: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

private String idDetail; public String vTelp, vKetTelp; private Koneksi con; private FormDetail parentForm;

public FormAddNumber(FormDetail parent, String ID, String IDDetail) { setDefaultCloseOperation(HIDE_ON_CLOSE); parentForm = parent; con = new Koneksi(); idContact = ID; idDetail = IDDetail; paneBack = new JPanel(); paneFront = new JPanel(); lblTelp = new JLabel("Phone Number :"); txtTelp = new JTextField(); cmbKetTelp = new JComboBox(); btnSave = new JButton("Save"); btnUpdate = new JButton("Update"); setLayout(null); cmbKetTelp.setModel(new DefaultComboBoxModel( new String[] {"Telephone","Telephone (Home)","Telephone (Bussiness)","Mobile","Mobile (Home)","Mobile (Bussiness)"} )); paneBack.setBackground(new java.awt.Color(0, 150, 50)); paneFront.setBackground(new java.awt.Color(255, 255, 255));

paneBack.setBounds(0, 0, 295, 180); paneFront.setBounds(10, 10, 275, 150); lblTelp.setBounds(20, 20, lblTelp.getPreferredSize().width, lblTelp.getPreferredSize().height); txtTelp.setBounds(20, 40, 255, txtTelp.getPreferredSize().height); cmbKetTelp.setBounds(20, 70, cmbKetTelp.getPreferredSize().width, cmbKetTelp.getPreferredSize().height); if (idDetail == "0") { btnSave.setBounds(20, 100, btnSave.getPreferredSize().width, btnSave.getPreferredSize().height); add(btnSave); } else { btnUpdate.setBounds(20, 100, btnUpdate.getPreferredSize().width, btnUpdate.getPreferredSize().height); add(btnUpdate); try { String qrSelected = "Select telp, ket from tbldetail where id = '"+idDetail+"'";

ResultSet rsSelected = con.executeSelect(qrSelected);String vTelp, vKetTelp;rsSelected.absolute(1);vTelp = rsSelected.getString("telp");vKetTelp = rsSelected.getString("ket");txtTelp.setText(vTelp);cmbKetTelp.setSelectedItem(vKetTelp);

} catch (Exception e) {e.printStackTrace();

Page 13: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

} } add(lblTelp); add(txtTelp); add(cmbKetTelp); add(paneFront); add(paneBack); setSize(300, 200); setResizable(false); setTitle("New Detail"); btnSave.addActionListener(this); btnUpdate.addActionListener(this); }

public void AddDetail() throws Exception {vTelp = txtTelp.getText();vKetTelp = String.valueOf(cmbKetTelp.getSelectedItem());

String qrIdDetail = "Select max(id)+1 as newId from tbldetail";ResultSet rsIdDetail = con.executeSelect(qrIdDetail);String idDetail;rsIdDetail.absolute(1);if (rsIdDetail.getString("newId") == null)

idDetail = "0";else

idDetail = rsIdDetail.getString("newId");

String qrSaveDet = "Insert into tbldetail values("+idDetail+", "+idContact+", '"+vTelp+"', '"+vKetTelp+"')";

con.executeUpdate(qrSaveDet);

parentForm.ShowDetail();this.dispose();

}

public void UpdateDetail() throws Exception {vTelp = txtTelp.getText();vKetTelp = String.valueOf(cmbKetTelp.getSelectedItem());

String qrUpdateDet = "Update tblDetail set telp = '"+vTelp+"', ket = '"+vKetTelp+"' where id = '"+idDetail+"'";

con.executeUpdate(qrUpdateDet);

parentForm.ShowDetail();this.dispose();

} public static void main(String args[]) throws Exception { }

Page 14: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

public void actionPerformed(ActionEvent e) {if (e.getSource() == btnSave)

try {this.AddDetail();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnUpdate)

try {this.UpdateDetail();

} catch (Exception e1) {e1.printStackTrace();

}}

}

Tampilan:

4) FormDetail.java

Form ini berfungsi untuk menampilkan detail lengkap dari suatu data kontak.

Form ini akan dipanggil dari FormUtama.java dengan mengklik tabel data

kontak. Melalui form ini kita juga memiliki akses untuk mengedit detail dan

kontak, serta menghapus detail atau kontak.

Code:

package ui;import javax.swing.*;import javax.swing.table.DefaultTableModel;

import java.awt.*;

Page 15: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

import java.awt.event.*;import java.sql.*;

import ui.*;import utility.*;

public class FormDetail extends JFrame implements ActionListener { public String vNama, vAlamat, vEmail, vDesk;

private JButton btnAddNo; private JButton btnEditCt; private JButton btnDelCt; private JButton btnEditNo; private JButton btnDelNo; private JButton btnUpdateCt; private JScrollPane paneDetail; private JTextField txtvNama; private JTextField txtvAlamat; private JTextField txtvEmail; private JTextArea txtvDesk; private JPanel paneBack; private JPanel paneFront; private JTable tblDetail; private FormUtama parentForm; private FormAddNumber formAddDetail, formEditDetail; private FormAddContact formEditContact; private Koneksi con; private String[] kolomDetail = {"ID","Phone Number","Description"}; private ModelTabel modelDetail; private String idContact;

public FormDetail(FormUtama parent, String ID) { setDefaultCloseOperation(HIDE_ON_CLOSE); parentForm = parent; con = parent.getConnection(); modelDetail = new ModelTabel(con, kolomDetail); idContact = ID; paneBack = new JPanel(); paneFront = new JPanel(); paneDetail = new JScrollPane(); txtvNama = new JTextField(20); txtvAlamat = new JTextField(35); txtvEmail = new JTextField(35); txtvDesk = new JTextArea(); tblDetail = new JTable(); btnAddNo = new JButton("Add New Detail"); btnEditNo = new JButton("Edit Detail"); btnDelNo = new JButton("Delete Detail"); btnEditCt = new JButton("Edit Contact"); btnDelCt = new JButton("Delete Contact"); btnUpdateCt = new JButton("Update Contact");

Page 16: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

setLayout(null); try {

this.ShowData();this.ShowDetail();

} catch (Exception e) {e.printStackTrace();

} txtvDesk.setColumns(20); txtvDesk.setRows(2); txtvNama.setEditable(false); txtvAlamat.setEditable(false); txtvEmail.setEditable(false); txtvDesk.setEditable(false); tblDetail.setModel(modelDetail); tblDetail.setFont(new Font("Calibri", 0, 11)); txtvNama.setFont(new Font("Calibri", 3, 20)); txtvAlamat.setFont(new Font("Arial", 1, 12)); txtvEmail.setFont(new Font("Arial", 1, 12)); txtvNama.setBackground(new java.awt.Color(255, 255, 255)); txtvNama.setBorder(null); txtvAlamat.setBackground(new java.awt.Color(255, 255, 255)); txtvAlamat.setBorder(null); txtvEmail.setBackground(new java.awt.Color(255, 255, 255)); txtvEmail.setBorder(null); paneBack.setBackground(new java.awt.Color(0, 150, 50)); paneFront.setBackground(new java.awt.Color(255, 255, 255)); paneDetail.setViewportView(tblDetail); paneBack.setBounds(0, 0, 500, 430); paneFront.setBounds(10, 10, 475, 400); txtvNama.setBounds(20, 20, txtvNama.getPreferredSize().width, txtvNama.getPreferredSize().height); txtvAlamat.setBounds(20, 50, txtvAlamat.getPreferredSize().width, txtvAlamat.getPreferredSize().height); txtvEmail.setBounds(20, 70, txtvEmail.getPreferredSize().width, txtvEmail.getPreferredSize().height); txtvDesk.setBounds(20, 90, txtvDesk.getPreferredSize().width, txtvDesk.getPreferredSize().height); tblDetail.setBounds(20, 130, 400, 100); paneDetail.setBounds(20, 130, 400, 100); btnAddNo.setBounds(20, 290, btnUpdateCt.getPreferredSize().width, btnAddNo.getPreferredSize().height); btnEditNo.setBounds(20, 320, btnUpdateCt.getPreferredSize().width, btnEditNo.getPreferredSize().height); btnDelNo.setBounds(20, 350, btnUpdateCt.getPreferredSize().width, btnDelNo.getPreferredSize().height); btnEditCt.setBounds(155, 320, btnUpdateCt.getPreferredSize().width, btnEditCt.getPreferredSize().height); btnUpdateCt.setBounds(155, 320, btnUpdateCt.getPreferredSize().width, btnUpdateCt.getPreferredSize().height);

Page 17: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

btnDelCt.setBounds(155, 350, btnUpdateCt.getPreferredSize().width, btnDelCt.getPreferredSize().height); btnUpdateCt.setVisible(false); add(txtvNama); add(txtvAlamat); add(txtvEmail); add(txtvDesk); add(btnAddNo); add(btnDelCt); add(btnDelNo); add(btnEditCt); add(btnEditNo); add(btnUpdateCt); add(paneDetail); add(paneFront); add(paneBack); setSize(500, 450); setResizable(false); setTitle("Contact Detail"); btnAddNo.addActionListener(this); btnEditNo.addActionListener(this); btnDelNo.addActionListener(this); btnDelCt.addActionListener(this); btnEditCt.addActionListener(this); btnUpdateCt.addActionListener(this); }

public void ShowData() throws Exception {ResultSet rsSelect = con.executeSelect("Select * from tblContact where idContact =

'"+idContact+"'");String nama, alamat, email, deskripsi;rsSelect.absolute(1);nama = rsSelect.getString("nama");alamat = rsSelect.getString("alamat");email = rsSelect.getString("email");deskripsi = rsSelect.getString("deskripsi");txtvNama.setText(nama);txtvAlamat.setText(alamat);txtvEmail.setText(email);txtvDesk.setText(deskripsi);

}

public void ShowDetail() throws Exception {modelDetail.runQuery("Select id, telp, ket from tblDetail where idContact =

"+idContact+"");}

public void AddDetail() throws Exception { formAddDetail = new FormAddNumber(this, idContact, "0");

formAddDetail.setLocationRelativeTo(this);formAddDetail.setVisible(true);

}

public void EditDetail() throws Exception {formEditDetail = new FormAddNumber(this, idContact,

String.valueOf(tblDetail.getValueAt(tblDetail.getSelectedRow(),0)));formEditDetail.setLocationRelativeTo(this);formEditDetail.setVisible(true);

Page 18: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

}

public void EditContact() throws Exception {txtvNama.setEditable(true);txtvAlamat.setEditable(true);txtvEmail.setEditable(true);txtvDesk.setEditable(true);txtvNama.isFocusOwner();btnUpdateCt.setVisible(true);btnEditCt.setVisible(false);

}

public void UpdateContact() throws Exception {vNama = txtvNama.getText();vAlamat = txtvAlamat.getText();vEmail = txtvEmail.getText();vDesk = txtvDesk.getText();String qrUpdateCt = "Update tblcontact set nama = '"+vNama+"', alamat =

'"+vAlamat+"', email = '"+vEmail+"', deskripsi = '"+vDesk+"' where idContact = '"+idContact+"'";con.executeUpdate(qrUpdateCt);ShowData();parentForm.ShowContact();txtvNama.setText(vNama);txtvAlamat.setText(vAlamat);txtvEmail.setText(vEmail);txtvDesk.setText(vDesk);btnUpdateCt.setVisible(false);btnEditCt.setVisible(true);

txtvNama.setEditable(false); txtvAlamat.setEditable(false); txtvEmail.setEditable(false); txtvDesk.setEditable(false);

}

public void DeleteDetail() throws Exception {String idDetail = String.valueOf(tblDetail.getValueAt(tblDetail.getSelectedRow(),0));String qrDelete = "Delete from tblDetail where id = '"+idDetail+"'";con.executeUpdate(qrDelete);ShowDetail();

}

public void DeleteContact() throws Exception {int jawaban = JOptionPane.showConfirmDialog(this, "Delete this contact and all the

properties?", "Confirmation" , JOptionPane.YES_NO_OPTION);

if (jawaban == JOptionPane.YES_OPTION) {String qrDelDetail = "Delete from tbldetail where idContact = '"+idContact+"'";con.executeUpdate(qrDelDetail);String qrDelContact = "Delete from tblcontact where idContact =

'"+idContact+"'";con.executeUpdate(qrDelContact);

parentForm.ShowContact();this.dispose();

Page 19: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

}}

public static void main(String args[]) throws Exception { }

public void actionPerformed(ActionEvent e) {if (e.getSource() == btnAddNo)

try {this.AddDetail();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnEditNo)

try {this.EditDetail();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnDelNo)

try {this.DeleteDetail();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnDelCt)

try {this.DeleteContact();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnEditCt)

try {this.EditContact();

} catch (Exception e1) {e1.printStackTrace();

}else if (e.getSource() == btnUpdateCt)

try {this.UpdateContact();

} catch (Exception e1) {e1.printStackTrace();

}}

}

Tampilan:

Page 20: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

C. PENUTUP

Program aplikasi ini sudah cukup membantu dalam manajemen data no telepon.

Tetapi, masih terdapat kekurangan-kekurangan dalam pembuatan ataupun

penggunaannya. Selanjutnya penulis akan berusaha mengembangkan dan memperbaiki

program aplikasi ini agar menjadi lebih baik.

TUGAS PEMROGRAMAN KOMPUTER LANJUT

PROGRAM APLIKASI BERBASIS JAVA DAN MYSQL

“SIMPLE CONTACT BOOK APPLICATION”

Page 21: imdkesumayasa.files.wordpress.com  · Web viewPada kesempatan ini, penulis membuat suatu program aplikasi sederhana berbasis Java dan database MySQL. Program aplikasi yang dibuat

OLEH:

I MADE KESUMAYASA

1008405011

JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS UDAYANA

2012