Tutorial Membuat Program Perhitungan Gaji Karyawan dengan Java | Bagian 3

Tutorial bagian 2

Hallo PalComSter..bertemusua kembali kita pada tutorial Part III. Salamasta! apa kabar semua, luar biasa ya, semoga kita semua dalam keadaan sehat wal’afiat, aminn..

Baiklah, untuk tutorial ke 3 kali ini merupakan lanjutan dari tutorial sebelumnya yang mana sebelumnya saya sudah membahas tentang pembuatan database. Maka untuk Part III ini saya akan membahas untuk step by step nya dalam membangun sebuah aplikasi perhitungan gaji karyawan dengan mengunakan pemrograman java.

Adapun step by step atau tahapan dalam menyelesaikan sebuah program adalah dengan mengenali atau menganalisa terlebih dahulu apa saja yang kita butuhkan dalam membangun atau merancang sebuah program aplikasi. Hal ini dilakukan agar mempermudah kita dalam pengkodean nantinya, karena kita sudah tau apa yang harus kita kerjakan, maka oleh karena itu saya akan memberikan triks mudah agar teman PalComSter bisa dapat dengan mudah memahami pemograman dengan java, sehingga pemrograman java tidak lagi menjadi bumerang dalam fikiran kita dalam mempelejarai Java. Sesuatu pekerjaan yang kita senangi akan terasa mudah untuk diselesaikan.

Pada tahapan berikutnya kita akan analisa kebutuhAn-kebutuhan dalam membangun sebuah aplikasi yang bernama “Program Peprhitungan Gaji dengan menggunakan Aplikasi Java” yang mana nantinya program ini akan tehubung dengan database. Oleh karena itu sebelum kita membangun aplikasi dengan java, maka kita siapkan databasenya terlebih dahulu, yang mana database ini adala sebagai penampung data saat kita inputkan dari program aplikasi nantiya.

Untuk databasenya sudah saya buat pada tutorial Part II dengan nama “dbgajikaryawan” dan nama tabelnya “gaji”. Yang mana database inilah yang akan kita pakai untuk menyimpan data yang akan kita entrikan pada aplikasi program perhitungan gaji ini.

Nah, kita akan masuk ke tahap selanjutnya yaitu apa yang harus kita lakukan pada tahapan-tahapan berikutnya yaitu :

1. Aktifkan Netbeans Javanya

Sebagai langkah awal untuk pembuatan aplikasi menghitung gaji karyawan terlebih dahulu kita aktifkan Netbeansnya terlebih dahulu. Nah, berikut adalah langkah-langkah untuk mengaktifkan netbeansnya :

Klik icon netbeans.

Selain mengklik icon netbeans, kita juga bisa memulainya dari star >  NetBeans > NetBeans IDE 8.1

NetBeans Loading

Setelah diklik icon netbeans maka program akan jalan dan tunggu beberapa detik.

Tampilan untuk memulai projek

Setelah menunggu beberapa saat maka akan muncul tampilan untuk memulai projek yang mana pada tampilan ini kita akan memilik Java aplication untuk memulai projek kita, kemudian klik next.

Halaman Kerja / worksheet

Berikut adalah tampilan dari halaman kerja pada sebuah sebuah netbeans. Disinilah kita akan membuat sebuah form untuk penggajian.

2. Membuat Form Menghitung Gaji Karyawan

Selanjutnya kiat akan membuat desain form seperti dibawah ini. Adapun langkah-langkah untuk membuat form pada java adalah ebagai berikut :

Klik kanan pada project “gaji_karyawan”, kemudian pilih “New”, selanjutya pilih Jframe Form.

Isikan Class Name pada Jframe Form

Pada tahap ini kita akan isikan nama Class Name untuk form nya dengan nama “menghitung_gaji”, kemudian pilih “Finish”.

Halaman Jframe Form

Pada halaman ini kita akan membuat desain form dengan menggunakan Pallete yang ada  pada bagian kanan worksheet.

Adapun Pallet yang paling umum di gunakan untuk membuat desain biasanya terdapat pada Swing Control yaitu  :

  • Label : berfungsi untuk membuat teks
  • Text Field : berfungsi untuk input teks
  • Button : berfungsi untuk membuat tombol, seperti : simpan, hapus, edit, update
  • Table : berfungsi untuk menampilkan hasil record dalam bentuk tabel
  • ComboBox :  berfungsi untuk menampilkan pilihan teks dalam combo box
  • CheckBox : berfungsi untuk membuat kotak pilihan cek data
  • Dan beberapa fungsi pallete lainnya yang dapat digunakan sesuai dengan kebutuhan

