Aplikasi Input Data dengan Tanggal Lahir


JCalendar adalah library (pustaka) untuk mengolah data tanggal. Library ini secara asal tidak ada dalam Palette bawaan Netbeans. Namun, anda bisa menambahkannya dengan cara mendownloadnya di internet. Beberapa alamat situs tempat mendownload komponen JCalendar di antaranya :

- http://flib.sourceforge.net/JCalendar/doc/index.html
- http://www.ziddu.com/download/13147900/jcalendar.rar.html

Jika mendownload dari ziddu tersebut, anda harus me-rename file dari jcalendar.rar menjadi jcalendar.jar.


Berikut ini adalah contoh aplikasi sederhana input data yang juga meliputi tanggal lahir. Komponen JDateChooser akan digunakan pada aplikasi ini.
User bisa memasukkan data mahasiswa NIM, Nama, beserta tanggal lahirnya serta melakukan proses pencarian, edit, dan hapus data. Ketika NIM diinputkan kemudian ditekan tombol ENTER, maka program akan mencari data NIM tersebut di database dan jika ada akan ditampilkan nama dan tanggal lahirnya. Jika ada data yang akan diubah: nama atau tanggal lahir, bisa segera diubah, kemudian ditekan tombol Edit.

Rancangan JFrame Form


Database dan Tabel
Nama Database : data_mhs
Nama Tabel : mhs_tgl_lahir

Libraries Project
Jangan lupa menyertakan libraries Connector ke MySQL pada Project, sehingga pada project aplikasi ini akan terdapat 3 libraries:
 JDK 1.6 (default)
 JCalendar : karena penggunaan JDateChooser pada tanggal lahir
 MySQL JDBC Driver


Pembuatan Method ‘Bersih’
Pada aplikasi ini kita juga belajar membuat method sendiri yang kita beri nama Bersih. Tujuan method ini adalah untuk membersihkan tulisan pada komponen JTextField dan JDateChooser sehingga siap diisi dengan data baru.
Sisipkan kode berikut dalam kode program kita:

private void Bersih(){

    txt_nim.setText(""); 
   txt_nama.setText(""); 
   tgl_lahir.setDate(null); 
   txt_nim.requestFocus();

 }

Kode Import (Bagian Atas)

// untuk KeyPress Event pada txt_nim
  import java.awt.event.KeyEvent;

// untuk akses ke database
  import java.sql.* ; 

 // untuk memformat tanggal 
   import java.text.SimpleDateFormat;

 // untuk tampilan pesan dengan JOptionPane
   import javax.swing.JOptionPane;

Kode pada tombol Simpan 

String tampilan ="yyyy-MM-dd" ; 
SimpleDateFormat fm = new SimpleDateFormat(tampilan); 
String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));

try { 

   // Setting Driver MySQL
      Class.forName("com.mysql.jdbc.Driver") ;

  // Buat Connection cn Connection cn = DriverManager.getConnection("jdbc:mysql:" + "///data_mhs","root",""); 

   Statement smt = cn.createStatement();
   String sql = "insert into mhs_tgl_lahir (nim,nama,tgl_lahir) values " + "
   ('" + txt_nim.getText()+"','" +     txt_nama.getText() +"'," + " '" + tanggal + "') " ;
   smt.executeUpdate(sql);
   Bersih();

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

}

Penjelasan Kode :

Format penyimpanan tanggal di MySQL adalah : 4 digit tahun – 2 digit bulan-2 digit tanggal. Karena itu, dibuat format terlebih dahulu dengan kode :

 String tampilan ="yyyy-MM-dd" ; SimpleDateFormat fm = new SimpleDateFormat(tampilan);

Variabel tanggal adalah variabel untuk menyimpan ke field tgl_lahir di MySQL. Pengisian data variabel tanggal dengan kode:

 String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));

Kode pada KeyPress Event txt_nim

 if (evt.getKeyCode()==KeyEvent.VK_ENTER) { 

try {

     // Setting Driver MySQL
        Class.forName("com.mysql.jdbc.Driver") ; 

   // Buat Connection cn 
      Connection cn = DriverManager.getConnection("jdbc:mysql:" + "///data_mhs","root","");

    Statement smt = cn.createStatement();

   String sql = "select * from mhs_tgl_lahir where nim ='" + txt_nim.getText()+"' " ; 
   ResultSet rs = smt.executeQuery(sql); 
    if (rs.next()) {
          txt_nama.setText(rs.getString("nama"));
          tgl_lahir.setDate(rs.getDate("tgl_lahir"));


   } else {

JOptionPane.showMessageDialog(this,"Data Tidak Ada","Informasi",JOptionPane.INFORMATION_MESSAGE); 
Bersih() ; } 

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

}

Kode pada tombol Edit 

String tampilan ="yyyy-MM-dd" ; 
SimpleDateFormat fm = new SimpleDateFormat(tampilan); 
String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));

try {

   // Setting Driver MySQL 
      Class.forName("com.mysql.jdbc.Driver") ;

  // Buat Connection cn 
     Connection cn = DriverManager.getConnection("jdbc:mysql:" + "///data_mhs","root",""); 
     
   Statement smt = cn.createStatement();

   String sql = "update mhs_tgl_lahir set nama = '" + txt_nama.getText() +"', " 
   + " tgl_lahir = '" + tanggal + "' where nim = '" + txt_nim.getText()+"'"; 
   smt.executeUpdate(sql); 
   Bersih();

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

  }

Penjelasan :
Mekanisme edit data adalah: user memasukkan NIM mahasiswa yang akan diedit datanya, kemudian menekan tombol Enter. Selanjutnya, data nama atau tanggal diubah sesuai dengan yang diinginkan. Kemudian, ditekan tombol Edit.

Kode pada tombol Hapus

try { 

    // Setting Driver MySQL 
       Class.forName("com.mysql.jdbc.Driver") ;

  // Buat Connection cn 
     Connection cn = DriverManager.getConnection("jdbc:mysql:" + "///data_mhs","root",""); 

    Statement smt = cn.createStatement();

    String sql = "delete from mhs_tgl_lahir where nim = '" + txt_nim.getText()+"'"; 
    smt.executeUpdate(sql); 
    Bersih();

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

Hasil Program




NB : Tampilan sesuai dengan keinginan kamu :)