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.

Kemudian jika kita memilih navigasi tambah maka form akan berpindah ke form pegawai baru.Gambar Struktur Navigasi Penggajian Pegawai Penjelasan Struktur navigasi 1. 2. selanjutnya berpindah ke menu_utama. Gaji_Pegawai dan navigasi Logout. Jika kita memilih navigasi cari dalam form data pegawai digunakan untuk mencari kata kunci yang sudah ditetapkan yaitu NIP. Setelah form background loading selama 5 detik. Jika kita memilih navigasi Login maka kita akan berpindah ke form admin. 4. Jika kita memilih navigasi Data_pegawai dalam form admin maka disini terdapat beberapa struktur navigasi pula yaitu navigasi cari. Dalam form admin ini terdapat 3 struktur navigasi yaitu struktur navigasi Data_pegawai. Aplikasi akan dimulai dari form background yang akan berjalan selama 5 detik untuk loading atau status menunggu untuk berpindah ke halaman berikutnya. 6. Jika kita memilih navigasi keluar maka program akan berhenti. 3. navigasi tambah dan navigasi back. . Disini terdapat 2 navigasi pula yaitu navigasi simpan dan navigasi back. Disini terdapat navigasi yaitu navigasi untuk login dan navigasi untuk batal. 5.

6. Setiap tabel terdiri dari kolom dan baris. Pertama penulis ingin menjelaskan tentang spesifikasi dan software yang digunakan dalam aplikasi ini.1-ml-mobility-windows : MySQL4. Ada tabel-tabel yang menyimpan data. Jika kolom mendefinisikan jenis informasi apa yang akan disimpan. alamat).jar : xampp-win32-1.5. Sebuah kolom mendefinisikan jenis informasi apa yang akan disimpan.0. dan sebagainya. diantaranya: Java Editor Database Driver Software Pendukung : jdk-6u6-windows-i586-p : netbeans-5. 11.12 dengan MyODBC : mysql-connector-java-3. Kita memerlukan kolom khusus untuk setiap jenis informasi yang ingin kita simpan (misalnya umur. berat. maka sebuah baris adalah data aktual yang disimpan. MySQL dengan SQL (singkatan dari Structured Query Language) sendiri didefinisikan sebagai suatu sintaks perintah-perintah tertentu atau bahasa program yang digunakan untuk mengelola suatu . 8. Jika kita memilih navigasi new maka kita akan dapat menyimpan data yang sebelumnya kita input kedalam database. MySQL adalah sebuah database relasional.17-ga-bin. 9.7. Setiap baris dari tabel adalah masukan dari tabel tersebut dan berisi nilai-nilai untuk setiap kolom tabel tersebut.2-installer Penjelasan tentang MySQL Sebuah database adalah sebuah struktur yang umumnya dikategorikan dalam 2 hal: Sebuah database flat dan sebuah database relasional. PERSIAPAN DATABASE Spesifikasi Software yang digunakan. 10. tinggi. Lalu jika kita memilih navigasi delete maka kita dapat menghapus semua data sesuai dengan kata kunci yang kita cari sebelumnya. 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. Lalu jika kita memilih navigasi edit maka data yang sebelumnya kita search atau cari maka dapat kita ubah datanya. seperti halnya ORACLE. Database relasional lebih disukai karena lebih masuk akal dibandingkan database flat. Pada database yang memiliki struktur relasional. MS SQL.0. Postgresql. Jika kita memilih menu back maka kita akan kembali ke form data pegawai. MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System atau RDBMS).

