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
1
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 .............................................................................................................. 8
2
3
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 3. Sebagai tugas kuliah Pemrograman Berbasis Java
3
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 Program ini belum melibatkan tabel lain untuk berelasi.
4
5
Bab III JDBC
Tabel 1
Input Data Pelanggan Input data pelanggan disimpan dalam database “java”, dalam tabel “t_plg”
Data tersimpan di database:
5
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.
6
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.
Data dengan code “3”, atas nama Fibriyani sudah tidak ada di databse:
7
8
View Menampilkan data pelanggan sesuai data yang ada di database:
8
9
Bab IV Menu Menu Menu Program Data Pelanggan mempunyai sub_Menu: File
Data
:
File Pelanggan
:
Exit
: Untuk keluar dari menu
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 Menampilkan Data diri Penulis.
9
10
Integrasi Menu Tampilan Menu Utama
Sub Menu, Input Data
10
11
Sub Menu Update Data Pelanggan, sekalian untuk menghapus data
Sub Menu About_Us:
11
12
Bab V Penutup Kesimpulan Pemrograman 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.
12
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){ System.out.println("tidak bisa konek ke db");
13
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"); JMenuItem update_plg=new JMenuItem("Cari Data Pelanggan"); 14
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() {
15
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(); } }); view_plg.addActionListener(new ActionListener()
16
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, "Tugas Pemrormana Java by Rudi Kurniawan : 13111003
Nama : Rudi Kurniawan", "Informasi", JOptionPane.INFORMATION_MESSAGE); } }); } public static void main(String[] args) { menu evi=new menu(); evi.gui(); evi.aksi(); } }
17
NIM
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);
18
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);
19
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(); }
20
21
kelas = (String) clas3.getSelectedItem();
//input data konekdb open = new konekdb (); Connection mysql = open.getConnection(); try { Statement stmt = mysql.createStatement(); String
sql
=
"INSERT
INTO
(code,nama,alamat,jns_kelamin,kelas)
t_plg 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();
21
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(); } }
22
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);
23
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);
24
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(); Statement stmt = mysql.createStatement();
25
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) { //JOptionPane.showMessageDialog(null, ex.getMessage());
26
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(); Connection mysql = open.getConnection();
27
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();
28
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, berhasil"); } }
29
"Update
data
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[]) {
30
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 { 31
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); stmt.close();
32
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(); } }
33