Program Pembayaran Tagihan PDAM/PAM Air Dengan Java

 Pengennya sih sekarang nge-release code program yang menjadi tugas akhir untuk UAS ini *sekarang jam 4.25 pagi* tapi takut ada apa-apa soalnya ini hubungannya sama nilai gue. hahahaha
screenshoot program :D
Jadi gue rencanain nanti aja abis UAS jam 3an sore *sekarang tanggal 16 jam 4.27 pagi* atau mungkin besok kali *gue mau mudik soalnya, hahahaha* oh iya gue nge-release source code ini tuh bukan pengen sombong, tp gue pengen share ilmu yg gue dapet semaleman ini, ya lumayan lah dalam semalem ini gue jd 'agak' ngerti tentang Java GUI. Oh iya gue kan bercita2 pengen kaya mang Richard Stallman kan keren tuh bagi2 ilmu, dalam hal ini source code lah.

Ok, langsung aja ya, gue kasih contohnya class dari program gue yang paling pendek, file lain download aja ok.
package pbo_uas;

import javax.swing.*;

import java.sql.*;
import java.util.Properties;
import java.awt.*;

import javax.swing.table.*;
import java.awt.event.*;

public class hapusData extends JFrame{
 JLabel jLabel4 = new JLabel();
 JScrollPane jScrollPane1 = new JScrollPane();
 JTable tabel = new JTable();
 DefaultTableModel tabMode;
 Connection konek;
 private JLabel jLabel2 = new JLabel();
 private JTextField dataAlamat = new JTextField();
 private JTextField dataKode = new JTextField();
 private JLabel jLabel1 = new JLabel();
 private JLabel jLabel3 = new JLabel();
 private Button hapus = new Button();
 private JTextField dataNama = new JTextField();
 private JLabel jLabel5 = new JLabel();
 private JLabel jLabel6 = new JLabel();
 private JLabel jLabel7 = new JLabel();
 private JTextField dataNo_tel = new JTextField();
 private JTextField dataBulan = new JTextField();
 private JTextField dataBeban = new JTextField();

 public static void main (String[]args){
  hapusData Data = new hapusData();
   Data.setSize(1024,600);
   Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
   int lebar = (screen.width -Data.getSize().width)/2;
   int tinggi =(screen.height -Data.getSize().height)/2;
   Data.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Data.setLocation(lebar, tinggi);
   Data.setResizable(false);
   Data.setVisible(true);
  }