Cari alamat Mysql-connector-java-5. Jadi semua data akan disimpan di sebuah database dengan menggunakan mysql.12 dengan MyODBC : Dalam pembuatan software ini. Langkah instalasi Mysql-connector-java-5. kita harus terlebih dahulu menginstall software MySQL server.0. Jadi sebelum kita melakukan coding di editor NetBean. dan SQL adalah bahasa perintahnya. MySQL adalah softwarenya. . kami menggunakan database MySQL versi 4.0. Mudahnya. karena tanpa MyODBC pun program java dapat berjalan asalkan konektornya sesuai dengan database yang kita gunakan. 5. dan meng-include konektor java ke dalam NetBean. 2. 3.5 di Netbean 1. dan diakhiri dengan tombol Finish. Tahap persiapan Database Hal yang harus kira perhatikan dalam membuat software java yang berbasis database adalah software databasenya itu sendiri. klik kanan pada root Libraries seperti terlihat pada Gambar 1.1 Pilih Add JAR/Folder. Setelah itu klik Open. 4. MyODBC hanya sekedar tempat untuk pengalamatan source database di DSN(Data Source Name) di windows. Cara Kita tinggal meng-click tombol next.database.0.MySQL dan SQL adalah dua ‘makhluk’ yang berbeda. Sebenarnya software MyODBC tidak wajib untuk di install.0.5.12. Adapun proses instalasinya adalah sebagai berikut : Langkah Instalasi MySQL4. sedangkan MyODBC digunakan untuk pengalamatan Database di DSN (DataSourceName). Maka pada root Libraries akan muncul komponen yang baru.

. 2.PEMBUATAN DATABASE DI SOFTWARE XAMPP. Langkah-langkah yang harus dijalankan untuk membuat database di dalam xampp adalah sebagai berikut: 1. Lalu ketikkan alamat url yaitu http://localhost/phpmyadmin/. 3. Lalu buat nama databasenya dnegan nama gaji. Buka Web browser untuk mengaktifkan xampp. Gambar alamat url untuk xampp.

4.Gambar pembuatan database pegawai. Setelah databse terbentuk buat table dengan format sebagai berikut. .

Terakhir. Pada prinsipnya pemrograman database akan melibatkan unsur-unsur berikut : ü Loading dan setting driver JDBC (class DriverManager). . ü Menerima result-set sebagai data hasil eksekusi SQL-statement (Interface ResltSet).Pengkoneksian Database. ü Mendirikan koneksi database (Interface Connection). jika telah selesai. pertama kita harus melakukan load terhadap driver terlebih dahulu dan kemudian kita buat koneksi ke database. ü Membuat obyek SQL-statement (Interface Statement). Setelah koneksi ada. ü Mengeksekusi SQL-statement. Untuk mengakses database. koneksi dapat ditutup. baru kemudian kita dapat mengirimkan perintah-perintah SQL (query) untuk mengakses database.

forName() sedangkan untuk mendirikan koneksi kita menggunakan method getConnection(). Class java. sedangkan dalam Java Sintaks-Sintaks SQL a. Void close() throws Exception Method ini akan menutup atau melepaskan koneksi database dan semua JDBC resource yang dipakai. Membuat database . Untuk perintah-perintah ini. Jika kita mengirimkan SQL-statement tertentu (perintah SELECT) ke database maka hasilnya berupa resultset. Koneksi yang telah dibuat pada akhirnya harus ditutup dengan memakai close(). int executeUpdate (string sql) throws SQLException Method ini dipakai untuk mengeksekusi statement SQL yang tidak mengembalikan data. nilai integer yang dikembalikan berupa jumlah baris.createStatement(). seperti statement INSERT. UPDATE. Interface ini juga mengontrol letak kursor yang menunjukkan baris (record) yang sedang aktif di dalam tabel database. Untuk melakukan load terhadap driver maka kita memakai method Class. Interface ini juga berisi beberapa method yang berawalan get. Ketika DriverManager membentuk koneksi dengan memakai getConnection(). method ini akan mengembalikan obyek Connection.sql. seperti getNumeric(). Method first() dan last() dipakai untuk menuju baris pertama dan terakhir dalam result-set.sql. getDate(). Tetapi untuk program ini kita hanya menggunakan dua method result-set yaitu method next() dan method getString(). Interface java. Tipe data antara SQL dan Java berbeda. Method-method ini dipakai untuk konversi dari tipe data SQL-based ke tipe data java. getString(). atau DELETE. yaitu baris-baris data hasil dari query. dan sebagainya. Untuk bergerak ke baris sebelumnya dipakai method previous(). getInteger(). tipe data lebih cenderung loosely-typedstrongly-typed. 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. Untuk bergerak ke baris berikutnya kita memakai method next(). Interface ResultSet merupakan data tabel yang ada di dalam database.DriverManager dipakai untuk loading dan mengatur driver JDBC serta untuk mendirikan koneksi ke database. Obyek Statement dapat dibuat dari obyek Connection dengan memakai method Connection. Interface Statement dipakai untuk menangani dan mengeksekusi SQL-statement.ü Menampilkan data result-set.Connection dipakai untuk membentuk koneksi (session) ke database serta mengatur hubungan tersebut. getDecimal().

