Membuat aplikasi gaji pegawai dengan java netbeans GUI

W
Shared by: JakersMigers
Categories
Tags
-
Stats
views:
4162
posted:
7/10/2012
language:
pages:
16
Document Sample
scope of work template
							Membuat aplikasi gaji pegawai dengan java netbeans GUI
part 1
October 25, 2009 by hitojava

Perancangan Program

Dalam proses pembuatan aplikasi penggajian pegawai, penulis terlebih dahulu melakukan proses
desain (perancangan) antarmuka (interface) menu utama aplikasi tersebut dengan beberapa form
yang di buat oleh penulis. Proses desain menu utama ini, dimulai dengan pembuatan Struktur
Navigasi, yang kemudian dilanjutkan dengan pembuatan storyboard.

Struktur navigasi adalah struktur atau alur dari sebuah program yang akan dibuat, dimana akan
ditampilkannya struktur-struktur terpenting pada menu aplikasi tersebut. Didalam struktur
navigasi ini terdiri dari beberapa frame yang berfungsi berbeda-beda.

Storyboard itu sendiri berfungsi untuk menggambarkan semua elemen yang akan tampak pada
layar monitor, yang meliputi berupa letak teks, letak tombol, latar belakang yang dipakai, dan
sebagainya.

Struktur Navigasi

Tampilan utama pada aplikasi gaji Pegawai ini disebut Background. Tampilan background ini
mempunyai form yang digunakan untuk tampilan awal program untuk menuju form menu utama.
Lalu setelah form background dijalankan maka program akan menuju form menu utama.
                        Gambar Struktur Navigasi Penggajian Pegawai

Penjelasan Struktur navigasi

   1. Aplikasi akan dimulai dari form background yang akan berjalan selama 5 detik untuk
      loading atau status menunggu untuk berpindah ke halaman berikutnya.
   2. Setelah form background loading selama 5 detik, selanjutnya berpindah ke menu_utama.
      Disini terdapat navigasi yaitu navigasi untuk login dan navigasi untuk batal. Jika kita
      memilih navigasi keluar maka program akan berhenti.
   3. Jika kita memilih navigasi Login maka kita akan berpindah ke form admin. Dalam form
      admin ini terdapat 3 struktur navigasi yaitu struktur navigasi Data_pegawai,
      Gaji_Pegawai dan navigasi Logout.
   4. Jika kita memilih navigasi Data_pegawai dalam form admin maka disini terdapat
      beberapa struktur navigasi pula yaitu navigasi cari, navigasi tambah dan navigasi back.
   5. Jika kita memilih navigasi cari dalam form data pegawai digunakan untuk mencari kata
      kunci yang sudah ditetapkan yaitu NIP.
   6. Kemudian jika kita memilih navigasi tambah maka form akan berpindah ke form pegawai
      baru. Disini terdapat 2 navigasi pula yaitu navigasi simpan dan navigasi back.
   7. Jika kita memilih navigasi new maka kita akan dapat menyimpan data yang sebelumnya
       kita input kedalam database.
   8. Jika kita memilih menu back maka kita akan kembali ke form data pegawai.
   9. Lalu jika kita memilih navigasi edit maka data yang sebelumnya kita search atau cari
       maka dapat kita ubah datanya.
   10. Lalu jika kita memilih navigasi delete maka kita dapat menghapus semua data sesuai
       dengan kata kunci yang kita cari sebelumnya.
   11. Lalu dalam jika sebelumnya kita memilih navigasi pegawai maka terdapat pula 2 navigasi
       yaitu navigasi proses dapat memproses jumlah total gaji dari pegawai dan navigasi cari
       digunakan untuk mencari data dari pegawai yang telah kita input sebelumnya.

PERSIAPAN DATABASE

Spesifikasi Software yang digunakan.

Pertama penulis ingin menjelaskan tentang spesifikasi dan software yang digunakan dalam
aplikasi ini, diantaranya:

Java                    : jdk-6u6-windows-i586-p

Editor                  : netbeans-5.5.1-ml-mobility-windows

Database                : MySQL4.0.12 dengan MyODBC

Driver                  : mysql-connector-java-3.0.17-ga-bin.jar

