Tuesday, 14 June 2016

Aplikasi Penggajian Karyawan - CRUD (Create, Reset, Update, Delete) - NetBeans

Aplikasi Penggajian Karyawan - CRUD (Create, Reset, Update, Delete) - Sebelum memulai membuat aplikasi penggajian karyawan ini, pastikan anda telah membaca tutorial sebelumnya, yaitu :

Menampilkan Data di Database MySQL pada JTable Netbeans


Setelah anda membaca dan membuat program untuk menampilkan data di database, proses selanjutnya adalah mendesain ulang Form_Gaji pada project App_Database seperti berikut :
Desain Form_Gaji
Sesuaikan nilai dari komponen control pada Form_Gaji dengan tabel berikut :
Komponen Properties Values Code Values
Frame Title Form Penggajian Karyawan - -
jLabel1 Text Data Gaji Karyawan - -
jLabel2 Text NIP - -
jLabel3 Text Nama - -
jLabel4 Text Jabatan - -
jLabel5 Text Gaji Pokok - -
jLabel6 Text Transport - -
jLabel7 Text Gaji Bersih - -
jTextField1 Text - Variable Name txtNip
jTextField2 Text - Variable Name txtNama
jTextField3 Text - Variable Name txtGapok
jTextField4 Text - Variable Name txtTransport
jTextField5 Text - Variable Name txtGaber
jComboBox1 Model Manager
Asisten Manager
Kepala HRD
Staf Keuangan
Karyawan
Office Boy
Variable Name cmboxJabatan
jButton1 Text
Icon
horizontolTextPosition
verticalTextPosition
Keluar
Pilih lokasi icon
Center
Bottom
Variable Name btnKeluar
jButton2 Text
Icon
horizontolTextPosition
verticalTextPosition
Delete
Pilih lokasi icon
Center
Bottom
Variable Name btnDelete
jButton3 Text
Icon
horizontolTextPosition
verticalTextPosition
Update
Pilih lokasi icon
Center
Bottom
Variable Name btnUpdate
jButton3 Text
Icon
horizontolTextPosition
verticalTextPosition
Reset
Pilih lokasi icon
Center
Bottom
Variable Name btnReset
jButton4 Text
Icon
horizontolTextPosition
verticalTextPosition
Save
Pilih lokasi icon
Center
Bottom
Variable Name btnSave
jTable1 - - Variable Name tblGaji
Note :
untuk icon pada button anda bisa mendownload nya di google images, icon yang bagus adalah dengan format .png

    Membuat Variable Baru

    Note:
    kode berwarna hitam adalah sintaks yang  telah disediakan sistem
      kode berwarna hijau adalah sintaks yang telah diketik di tutorial sebelumnya
        kode berwarna merah adalah kode yang harus anda ketik  
          Selanjutnya buatlah beberapa variable baru untuk menampung nilai sementara dari Nip, Nama, Jabatan, Gaji Pokok, Transport dan Gaji Bersih, masukkan variable tersebut pada class utama yaitu class Form_Gaji seperti kode program berikut :
          public final class Form_Gaji {
                private DefaultTableModel model;
                String nip, nama, jabatan;
                int gapok, transport, gaber;

          Memberi Nilai Pada Variable

          Buatlah class baru dengan nama loadData(), fungsi class ini adalah untuk memberi nilai pada variable yang telah dibuat. Berikut kode program class loadData( ) :
           
          public void loadData() {
                nip = txtNip.getText();
                nama = txtNama.getText();
                jabatan = (String) cmboxJabatan.getSelectedItem();

          Setelah class loadData() selesai dibuat, selanjutnya buat class baru dengan nama loadGaji(), fungsi class ini adalah untuk menentukan besaran gaji pokok, transport dan gaji bersih. Berikut kode program pada class loadGaji():

          public void loadGaji( ) {
               jabatan = " "+ cmboxJabatan.getSelectedItem();
               switch(jabatan){
                       case "Manager":
                              gapok    = 5000000;
                       break;
                       case "Asisten Manager":
                              gapok    = 4500000;
                       break;
                       case "Kepala HRD":
                              gapok    = 4000000;
                       break;
                       case "Staf Keuangan":
                              gapok    = 3500000;
                       break;
                       case "Karyawan":
                              gapok    = 3000000;
                       break;
                       case "Office Boy":
                              gapok    = 2500000;
                       break;
                }
                transport = (int) (gapok * 0.1);
                gaber      = gapok + transport;
                txtGapok.setText(""+gapok);
                txtTransport.setText(""+transport);
                txtGaber.setText(""+gaber);
          }             


          Membuat Class Save

          Pada tahap ini merupakan tahap pembuatan class saveData(), fungsi class ini adalah untuk menyimpan data berdasarkan input dari user, berikut kode program pada class saveData()
           
          public void saveData(){
                loadData();
                try{
                     Statement stat = (Statement) Db_Connection.getKoneksi().createStatement();
                     String sql        = "Insert into gaji (Nip, Nama, Jabatan, Gapok, Transport, Gaber)"
                                                + "values ('"+ nip +"','"+ nama +"','"+ jabatan +"','"+ gapok +"',"
                                                + " '"+ transport +"', '"+ gaber +"')";
                    PreparedStatement p = (PreparedStatement) Db_Connection.getKoneksi().preparedStatement(sql);
                    p.executeUpdate();
                    getData();
                 }catch (SQLException err){
                    JOptionPane.showMessageDialog(null, err.getMessage());
                 }
          }

          Memanggil Class loadGaji

          Selanjutnya adalah pemanggilan class loadGaji() saat jabatan pada cmboxJabatan dipilih, berikut kode program pada cmboxJabatan:
          private void cmboxJabatanActionPerformed(java.awt.event.ActionEvent evt{
                loadGaji();
          }

          Memanggil Class saveData() pada Button Save

          private void btnSaveActionPerformed(java.awt.event.ActionEvent evt{
                saveData();
          }
          Jalankan program dengan menekan tombol pada keyboard Shift + F6, lakukan uji coba input data pada aplikasi.

          Membuat Tombol Reset 

          Buatlah sebuah class Reset(), fungsi class ini adalah untuk mengkosongkan nilai pada variable – variable yang ada. Berikut kode program pada class Reset() :
          public void Reset( ){
              nip           = " ";
              nama       = " ";
              jabatan    = " ";
              gapok     = 0;
              transport = 0;
              gaber      = 0;
              txtNip.setText(nip);
              txtNama.setText(nama);
              txtGapok.setText(" ");
              txtTransport.setText(" ");
              txtGaber.setText(" ");
          }
          Lakukan pemanggilan class Reset() saat tombol Reset di klik, berikut kode program pada tombol Reset
          private void btnResetActionPerformed(java.awt.event.ActionEvent evt{
              Reset();
          }

          Menampilkan record terpilih dari Table

          Dalam proses updatedan delete data harus dilakukanpenentuan data yang akan diubah atau dihapus, agar proses tersebut dapat dilakukan, maka buatlah class baru yang berfungsi untuk memanggil data yang dipilih oleh user dari tblGaji. Berikut kode program pada class tersebut :
           
          public void dataSelect(){
                int i = tblGaji.getSelectRow();
                if (i == -1){
                    //tidak ada data terpilih
                    return;
                }
                txtNip.setText(""+model.getValueAt(i, 0));
                txtNama.setText(""+model.getValueAt(i, 1));
                txtJabatan.setSelectedItem(""+model.getValueAt(i, 2));
                txtGapok.setText(""+model.getValueAt(i, 3));
                 txtTransport.setText(""+model.getValueAt(i, 4));
                txtGaber.setText(""+model.getValueAt(i, 5)); 
          }
          Selanjutnya klik kanan pada tblGaji pada bagian Design kemudian pilih Events – Mouse – mouseClicked, kemudian lakukan pemanggilan class dataSelect() pada events tersebut.
          private void tblGajiMouseClicked(java.awt.event.MouseEvent evt{
                dataSelect();
          }
          Kemudian jalankan program dan lakukan pemilihan data pada tabel tblGaji, jika berhasil maka data yang dipilih akan tampil pada komponen – komponen yang disediahkan.

          Membuat Button Update

          Setelah proses SelectRow berhasil, maka selanjutnya adalah proses update data. Buatlah class baru dengan nama updateData(), masukan kode program berikut : 

          public void updateData(){
                 /* memanggil class loadData() untuk menentukan kondisi atau variable nip
                     yang akan diubah, berdasarkan yang dipilih
                 */
                 loadData();
                 try{
                      Statement stat = (Statement) Db_Connection.getConection().createStatement();
                      String sql        = "UPDATE gaji SET Nama       = '"+ nama +"',"
                                                                        + "Jabatan      = '"+ jabatan +"',"
                                                                        + "Gapok       = '"+ gapok +"',"
                                                                        + "Transport   = '"+ transport +"',"
                                                                        + "Gaber        = '"+ gaber +"',"
                                                 + "WHERE Nip = '"+ nip +"' ";
                 PreparedStatement p = (PreparedStatement) Db_Connection.getConection().preparedStatement(sql);
                 p.executeUpdate();

                 getData();
                 Reset();
                 JOptionPane.showMessageDialog(null, "Update berhasil....");
               }catch(SQLException err){
                      JOptionPane.showMessageDialog(null, err.getMessage);
               }
          }
          Kemudian klik kanan pada tombol Update pilih Events – Action – actionPerformed, kemudian lakukan pemanggilan pada events tersebut:
          private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt){
                 updateData( );
          }

          Membuat Button Delete


          Selanjutnya adalah proses delete data. Buatlah class baru dengan nama deleteData(), masukan kode program berikut  :
          public void deleteData(){
               loadData();
               //pesan konfirmasi untuk menghapus data
               int pesan = JOptionPane.showConfirmDialog(null, "Anda yakin menghapus data"+ nip "+"?","Konfirmasi", JOptionPane.OK_CANCEL_OPTION);
               //jika user mengklik tombol OK maka proses delete dilakukan
               if (pesan = JOptionPane.OK_OPTION){
                   try{
                         Statement stat = (Statement) Db_Connection.getConection().createStatement();
                         String sql = "DELETE FROM gaji WHERE Nip = '"+ nip +"' ";
                   PreparedStatement p = (PreparedStatement) Db_Connection.getConection().preparedStatement(sql);
                   p.executeUpdate();
                   getData();
                   Reset();
                   JOptionPane.showMessageDialog(null, "Delete berhasil");
                   }catch(SQLException err){
                          JOptionPane.showMessageDialog(null, err.getMessage);
                   }
          }
          Kemudian klik kanan pada tombol Delete pilih Events – Action – actionPerformed, kemudian lakukan pemanggilan pada events tersebut :
          private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt){
               deleteData();
          }

          Membuat Button Keluar

          Klik kanan pada tombol Keluar pilih Events – Action – actionPerformed, kemudian lakukan pemanggilan pada events tersebut.
          private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt){
          this.dispose();
          }
          Proses pembuatan aplikasi penggajian karyawan telah selesai, silahkan jalankan program tersebut dan coba untuk menggunkan perintah - perintah yang telah dibuat.
          Jika tutorial ini bermanfaat 
          kami menerima donasi sebagai penyemangat dalam menulis artikel
          Bank Syariah Indonesia (BSI)
          An. Siswan Syahputra
          No. Rek. 1041890734
          Jika tutorial ini bermanfaat silahkan share... terima kasih...
          Read More

          Monday, 13 June 2016

          Menampilkan Data di Database MySQL pada JTable Netbeans



          Menampilkan Data di Database MySQL pada JTable Netbeans - Pada tutorial ini akan dibahas bagaimana data yang tersimpan di database agar tampil di table yang disediakan dalam sebuah form. Berikut langkah - langkah untuk menampilkan data di database pada JTable.

          Membuat Database Karyawan

          Hal pertama yang harus dilakukan adalah membuat database di MySQL dengan nama "Karyawan" beserta table "tblGaji". Berikut rancangan tabel tblGaji :

          Field Type
          Nip Varchar (10)
          Nama Varchar (50)
          Jabatan Varchar (30)
          Gapok Int (10)
          Transport Int (10)
          Gaber Int (10)

          Isi table tblGaji dengan data berikut :
          Nip Nama Jabatan Gapok Transport Gaber
          14231022 Surya Pratama Manager 5000000 500000 5500000
          14231021 Sandika Indriyani Asisten Manager 4000000 400000 4400000
          14231020 Kartini Andayani Kepala HRD 4000000 400000 4400000


          Membuat Project Baru di NetBeans

          Selanjutnya buatlah project baru di netbeans dengan nama "App_Database" dan buat Java Package dengan nama "Koneksi".

          Agar database dapatMySQL dapat terhubung maka diperlukan driver sebagai jembatan penghubung netbeans dengan MySQL. Klik kanan pada Libraries dalam project App_Database - pilih Add Library

           Kemudian pada jendela Add Library pilih MySQL JDBC Driver dan klik tombol Add Library
          Jika proses import driver MySQL JDBC berhasil maka akan muncul driver baru pada Libraries dalam project App_Database.
          Kemudian buat Java Class baru di dalam package Koneksi dengan nama “Db_Koneksi”.

          Membuat Koneksi ke Database

          Masukkan kode program berikut pada Java Class Db_Koneksi :

          package Koneksi;

          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.SQLException;
          import javax.swing.JOptionPane;

          public class Db_Koneksi {
                private static Connection conn;
                public static Connection getKoneksi( ){
                         String host       = "jdbc:mysql://localhost/karyawan",
                                    user       = "root",
                                    pass       = "root";
                         try{
                                conn = (Connection) DriverManager.getConnection(host, user, pass);
                         }catch (SQLException err){
                                 JOptionPane.showMessageDialog(null, err.getMessage( ) );
                         }
                         return conn;
                }
          }

          Membuat Form_Gaji

          Selanjutnya buatlah package baru pada App_Database dengan nama "Karyawan". Kemudian buat JFrame Form baru pada package Karyawan dengan nama "Form_Gaji".
            
          Masukkan komponen JTable dari jendela Palette pada Form_Karyawan seperti berikut :
          Sesuaikan nilai dari komponen – komponen tersebut dengan tabel berikut :
          Komponen Properties Values Code Values
          Frame Title Form Penggajian Karyawan - -
          Jlabel1 Text Data Gaji Karyawan - -
          JTable1 - - Variable Name tblGaji
          Membuat Kolom Pada Table
          Masukkan kode program berikut pada Form_Gaji untuk membuat kolom dan memberi penamaan judul kolom pada tabel tblGaji :
          import javax.swing.table.DefaultTableModel;
          public class Form_Gaji extends javax.swing.JFrame {
                //membuat variable model dengan untuk DefaultTableModel
                private DefaultTableModel model;

                public Form_Gaji( ){
                       initComponents ( );

                       //memberi penamaan pada judul kolom tblGaji;
                       model = new DefaultTableModel ( );
                       tblGaji.setModel(model);
                       model.addColumn("NIP");
                       model.addColumn("Nama");
                       model.addColumn("Jabatan");
                       model.addColumn("Gaji Pokok");
                       model.addColumn("Transport");
                       model.addColumn("Gaji Bersih");
                }

          Untuk melihat hasil dari dari pembuatan kolom pada tabel tblGaji , jalankan program dengan menekan tombol Shift + F6, jika berhasil maka akan tampil seperti berikut :

          Membuat Class Untuk Mememanggil Data di Database

          Kemudian buatlah class getData untuk melakukan pemanggilan data pada database

          public void getData( ){
               //menghapus isi table tblGaji
               model.getDataVector( ).removeAllElements( );
               model.fireTableDataChanged( );

               try{
                     //membuat statemen pemanggilan data pada table tblGaji dari database
                     Statement stat = (Statement) Db_Koneksi.getKoneksi( ).createStatement( );
                     String sql        = "Select * from gaji";
                     ResultSet res   = stat.executeQuery(sql);

                     //penelusuran baris pada tabel tblGaji dari database
                     while(res.next ()){
                          Object[ ] obj = new Object[6];
                          obj[0] = res.getString("Nip");
                          obj[1] = res.getString("Nama");
                          obj[2] = res.getString("Jabatan");
                          obj[0] = res.getString("Gapok");
                          obj[0] = res.getString("Transport");
                          obj[0] = res.getString("Gaber");

                          model.addRow(obj);
                      }
                }catch(SQLException err){
                      JOptionPane.showMessageDialog(null, err.getMessage() );
                }
          }

          Menampilkan Data di Database ke Table tblGaji

          Agar data di tabel tblGaji pada database Karyawan dapat ditampilkan pada Form_Gaji, maka panggil class getData pada class Form_Gaji seperti kode berikut ini :
          public Form_Gaji( ){
                       initComponents ( );

                       //memberi penamaan pada judul kolom tblGaji;
                       model = new DefaultTableModel ( );
                       tblGaji.setModel(model);
                       model.addColumn("NIP");
                       model.addColumn("Nama");
                       model.addColumn("Jabatan");
                       model.addColumn("Gaji Pokok");
                       model.addColumn("Transport");
                       model.addColumn("Gaji Bersih");

                       getData();
                }
          Jalankan program dengan menekan tombol keyboard Shift + F6

          Read More