1
Program Data Pelanggan
Toko Bandung Fashion
Dokumen ini dibuat sebagai tugas perkuliahan Pemrograman Berbasis Java
Disusun oleh: Nama : Rudi Kurniawan
NIM : 13111003 Kelas : 22
Fakultas Teknologi Informasi
Universitas Mercubuana Yogyakarta
2
Daftar Isi
Halaman Judul ... 1 Daftar Isi ... 2 Bab I ... 3 Bab II ... 4 Bab III ... 5 Bab IV ... 9 Bab V ... 12 Lampiran ... 83
Bab I
Pendahuluan
Latar Belakang Masalah
Dewasa ini, berpakaian tidak hanya sebagai penutup aurat, atau sekedar melindungi badan dari lingungan. Akan tetapi peran pakaian bertambah menjadi lebih dari sekedar berbusana. Perkembangan dunia, diikuti dengan
perkambangan trend atau mode pakaian. Beberapa orang berlomba-lomba untuk tampil fashionable, mengikuti perkembangan fashion yang ada.
Sehingga banyak toko/distro, penyedia kebutuhan sandang, berlomba-lomba menarik pembeli. Banyak pula metode yang digunakan untuk menarik pembeli supaya jadi pelanggan tetap,. Diantaranya memberi diskon pada pelangan tetap atau member.
Untuk itulah, perlu dibuat suatu sistem yang mampu menangani data pelanggan seperti pada program berikut.
Alasan Pemilihan Judul
Penulis perlu membuat program ini karena bebrapa alasan, yaitu:
1. Adanya tuntutan dari pasar, agar Toko Bandung tetap bisa bersaing 2. Perlunya Toko Bandung mengikat pelanggannya, supaya tidak lari ke toko
lain
4
Bab II
Database
Rancangan Tabel
Tabel yang digunakan dalam program ini hanya ada satu tabel. Yaitu tabel yang menyimpan data pelanggan. Penulis memberi nama t_plg
Relasi Database
5
Bab III
JDBC
Tabel 1
Input Data Pelanggan
Input data pelanggan disimpan dalam database “java”, dalam tabel “t_plg”
6
Search
Data yang dicari menggunakan “code” sebagai string pencari
Update
Data yang sudah dicari, kemudian bisa diambil dua aksi, yaitu hapus, dan update untuk memperbaharui data.
7
Data yang sudah diubah, di database pun juga berubah, yaitu alamat Magelang menjadi Jogja, kelas keanggotaan dari Premium menjadi Gold.
Delete
Digunakan untuk menghapus data yang tidak diinginkan, atau terjadi kesalahan input.
8
View
9
Bab IV
Menu
MenuMenu Program Data Pelanggan mempunyai sub_Menu: File :
File Pelanggan :
Exit : Untuk keluar dari menu Data :
Input Pelanggan : Menampilpak form untuk input data pelanggan
Cari Data Pelanggan : Mencari data pelanggan berdasarkan “code” yang dimoliki setiap pelanggan. View Data Pelanggan : Menampilkan tabel yang berisi
data pelanggan About
10
Integrasi Menu
Tampilan Menu Utama
11
Sub Menu Update Data Pelanggan, sekalian untuk menghapus data
12
Bab V
Penutup
KesimpulanPemrograman menggunakan bahasa Java, memiliki lebih banyak library yang juga memiliki banyak pilihan sesuai kebutuhan program. Lebih bisa mengikuti pemrogrman menggunakan Java dari pada PHP
Kesulitan
Kesulitan yang dihadapi adalah syntax yang muter-muter, dan
banyaknya library.
13
Lampiran
1. Program untuk koneksi ke DB “konekdb.java”
import java.sql.*; class konekdb
{
String url, usr, pwd, dbn; public konekdb() { dbn ="java"; url ="jdbc:mysql://localhost/"+dbn; usr ="root"; pwd ="real6"; }
public Connection getConnection() { Connection con = null;
try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection(url,usr,pwd); System.out.println("OK, DB Found"); } catch (ClassNotFoundException e) {
System.out.println("driver tak ketemu"+e+"\n"); }
catch (SQLException e){
14 }
return con; }
public static void main (String [] args){ konekdb mysql = new konekdb(); mysql.getConnection();
} }
2. Program utama “menu.java”
/* Nama : Rudi Kurniawan * NIM : 13111003
*/
import javax.swing.*; import java.awt.event.*; class menu extends JFrame {
JMenuBar pmenu=new JMenuBar(); JMenu fl=new JMenu("File");
JMenu setup = new JMenu ("Setup");
JMenuItem tbl_plg=new JMenuItem("Tabel Pelanggan"); JMenuItem exit=new JMenuItem("Exit");
JMenu dt=new JMenu("Data");
JMenuItem input_plg=new JMenuItem("Input Pelanggan");
15
JMenuItem view_plg=new JMenuItem("View Pelanggan"); JMenu abt=new JMenu("About");
JMenuItem ket=new JMenuItem("About Us"); void gui() { setJMenuBar(pmenu); pmenu.add(fl); fl.add(setup); setup.add(tbl_plg); fl.add(exit); pmenu.add(dt); dt.add(input_plg); dt.add(update_plg); dt.add(view_plg); pmenu.add(abt); abt.add(ket); setVisible(true); } menu() {
setTitle("Program Data Pelanggan"); setLocation(300,75); setSize(500,400); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } void aksi() {
16
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { System.exit(0); } }); input_plg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
inpt_plg hedler=new inpt_plg(); hedler.data(); hedler.tombol(); } }); update_plg.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
upd_plg hedler=new upd_plg(); hedler.data();
hedler.tombol(); }
});
17 {
public void actionPerformed(ActionEvent e) {
view_data hedler = new view_data(); hedler.tampil();
} });
ket.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,
"<html>Tugas Pemrormana Java by Rudi Kurniawan <br/>NIM : 13111003 <br/>Nama : Rudi Kurniawan</html>",
"Informasi",
JOptionPane.INFORMATION_MESSAGE); }
}); }
public static void main(String[] args) {
menu evi=new menu(); evi.gui();
evi.aksi(); }
18
3. Program untuk input data “inpt_plg.java”
/* Nama : Rudi Kurniawan * NIM : 13111003 */ import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; import java.sql.*;
class inpt_plg extends JFrame {
JLabel nim1= new JLabel("Code"); JTextField nim2= new JTextField(20); JLabel nama1=new JLabel("Name"); JTextField nama2= new JTextField(20); JLabel adrs1=new JLabel("Adress"); JTextField adrs2= new JTextField(20); JLabel gender=new JLabel("Gender");
JRadioButton gender1=new JRadioButton("Male"); JRadioButton gender2=new JRadioButton("Female"); ButtonGroup groupGender = new ButtonGroup(); JLabel clas1= new JLabel("");
String[] clas2={"Silver", "Premium", "Gold"}; JComboBox clas3 = new JComboBox(clas2);
19 JButton sv =new JButton("Save"); JButton ex =new JButton("Exit"); inpt_plg () //Frame
{
setTitle("Input Data Pelanggan"); setLocation(200,100); setSize(400,250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } void data() { getContentPane().setLayout(null); //Code getContentPane().add(nim1);nim1.setBounds(10,10,40,20); getContentPane().add(nim2);nim2.setBounds(70,10,100,20); //Nama getContentPane().add(nama1);nama1.setBounds(10,40,70,20); getContentPane().add(nama2);nama2.setBounds(70,40,100,20); //address getContentPane().add(adrs1);adrs1.setBounds(10,70,70,20); getContentPane().add(adrs2);adrs2.setBounds(70,70,100,20); //gender getContentPane().add(gender); gender.setBounds(10,100,100,20); getContentPane().add(gender1); gender1.setBounds(70,100,100,20); getContentPane().add(gender2); gender2.setBounds(150,100,100,20); groupGender.add(gender1); groupGender.add(gender2);
20 //class getContentPane().add(clas1); clas1.setBounds(10,130,100,20); getContentPane().add(clas3); clas3.setBounds(70,130,100,20); //button getContentPane().add(sv); sv.setBounds(50, 170, 80, 20); getContentPane().add(ex); ex.setBounds(250, 170, 80, 20); setVisible(true); } void tombol() { sv.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String code, nama, alamat, jns_kelamin, kelas; code = nim2.getText(); nama = nama2.getText(); alamat = adrs2.getText(); if (gender1.isSelected()==true) { jns_kelamin=gender1.getText(); } else { jns_kelamin=gender2.getText(); }
21 kelas = (String)
clas3.getSelectedItem();
//input data
konekdb open = new konekdb ();
Connection mysql = open.getConnection(); try
{
Statement stmt = mysql.createStatement();
String sql = "INSERT INTO t_plg (code,nama,alamat,jns_kelamin,kelas) VALUES ('"+code+"','"+nama+"','"+alamat+"','"+jns_kelamin+"','"+kelas+"');"; int i = stmt.executeUpdate(sql); //int i=1; if (i == 1) {
JOptionPane.showMessageDialog(null, "Data berhasil disimpan");
} }
catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage()); ex.printStackTrace();
22 } } }); //exit ex.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog( null, "Yakin akan keluar?","Yakin",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { System.exit(0); } } } ); }
public static void main (String args[]) {
inpt_plg ev = new inpt_plg(); ev.data();
ev.tombol(); }
23
4. Program untuk search data pelanggan “upd_plg.java”
/* Nama : Rudi Kurniawan * NIM : 13111003 */ import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; import java.sql.*;
class upd_plg extends JFrame {
upd_plg () //Frame {
setTitle("Update Data Pelanggan"); setLocation(200,100);
setSize(400,250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true);
}
JLabel nim1= new JLabel("Code"); JTextField nim2= new JTextField(20); JLabel nama1=new JLabel("Nama"); JTextField nama2= new JTextField(20); JLabel adrs1=new JLabel("Adress"); JTextField adrs2= new JTextField(20);
24
JLabel gender=new JLabel("Gender");
JRadioButton gender1=new JRadioButton("Male"); JRadioButton gender2=new JRadioButton("Female"); ButtonGroup groupGender = new ButtonGroup(); JLabel clas1= new JLabel("Class");
String[] clas2={"Silver", "Premium", "Gold"}; JComboBox clas3 = new JComboBox(clas2); JButton sr =new JButton("Search");
JButton upd =new JButton("Update"); JButton del =new JButton("Delete"); JButton ex =new JButton("Exit"); void data() { getContentPane().setLayout(null); //NIM getContentPane().add(nim1);nim1.setBounds(10,10,40,20); getContentPane().add(nim2);nim2.setBounds(70,10,100,20); //Nama getContentPane().add(nama1);nama1.setBounds(10,40,70,20); getContentPane().add(nama2);nama2.setBounds(70,40,100,20); //address getContentPane().add(adrs1);adrs1.setBounds(10,70,70,20); getContentPane().add(adrs2);adrs2.setBounds(70,70,100,20); //gender getContentPane().add(gender); gender.setBounds(10,100,100,20); getContentPane().add(gender1); gender1.setBounds(70,100,100,20); getContentPane().add(gender2); gender2.setBounds(150,100,100,20); groupGender.add(gender1);
25 groupGender.add(gender2); //class getContentPane().add(clas1); clas1.setBounds(10,130,100,20); getContentPane().add(clas3); clas3.setBounds(70,130,100,20); //button getContentPane().add(sr); sr.setBounds(300, 10, 80, 20); getContentPane().add(del); del.setBounds(300, 50, 80, 20); getContentPane().add(upd); upd.setBounds(50, 170, 80, 20); getContentPane().add(ex); ex.setBounds(250, 170, 80, 20); setVisible(true); } void tombol() { sr.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String cari;
String code, nama, alamat, jns_kelamin, kelas; konekdb open = new konekdb ();
Connection mysql = open.getConnection(); try
{
cari= nim2.getText();
26
String query_search = "SELECT * FROM t_plg WHERE code like '"+cari+"'";
ResultSet i = stmt.executeQuery (query_search); if (i.next()) { nim2.setText(i.getString(1)); nama2.setText(i.getString(2)); adrs2.setText(i.getString(3)); jns_kelamin = i.getString(4); if (jns_kelamin.equals("Male")) { gender1.setSelected(true); } else { gender2.setSelected(true); } clas3.setSelectedItem(i.getString(5)); } else {
JOptionPane.showMessageDialog(null, "Data yang anda masukan salah");
} }
catch (Exception ex) {
27 } } } ); del.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String code, nama, alamat, jns_kelamin, kelas; code=nim2.getText(); nama= nama2.getText(); alamat=adrs2.getText(); if (gender1.isSelected()==true) { jns_kelamin=gender1.getText(); } else { jns_kelamin=gender2.getText(); } kelas=(String) clas3.getSelectedItem(); konekdb open =new konekdb();
28 try
{
Statement stmt = mysql.createStatement();
String query_del="DELETE FROM t_plg WHERE code='"+code+"'"; int i = stmt.executeUpdate(query_del); if (i==1) { JOptionPane.showMessageDialog(null, "Data berhasil dihapus"); } }
catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } } } ); upd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String code, nama, alamat, jns_kelamin, kelas; code = nim2.getText();
nama = nama2.getText(); alamat = adrs2.getText();
29 if (gender1.isSelected()==true) { jns_kelamin=gender1.getText(); } else { jns_kelamin=gender2.getText(); } kelas = (String) clas3.getSelectedItem(); konekdb open = new konekdb ();
Connection mysql = open.getConnection(); try
{
Statement stmt = mysql.createStatement();
String query_update = "UPDATE t_plg SET nama='"+nama +"',alamat='"+alamat+"', jns_kelamin='"+jns_kelamin
+"',kelas='"+kelas+"' WHERE code='"+code+"'"; int i = stmt.executeUpdate (query_update); if (i==1)
{
JOptionPane.showMessageDialog(null, "Update data berhasil");
} }
30 catch (Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } } } ); ex.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog( null, "Yakin akan keluar?","Yakin",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) { System.exit(0); } } } ); }
public static void main (String args[]) {
31 upd_plg ev = new upd_plg(); ev.data();
ev.tombol(); }
}
5. Program untuk menampilkan data pelanggan “view_data.java”
/* Nama : Rudi Kurniawan * NIM : 13111003 */ import java.awt.*; import java.sql.*; import javax.swing.*; import javax.swing.table.*;
public class view_data extends JPanel {
String[] header = {"code", "nama","alamat","jns_kelamin","kelas"}; JTable tbl = new JTable();
JScrollPane scrl = new JScrollPane(); private Object[][] dt_table = null; view_data()
{
konekdb open = new konekdb();
Connection mysql = open.getConnection(); try
32
Statement stmt = mysql.createStatement(); String query_view = "SELECT * FROM t_plg"; ResultSet rk =stmt.executeQuery(query_view); ResultSetMetaData meta = rk.getMetaData(); int kolom = meta.getColumnCount();
int baris = 0; while (rk.next()) { baris=rk.getRow(); } dt_table=new Object[baris][kolom]; int x = 0; rk.beforeFirst(); while (rk.next()) { dt_table[x][0]=rk.getString("code"); dt_table[x][1]=rk.getString("nama"); dt_table[x][2]=rk.getString("alamat"); dt_table[x][3]=rk.getString("jns_kelamin"); dt_table[x][4]=rk.getString("kelas"); x++; } scrl.setViewportView(tbl);
tbl.setModel(new DefaultTableModel (dt_table, header)); add(scrl, BorderLayout.NORTH);
33 rk.close();
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Data Pelanggan Error"); }
}
void tampil() {
JFrame bingkai =new JFrame("Tabel Data Pelanggan");
bingkai.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); view_data content = new view_data();
content.setOpaque(true); bingkai.setContentPane(content); bingkai.pack(); bingkai.setLocationRelativeTo(null); bingkai.setVisible(true); }
public static void main (String [] args) {
view_data ev = new view_data(); ev.tampil();
} }