Software Pendukung     : xampp-win32-1.6.2-installer

Penjelasan tentang MySQL

Sebuah database adalah sebuah struktur yang umumnya dikategorikan dalam 2 hal: Sebuah
database flat dan sebuah database relasional. Database relasional lebih disukai karena lebih
masuk akal dibandingkan database flat. MySQL adalah sebuah database relasional. Pada
database yang memiliki struktur relasional. Ada tabel-tabel yang menyimpan data. Setiap tabel
terdiri dari kolom dan baris.

Sebuah kolom mendefinisikan jenis informasi apa yang akan disimpan. Kita memerlukan kolom
khusus untuk setiap jenis informasi yang ingin kita simpan (misalnya umur, tinggi, berat,
alamat). Jika kolom mendefinisikan jenis informasi apa yang akan disimpan, maka sebuah baris
adalah data aktual yang disimpan. Setiap baris dari tabel adalah masukan dari tabel tersebut dan
berisi nilai-nilai untuk setiap kolom tabel tersebut.

MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System
atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya. MySQL dengan
SQL (singkatan dari Structured Query Language) sendiri didefinisikan sebagai suatu sintaks
perintah-perintah tertentu atau bahasa program yang digunakan untuk mengelola suatu
database.MySQL dan SQL adalah dua ‘makhluk’ yang berbeda. Mudahnya, MySQL adalah
softwarenya, dan SQL adalah bahasa perintahnya.

Tahap persiapan Database

Hal yang harus kira perhatikan dalam membuat software java yang berbasis database adalah
software databasenya itu sendiri. Jadi sebelum kita melakukan coding di editor NetBean, kita
harus terlebih dahulu menginstall software MySQL server, dan meng-include konektor java ke
dalam NetBean. Adapun proses instalasinya adalah sebagai berikut :

Langkah Instalasi MySQL4.0.12 dengan MyODBC :

Dalam pembuatan software ini, kami menggunakan database MySQL versi 4.0.12. sedangkan
MyODBC digunakan untuk pengalamatan Database di DSN (DataSourceName). Jadi semua data
akan disimpan di sebuah database dengan menggunakan mysql. Cara Kita tinggal meng-click
tombol next, dan diakhiri dengan tombol Finish. Sebenarnya software MyODBC tidak wajib
untuk di install, karena tanpa MyODBC pun program java dapat berjalan asalkan konektornya
sesuai dengan database yang kita gunakan. MyODBC hanya sekedar tempat untuk pengalamatan
source database di DSN(Data Source Name) di windows.

Langkah instalasi Mysql-connector-java-5.0.5 di Netbean

   1.   klik kanan pada root Libraries seperti terlihat pada Gambar 1.1
   2.   Pilih Add JAR/Folder,
   3.   Cari alamat Mysql-connector-java-5.0.5,
   4.   Setelah itu klik Open,
   5.   Maka pada root Libraries akan muncul komponen yang baru.
PEMBUATAN DATABASE DI SOFTWARE XAMPP.

Langkah-langkah yang harus dijalankan untuk membuat database di dalam xampp adalah
sebagai berikut:

   1. Buka Web browser untuk mengaktifkan xampp.
   2. Lalu ketikkan alamat url yaitu http://localhost/phpmyadmin/.




                              Gambar alamat url untuk xampp.

3. Lalu buat nama databasenya dnegan nama gaji.
                             Gambar pembuatan database pegawai.

4. Setelah databse terbentuk buat table dengan format sebagai berikut.
Pengkoneksian Database.

Untuk mengakses database, pertama kita harus melakukan load terhadap driver terlebih dahulu
dan kemudian kita buat koneksi ke database. Setelah koneksi ada, baru kemudian kita dapat
mengirimkan perintah-perintah SQL (query) untuk mengakses database. Terakhir, jika telah
selesai, koneksi dapat ditutup.

Pada prinsipnya pemrograman database akan melibatkan unsur-unsur berikut :

ü Loading dan setting driver JDBC (class DriverManager),

ü Mendirikan koneksi database (Interface Connection),

ü Membuat obyek SQL-statement (Interface Statement),

ü Mengeksekusi SQL-statement,