  public hapusData(){
   this.getContentPane().setLayout(null);
   this.setTitle("Proses Menghapus Data");
   Object[] row = {"Id","Nama","Alamat","No Telp","Bulan","Beban"};
   tabMode = new DefaultTableModel(null,row);
   jScrollPane1.setBounds(new Rectangle(40, 40, 900, 300));
   tabel.setModel(tabMode);
   tabel.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
    dapatData_dari_Tabel();
   }
  });
   
  jLabel4.setText("Daftar Data yang telah tersimpan di dalam database");
  jLabel4.setBounds(new Rectangle (15,9,362,19));
  
  jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel1.setText("Id :");
  jLabel1.setBounds(new Rectangle(10,350,92,23));
  
  jLabel2.setBounds(new Rectangle(13,380,89,23));
  jLabel2.setText("Nama  :");
  jLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel2.setRequestFocusEnabled(true);
  
  jLabel3.setBounds(new Rectangle(300,350,89,23));
  jLabel3.setRequestFocusEnabled(true);
  jLabel3.setText("Alamat : ");
  jLabel3.setHorizontalAlignment(SwingConstants.RIGHT);
  
  jLabel5.setRequestFocusEnabled(true);
  jLabel5.setText("No Telp :");
  jLabel5.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel5.setBounds(new Rectangle(297,380,89,22));
  
  jLabel6.setRequestFocusEnabled(true);
  jLabel6.setText("Bulan :");
  jLabel6.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel6.setBounds(new Rectangle(590,350,89,22));
  
  jLabel7.setRequestFocusEnabled(true);
  jLabel7.setText("Beban :");
  jLabel7.setHorizontalAlignment(SwingConstants.RIGHT);
  jLabel7.setBounds(new Rectangle(590,380,89,22));
  
  dataAlamat.setEnabled(true);
  dataAlamat.setBounds(new Rectangle(400,350,177,22));
  
  dataKode.setEnabled(true);
  dataKode.setBounds(new Rectangle(115,350,92,23));
  
  dataNama.setEnabled(true);
  dataNama.setBounds(new Rectangle(115,380,177,22));
  
  dataNo_tel.setEnabled(true);
  dataNo_tel.setBounds(new Rectangle(400,380,177,22));
  
  dataBulan.setEnabled(true);
  dataBulan.setBounds(new Rectangle(700,350,177,22));
  
  dataBeban.setEnabled(true);
  dataBeban.setBounds(new Rectangle(700,380,177,22));
  
  hapus.setActionCommand("");
  hapus.setBackground(SystemColor.inactiveCaption);
  hapus.setEnabled(true);
  hapus.setLabel("HAPUS");
  hapus.setBounds(new Rectangle(700,410,177,22));

  hapus.addActionListener(new java.awt.event.ActionListener(){
   public void actionPerformed(ActionEvent e){
    proses_hapusData();
   }
  });
   
  this.getContentPane().add(jScrollPane1,null);
  jScrollPane1.getViewport().add(tabel,null);
  this.getContentPane().add(jLabel4,null);
  this.getContentPane().add(jLabel2,null);
  this.getContentPane().add(dataAlamat,null);
  this.getContentPane().add(dataKode,null);
  this.getContentPane().add(jLabel1,null);
  this.getContentPane().add(jLabel3,null);
  this.getContentPane().add(jLabel6,null);
  this.getContentPane().add(jLabel7,null);
  this.getContentPane().add(hapus,null);
  this.getContentPane().add(dataNama,null);
  this.getContentPane().add(jLabel5,null);
  this.getContentPane().add(dataNo_tel,null);
  this.getContentPane().add(dataBulan,null);
  this.getContentPane().add(dataBeban,null);
  this.getContentPane().add(hapus,null);
  koneksiDatabase();
  tampilDataKeTabel();
 }
  
 public void koneksiDatabase(){
 try{
  Class.forName("com.mysql.jdbc.Driver");
  System.out.print("suksess driver JDBC ditemukan...");
 
 try
 {
  String url = "jdbc:mysql://localhost:3306/pdam";
  Properties prop = new Properties();
  prop.put("user", "root");
  prop.put("password", "");
  konek = DriverManager.getConnection(url,prop);
  System.out.print("sukses koneksi...");
 }

 catch(SQLException se)
 {
  System.out.print("koneksi gagal = "+se);
  System.exit(0);
 }
 
 }

 catch(ClassNotFoundException cnfe)
 {
  System.out.print("class tidak ditemukan.. Error : "+cnfe);
  System.exit(0);
 }

 }

 public void tampilDataKeTabel(){
 hapusTabel();
 try{
  String sql="Select* from tran_jun order by id";
  Statement stat = konek.createStatement();
  ResultSet set = stat.executeQuery(sql);
 while(set.next()){
  String kode = set.getString("id");
  String nama = set.getString("nama");
  String alamat = set.getString("alamat");
  String no_tel = set.getString("no_tel");
  String bulan = set.getString("bulan");
  String beban = set.getString("beban");
  String data[] ={kode, nama, alamat, no_tel, bulan, beban};
  tabMode.addRow(data);
  }
 }
 catch (Exception e){}
 }
  
 public void hapusTabel(){
  int row =tabMode.getRowCount();
  for(int i =0; i< row; i++){
  tabMode.removeRow(0);
  }
 }
 
 void dapatData_dari_Tabel(){
  int row = tabel.getSelectedRow();
  String Kode = tabel.getValueAt(row,0).toString();
  String Nama = tabel.getValueAt(row,1).toString();
  String Alamat = tabel.getValueAt(row,2).toString();
  String No_tel = tabel.getValueAt(row,3).toString();
  String Bulan = tabel.getValueAt(row,4).toString();
  String Beban = tabel.getValueAt(row,5).toString();
  dataKode.setText(Kode);
  dataNama.setText(Nama);
  dataAlamat.setText(Alamat);
  dataNo_tel.setText(No_tel);
  dataBulan.setText(Bulan);
  dataBeban.setText(Beban);
  if (dataKode.getText().equals(" ")){
   dataKode.setEnabled(false);
   dataNama.setEnabled(false);
   dataAlamat.setEnabled(false);
   dataNo_tel.setEnabled(false);
   dataBulan.setEnabled(false);
   dataBeban.setEnabled(false);
  }
  else{
   dataKode.setEnabled(false);
   dataNama.setEnabled(true);
   dataAlamat.setEnabled(true);
   dataNo_tel.setEnabled(true);
   dataBulan.setEnabled(true);
   dataBeban.setEnabled(true);
   dataNama.requestFocus();
  }
 }
 
 public void proses_hapusData(){
  int ok = JOptionPane.showConfirmDialog(null,"Anda yakin ingin menghapus Data\nDengan Kode =" + dataKode.getText() + "","konfirmasi menghapus Data",JOptionPane.YES_NO_OPTION);
  if(ok==0){
  try{
  String sql = "DELETE FROM tran_jun WHERE id =" + dataKode.getText()+ "";
  PreparedStatement stat = konek.prepareStatement(sql);
  stat.executeUpdate();
  tampilDataKeTabel();
  dataKode.setText("");
  dataAlamat.setText("");
  dataNo_tel.setText("");
  dataBulan.setText("");
  dataBeban.setText("");
  hapus.setEnabled(false);
 }
 catch (SQLException se){
  System.out.println("Gagal Hapus.. Pesan Error=" + se);
  JOptionPane.showMessageDialog(null,"Gagal hapus Data..Coba Lagi\nPesan Error :\n"+
  ""+se+
  "");
  dataKode.setFocusable(true);
 }
}
}
}
Ok kita bahas yang gampangnya ok, klo yg ribet takut salah ngejelasinnya..

