Cari Blog Ini

Rabu, 26 Desember 2018

Aplikasi Kalender dengan JDateChooser dan MYSQL


untuk library dan aplikasi nya dapat di download pada link berikut ini



  DONWLOAD disini.

untuk menggunakan library JDateChooser pada Jcreato harus di import terlebih dahulu. berikut ini cara nya.

1. klik configure --> klik options maka akan tampil seperti berikut ini


2. klik JDK Profile --> maka akan tampil JDK version yang digunakan, --> klik pada JDK Version tersebut --> klik tombol EDIT


3.  klik add --> AddArchive --> pilih lokasi library kalender yang kalian simpan


4. jika sudah selesai klik OPEN --> OK --> OK.

berikut ini coding untuk Aplikasi Kalender 

import javax.swing.*;
import java.awt.*;
import com.toedter.calendar.JDateChooser; // library tgl
import java.text.SimpleDateFormat; // untuk tgl
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.*;

class tanggal_lahir extends JFrame
{
JLabel nama = new JLabel("Nama");
    JTextField txnama = new JTextField();
    
JLabel tempat = new JLabel("Tempat Lahir");
JTextField txtempat = new JTextField();
JLabel tgl = new JLabel ("Tanggal Lahir");
JDateChooser txtgl = new JDateChooser(); // penggunaan 
JButton simpan = new JButton ("SAVE");
JButton cari = new JButton ("SEARCH");
JButton update = new JButton ("UPDATE");
JButton bersih = new JButton ("CLEAN");
JButton delete = new JButton ("DELETE");
JButton cetak = new JButton ("PRINT");
String header [] ={"NAMA","Tempat Lahir","Tanggal Lahir"};
DefaultTableModel model = new DefaultTableModel(null,header);
JTable tabel = new JTable(model);
JScrollPane pane = new JScrollPane(tabel);
tanggal_lahir()
{
setTitle("Aplikasi Tanggal Lahir");
setLocation(0,0);
setSize(400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void komponenvisual()
{
getContentPane().setLayout(null);
getContentPane().setBackground(Color.pink);
getContentPane().add(nama);
nama.setBounds(10,10,100,20);
getContentPane().add(txnama);
txnama.setBounds(120,10,150,20);
getContentPane().add(tempat);
tempat.setBounds(10,40,100,20);
getContentPane().add(txtempat);
txtempat.setBounds(120,40,150,20);
getContentPane().add(tgl);
tgl.setBounds(10,70,100,20);
getContentPane().add(txtgl);
txtgl.setBounds(120,70,150,20);
getContentPane().add(simpan);
simpan.setBounds(10,100,80,40);
getContentPane().add(delete);
delete.setBounds(100,100,80,40);
getContentPane().add(update);
update.setBounds(190,100,80,40);
getContentPane().add(bersih);
bersih.setBounds(280,100,80,40);
getContentPane().add(cari);
cari.setBounds(280,10,100,40);
getContentPane().add(cetak);
cetak.setBounds(280,50,100,40);
getContentPane().add(pane);
pane.setBounds(10,150,350,100);
pane.setOpaque(false); //untuk tranparan tabel
pane.getViewport().setOpaque(false);  //untuk tranparan tabel

tampilTabel();

setVisible(true);
}
//===============================================
void aksireaksi()
{
simpan.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent ev)
{
String kalender = new SimpleDateFormat("yyyy-MM-dd").format(txtgl.getDate());
   try
               {
              
Class.forName("com.mysql.jdbc.Driver");   //untuk mendeteksi driver database
Connection koneksi  = DriverManager.getConnection("jdbc:mysql://localhost/ulangtahun","root","");
String sql="insert into dataulangtahun values (?,?,?)";
PreparedStatement pr = koneksi.prepareStatement(sql);

 //untuk ambil data yang mau disimpan
pr.setString(1,txnama.getText());
pr.setString(2,txtempat.getText());
pr.setString(3,kalender);

pr.executeUpdate(); //untuk melanjutkan proses penyimpanan
pr.close();       // untuk menutup proses penyimpanan
koneksi.close();      //untuk menutup koneksi

JOptionPane.showMessageDialog(null, "Data Telah Masuk", "Konfirmasi", JOptionPane.INFORMATION_MESSAGE);
 }
 catch(Exception e)
{
   JOptionPane.showMessageDialog(null, "data telah ada didalam database","Konfirmasi",JOptionPane.INFORMATION_MESSAGE);
 }  
tampilTabel();
cetakKartu();
bersihData();
  }  } );
//===================================================================

cetak.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent ev)
{
cetak_Laporan();
}
});
//=================================================
cari.addMouseListener(new MouseAdapter()
{
 public void mouseClicked(MouseEvent act)
{
 String namaku = txnama.getText();
 try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/ulangtahun", "root", "");
Statement state = koneksi.createStatement();
String sql = "select * from dataulangtahun where nama = '"+namaku+"'";
ResultSet rs = state.executeQuery(sql);

if(rs.next())
 {
txtempat.setText(rs.getString("tempatlahir"));
txtgl.setDate(rs.getDate("tanggallahir"));
//txtgl.setText(rs.getString(3));        

}  }
catch(Exception ex)
{
System.out.println(ex);
} } } );