e. f. Jika akan menghapus dengan menggunakan suatu kondisi maka perintah yang digunakan adalah sebagai berikut : DELETE FROM nama tabel WHERE = ‘kondisi’. Setelah kita membuat database yang nantinya kita gunakan. b. Langkah-langkah yang kita lakukan adalah . Jika menggunakan kondisi maka tinggal menambahkan perintah where dan like sebagai berikut : SELECT * FROM nama tabel WHERE = ‘kondisi’ LIKE ‘%karakter%’. Input data INSERT INTO nama tabel VALUES (nilai data). Membuat tabel CREATE TABLE nama tabel.CREATE nama database. selanjutnya kita buat tampilan loading program agar tampilan lebih menarik. Menghapus data DELETE FROM nama tabel. 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. c. 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. d.

import java. v Kemudian ketikkan sintaks seperti di bawah ini import java.Dimension. 2:09 AM */ /** * * @author hito . v Bentuk tampilan sesuai dengan storyboard yang telah kita buat sebelumnya.Toolkit.java * * Created on April 11.awt. /* * Background. v Jadikan form windows menjadi windowsActive seperti gambar di bawah ini.awt. 2009.v Buat baru jFrame baru dalam java.

event. setDefaultCloseOperation(javax.JLabel().awt. jLabel5 = new javax. } // <editor-fold defaultstate=”collapsed” desc=” Generated Code “> private void initComponents() { jLabel3 = new javax. setTitle(“WELCOME TO MY APLICATION”). } }).WindowConstants.swing.awt.swing. jLabel2 = new javax.awt.swing.*/ public class Background extends javax. jLabel1 = new javax. addWindowListener(new java.WindowEvent evt) { formWindowActivated(evt).swing.EXIT_ON_CLOSE). jLabel4 = new javax. jSeparator1 = new javax.JLabel().event.JLabel().swing. setBackground(new java.JLabel(). jLabel6 = new javax.Color(102.JLabel().swing.swing.swing. 255)).JFrame { /** Creates new form Background */ public Background() { initComponents().JSeparator().JLabel(). 204.WindowAdapter() { public void windowActivated(java. .swing.

Font(“Times New Roman”. 0.setHorizontalGroup( layout.swing. jLabel6.GroupLayout layout = new javax.setFont(new java.setFont(new java.addContainerGap() . jLabel1.addComponent(jLabel1.createParallelGroup(javax.setFont(new java. javax.swing. jLabel2.swing. jLabel6.LEADING) .PREFERRED_SIZE. 1.awt.PREFERRED_SIZE) .Color(0. 1. 18)).Font(“Times New Roman”.awt.createParallelGroup(javax. 18)).swing.GroupLayout.createSequentialGroup() .createLineBorder(new java. layout. javax.addGroup(layout. 20) . jLabel1.LEADING) .swing.jLabel3.addGroup(layout. 1.addGroup(layout.addGap(20.Alignment.GroupLayout(getContentPane()).swing.setText(“INTERAKSI MANUSIA DAN KOMPUTER”).Alignment. 18)). 0))).awt.setFont(new java.Font(“Times New Roman”.setIcon(new javax.setBorder(javax. jLabel5.ImageIcon(“D:\\FOTO – FOTO HITO\\hito. 1.setFont(new java. jLabel4. jLabel3.awt. getContentPane().setText(“APLIKASI GAJI PEGAWAI”). 18)).Font(“Times New Roman”.BorderFactory.setText(“PRAKTIKUM”). 1.GroupLayout.GroupLayout.awt.GIF”)). javax. jLabel2. jLabel5. jLabel4.createSequentialGroup() .setLayout(layout). 20. 18)).GroupLayout.Font(“Times New Roman”.setText(“HITO MARIO NAGA MAIT”).setText(“bY”).swing.awt.swing. 107.

swing.swing.PREFERRED_SIZE. Short.DEFAULT_SIZE.TRAILING.createSequentialGroup() . javax. 400.LEADING) .addContainerGap(150.Alignment.GroupLayout.addGap(110. Short.swing.setVerticalGroup( layout.GroupLayout. 110.swing. 110) . layout.createParallelGroup(javax.PREFERRED_SIZE.createParallelGroup(javax.GroupLayout.addComponent(jSeparator1. 226.PREFERRED_SIZE) .GroupLayout.swing.addComponent(jLabel4.addComponent(jLabel3.addComponent(jLabel5) .Alignment. javax. Short.addGroup(layout.createSequentialGroup() ..swing.swing. 241.addGroup(layout.addGroup(layout.PREFERRED_SIZE. 137) . 20. 22.MAX_VALUE) .addComponent(jLabel2.addContainerGap(22.createSequentialGroup() . javax.GroupLayout. 20)) .Alignment.GroupLayout. javax.MAX_VALUE) .GroupLayout.addComponent(jLabel6) .PREFERRED_SIZE))) .createSequentialGroup() .GroupLayout.addGap(20. javax.addContainerGap(37.swing.GroupLayout.MAX_VALUE)) ).addGroup(javax. javax.addGroup(layout.GroupLayout. javax.swing. Short.MAX_VALUE)) .addContainerGap() .PREFERRED_SIZE))) . 137.LEADING) .swing. layout.addGap(137.

addComponent(jLabel1.ComponentPlacement.event.PREFERRED_SIZE. pack().swing.swing.addPreferredGap(javax.addContainerGap(90.PREFERRED_SIZE))) . javax.PREFERRED_SIZE) .PREFERRED_SIZE.GroupLayout.swing.GroupLayout.WindowEvent evt) { // TODO add your handling code here: .swing.swing. javax.GroupLayout.ComponentPlacement. javax.swing.LayoutStyle. javax.GroupLayout. 22.addPreferredGap(javax.PREFERRED_SIZE) .GroupLayout. javax.Alignment.addGroup(layout.MAX_VALUE)) ). 31.addPreferredGap(javax.PREFERRED_SIZE. javax.swing.addComponent(jLabel3. javax.swing.PREFERRED_SIZE) . javax.RELATED) . }// </editor-fold> private void formWindowActivated(java.RELATED) .. 10.addComponent(jLabel4. 112.swing. javax.PREFERRED_SIZE) .createParallelGroup(javax.addComponent(jSeparator1.swing. 13) .addGroup(layout.PREFERRED_SIZE.ComponentPlacement.PREFERRED_SIZE.PREFERRED_SIZE.GroupLayout.GroupLayout.LayoutStyle.LayoutStyle.GroupLayout. 13.awt. javax.swing.PREFERRED_SIZE.GroupLayout.swing. javax.swing.swing.swing.swing. 27.GroupLayout.GroupLayout.createSequentialGroup() . 27.ComponentPlacement.swing.GroupLayout.LayoutStyle.swing.PREFERRED_SIZE) .LEADING) .GroupLayout.GroupLayout. javax.addGap(13.RELATED) .addPreferredGap(javax. 28. javax.addComponent(jLabel6.PREFERRED_SIZE) .swing.addComponent(jLabel2.RELATED) .addComponent(jLabel5.GroupLayout. javax. Short.

width – getSize().out. new Menu_utama(). //agar form berhenti sejenak selema 5 detik try{ Thread.y). } public static void main(String args[]) { java. } // Variables declaration – do not modify .sleep(5000). }catch(InterruptedException se){ System.width)/2.//tampil di tengah layar Dimension dim = Toolkit. int y = (dim. } }). setLocation(x.awt.setVisible(true).setVisible(true).height)/2.height – getSize().getScreenSize().invokeLater(new Runnable() { public void run() { new Background(). int x = (dim.getDefaultToolkit(). } //setelah itu tampil form menu utama dispose().println(“gagal”).EventQueue.

private javax.JLabel jLabel2.swing. private javax.swing. // End of variables declaration } v Dan terdapat coding untuk waktu loading program selama 5 detik.println(“gagal”).JLabel jLabel3.JLabel jLabel5. private javax.swing. } . private javax.JLabel jLabel1. try{ Thread. private javax.out.swing.private javax.JSeparator jSeparator1.sleep(5000).JLabel jLabel6.swing.swing. }catch(InterruptedException se){ System.swing.JLabel jLabel4. private javax.

Sign up to vote on this title
UsefulNot useful