bab iii pembahasan · 23 bab iii pembahasan 3.1. tijauan perusahaan pelayanan jasa rias kecantikan...
TRANSCRIPT
23
BAB III
PEMBAHASAN
3.1. Tijauan Perusahaan
Pelayanan Jasa Rias Kecantikan pada WindiWi MakeUp ini sebagai
kebutuhan penting guna memberikan kepuasan terhadap pelanggan atau masyarakat
yang ingin menggunakan Jasa Rias Kecantikan WindiWi MakeUp. Bidang usaha
yang digeluti perusahaan ini adalah berupa pelayanan Jasa Tata Rias Pengantin,
MakeUp Wisuda yang juga dilengkapi dengan dekorasi , tenda, panggung, undangan,
sewa kebaya.
3.1.1. Sejarah Perusahaan
WindiWi MakeUp ini bendiri pada Tahun 2015, Ibu Windi selaku pemilik
usaha awalnya hanya ikut bersama kakanya sebagai asisten MakeUp Rias
Kecantikan, seiring berjalan nya waktu Ibu Windi Membuka Usaha Jasa Rias
Kecantikan dengan beberapa karyawan nya dengana mengandalkan kejujuran,
percaya diri dan berdo’a menjalankan usahanya.
Dalam perkembangan nya usaha Jasa Rias Kecantikan ini terus berusaha
untuk meningkatkan kepuasan kepada para pelanggan dengan memberikan
kenyamanan dan fasilitas-fasilitas yang ada sebagai Jasa ungulan terbaik dalam
usahanya dan terus memperkenalkan dan mempromosikan pelayanan Jasa Rias
Kecantikan yang tersedia.
a. Visi dan Misi
WindiWi MakeUp mempunyai Visi dan Misi yang menjadi landasan
semangat pengembangan usaha Pelayanan Jasa Rias Kecantikan pada WindiWi
MakeUp.
24
Adapun Visi dan Misi adalah sebagai berikut:
1). Visi
WindiWi MakeUp mempunyai Visi untuk meningkatkan atau mengangkat para
pekerja dalam bidang seni atau Jasa penyelenggara pernikahan yang selama ini
kinerjanya tidak diketahui banyak orang,
2). Misi
WindiWi MakeUp mempunyai Misi untuk memprluas usaha pelayanan Jasa
Rias Kecantikan smapai pada tingkat nasional.
b. Struktur Organisasi
Struktur organisasi adalah penggambaran secara grafik yang menggambarkan
struktur kerja dari suatu struktur organisasi. Berikut adalah struktur organisasi pada
Jasa
Rias Kecantikan WindiWi MakeUp:
w
Sumber: WindiWi MakeUp Karawang
Gambar III.1.
Struktur Organisasi
PEMILIK
NKHL
BENDAHARA
BAGIAN
TATA RIAS
BAGIAN
DEKORASI
DAN TENDA
BAGIAN
FOTO DAN
VIDEO
SHOOTING
BAGIAN
GEDUNG
25
3. deskripsi Tugas
Berdasarkan struktur organisasi Rias Kecantikan pada WindiWi MakeUp diatas,
maka akan dijelaskan satu persatu dari bagian dan fungsinya:
a. Pemilik
Sebagai pemimpin dalam mengelola perusahaan secar keseluruhan dan
menentukan kebijakan-kebijakan di perusahaannya.
b. Bendahara
Membuat laporan pertanggung jawaban keuangan kepengurusan.
c. Bagian Tata Rias
Bertugas mengurusi MakeUp pasangan pengantin, keluarga ataupun kerabat
pengantin.
d. Bagian Dekorasi dan Tenda Pengantin
Bertugas mengurusi Dekorasi Pelaminan saat pesta pernikahan.
e. Bagian foto Pre-Wedding dan video Shooting.
Bertugas mengurusi foto-foto sebelum pernikahan dan selama acara itu
berlangsung bagi pasangan pengantin dan mengabadikan momen pernikahan
dalam video.
f. Bagian Gudang
Bertugas mengurusi lokasi dan gedung pernikahan.
3.2. Tinjauan Kasus
Dalam maraknya dunia bisnis Jasa yang sedang memuncak belakangan ini,
baik dari segi pelayanan, fasilitas dan dari segi perkembangan model Tata Rias
Kecantikan dan dekorasi, MakeUp.
26
Tinjauan terhadap perusahaan untuk mengetahui dan mendukung agar sistem
berjalan baik sesuai prosedur. Sedangkan secara khusus adalah untuk menjalankan
tugas opersional agar lebih efektif dan efisisen sesuai dengan yang diinginkan oleh
perusahaan.
3.2.1. Prosedur Bisnis Sistem Berjalan
Bagi Customer baru yang akan melakukan Tata Rias Kecantikan maka
Customer akan diberikan formulir kontrak pemesanan oleh bagian bendahara atau
diberikan informasi terlebih dahulu mengenai Fasilitas-Fasilitas yang disediakan oleh
Rias Kecantikan WindiWi MakeUp. Setelah Customer mengisi data dan memilih
jenis Rias Kecantikan yang ingin diambil, kemudian memberikan formulir
pemesanan yang berisi data Customer kepada bendahara, kemudian bendahara
mengecek dokumen formulir kontrak pemesanan yang sudah diisi oleh Customer.
Setelah bagian bendahara mengecek melakukan kontrak pemesanan Customer harus
menandatangani dokumen formulir kontrak pemesanan kemudian melakukan
pembayaran terlebih dahulu, pembayaran dilakukan secara tunai. Lalu setelah
customer melakukan transaksi pembayaran, Customer akan menerima copy kwitansi
bukti penerimaan pembayaran rangkap 1. Kemudian bagian bendahara menerima
bukti penerimaan pembayaran rangkap 2 untuk membuat Laporan pendapatan Jasa
Rias Kecantikan berdasarkan bukti kontrak pemesanan dan bukti penerimaan
pembayaran. Setelah bendahara selesai membuat dokumen laporan pendapatan Jasa
Rias Kecatikan, maka untuk dokumen laporan aslinya, seperti laporan pendapatan
Jasa Rias Kecantikan akan diberikan kepada pemilik dan bukti pembayaran akan
diarsipkan oleh pemilik.
27
3.2.2. Activity Diagram
Gambar III.2
Activity Diagram Prosedur pemesanan
act PEMESANAN
pemilikbendaharacustomer
mengisi formulir kontrak pemesanan
MULAI
menerima dan mengecek formulir
pemesanan yang berisi data
customer
memberikan formulir kontrak
pemesan yang sudah dicek untuk
dimintai tanda tangan
menerima dan menandatangani
formulir kontrak pemesanan
melakukan transaksi
pembayaran secara tunai
menerima bukti transaksi
pembayaran
membuat laporan bukti laporan
pembayaran
menerima bukti laporan
pembayaran rangkap 1
membuat laporan pemesanan,
lapran bukti transaksi
pembayaran dan laporan
pendapatan jasa rias kecantikan
menerima bukti formulir
pemesanan dan laporan
pendapatan jasa
mengarsipkan laporan
pemesanan, laporan transaksi
dan laporan pendapatan jasa
rias kecantikan
ActivityFinal
28
3.2.3. Dokumen Masukan
1. Nama Dokumen : Formulir Pemesanan Customer
Fungsi : Sebagai bukti biodata pemesanan
Sumber : Customer
Tujuan : Bendahara
Media : Kertas
Jumlah : 1
Frekuensi : Setiap terjadi transaksi
Format : Lampiran A.1
2. Nama Dokumen : bukti pembayaran rangkap 2
Fungsi : Sebagai bukti transaksi pembayaran
Sumber : Customer
Tujuan : Bendahara
Media : Kertas
Jumlah : 1
Frekuensi : Setiap terjadi transaksi
Format : Lampiran A.1
3.2.4. Dokumen Keluaran
1. Nama Dokumen : Bukti Pembayaran rangkap 1
Fungsi : Sebagai buki pembayaran Customer
Sumber : Bendahara
Tujuan : Customer
Media : Kertas
Jumlah : 1
Frekuensi : Setiap terjadi transaksi
29
Format : Lampiran A.1
2. Nama Dokumen : Laporan pedapatan jasa
Fungsi : Sebagai buki pedapatan jasa
Sumber : Bendahara
Tujuan : Pemilik
Media : Kertas
Jumlah : 1
Frekuensi : Setiap terjadi transaksi
Format : Lampiran A.1
3.2.5. Permasalahan Pokok
Setelah penulis melakukan riset, penulis menemukan ada beberapa
permasalahan yang timbul dalam sistem informasi pendapatan jasa rias kecantikan
pada WindiWi MakeUp yang telah berjalan, yaitu:
1.Dalam pendapatan customer masih menggunakan media kertas, hal itu beresiko
pada saat penyimpanan file dapat terjadi keruskan formulir, dan memebutuhkan
ruang yang cukup besar untuk penyimpanannya. Ketika ssat dilakukan pencarian
data, maka akan membutuhkan waktu yang cukup lama.
2. Pengelolaan data juga masih dilakukan secara manual sehingga membuat data
tidak saling terintegrasi. Hal ini menjadi kendala pada saat pengiriman atau
penukaran informasi data kepada pihak-pihak yang membutuhkan. Kendala yang
dimaksud antara lain data yang dibutuhkan harus dicetak unuk pemindahan atau
penukaran datanya.
3. Pengelolaan data masih memiliki kekurangan antara lain dari segi keamanan data.
Sekalipun mempunyai sistem penggunaan sendiri tetapi untuk pengamanan masih
dapat rusak, sehingga data yang terdapat di dalamnya masih bisa di manipulasi.
30
Dalam pengelolaan data juga tidak terdapat hak akses yang membatasi pengguna
dalam pengelolaan setiap data.
3.2.6. Pemecahan Masalah
Untuk mengatasi masalah yang dihadapi dalam sistem informasi akuntnas
pendapatan jasa riaskecantikan pada WindiWi MakeUp, maka penulis
mengumpulkan alternative pemecahan masalah yaitu:
1. Dibutuhkan sebuah database khusus untuk pendapatan customer, serta
penyimpanan data secara keseluruhan, sehingga data dapat diubah menjadi
softcopy dan tidak perlu menggunkan media kertas kembali. Gunanya untuk
menghindari terjadinya kerusakan dan hilangnya data serta dalam pencarian dat
juga dapat dilakukan secara efektif dan efisien.
2. Dibutuhkan aplikasi khusus dengan didukung oleh jaringan internal yang
membuat semua sistem saling terintregasi. Sehingga penukaran informasi tidak
menjadi suatu kendala. Hal ini membuat waktu yang digunakan lebih efektif dan
efisien.
3. pengajuan aplikasi yang telah dilengkapi dengan fungsi hak akses untuk pengguna
akan menjadi solusi yang terbaik bagi perusahaan. Hal ini membuat pengubahan
terhadap informasi data tidak dilakukan oleh sembarang orang selain dari
pengguna yang diijinkan. Sehingga membuat pengelolaan dapat dipertanggung
jawabkan.
3.3 Analisa Kebutuhan Software
3.3.1. Tahap Analisa
Analisa kebutuhan software untuk program pendapatan jasa rias kecantikan
“WindiWiMakeup” diusulkan dengan beberapa prosedur diantaranya :
31
A. Halaman Admin:
A.1. Admin berhak Login
A.2. Admin berhak data customer
A.3. Admin Berhak mengelola daftar jenis rias kecantikan
A.4. Admin berhak mengelola Transaksi
B. Pemilik:
B.1. Pemilik berhak Login
B.2. Pemilik berhak menginput Jurnal
B.3. Pemilik behak mengelola data Laporan pendapatan jasa
B.4. Pemilik Berhak mengelola data user
3.3.2. Analisa Kebutuhan Fungsional
Kebutuhan fungsional adalah jenis kebutuhan yang berisikan proses-proses
apa saja yang diberikan oleh sistem informasi. Sistem ini dapat digunakan oleh User
yaitu bagian admin dan pemilik, dimana admin dan pemilik memiliki hak untuk
mengakses dan mengelola sistem tersebut.
Berikut kebutuhan fungsional software yang akan dijalankan didalam sistem ini :
1. Pengguna harus melakukan login terlebih dahulu.
2. Sistem Pengolahan data pemesanan customer.
3. Sistem Mengelola data Transaksi pendapatan jasa.
4. Menghasilkan laporan hasil jurnal.
5. Mencetak dokumen yang dibutuhkan.
32
3.3.3. Use Case Diagram
A.1. Use Case Diagram Login
Gambar III.3.
Use Case Diagram Login
Tabel III.1.
Deskripsi Usecase Diagram Admin Berhak Mengakses Data master
Use Case Name Mengakses data Master
Requirements A.1
Goal Admin dapat mengelola data customer
Pre-Condition admin telah melakukan login sebagai
33
mengakses data customer
Post Condition Berhasil mengakses data customer kedalam
sistem
Failed end Conditions Admin penginputan data customer baru
untuk melakukan pemesanan
Primary Actors Admin
Main Flow / Basic Path 1. Admin Mengakses Form data master
customer
2. Admin Menginput data Customer
3. Admin memilih tombol “simpan”
4. Sistem menyimpan data customer dan
menampilkan keterangan berhasil
menyimpan data
Alternate flow / Invariant 1 1. Admin mengakses data customer
2. Admin memilih tombol “tambah’”
3. Admin memilih tombol “Simpan”
4. Sistem akan menampilkan data customer
Invariant 2
34
3.3.4. Activity Diagram
A.1. Activity Diagram Login Admin
Gambar III.4
Activity Diagram Login Admin
42
3.4. Desain
3.4.1. Entity Relationship Diagram (ERD
Gamabar III.13.
ERD Pendapatan jasa Rias Kecantikan
pelanggan
Alamat
Customer
tgl
kdpelanggan
melakukan Data rias
Nama busana
Kode rias
Harga Tatarias
Tenda
Jenis Rias
Transaksi
Melakukan
No trans
Nama
Jenis Rias
tanggal
Alamat
Kontak
Harga
kode
Mempunyai
Jurnal
Kredit
Tanggal
Debit
No Trans
Kode akun
Nama Transaksi No jurnal
Id
Kontak
43
3.4.2. Logical Record Structure (LRS)
Gamabar III.13.
LRS Pendapatan jasa Rias Kecantikan
pelanggan
kode pelanggan *
nama pelanggan
kontak
alamat
tanggal
Data Rias
Kode rias *
Jenis
Tatas rias
Busana
tenda
Dekor
harga
Transaksi
No Transaksi *
Kode pelanggan
Nama Pelanggan
Kontak
Alamat
Tgl nikah
Kode rias
Jenis rias
Harga
Tata rias
busana
tenda dekor
Jurnal
Kd_akun *
No jurnal
No Transaksi
Tanggal
Nama_akun
Debit
Kredit
44
3.4.3. Spesifikasi File
Spesifikasi File terdiri dari file-file yang digunakan untuk menyimpan data
maupun proses pengolahan data. Spesifikasi file pada sistem usulan aplikas program
Netbens IDE 8.1 dan mempunyai database dengan nama ta_rias serta terdiri dari
tabel-tabel berikut:
1.Spesifikasi File Data customer
Nama Database : ta_rias
Nama File : pelanggan
Akses File : Random
Panjang record : 43
Kunci Field : kdpelanggan
Tabel III.2.
Spesifikasi File Data customer
No Elemen Data Nama Field Type Panjang Keterangan
1 Kode pelanggan Kd_pelanggan Char 10 Primary key
2 Nama
pelanggan
Nm_pelanggan Char 30
3 Kontak
pelanggan
Kontak Char 13
4 Alamat Alamat Text
5 Tgl Tgl date1
2.Spesifikasi File Daftar rias
Nama Database : ta_rias
Nama File : Daftar rias
Akses File : Random
Panjang record : 30
Kunci Field : kdrias
45
Tabel III.3.
Spesifikasi File Daftar Rias
No Elemen Data Nama Field Type Panjang Keterangan
1 Kode rias Kd_rias char 15 Primary key
2 Jenis Rias jenis_rias char 15
3 Tata rias Tatarias text
4 Busana rias Busana text
5 Dekor rias Tendadandekor text
6 Harga rias Harga double
3.Spesifikasi File jurnal
Nama Database : ta_rias
Nama File : jurnal
Akses File : Random
Panjang record : 61
Kunci Field : id
Tabel III.4.
Spesifikasi File jurnal
No Elemen Data Nama Field Type Panjang Keterangan
1 Id Id int 11 Primary key
2 No Transaksi No_trans char 15
3 Tanggal Tanggal Date
4 Nama Transaksi Nm_trans char 35
5 debit Debit Double
6 Kredit Kredit Double
7 Saldo Saldo double
46
3.4.4. Deployment Diagram
Gambar III.14
Deployment Diagram
3.4.5. Squence Diagram
Gambar III.15
Squence Diagram
47
3.4.6. User Interface
User Interface adalah mekanisme komunikasi antara pengguna (user) dengan
sistem yang dapat menerima informasi dari pengguna dan memberikan informasi
kepada pengguna untuk memebantu mengarahakan alur penelusuran masalah sampai
ditemukan suatu solusi. Adapun implementasi pada Pendapatan jasa WindiWi
MakeUp berdasarkan hasil rancangan User Interface adalah sebagai berikut:
1. Desain Halaman Login
Gambar III.16
Desain Login
48
2. Desain Data Customer
Gambar III.17
Desain Data Customer
3. Desain Daftar jenis Rias
Gambar III.18
Desain Daftar Jenis Rias
49
4. Desain Laporan Pendapatan
Gambar III.19
Desain Laporan Pendapatan
5. Desain Jurnal
Gambar III.20
Desain Jurnal
50
6. Desain Data user
Gambar III.21
Desain Data User
3.4.7. Spesifikasi Hadware Software
1. Bahasa Pemrograman
Program : netbeans 8.1
Support : java, PHP,
Minimum resolusi monitor : 1024 x 768 pixel
2. Database
Program : xampp 3.2.2
Bahasa pemrograman : PHP
Server : apache
Database : MySQL
Ukuran : windows 7 x32 - 121MB
3. Minimum Hardware
Processor : 800MHz Intel
Memory : 512MB
Disk Space : 750MB free
4. Minimum Software
Sistem Operasi : windows 7 profesional
51
3.5. Implementasi
3.5.1. Code Generation
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package TaRias;
import java.awt.Toolkit;
import java.sql.PreparedStatement;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.security.MessageDigest;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import java.security.NoSuchAlgorithmException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Arrays;
52
public class Login extends javax.swing.JFrame {
db kon = new db();
public Dashboard menu = null;
Connection conn=null;
ResultSet rs=null;
PreparedStatement pst=null;
TaRias.PetugasSession PetugasSession = new TaRias.PetugasSession();
/**
* Creates new form Home
*/
public Login() {
initComponents();
kon.setKoneksi();
Toolkit toolkit = getToolkit();
Dimension size = toolkit.getScreenSize();
setLocation(size.width/2 - getWidth()/2,
size.height/2 - getHeight()/2);
txtsalah.setVisible(false);
txthak.setVisible(false);
}
private void GetDatahak(){
try{
Statement stat = (Statement) kon.setKoneksi( ).createStatement( );
String sql = "select * from admin where username='"+user.getText()+"'";
ResultSet res = stat.executeQuery(sql);
53
while(res.next())
{
txthak.setText(res.getString("hak"));
}
}catch(SQLException err){
JOptionPane.showMessageDialog(null, err.getMessage() );
}
}
private void initUI(){
getContentPane().setBackground(new Color(245, 245, 245));
Dimension windowSize = getSize();
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
Point centerPoint = ge.getCenterPoint();
int dx = centerPoint.x - windowSize.width / 2;
int dy = centerPoint.y - windowSize.height / 2;
setLocation(dx, dy);
}
static String sha1(String input) throws NoSuchAlgorithmException {
MessageDigest mDigest = MessageDigest.getInstance("SHA1");
byte[] result = mDigest.digest(input.getBytes());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.length; i++) {
sb.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));
54
}
return sb.toString();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
kGradientPanel1 = new keeptoo.KGradientPanel();
jPanel1 = new javax.swing.JPanel();
user = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
kGradientPanel2 = new keeptoo.KGradientPanel();
btn_login = new javax.swing.JLabel();
pass = new javax.swing.JPasswordField();
txtsalah = new javax.swing.JLabel();
txthak = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
55
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setUndecorated(true);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
kGradientPanel1.setEndColor(new java.awt.Color(0, 102, 204));
kGradientPanel1.setGradientFocus(600);
kGradientPanel1.setStartColor(new java.awt.Color(53, 57, 66));
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jPanel1.setForeground(new java.awt.Color(102, 102, 102));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
user.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N
user.setBorder(javax.swing.BorderFactory.createMatteBorder(0, 0, 2, 0, new
java.awt.Color(12, 91, 160)));
user.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
userKeyTyped(evt);
}
});
jPanel1.add(user, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 200,
278, 35));
jLabel3.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N
jLabel3.setForeground(new java.awt.Color(102, 102, 102));
56
jLabel3.setText("<html> WINDIWI MAKE UP <br> Silahkan Login
</html>");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(65, 81,
-1, 60));
jLabel5.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N
jLabel5.setText("Username");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(60,
170, -1, -1));
jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N
jLabel6.setText("Password");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(60,
250, -1, -1));
kGradientPanel2.setEndColor(new java.awt.Color(12, 91, 160));
kGradientPanel2.setGradientFocus(200);
kGradientPanel2.setStartColor(new java.awt.Color(153, 0, 153));
kGradientPanel2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
kGradientPanel2MouseClicked(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
kGradientPanel2MousePressed(evt);
}
57
});
btn_login.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N
btn_login.setForeground(new java.awt.Color(255, 255, 255));
btn_login.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
btn_login.setText("Login");
btn_login.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
btn_loginMouseClicked(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
btn_loginMousePressed(evt);
}
});
kGradientPanel2.add(btn_login);
btn_login.setBounds(0, 0, 280, 40);
jPanel1.add(kGradientPanel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(60, 370, 278, 44));
pass.setText("jPasswordField1");
pass.setBorder(javax.swing.BorderFactory.createMatteBorder(0, 0, 2, 0, new
java.awt.Color(12, 91, 160)));
pass.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
58
passFocusGained(evt);
}
});
pass.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
passKeyTyped(evt);
}
});
jPanel1.add(pass, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 280,
278, 35));
txtsalah.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N
txtsalah.setForeground(new java.awt.Color(255, 51, 0));
txtsalah.setText("Salah");
jPanel1.add(txtsalah, new org.netbeans.lib.awtextra.AbsoluteConstraints(60,
330, 278, 21));
txthak.setEditable(false);
txthak.setBackground(new java.awt.Color(255, 255, 255));
txthak.setBorder(null);
txthak.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txthakActionPerformed(evt);
}
});
59
jPanel1.add(txthak, new org.netbeans.lib.awtextra.AbsoluteConstraints(220,
300, 70, -1));
kGradientPanel1.add(jPanel1);
jPanel1.setBounds(260, 40, 400, 510);
jLabel7.setBackground(new java.awt.Color(255, 255, 255));
jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 24)); // NOI18N
jLabel7.setForeground(new java.awt.Color(255, 255, 255));
jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel7.setText("X");
jLabel7.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jLabel7.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel7MouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
jLabel7MouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
jLabel7MouseExited(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
jLabel7MousePressed(evt);
}
60
});
kGradientPanel1.add(jLabel7);
jLabel7.setBounds(884, 0, 20, 32);
getContentPane().add(kGradientPanel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 910, 590));
setSize(new java.awt.Dimension(909, 589));
setLocationRelativeTo(null);
}// </editor-fold>
private void kGradientPanel2MousePressed(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
}
private void passFocusGained(java.awt.event.FocusEvent evt) {
pass.setText(""); // TODO add your handling code here:
}
private void btn_loginMousePressed(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
}
private void btn_loginMouseClicked(java.awt.event.MouseEvent evt) {
GetDatahak();
61
String row_txtusername = user.getText();
String row_txtpassword = null;
try {
row_txtpassword = sha1(Arrays.toString(pass.getPassword()));
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Connection con = kon.setKoneksi();
Statement st=con.createStatement();
java.sql.ResultSet rsLogin = st.executeQuery("SELECT * FROM admin
WHERE username = '" + row_txtusername + "' AND password = '" +
row_txtpassword + "'");
rsLogin.next();
rsLogin.last();
if (rsLogin.getRow()==1){
String kode = txthak.getText();
if ("Pemilik".equals(kode)){
PetugasSession.setU_id(rsLogin.getInt("id"));
PetugasSession.setU_username(rsLogin.getString("username"));
PetugasSession.setU_nama(rsLogin.getString("nama"));
PetugasSession.setU_password(row_txtpassword);
PetugasSession.setU_hak(rsLogin.getString("hak"));
new Dashboard().setVisible(true);
62
this.dispose();
}
else if ("Admin".equals(kode)){
PetugasSession.setU_id(rsLogin.getInt("id"));
PetugasSession.setU_username(rsLogin.getString("username"));
PetugasSession.setU_nama(rsLogin.getString("nama"));
PetugasSession.setU_password(row_txtpassword);
PetugasSession.setU_hak(rsLogin.getString("hak"));
new DashboardUser().setVisible(true);
this.dispose();
}
} else {
JOptionPane.showMessageDialog(null, "Username atau password tidak
terdaftar !", " Akses ditolak", JOptionPane.ERROR_MESSAGE);
user.setText("");
pass.setText("");
txthak.setText("");
user.requestFocus();
}
con.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
}
63
private void txthakActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void userKeyTyped(java.awt.event.KeyEvent evt) {
char c = evt.getKeyChar();
if(c == KeyEvent.VK_ENTER){
pass.requestFocus();
evt.consume();
}
}
private void passKeyTyped(java.awt.event.KeyEvent evt) {
}
private void kGradientPanel2MouseClicked(java.awt.event.MouseEvent evt) {
GetDatahak();
String row_txtusername = user.getText();
String row_txtpassword = null;
try {
row_txtpassword = sha1(Arrays.toString(pass.getPassword()));
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Connection con = kon.setKoneksi();
64
Statement st=con.createStatement();
java.sql.ResultSet rsLogin = st.executeQuery("SELECT * FROM admin
WHERE username = '" + row_txtusername + "' AND password = '" +
row_txtpassword + "'");
rsLogin.next();
rsLogin.last();
if (rsLogin.getRow()==1){
String kode = txthak.getText();
if ("Pemilik".equals(kode)){
PetugasSession.setU_id(rsLogin.getInt("id"));
PetugasSession.setU_username(rsLogin.getString("username"));
PetugasSession.setU_nama(rsLogin.getString("nama"));
PetugasSession.setU_password(row_txtpassword);
PetugasSession.setU_hak(rsLogin.getString("hak"));
new Dashboard().setVisible(true);
this.dispose();
}
else if ("Admin".equals(kode)){
PetugasSession.setU_id(rsLogin.getInt("id"));
PetugasSession.setU_username(rsLogin.getString("username"));
PetugasSession.setU_nama(rsLogin.getString("nama"));
PetugasSession.setU_password(row_txtpassword);
PetugasSession.setU_hak(rsLogin.getString("hak"));
new Dashboard().setVisible(true);
this.dispose();
65
}
} else {
JOptionPane.showMessageDialog(null, "Username atau password tidak
terdaftar !", " Akses ditolak", JOptionPane.ERROR_MESSAGE);
user.setText("");
pass.setText("");
txthak.setText("");
user.requestFocus();
}
con.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error " + e);
}
}
private void jLabel7MouseClicked(java.awt.event.MouseEvent evt) {
System.exit(0); // TODO add your handling code here:
}
private void jLabel7MouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
}
private void jLabel7MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
66
}
private void jLabel7MousePressed(java.awt.event.MouseEvent evt) {
// kon.keluar();
// JFrame frame =(JFrame)SwingUtilities.getWindowAncestor(this);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default
look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
67
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
68
new Login().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel btn_login;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel1;
private keeptoo.KGradientPanel kGradientPanel1;
private keeptoo.KGradientPanel kGradientPanel2;
private javax.swing.JPasswordField pass;
private javax.swing.JTextField txthak;
private javax.swing.JLabel txtsalah;
private javax.swing.JTextField user;
// End of variables declaration
}
69
3.5.2. Blackbox Testing
Blackbox Testing adalah metode pengujian perangkat lunak yang memeriksa
fungsionalitas aplikasi tanpa melihat struktur atau cara kerjanya.
A.1. Hasil Blackbox Testing Form Login
Tabel III.5
Hasil Blackbox Testing Form Login
No Skenario
Pengujian
Text case Hasil yang
Diharapkan
Hasil
Pengujian
Kesimpulan
1. Masukkan
Username,
mengosongkan
password. Klik
tombol Login
Username,
Password
[Kosong]
Sistem akan
menolak
akses
Sesuai
harapan
Valid
2. Data
Username
kosong,
Masukkan
password. Klik
tombol Login
Username
[kosong],
Password
Sistem akan
menolak
akses
Sesuai
harapan
Valid
3. Data username
kosong,
password
kosong. Klik
tombol Login
Username
[Kosong],
Password
[Kosong]
Sistem akan
menolak
akses
Sesuai
harapan
Valid
4. Masukkan
data username,
masukkan
password. Klik
tombol Login
Username,
Password
Sistem
menerima
akses dan
masuk
kedalam
menu utama
Sesuai
Harapan
Valid
A.2. Blackbox Testing Data Customer
Tabel III.6
Hasil Blackbox Testing Data customer
No Skenario Text case Hasil yang Hasil Kesimpulan
70
Pengujian Diharapkan Pengujian
1. Klik
tambah,
kemudian
data
Pemesanan
kosong. Klik
tombol
simpan
Nama
pelanggan
[Kosong],
kontak
[Kosong],
Alamat
[Kosong],
Sistem akan
menolak
akses dan
menampilkan
pesan “Data
isian ada
yang kosong”
Sesuai
harapan
Valid
2. Klik
tambah,
kemudian
data
pemesanan
kosong. Klik
tombol
simpan
Nama
pelanggan ,
kontak
[Kosong],
Alamat
[Kosong],
Sistem akan
menolak
akses dan
menampilkan
pesan “Login
Gagal, Coba
Lagi!!”
Sesuai
harapan
Valid
3. Klik
tambah,
kemudian
data
pemesanan
kosong. Klik
tombol
simpan
Nama
pelanggan
vionita,
kontak
087281822,
Alamat
cikampek,
Sistem
menerima
akses dan
menampilkan
“Data
berhasil
disimpan”
Sesuai
harapan
Valid
A.3. Blackbox Testing Transaksi Pembayaran
Tabel III.7
Hasil Blackbox Testing Form Transaksi Pembayaran
71
No Skenario
Pengujian
Text case Hasil yang
Diharapkan
Hasil
Pengujian
Kesimpulan
1. Klik tambah,
kemudian
data
transaksi
pembayaran
kosong. Klik
tombol
simpan
No
Transaksi,
Kode
pelanggan,
Nama
pelanggan,
Kontak,
Alamat,
Jenis rias,
Harga,
Tgl
pernikahan
[Kosong].
Sistem akan
menolak
akses dan
menampilkan
pesan “Data
isian ada
yang kosong”
Sesuai
harapan
Valid
2. Klik tambah,
kemudian
data
transaksi
pembayaran
kosong. Klik
tombol
simpan
No
Transaksi,
Kode
pelangan,
Nama
pelanggan,
Kontak,
Alamat,
Jenis rias,
Harga,
Tgl
pernikahan
[Kosong].
Sistem akan
menolak
akses dan
menampilkan
pesan “Login
Gagal, Coba
Lagi!!”
Sesuai
harapan
Valid
3. Klik tambah,
kemudian
data
transaksi
pembayaran
kosong. Klik
tombol
simpan
No
Transaksi,
T040719001
Kode
pelangan,
P040719001
Nama
pelanggan,
vionita
Kontak,
087281822
Alamat,
cikampek
Jenis rias,
paket
ekonomis
Harga,
18.000.000
Tgl
pernikahan
05/07/2019
Sistem
menerima
akses dan
menampilkan
“Data
berhasil
disimpan”
Sesuai
harapan
Valid
72
3.5.3. Spesifikasi Hadware dan Software
Spesifikasi Hadrware Komputer yang cepat diiringi juga dengan
perkembangan software operasi yang menuntut spesifikasi hardware minimal agar
komputer dapat bekerja secara optimal. Jika spesifikasi hardware kurang memenuhi
syarat maka akan berdampak pada tidak ptimalnya kerja sistem opersasi.
Tabel III.8
Spesifikasi Hadware dan Software
Kebutuhan Keterangan
Sistem Windows 10 64-bit
Processor Intel Celeron @1.60. GHz
RAM 2GB
Harddisk 2GB
Monitor 1024x768 pixels
Keyboard 102 Key
Printer Injek Printer
Mouse Opthomechanical Mouse
Software Kebutah menjalankan Aplikasi Secara Local :
Bahasa script Programing: JAVA Netbens 8.1
Web Server: Xampp
DBMS : MySql