Nah, untuk selanjutnya kita akan membuat desain seperti tampilan dibawah ini, disini kita menggunakan beberapa fungsi dari Pallete seperti label, text field, button dan label. Dan untuk mengganti atau mengubah nama teks, button dapat dilakukan dengan cara  : pilih properties, kemudian pilih text (klik gambar kotak sebelah kanna) dan ganti nama teksnya sesuai dengan apa yang akan kita buat, begitu juga selanjutnya. Untuk mengubah nama teks bisa juga dengan cara double klik untuk teks yang akan diubah.

 

Jika desain sudah selesai, maka langkah selanjutnya adalah membuat koneksi dengan dabase dan mengaktifkan fungsi tombol atau fungsi button serta membuatkan fungsi logika dari program tersebut. Berikut adalah koding untuk desain diatas.
Koding dibuat pada source koding (lihat gambar tampilan halaman Jframe Form), adapun koding yang akan dibuat seperti dibawah ini :

Buat Koding Import pada Project : package gaji_karyawan;
import java.util.concurrent.ExecutionException.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;

Buat Koneksi pada class
public class FormGaji extends javax.swing.JFrame {
    		public Connection conn;
    		public Statement cn;

Koding untuk Koneksi ke Database 
public void koneksi (){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/dbgajikaryawan","root","");
            cn = conn.createStatement();
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"Koneksi gagal ...");
            System.out.println(e.getMessage());   }  }

Buat Method untuk Variabel Kosong

void kosong()
     {
    jTextField1.setText("");
    jTextField2.setText("");
    jTextField3.setText("");
    jTextField4.setText("");
    jTextField6.setText("");
    jTextField8.setText("");
     jTextField5.setText("");  }

Buat Method untuk Variabel Tampil Data
    void tampil(){
    DefaultTableModel tabelnyo=new DefaultTableModel();
    tabelnyo.addColumn("No Slip");
    tabelnyo.addColumn("Nama ");
    tabelnyo.addColumn("Gaji Pokok");
    tabelnyo.addColumn("Tunjangan ");
    tabelnyo.addColumn("Jam Lembur ");
    tabelnyo.addColumn("Upah Lembur PerJam ");
    tabelnyo.addColumn("Total Gaji");
    try{
        koneksi();
        String sql="select * from gaji";
        ResultSet rs=cn.executeQuery(sql);
        while(rs.next()){
        tabelnyo.addRow(new Object[]{
         rs.getString(1),
         rs.getString(2),
         rs.getString(3),
         rs.getString(4),
         rs.getString(5),
         rs.getString(6),
         rs.getString(7),
        }); 	}
        tabel.setModel(tabelnyo);
    }catch(Exception e){
        JOptionPane.showMessageDialog(null,"Terjadi Kesalahan" + e);	  }    }

Untuk Menampilkan Form dengan memanggil method tampil();
public FormGaji() {
        	initComponents();
tampil();    }

Koding untuk menampilkan data ke tabel (datagrid)

int row=0;
    public void nampakliak()
    {
    row = tabel.getSelectedRow();
    jTextField1.setText(tabel.getValueAt(row,0).toString());
    jTextField2.setText(tabel.getValueAt(row,1).toString());
    jTextField3.setText(tabel.getValueAt(row,2).toString());
    jTextField4.setText(tabel.getValueAt(row,3).toString());
    jTextField5.setText(tabel.getValueAt(row,4).toString());
    jTextField8.setText(tabel.getValueAt(row,5).toString());
    jTextField6.setText(tabel.getValueAt(row,6).toString());    
}

Koding untuk Button Simpan

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   
try{
         koneksi();
         String sql="INSERT INTO gaji VALUES('"+jTextField1.getText() +"','"+ jTextField2.getText() +"','"+ jTextField3.getText() +"','"+ jTextField4.getText() +"','"+ jTextField5.getText() +"','"+ jTextField8.getText() +"','"+ jTextField6.getText() +"')";
          cn.executeUpdate(sql);
         conn.close();
          tampil();
          JOptionPane.showMessageDialog(null,"berhasil di simpan ");
    }catch(Exception e){
    JOptionPane.showMessageDialog(null,"proses penyimpanan gagal" + e);	}
   kosong();	}       