Pertama di file java itu yang namanya hapusData.java ada beberapa komponen, yaitu deklarasi komponen yaitu dibagian
JLabel jLabel4 = new JLabel();
 JScrollPane jScrollPane1 = new JScrollPane();
 JTable tabel = new JTable();
 DefaultTableModel tabMode;
 Connection konek;
 private JLabel jLabel2 = new JLabel();
 private JTextField dataAlamat = new JTextField();
 private JTextField dataKode = new JTextField();
 private JLabel jLabel1 = new JLabel();
 private JLabel jLabel3 = new JLabel();
 private Button hapus = new Button();
 private JTextField dataNama = new JTextField();
 private JLabel jLabel5 = new JLabel();
 private JLabel jLabel6 = new JLabel();
 private JLabel jLabel7 = new JLabel();
 private JTextField dataNo_tel = new JTextField();
 private JTextField dataBulan = new JTextField();
 private JTextField dataBeban = new JTextField();
pada bagian ini semua komponennya di definisikan, kaya jLabel2 didefinisikan sebagai JLabel yang private

Lalu kita ambil contoh lagi sebuah fungsi yaitu JLabel2
jLabel2.setBounds(new Rectangle(13,380,89,23));
jLabel2.setText("Nama  :");
jLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
JLabel2.setRequestFocusEnabled(true);
pada kode diatas ada new Rectangle(13,380,89,23) 4 deret angka itu adalah (x,y,widht,height) jd bisa diartikan itu sebagai properti untuk penempatan JLabel itu dan ukurannya.

Sebenernya JLabel ini mirip lah dengan System.out.print(" "); di java yang text mode, tapi ini versi GUI nya :D Selanjutnya ada JTextField nah kalo ini mirip sama fungsi scanner/input di text mode.

Apa lagi ya? hahahaha, udah deh ah download aja codenya trus pelajari sendiri, ini programnya sederhana bgt ko, oh iya ini programnya udah di koneksiin sama MySQL dan satu hal lg, hahahaha. gue pake IDE Eclipse.


0 komentar:

Poskan Komentar
Pembaca bijak ninggalin jejak, ada komentar? tulis aja...

 
Text Back Link Exchange
+ Follow This Blog