ü Menerima result-set sebagai data hasil eksekusi SQL-statement (Interface ResltSet),
ü Menampilkan data result-set.

Class java.sql.DriverManager dipakai untuk loading dan mengatur driver JDBC serta untuk
mendirikan koneksi ke database. Untuk melakukan load terhadap driver maka kita memakai
method Class.forName() sedangkan untuk mendirikan koneksi kita menggunakan method
getConnection(). Ketika DriverManager membentuk koneksi dengan memakai getConnection(),
method ini akan mengembalikan obyek Connection. Interface java.sql.Connection dipakai untuk
membentuk koneksi (session) ke database serta mengatur hubungan tersebut. Koneksi yang telah
dibuat pada akhirnya harus ditutup dengan memakai close().

Interface Statement dipakai untuk menangani dan mengeksekusi SQL-statement. Obyek
Statement dapat dibuat dari obyek Connection dengan memakai method
Connection.createStatement(). Beberapa method yang penting adalah :

                   ResultSet executeQuery(String sql) throws SQLException

Method ini untuk mengeksekusi statement SQL serta mengembalikan obyek ResultSet yang
berisi data hasil query.

                      int executeUpdate (string sql) throws SQLException

Method ini dipakai untuk mengeksekusi statement SQL yang tidak mengembalikan data, seperti
statement INSERT, UPDATE, atau DELETE. Untuk perintah-perintah ini, nilai integer yang
dikembalikan berupa jumlah baris.

                                 Void close() throws Exception

Method ini akan menutup atau melepaskan koneksi database dan semua JDBC resource yang
dipakai.

Interface ResultSet merupakan data tabel yang ada di dalam database. Jika kita mengirimkan
SQL-statement tertentu (perintah SELECT) ke database maka hasilnya berupa resultset, yaitu
baris-baris data hasil dari query. Interface ini juga mengontrol letak kursor yang menunjukkan
baris (record) yang sedang aktif di dalam tabel database. Untuk bergerak ke baris berikutnya kita
memakai method next(). Untuk bergerak ke baris sebelumnya dipakai method previous().
Method first() dan last() dipakai untuk menuju baris pertama dan terakhir dalam result-set.
Interface ini juga berisi beberapa method yang berawalan get, seperti getNumeric(),
getDecimal(), getDate(), getInteger(), getString(), dan sebagainya. Method-method ini dipakai
untuk konversi dari tipe data SQL-based ke tipe data java. Tipe data antara SQL dan Java
berbeda, tipe data lebih cenderung loosely-typedstrongly-typed. Tetapi untuk program ini kita
hanya menggunakan dua method result-set yaitu method next() dan method getString().
sedangkan dalam Java

Sintaks-Sintaks SQL

a. Membuat database
CREATE nama database;

b. Membuat tabel

CREATE TABLE nama tabel;

c. Menampilkan data

SELECT nama field (kolom) FROM nama tabel

Jika kita menginginkan menampilkan semua field yang ada dalam tabel perintah yang digunakan
sebagai berikut :

                                SELECT * FROM nama tabel;

Jika menggunakan kondisi maka tinggal menambahkan perintah where dan like sebagai berikut :

            SELECT * FROM nama tabel WHERE = ‘kondisi’ LIKE ‘%karakter%’;

d. Input data

INSERT INTO nama tabel VALUES (nilai data);

e. Menghapus data

DELETE FROM nama tabel;

Jika akan menghapus dengan menggunakan suatu kondisi maka perintah yang digunakan adalah
sebagai berikut :

                       DELETE FROM nama tabel WHERE = ‘kondisi’;

f. Mengubah data

UPDATE FROM nama tabel SET nama field = data yang baru;

Jika terdapat suatu kondisi maka perintah yang digunakan adalah sebagai berikut :

UPDATE FROM nama tabel WHERE = ‘kondisi’ SET = data yang baru

PEMBUATAN APLIKASI

Pembuatan Form Loading Background.

Setelah kita membuat database yang nantinya kita gunakan, selanjutnya kita buat tampilan
loading program agar tampilan lebih menarik. Langkah-langkah yang kita lakukan adalah
v Buat baru jFrame baru dalam java.