//====================== update ==============================//
update.addActionListener(new ActionListener()   //untuk update data
{
public void actionPerformed(ActionEvent event)
    {
    if (event.getSource()==update)
       {
 String kalender2 = new SimpleDateFormat("yyyy-MM-dd").format(txtgl.getDate());
          try
          {

Class.forName("com.mysql.jdbc.Driver");
Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/ulangtahun","root","");

String sql="update dataulangtahun set tempatlahir =?, tanggallahir =?  WHERE nama = ?";
PreparedStatement pr = koneksi.prepareStatement(sql);

pr.setString(1,txtempat.getText());
pr.setString(2,kalender2);
pr.setString(3,txnama.getText());

pr.executeUpdate();
pr.close();
koneksi.close();
tampilTabel();
bersihData();

JOptionPane.showMessageDialog(null, "Data Sudah TerUpdate","Konfirmasi",JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception e)
{
 System.out.println("Error :"+e);
 JOptionPane.showMessageDialog(null, "data bermasalah \n "+e,"Konfirmasi",JOptionPane.INFORMATION_MESSAGE);
} }  }  }  );

// ========================================= hapus layar
bersih.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent event)
{
bersihData();
}
});

//======================== tombol delete ========================//
delete.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
String namaku=txnama.getText();

int tanya = JOptionPane.showConfirmDialog(null,"Apakah Anda ingin Menghapus Data NAMA "+namaku+" ?","Konfirmasi",JOptionPane.YES_NO_OPTION);

if (tanya==0)
  {
        try
        {
Class.forName("com.mysql.jdbc.Driver");
Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/ulangtahun", "root", "");

String sql="DELETE FROM dataulangtahun WHERE nama=?";
PreparedStatement pr = koneksi.prepareStatement(sql);

pr.setString(1,namaku);

pr.executeUpdate();
pr.close();
koneksi.close();
JOptionPane.showMessageDialog(null,"Data telah dihapus");

tampilTabel(); //ambil data di void tampilTabel()
bersihData();
         }
catch (Exception ex)
        {
JOptionPane.showMessageDialog(null,"Error :"+ex,"Error",JOptionPane.ERROR_MESSAGE);
        }  }  }  }  );
}
//================= bersih data ==============================//
void bersihData()
{
txnama.setText("");
txtempat.setText("");
txtgl.setDate(null);
}

//====================== tampil tabel ===========================//
void tampilTabel()
    {
    hapusTabel();
        try
        {
Class.forName("com.mysql.jdbc.Driver");
Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/ulangtahun","root","");
Statement state = koneksi.createStatement();
String sql = "select * from dataulangtahun";
ResultSet rs = state.executeQuery(sql);

while(rs.next())
    {
    Object obj[] = new Object[3];
    obj[0] = rs.getString("nama"); 
    obj[1] = rs.getString("tempatlahir"); 
    obj[2] = rs.getDate("tanggallahir"); 

    model.addRow(obj);
 }  }
catch(Exception ex)
   {
System.out.println(ex);
 }  }

//===================== hapus Tabel =======================//
void hapusTabel()
  {
    int row = model.getRowCount();
    for (int i = 0; i < row; i++)
     {
      model.removeRow(0);
    }  }
//=============================================================
void cetakKartu()
{

 int y = 0;
    Frame fr = new Frame();
    PrintJob print = fr.getToolkit().getPrintJob(fr, "Prinnting", null, null);
    if (print != null)
    {
      Graphics g = print.getGraphics();
      if (g != null)
      {
//untuk kop (header)
g.setFont(new Font("Dialog", 1, 11));
g.drawString("KARTU ULANG TAHUN", 10, 40);
g.drawLine(10, 50, 550, 50); //untuk garis

g.drawString("NAMA", 10,70);
g.drawString(":", 90, 70);
g.drawString(txnama.getText(), 100, 70);

g.drawString("Tempat Lahir", 10,90);
g.drawString(":", 90, 90);
g.drawString(txtempat.getText(), 100, 90);

g.drawString("Tanggal Lahir", 10,110);
g.drawString(":", 90, 110);
String kalenderprint = new SimpleDateFormat("yyyy-MM-dd").format(txtgl.getDate());
g.drawString(kalenderprint, 100, 110);

  }  }
      print.end();
      print.end();
}  

//======================================================

//=========================cetak Laporan =======================//
 void cetak_Laporan()
  {
    int y = 0;
    Frame fr = new Frame();
    PrintJob print = fr.getToolkit().getPrintJob(fr, "Prinnting", null, null);
    if (print != null)
    {
      Graphics g = print.getGraphics();
      if (g != null)
      {
//untuk kop (header)
Image image=new ImageIcon("gambar/logo.png").getImage();
g.drawImage(image,50,30,60,57,this);

g.setFont(new Font("Dialog", 1, 11));
g.drawString("DATA ULANG TAHUN", 150, 40);

g.setFont(new Font("Dialog", 1, 10));
g.drawString("Jl.Politeknik Aceh", 170, 50);

g.setFont(new Font("Dialog", 1, 9));
g.drawString("085234159641", 180, 60);

//untuk nama kolom tabel
        String nama = tabel.getColumnName(0);
        String tempat = tabel.getColumnName(1);
        String tanggal = tabel.getColumnName(2);
  

        g.setFont(new Font("Dialog", 1, 8));
        g.drawString(nama, 30, 100);
        g.drawString(tempat, 80, 100);
        g.drawString(tanggal, 190, 100);


//untuk datanya tabel
        int n = model.getRowCount();
        for (int i = 0; i < n; i++)
        {
          int k = i + 1;
          int j = 10 * k;
          y = 103 + j;

          g.setFont(new Font("Dialog", 0, 8));
          String data_nama = model.getValueAt(i, 0).toString();
          String data_tempat = model.getValueAt(i, 1).toString();
          String data_tanggal = model.getValueAt(i, 2).toString();


          g.drawString(data_nama, 30, y);
          g.drawString(data_tempat, 100, y);
          g.drawString(data_tanggal, 200, y);

        }
      }
      print.end();
      print.end();
    }  }
//=====================================================
public static void main (String[] args) 
{
tanggal_lahir th = new tanggal_lahir();
th.komponenvisual();
th.aksireaksi();
}

}