Koding untuk Button Hapus

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {     
try{
            koneksi();     
            String sql=" delete from gaji where noslip='"+ jTextField1.getText() +"'";
            cn.executeUpdate(sql);
            conn.close();
            tampil();
            JOptionPane.showMessageDialog(null,"Data Berhasil Dihapus");
        }catch(Exception e){JOptionPane.showMessageDialog(null,"proses penghapusan gagal !" +e);	    }
         kosong();     }                  
/
Koding untuk Button Update

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
         try{
         koneksi();
         String sql=" update gaji set nama='"+jTextField2.getText() +"',"+"gapok='"+ jTextField3.getText() +"',"+"tunjangan='"+ jTextField4.getText() +"',"+"jmllembur='"+ jTextField5.getText() +"',"+"upahlemburperjam='"+ jTextField8.getText() +"',"+"totalgaji='"+ jTextField6.getText() +"' where noslip='"+ jTextField1.getText() +"'";
         cn.executeUpdate(sql);
         conn.close();
          tampil();
          JOptionPane.showMessageDialog(null,"berhasil di update ");
    }catch(Exception e){
    JOptionPane.showMessageDialog(null,"proses update gagal" + e);   }      }

Koding untuk Button Keluar

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
this.dispose();

Koding untuk text field Pencarian / Cari 
private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
     DefaultTableModel tabelnyo=new DefaultTableModel();
       
    tabelnyo.addColumn("No Slip");
    tabelnyo.addColumn("Nama ");
    tabelnyo.addColumn("Gaji Pokok");
    tabelnyo.addColumn("Tunjangan ");
    tabelnyo.addColumn("Jam Lembur ");
    tabelnyo.addColumn("Upah Lembur PerJam ");
    tabelnyo.addColumn("Total Gaji");
               try{
              koneksi();
              String sql="Select * from gaji where nama like'%"+ jTextField7.getText() +"%' or noslip like '%"+ jTextField7.getText() +"%'";
              ResultSet rs = cn.executeQuery(sql);
              while (rs.next()){
                  tabelnyo.addRow(new Object[]{
                      rs.getString(1),
                        rs.getString(2),
                             rs.getString(3),
                              rs.getString(4),
                               rs.getString(5),
                               rs.getString(6),
                                    rs.getString(7),
                                    });    }
               tabel.setModel(tabelnyo);
          }catch(Exception e){
              JOptionPane.showMessageDialog(null,"Terjadi Kesalahan" + e);     
    }   }                        

Koding klik-klik agar bisa di enter pada setiap pengisian form:

Total Gaji 
private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        jTextField6.requestFocus();    }                                           
    private void tabelMouseClicked(java.awt.event.MouseEvent evt) {                                   
        // TODO add your handling code here:
               if(evt.getClickCount()==1){
            nampakliak();
                    jTextField1.setEnabled(false);
                 }  }                                  
No Slip 
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        jTextField2.requestFocus();  }                                      
     

Nama Karyawan  
private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        jTextField3.requestFocus();  }                                           

Gaji Pokok 
private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        jTextField4.requestFocus();   }                                           

Tunjangan  
private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
        jTextField5.requestFocus();  }                                                  

Jumlah Lembur 
private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
       jTextField8.requestFocus();

Upah Lembur perjam  
private void jTextField8ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
         int angka1= Integer.valueOf(jTextField3.getText());
         int angka2= Integer.valueOf(jTextField4.getText());
         int angka3= Integer.valueOf(jTextField5.getText());
        int angka4= Integer.valueOf(jTextField8.getText());
        double gajitot= 0;
        int lembur =0;
        lembur=angka3*angka4;
        gajitot=angka1+angka2+lembur;
                //String jumlah=String.valueOf(gajitot);
                jTextField6.setText(String.valueOf(gajitot));
              jButton1.requestFocus();
    }             

Event  Mouse klik : agar bisa diklik pada tabel/datagrid
    private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {                                      
        // TODO add your handling code here:
         jTextField2.setText("");
         jTextField1.setText("");
         jTextField3.setText("");
         jTextField4.setText("");
         jTextField5.setText("");
         jTextField6.setText(""); 
jTextField8.setText("");    }  

Nah teman-teman PalComSter, cukup sampai disini dulu Tutorial Part III kali ini, semoga apa yang saya buat dapat bermanfaat, jika Tutorial ini bermanfaat silahkan dishare ya.. “Selamat Berkreasi” Terimakasih dan sampai ketemu lagi. See You

Leave a Reply

Your email address will not be published. Required fields are marked *

*

[+] kaskus emoticons nartzco


Yuk kita share...