v Bentuk tampilan sesuai dengan storyboard yang telah kita buat sebelumnya.

v Jadikan form windows menjadi windowsActive seperti gambar di bawah ini.




v Kemudian ketikkan sintaks seperti di bawah ini

import java.awt.Dimension;

import java.awt.Toolkit;

/*

* Background.java

*

* Created on April 11, 2009, 2:09 AM

*/

/**

*

* @author hito
*/

public class Background extends javax.swing.JFrame {

/** Creates new form Background */

public Background() {

initComponents();

}

// <editor-fold defaultstate=”collapsed” desc=” Generated Code “>

private void initComponents() {

jLabel3 = new javax.swing.JLabel();

jLabel2 = new javax.swing.JLabel();

jLabel4 = new javax.swing.JLabel();

jLabel1 = new javax.swing.JLabel();

jSeparator1 = new javax.swing.JSeparator();

jLabel5 = new javax.swing.JLabel();

jLabel6 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle(“WELCOME TO MY APLICATION”);

setBackground(new java.awt.Color(102, 204, 255));

addWindowListener(new java.awt.event.WindowAdapter() {

public void windowActivated(java.awt.event.WindowEvent evt) {

formWindowActivated(evt);

}

});
jLabel3.setFont(new java.awt.Font(“Times New Roman”, 1, 18));

jLabel3.setText(“bY”);

jLabel2.setFont(new java.awt.Font(“Times New Roman”, 1, 18));

jLabel2.setText(“APLIKASI GAJI PEGAWAI”);

jLabel4.setFont(new java.awt.Font(“Times New Roman”, 1, 18));

jLabel4.setText(“HITO MARIO NAGA MAIT”);

jLabel1.setIcon(new javax.swing.ImageIcon(“D:\\FOTO – FOTO HITO\\hito.GIF”));

jLabel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0,
0)));

jLabel5.setFont(new java.awt.Font(“Times New Roman”, 1, 18));

jLabel5.setText(“PRAKTIKUM”);

jLabel6.setFont(new java.awt.Font(“Times New Roman”, 1, 18));

jLabel6.setText(“INTERAKSI MANUSIA DAN KOMPUTER”);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 107,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 226,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 241,
javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(layout.createSequentialGroup()

.addGap(110, 110, 110)

.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 22,
javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap(22, Short.MAX_VALUE))

.addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 400,
Short.MAX_VALUE)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()

.addContainerGap(37, Short.MAX_VALUE)

.addComponent(jLabel6)

.addGap(20, 20, 20))

.addGroup(layout.createSequentialGroup()

.addGap(137, 137, 137)

.addComponent(jLabel5)

.addContainerGap(150, Short.MAX_VALUE))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 112,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(layout.createSequentialGroup()

.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 27,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 27,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(13, 13, 13)

.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 22,
javax.swing.GroupLayout.PREFERRED_SIZE)))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 31,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 28,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(90, Short.MAX_VALUE))

);

pack();

}// </editor-fold>

private void formWindowActivated(java.awt.event.WindowEvent evt) {

// TODO add your handling code here:
//tampil di tengah layar

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

int x = (dim.width – getSize().width)/2;

int y = (dim.height – getSize().height)/2;

setLocation(x,y);

//agar form berhenti sejenak selema 5 detik

try{

Thread.sleep(5000);

}catch(InterruptedException se){

System.out.println(“gagal”);

}

//setelah itu tampil form menu utama

dispose();

new Menu_utama().setVisible(true);

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Background().setVisible(true);

}

});

}

// Variables declaration – do not modify
private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JSeparator jSeparator1;

// End of variables declaration

}

v Dan terdapat coding untuk waktu loading program selama 5 detik.

try{

Thread.sleep(5000);

}catch(InterruptedException se){

System.out.println(“gagal”);

}

						
Related docs
Other docs by JakersMigers
jatim
Views: 19  |  Downloads: 0
jbptunikompp-gdl-felamansya-27177-6-unikom_f-i
Views: 17  |  Downloads: 0
Surat permohonan cuti
Views: 482  |  Downloads: 1
AP1 TI M5
Views: 63  |  Downloads: 0