• Tidak ada hasil yang ditemukan

BAB IV RANCANGAN SISTEM DAN PROGRAM USULAN

N/A
N/A
Protected

Academic year: 2024

Membagikan "BAB IV RANCANGAN SISTEM DAN PROGRAM USULAN"

Copied!
69
0
0

Teks penuh

(1)

38

RANCANGAN SISTEM DAN PROGRAM USULAN

4.1. Analisis Kebutuhan Software A. Tahapan Analisis

Aplikasi sistem informasi absensi pada PT Rama Jasindo Abadi sudah terkomputerisasi agar lebih efisien dengan menggunakan beberapa user.

Berikut ini spesifikasi kebutuhan (system requirement) dari aplikasi sistem informasi tersebut:

Akses Admin:

A1. Admin dapat login

A2. Admin dapat mengelola data master admin A3. Admin dapat mengelola data master jabatan A4. Admin dapat mengelola data master karyawan A5. Admin dapat mengelola data master lembur A6. Admin dapat mengelola data master pengguna A7. Admin dapat melakukan perubahan data login A8. Admin dapat melakukan logout

Akses Pengguna:

B1. Pengguna dapat login

B2. Pengguna dapat melihat dashboard

(2)

B3. Pengguna dapat mengelola data master karyawan B4. Pengguna dapat melihat laporan absensi karyawan B5. Pengguna dapat melihat laporan lembur karyawan B6. Pengguna dapat melakukan perubahan data login B7. Pengguna dapat melakukan logout

Akses Karyawan

C1. Karyawan dapat melakukan absen masuk C2. Karyawan dapat melihat informasi absen C3. Karyawan dapat melakukan absen keluar C4. Karyawan dapat melakukan lembur B. Use Case Diagram

Diagram usecase menunjukan interaksi antara use case, actor dan pekerja. Diagram ini menggambarkan model lengkap tentang apa yang perusahaan lakukan, siap yang ada didalam berperan didalamnya dan siapa orang yang berperan diluarnya. Hal ini menggambarkan ruang lingkup organisasi, sehingga dapat dilihat apa atau siapa saja yang ada di luar organisasi dan sampai mana batasannya.

(3)

1. Use Case Diagram Halaman Admin

Login

Mengelola Data Master

Merubah Data Login

Logout

Merubah Data Master

Menghapus Data Master

Menambahkan Data Master

Admin

<<include>>

<<include>>

<<include>>

<<extend>>

<<extend>>

<<extend>>

Gambar IV.1. Use Case Diagram Halaman Admin

(4)

Tabel IV.1.

Use Case Diagram Halaman Admin

Use Case Name Halaman Admin

Requirements A1,A2,A3,A4,A5,A6,A7,A8

Goal - Admin dapat menambah, mengedit

dan menghapus data master.

- Admin dapat merubah data login.

- Admin dapat melakukan keluar aplikasi.

Pre-conditions Admin melakukan login

Post-conditions - Menyimpan, menghapus dan merubah data master

- Merubah data login.

Failed end condition Gagal menyimpan, mengupdate dan menghapus

Primary Actors Admin

Main Flow / Basic Path - Admin melakukan login

- Admin masuk ke halaman

administrator

- Admin dapat menambahkan data admin, data jabatan, data karyawan, data lembur dan data pengguna.

- Admin dapat mengubah data admin, data jabatan, data karyawan, data lembur dan data pengguna.

- Admin dapat menghapus data admin, data jabatan, data karyawan, data, data lembur dan data pengguna.

- Admin dapat merubah data login Invariant A A9. Admin memilih action print pada

halaman data master karyawan.

A10. Admin mencetak id card karyawan.

(5)

2. Use Case Diagram Halaman Pengguna

Login

Dashboard

Mengelola Data Karyawan

Melihat Laporan Absen

Merubah Data Login Logout

Melihat Laporan Lembur

Secara Detail

Secara Ringkas Pengguna

<<include>>

<<include>>

<<include>>

<<include>>

<<include>>

Merubah Data Karyawan

Menghapus Data Karyawan Menambahkan Data Karyawan

<<include>>

<<extend>>

<<extend>>

<<extend>>

<<extend>>

<<extend>>

Gambar IV.2. Use Case Diagram Halaman Pengguna

(6)

Tabel IV.2.

Use Case Diagram Halaman Pengguna Use Case Name Halaman Pengguna

Requirements B1,B2,B3,B4,B5,B6,B7

Goal - Pengguna dapat menambah, mengedit dan menghapus data karyawan.

- Pengguna dapat melihat laporan absen karyawan.

- Pengguna dapat melihat laporan lembur secara detail maupun ringkas.

- Pengguna dapat merubah data login.

- Pengguna dapat melakukan keluar aplikasi.

Pre-conditions Pengguna melakukan login

Post-conditions - Menyimpan, menghapus dan merubah data karyawan.

- Melihat laporan absen karyawan - Melihat laporan lembur secara detail

maupun secara ringkas.

- Merubah data login.

Failed end condition

Gagal login, menyimpan, mengupdate dan menghapus

Primary Actors Pengguna Main Flow /

Basic Path

- Pengguna melakukan login.

- Pengguna masuk ke halaman hrd.

- Pengguna dapat menambahkan, mengubah dan menghapus data karyawan.

- Pengguna dapat melihat laporan absen karyawan berdasarkan nama, perbulan, pertanggal maupun pertahun.

- Pengguna dapat melihat laporan lembur karyawan secara detail maupun secara ringkas

- Pengguna dapat merubah data login Invariant A B8. Pengguna memilih action print pada

halaman data master karyawan.

B9. Pengguna mencetak id card karyawan.

(7)

3. Use Case Diagram Absensi Karyawan

Melakukan Absen Masuk

Melihat Informasi absen dan Informasi karyawan

Karyawan

<<include>>

Melakukan Lembur Melakukan Absen Keluar

<<include>>

<<include>>

Gambar IV.3. Use Case Diagram Absensi Karyawan

(8)

Tabel IV.3.

Use Case Diagram Absensi Karyawan Use Case Name Halaman Karyawan

Requirements C1,C2,C3,C4

Goal - Karyawan melakukan absen masuk - Karyawan melakukan absen keluar - Karyawan melakukan lembur Pre-conditions Karyawan melakukan absen masuk Post-conditions - Menyimpan absen masuk

- Menyimpan absen keluar Failed end condition Gagal absen keluar

Primary Actors Karyawan Main Flow /

Basic Path

- Karyawan melakukan absen masuk.

- System akan menampilkan informasi data karyawan dan keterangan absen masuk.

- System akan memberikan keterangan telat apabila karyawan melakukan absen masuk diatas pukul 08:00.

- Karyawan melakukan absen keluar.

- System akan menolak jika karyawan melakukan absen keluar dibawah pukul 16:00.

- Jika karyawan melakukan absen keluar diatas pukul 16:00 maka system akan menampilkan kembali data karyawan dan keterangan absen keluar

- System akan memberikan keterangan lembur apabila karyawan melakukan absen keluar diatas pukul 17:00.

Invariant A B8. Pengguna memilih action print pada halaman data master karyawan.

B9. Pengguna mencetak id card karyawan.

(9)

C. Activity Diagram

1. Activity Diagram Absen Masuk

Activity Diagram Activity Diagram

Karyawan

Karyawan SystemSystem PenggunaPengguna

Activity Diagram Proses Absen MasukActivity Diagram Proses Absen Masuk

Memasukkan Nomor Induk Karyawan

Y T

Rekap Absen Melihat rekap absensi Absen Masuk

Lebih dari jam 8 pagi

Terinput Telat Terinput Tepat

Waktu

Y T

Pengecekan Nomor Induk Karyawan

Gambar IV.4. Activity Diagram Absen Masuk

(10)

2. Activity Diagram Absen Keluar dan Perhitungan Lembur

Activity Diagram Activity Diagram

Karyawan

Karyawan SystemSystem PenggunaPengguna

Activity Diagram Proses Absen Keluar dan Perhitungan LemburActivity Diagram Proses Absen Keluar dan Perhitungan Lembur

Memasukkan Nomor Induk Karyawan

Y T

Rekap Absen Melihat rekap

absensi Lebih dari jam 4

Absen Keluar Y Pengecekan Nomor

Induk Karyawan

T

Lebih dari jam 5

Perhitungan Lembur Y

T

Melihat rekap lembur Rekap Lembur

Gambar IV.5.

Activity Diagram Absen Keluar dan Perhitungan Lembur

(11)

3. Activity Diagram Halaman Pengguna

Activity Diagram Activity Diagram

Pengguna

Pengguna SystemSystem

Activity Diagram Halaman PenggunaActivity Diagram Halaman Pengguna

Login Validasi

Lihat laporan absen, lembur dan

karyawan T

Y

Gambar IV.6. Activity Diagram Halaman Pengguna

(12)

4. Activity Diagram Halaman Admin

Activity Diagram Activity Diagram

Admin

Admin SystemSystem

Activity Diagram Halaman AdminActivity Diagram Halaman Admin

Login Validasi

Mengelola data master

T

Y

Gambar IV.7. Activity Diagram Halaman Admin

(13)

4.2. Desain 4.2.1. Database

A. Entity Relationship Diagram

Karyawan Absensi

Jabatan

Pengguna

Lembur Melakukan

Melihat

Memiliki

Mengelola Memiliki

absensiid tanggal

jam_masuk jam_keluar

status_absen

status_kehadiran

gambar_absenmasuk

gambar_absenkeluar nik

jabatanid namajabatan

nik

namakaryawan

notelp email

tanggal_lahir

alamatkaryawan jabatanid

fotokaryawan

lemburid biaya_lembur jabatanid id_pengguna

username

nama password

fotopengguna id_pengguna

id_pengguna

Gambar IV.8. Entity Relationship Diagram

(14)

B. Logical Record Structure

Absensi Absensi

Karyawan Karyawan

Jabatan Jabatan

Lembur Lembur Pengguna

Pengguna absensiid absensiid PK

PK

tanggal tanggal jam_masuk jam_masuk jam_keluar jam_keluar status_absen status_absen status_kehadiran status_kehadiran gambar_absenmasuk gambar_absenmasuk gambar_absenkeluar gambar_absenkeluar banyak_lembur banyak_lembur nik

nik FK FK

nik nik PK

PK

namakaryawan namakaryawan notelp notelp email email tanggal_lahir tanggal_lahir alamatkaryawan alamatkaryawan fotokaryawan fotokaryawan jabatanid jabatanid FK

FK

jabatanid jabatanid PK

PK

namajabatan namajabatan

lemburid lemburid PK

PK

biaya_lembur biaya_lembur jabatanid jabatanid FK

FK id_pengguna

id_pengguna PK

PK

username username password password nama nama fotopengguna fotopengguna id_pengguna id_pengguna FK

FK

id_pengguna id_pengguna FK

FK 1

M

1

1

1 1 1

M

1 1

Gambar IV.9. Logical Record Structure

(15)

C. Spesifikasi File

1. Spesifikasi File Absensi Nama File : Absensi Akronim : absensi.frm

Fungsi : untuk menyimpan data absensi dan perhitungan lembur karyawan

Tipe File : File Transaksi Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang Record : 589 byte Kunci Field : absensiid Software : Mysql

(16)

Tabel IV.4.

Spesifikasi file Absensi

No Elemen data Nama Field Tipe Size Ket

1 ID Absen absensiid int 11 Primary Key,

Auto Increment 2 Tanggal

Absensi tanggal date

3 Jam Masuk jam_masuk varchar 8

4 Jam Keluar jam_keluar varchar 8

5 Status Absen status_absen enum(‘1’,’2’,

‘3’,’4’,’5’) 6 Status

Kehadiran status_kehadiran enum(‘TW’,

’TL’) 7 Gambar Absen

Masuk gambar_absenmasuk text 255

8 Gambar Absen

Keluar gambar_absenkeluar text 255

9 Banyaknya

Lembur banyak_lembur int 11

10 Nomor Induk

Karyawan nik varchar 7 Foreign Key

11 Id Pengguna id_pengguna int 11 Foreign Key

(17)

2. Spesifikasi File Admin Nama File : Admin Akronim : admin.frm

Fungsi : untuk menyimpan data master administrator Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang Record : 341 byte Kunci Field : id_admin Software : Mysql

Table IV.5.

Spesifikasi file Admin

No Elemen data Nama Field Tipe Size Ket

1 ID Admin id_admin int 11 Primary Key,

Auto Increment

2 Username username varchar 25

3 Password password varchar 25

4 Nama nama varchar 25

5 Foto Admin fotoadmin text 255

(18)

3. Spesifikasi File Jabatan Nama File : Jabatan Akronim : jabatan.frm

Fungsi : untuk menyimpan data master jabatan Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang Record : 31 byte Kunci Field : jabatanid Software : Mysql

Tabel IV.6.

Spesifikasi file Jabatan

No Elemen data Nama Field Tipe Size Ket

1 ID Jabatan jabatanid int 11 Primary Key,

Auto Increment 2 Nama Jabatan namajabatan varchar 30

(19)

4. Spesifikasi File Karyawan Nama File : Karyawan Akronim : karyawan.frm

Fungsi : untuk menyimpan data master karyawan Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang Record : 651 byte Kunci Field : nik Software : Mysql

Tabel IV.7.

Spesifikasi file Karyawan

No Elemen data Nama Field Tipe Size Ket

1 Nomor Induk Karyawan nik varchar 7 Primary Key

2 Nama Karyawan namakaryawan varchar 50

3 No Telp notelp varchar 12

4 Email email varchar 50

5 Tanggal Lahir tanggal_lahir date

6 Alamat Karyawan alamatkaryawan text 255

7 Foto Karyawan fotokaryawan text 255

8 ID Jabatan jabatanid int 11 Foreign Key

9 ID Pengguna id_pengguna int 11 Foreign Key

(20)

5. Spesifikasi File Lembur Nama File : Lembur Akronim : lembur.frm

Fungsi : untuk menyimpan data master lembur Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang Record : 30 byte Kunci Field : lemburid Software : Mysql

Tabel IV.8.

Spesifikasi file Lembur

No Elemen data Nama Field Tipe Size Ket

1 ID Lembur lemburid int 11 Primary Key,

Auto Increment

2 Biaya Lembur biaya_lembur double 8

3 ID Jabatan jabatanid int 11 Foreign Key

(21)

6. Spesifikasi File Pengguna Nama File : Pengguna Akronim : pengguna.frm

Fungsi : untuk menyimpan data master pengguna Tipe File : File Master

Organisasi File : Indexed Sequential Akses File : Random

Media : Harddisk

Panjang Record : 356 byte Kunci Field : id_pengguna Software : Mysql

Tabel IV.9.

Spesifikasi file Pengguna

No Elemen data Nama Field Tipe Size Ket

1 ID Pengguna id_pengguna int 11 Primary Key,

Auto Increment

2 Username username varchar 20

3 Password password varchar 20

4 Nama nama varchar 50

5 Foto Pengguna fotopengguna text 255

(22)

4.2.2. Software Architecture A. Class Diagram

Absen Absen +index -Mkaryawan -Mabsen

Admin Admin +index +login +data_admin +data_jabatan +data_karyawan +data_lembur +data_pengguna +pengaturan +update -Madmin -Mkaryawan -Mjabatan -Mlembur -Mpengguna Auth

Auth +admin +pengguna +logout_admin +logout_pengguna -Madmin -Mpengguna

Page404 Page404 +index Pengguna

Pengguna +index +cuti +bolos +sakit +laporan_absen +laporan_tampil +lembur_detail +lembur_detail_tampil +lembur_ringkasan +lembur_ringkasan_tampil +data_karyawan +pengaturan +update +login -Mabsen -Mkaryawan -Mpengguna

Mabsen Mabsen

+get_bydatarow +insert +update +get_all +get_bydata +get_bydatajoin +get_bydatajoinlembur

Madmin Madmin +get_bydata +get_byid +get_all +update +delete +insert

Mjabatan Mjabatan +get_bydata +get_byid +get_all +update +delete +insert

Mkaryawan Mkaryawan +get_bydata +get_byidrow +get_join +get_all +update +delete +insert

Mlembur Mlembur +get_bydata +get_byid +get_all +update +delete +insert

Mpengguna Mpengguna +get_bydata +get_byid +get_all +update +insert +delete viewAbsen

viewAbsen +Absen

viewAdmin viewAdmin +Admin

viewPengguna viewPengguna +Pengguna

view404 view404 +Page404

Gambar IV.10. Class Diagram

(23)

B. Component Diagram

Frontend Page Apache

Database Backend Page

Browser

Controller

View Model

Gambar IV.11. Component Diagram

(24)

C. Deployment Diagram

Frontend Page

Backend Page Controller

View Model

Browser

Port 80

Apache Server

Database Server

Port 3306

Gambar IV.12. Deployment Diagram

(25)

4.2.3. User Interface

A. Interface Halaman Absen Masuk Karyawan

Gambar IV.13. Halaman Absen Masuk Karyawan

Keterangan :

1) Hak Akses : Karyawan

2) Nama : Halaman Absen Masuk Karyawna

3) Fungsi : Melakukan absen masuk untuk karyawan dan melihat keterangan absen.

(26)

B. Interface Halaman Absen Keluar Karyawan

Gambar IV.14. Halaman Absen Keluar Karyawan

Keterangan :

1) Hak Akses : Karyawan

2) Nama : Halaman Absen Keluar Karyawan

3) Fungsi : Melakukan absen keluar untuk karyawan dan melihat keterangan absen.

(27)

C. Interface Halaman Login Pengguna

Gambar IV.15. Halaman Login Pengguna

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Login Pengguna

3) Fungsi : Untuk masuk ke halaman pengguna.

(28)

D. Interface Halaman Dashboard Pengguna

Gambar IV.16. Halaman Dashboard Pengguna

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Dashboard Pengguna

3) Fungsi : Melihat kegiatan absensi hari ini dan memberikan action status absen jika karyawan melakukan ijin maupun cuti.

(29)

E. Interface Halaman Laporan Absensi

Gambar IV.17. Halaman Laporan Absensi

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Laporan Absensi

3) Fungsi : Menentukan laporan yang akan dicetak di halaman selanjutnya berdasarkan nama. pertanggal, perbulan dan pertahun.

(30)

F. Interface Halaman Tampil Laporan Absensi

Gambar IV.18. Halaman Tampil Laporan Absensi

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Tampil Laporan Absensi

3) Fungsi : Melihat/menampilkan laporan absensi yang sudah ditentukan di halaman sebelumnya

(31)

G. Interface Halaman Laporan Lembur Detail

Gambar IV.19. Halaman Laporan Lembur Detail

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Laporan Lembur Detail

3) Fungsi : Menentukan laporan yang akan dicetak di halaman selanjutnya berdasarkan nama. pertanggal, perbulan dan pertahun.

(32)

H. Interface Halaman Tampil Laporan Lembur Detail

Gambar IV.20. Halaman Tampil Laporan Lembur Detail

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Tampil Laporan Lembur Detail

4) Fungsi : Melihat/menampilkan laporan lembur secara detail yang sudah ditentukan di halaman sebelumnya.

(33)

I. Interface Halaman Laporan Lembur Ringkasan

Gambar IV.21. Halaman Laporan Lembur Ringkasan

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Laporan Lembur Ringkasan

4) Fungsi : Menentukan laporan yang akan dicetak di halaman selanjutnya berdasarkan nama. pertanggal, perbulan dan pertahun.

(34)

J. Interface Halaman Tampil Laporan Lembur Ringkasan

Gambar IV.22. Halaman Tampil Laporan Lembur Ringkasan

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Tampil Laporan Lembur Ringkasan

5) Fungsi : Melihat/menampilkan laporan lembur secara ringkas yang sudah ditentukan di halaman sebelumnya.

(35)

K. Interface Halaman Data Master Karyawan

Gambar IV.23. Halaman Data Master Karyawan

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Data Master Karyawan 3) Fungsi : Mengelola data master karyawan.

(36)

L. Interface Halaman Cetak ID Card Karyawan

Gambar IV.24. Halaman Cetak ID Card Karyawan

Keterangan :

1) Hak Akses : Pengguna

2) Nama : Halaman Cetak ID Card Karyawan 3) Fungsi : Mencetak ID Card karyawan.

(37)

M. Interface Halaman Pengaturan Pengguna

Gambar IV.25. Halaman Pengaturan Pengguna

Keterangan :

1) Hak Akses : Penguna

2) Nama : Halaman Pengaturan Pengguna 3) Fungsi : Merubah data login pengguna.

(38)

N. Interface Halaman Login Admin

Gambar IV.26. Halaman Login Admin

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Login Admin

3) Fungsi : Untuk masuk ke halaman admin.

(39)

O. Interface Halaman Data Master Admin

Gambar IV.27. Halaman Data Master Admin

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Data Master Admin 3) Fungsi : Mengelola data master admin.

(40)

P. Interface Halaman Data Master Jabatan

Gambar IV.28. Halaman Data Master Jabatan

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Data Master Jabatan 3) Fungsi : Mengelola data master jabatan.

(41)

Q. Interface Halaman Data Master Karyawan

Gambar IV.29. Halaman Data Master Karyawan

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Data Master Karyawan 3) Fungsi : Mengelola data master karyawan.

(42)

R. Interface Halaman Data Master Lembur

Gambar IV.30. Halaman Data Master Lembur

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Data Master Lembur 3) Fungsi : Mengelola data master lembur.

(43)

S. Interface Halaman Data Master Pengguna

Gambar IV.31. Halaman Data Master Pengguna

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Data Master Pengguna 3) Fungsi : Mengelola data master pengguna

(44)

T. Interface Halaman Pengaturan Admin

Gambar IV.32. Halaman Pengaturan Admin

Keterangan :

1) Hak Akses : Admin

2) Nama : Halaman Pengaturan Admin 3) Fungsi : Merubah data login admin.

(45)

4.3. Code Generation A. Class Absen

<!--

/**********************************************************

*/

/

/

/ @copyright handc0de

/

/ [email protected]

/

/

/

/**********************************************************

*/

-->

<?php

class Absen extends CI_Controller {

public function __construct() { parent::__construct();

//load model

$this->load->model('Mabsen');

$this->load->model('Mkaryawan');

//load helper

$this->load->helper(array('url', 'form'));

}

public function index() {

(46)

$nik = $this->input->post('nik');

$data['title'] = "Aplikasi Absensi";

$data['judul'] = "Absen";

$data['nik'] = $nik;

$jam = date('H:i:s');

$tanggal = date('Y-m-d');

$jam_pembatas = date('H');

if(!empty($nik)) {

$this->cek = $this->Mkaryawan->get_byidrow($nik);

if ($this->cek>0) {

if ($jam_pembatas < '16') {

if ($jam_pembatas < '08') {

$kehadiran = 'TW';

$keterangan = 'Tepat Waktu';

} else {

$kehadiran = 'TL';

$keterangan = 'Telat';

}

$w = "nik='$nik' and

tanggal='$tanggal'";

$this->cekabsen = $this->Mabsen-

>get_bydatarow($w);

if ($this->cekabsen>0) {

$data['pesan'] = "<div

class='alert alert-block alert-danger fade in'>

<button data-dismiss='alert' class='close close-sm' type='button'>

<i class='fa fa-times'></i>

</button>

<strong>Gagal!</strong> Anda sudah melakukan absen masuk

(47)

</div>";

$data['gambar'] = 'no-pict.png';

$data['folder_gambar'] = 'default';

$data['keterangan'] = 'Data not found';

$data['jam'] = 'Data not

found';

} else {

$encoded_data = $this->input-

>post('mydata');

$binary_data =

base64_decode($encoded_data);

// save to server (beware of

permissions)

$date = date('Y-m-d H-i-s');

$gambar = $date.".jpg";

$result = file_put_contents(

'./upload/absen_masuk/'.$date.'.jpg', $binary_data );

$d = array(

'tanggal'

=> $tanggal,

'jam_masuk' =>

$jam,

'jam_keluar' =>

'',

'status_absen' =>

'1',

'status_kehadiran' =>

$kehadiran,

'gambar_absenmasuk' =>

$gambar,

'nik'

=> $nik

);

$this->Mabsen->insert($d);

$data['pesan'] = "<div

class='alert alert-success fade in'>

(48)

<button data-dismiss='alert' class='close close-sm' type='button'>

<i class='fa fa-times'></i>

</button>

<strong>Sukses!</strong>

Berhasil melakukan absen masuk

</div>";

$data['gambar'] = $gambar;

$data['folder_gambar'] = 'absen_masuk';

$data['keterangan'] = $keterangan;

$data['jam'] = 'Anda

melakukan Absen Masuk pada jam '.$jam;

}

} else {

$w = "nik='$nik' and status_absen='2'

and tanggal='$tanggal'";

$this->cekabsen = $this->Mabsen-

>get_bydatarow($w);

if ($this->cekabsen>0) {

$data['pesan'] = "<div

class='alert alert-block alert-danger fade in'>

<button data-dismiss='alert' class='close close-sm' type='button'>

<i class='fa fa-times'></i>

</button>

<strong>Gagal!</strong> Anda sudah melakukan absen hari ini

</div>";

$data['gambar'] = 'no-pict.png';

$data['folder_gambar'] = 'default';

$data['keterangan'] = 'Data not found';

$data['jam'] = 'Data not

found';

} else {

$encoded_data = $this->input-

>post('mydata');

(49)

$binary_data = base64_decode($encoded_data);

// menyimpan pict ke server

$date = date('Y-m-d H-i-s');

$gambar = $date.".jpg";

$result = file_put_contents(

'./upload/absen_keluar/'.$date.'.jpg', $binary_data );

$this->result = $this-

>Mkaryawan->get_join($nik);

foreach ($this->result as $h) {}

if ($h->jabatanid == "1" or $h-

>jabatanid == "3") {

$banyak_lembur = '0';

} else {

if ($jam_pembatas >

"20") {

$banyak_lembur

= "4";

} else {

$banyak_lembur

= $jam_pembatas - "16";

}

}

$d = array(

'jam_keluar'

=> $jam,

'status_absen'

=> '2',

'gambar_absenkeluar' =>

$gambar,

'banyak_lembur'

=> $banyak_lembur

(50)

);

$w = array (

'tanggal' =>

$tanggal,

'nik' =>

$nik

);

$this->Mabsen->update($d,$w);

$data['pesan'] = "<div

class='alert alert-success fade in'>

<button data-dismiss='alert' class='close close-sm' type='button'>

<i class='fa fa-times'></i>

</button>

<strong>Sukses!</strong>

Berhasil melakukan absen keluar

</div>";

$data['gambar'] = $gambar;

$data['folder_gambar'] = 'absen_keluar';

$data['keterangan'] = 'Anda lembur selama '.$banyak_lembur.' jam';

$data['jam'] = 'Anda

melakukan Absen Keluar pada jam '.$jam;

}

}

} else {

$data['pesan'] = "<div class='alert alert-block alert-danger fade in'>

<button data-dismiss='alert' class='close close- sm' type='button'>

<i class='fa fa-times'></i>

</button>

<strong>Gagal!</strong> Nik anda tidak ditemukan

</div>";

$data['gambar'] = 'no-pict.png';

(51)

$data['folder_gambar'] = 'default';

$data['keterangan'] = 'Data not found';

$data['jam'] = 'Data not found';

}

} else {

$data['pesan'] = "";

}

$this->load->view('absen',$data);

} }

?>

Listing Program IV.1. Class Absen B. View Absen

<!--

/**********************************************************

*/

/ /

/ @copyright handc0de / / [email protected] / / /

/**********************************************************

*/

-->

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial- scale=1.0">

(52)

<title><?php echo $judul ?> | <?php echo $title ?></title>

<link href="<?php echo base_url() ?>assets/css/bootstrap.min.css"

rel="stylesheet">

<link href="<?php echo base_url() ?>assets/font-awesome/css/font- awesome.css" rel="stylesheet">

<link href="<?php echo base_url() ?>assets/css/animate.css"

rel="stylesheet">

<link href="<?php echo base_url() ?>assets/css/style.css"

rel="stylesheet">

</head>

<body class="gray-bg">

<h1 align="center">Selamat datang di Aplikasi Absensi Karyawan PT RAMA JASINDO ABADI</h1>

<blink><h3 align="center">Gunakan barcode yang sudah disediakan agar lebih cepat melakukan absensi</h3></blink>

<div class="loginColumns animated fadeInDown" style="margin-top:- 70px">

<div class="row">

<div class="col-md-6">

<div class="ibox-content">

<h2 class="form-signin-heading">Absen Karyawan</h2>

<form method="POST" action="<?php echo base_url('Absen') ?>">

<input type="text" name="nik" class="form-control"

placeholder="nik" autofocus><br>

<input id="mydata" type="hidden" name="mydata"

value=""/>

<input type="submit" class="btn btn-primary"

onClick="take_snapshot()" value="Absen" style="width:100%;">

</form><br>

<div id="my_camera"></div>

<p class="m-t">

<small style="color:red">*Masukkan nik anda secara manual jika barcode error</small>

</p>

(53)

</div>

</div>

<div class="col-md-6">

<div class="ibox-content">

<?php

if(!empty($nik)) {

$this->db->where('nik',$nik);

$q = $this->db->get('karyawan');

$cari = $q->num_rows();

if ($cari>0) {

$this->db->select("*");

$this->db->from("karyawan");

$this->db-

>join("jabatan","jabatan.jabatanid=karyawan.jabatanid");

$this->db->where('karyawan.nik',$nik);

$q = $this->db->get();

foreach ($q->result() as $tampil) {}

?>

<h2 align="center">Selamat datang</h2>

<center><img

style="width:150px;height:150px;margin-top:2%;" src="<?php echo base_url('upload/'.$folder_gambar.'/'.$gambar) ?>"></center>

<table width="100%" style="margin-top:5%;margin- bottom:5%;">

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">NIK</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $tampil->nik ?></div></td>

</tr>

(54)

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Nama</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $tampil->namakaryawan

?></div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Jabatan</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $tampil->namajabatan

?></div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Keterangan</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $keterangan ?></div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Jam</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $jam ?></div></td>

</tr>

</table>

<?php } else {

(55)

?>

<h2 align="center">Selamat datang</h2>

<center><img style="width:150px;height:150px;margin- top:2%;" src="<?php echo base_url('upload/default/no-pict.png')

?>"></center>

<table width="100%" style="margin-top:5%;margin- bottom:5%;">

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">NIK</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Nama</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Jabatan</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Keterangan</div></td>

(56)

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $keterangan ?></div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Jam</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;"><?php echo $jam ?></div></td>

</tr>

</table>

<?php }

echo $pesan ?>

<?php } else { ?>

<h2 align="center">Selamat datang</h2>

<center><img style="width:150px;height:150px;margin- top:2%;" src="<?php echo base_url('upload/default/no-pict.png')

?>"></center>

<table width="100%" style="margin-top:5%;margin- bottom:5%;">

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">NIK</div></td>

<td width="2%">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

(57)

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Nama</div></td>

<td width="2%">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Jabatan</div></td>

<td width="2%">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Keterangan</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

<tr>

<td width="23%"><div

style="background:red;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;text-align:right;">Jam</div></td>

<td width="2%" align="center">:</td>

<td width="75%" height="30px"><div

style="background:blue;color:white;padding:5px;margin:5px;border- radius:5px;font-weight:bold;">Data not found</div></td>

</tr>

</table>

<?php echo $pesan ?>

(58)

<?php } ?>

</div>

</div>

</div>

<hr/>

<div class="row">

<div class="col-md-6">

PT RAMA JASINDO ABADI </div>

<div class="col-md-6 text-right">

<small>© 2016 - <?php echo date('Y') ?></small>

</div>

</div>

</div>

<!-- First, include the Webcam.js JavaScript Library -->

<script type="text/javascript" src="<?php echo base_url()

?>assets/webcam/webcam.js"></script>

<!-- Configure a few settings and attach camera -->

<script language="JavaScript">

Webcam.set({

width: 330, height: 240,

image_format: 'jpeg', jpeg_quality: 90 });

Webcam.attach( '#my_camera' );

</script>

<script language="JavaScript">

function take_snapshot() {

// take snapshot and get image data Webcam.snap( function(data_uri) { // display results in page

var raw_image_data =

data_uri.replace(/^data\:image\/\w+\;base64\,/, '');

document.getElementById('mydata').value = raw_image_data;

(59)

} );

}

</script>

</body>

</html>

Listing Progran IV.2. View Absen C. Model Absen

<!--

/**********************************************************

*/

/ /

/ @copyright handc0de / / [email protected] / / /

/**********************************************************

*/

-->

<?php

class Mabsen extends CI_Model {

var $table = 'absensi';

var $table_join = 'karyawan';

var $table_join_by = 'nik';

var $table_join2 = 'jabatan';

var $table_join2_by = 'jabatanid';

public function get_bydatarow($w) { $this->db->where($w);

return $this->db->get($this->table)->num_rows();

}

(60)

public function insert($d) {

$this->db->insert($this->table, $d);

}

public function update($d,$w) { $this->db->where($w);

$this->db->update($this->table,$d);

}

public function get_all() {

return $this->db->query("SELECT * from absensi

inner join

karyawan on karyawan.nik=absensi.nik

inner join jabatan

on jabatan.jabatanid=karyawan.jabatanid

order by

absensi.tanggal DESC");

}

public function get_bydata($data) { $this->db->where($data);

return $this->db->get($this->table);

}

public function get_bydatajoin($data) {

return $this->db->query("SELECT * from absensi

inner join

karyawan on karyawan.nik=absensi.nik

inner join jabatan

on jabatan.jabatanid=karyawan.jabatanid

where $data

order by

absensi.tanggal DESC");

}

(61)

public function get_bydatajoinlembur($data) {

return $this->db->query("SELECT * from absensi

inner join

karyawan on karyawan.nik=absensi.nik

inner join jabatan

on jabatan.jabatanid=karyawan.jabatanid

inner join lembur

on lembur.jabatanid=jabatan.jabatanid

where $data

order by

absensi.tanggal DESC");

}

}

?>

Listing Program IV.3. Model Absen

(62)

4.4. Testing

Dalam penyusunan skripsi ini pengujian system dilakukan menggunakan Black Box Testing.

A. Form Absen Masuk Karyawan

Tabel IV.10.

Black Box Testing Form Absen Masuk Karyawan

No Skenario Pengujian Test case Hasil yang diharapkan

Hasil

pengujian Kesimpulan

1.

NIK tidak diisi kemudian klik tombol absen

Nik : (kosong)

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

2.

NIK diisi dengan huruf atau simbol kemudian klik tombol absen

Nik : 12a!@

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

3.

NIK diisi dengan benar tapi tidak terdaftar oleh system

Nik : 2010202

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

4.

NIK diisi dengan benar dan sudah terdaftar tapi dilakukan diatas pukul 8 pagi

Nik : 2010002

Sistem akan menerima dan karyawan dinyatakan telat

Sesuai

harapan Valid

5.

NIK diisi dengan benar dan sudah terdaftar dan dilakukan dibawah pukul 8 pagi

Nik : 2010002

Sistem akan menerima dan karyawan dinyatakan tepat waktu

Sesuai

harapan Valid

(63)

B. Form Absen Keluar Karyawan

Tabel IV.11.

Black Box Testing Form Absen Keluar Karyawan

No Skenario Pengujian Test case Hasil yang diharapkan

Hasil

pengujian Kesimpulan

1.

NIK tidak diisi kemudian klik tombol absen

Nik : (kosong)

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

2.

NIK diisi dengan huruf atau simbol kemudian klik tombol absen

Nik : 12a!@

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

3.

NIK diisi dengan benar tapi tidak terdaftar oleh system

Nik : 2010202

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

4.

NIK diisi dengan benar dan sudah terdaftar tapi dilakukan dibawah pukul 4 sore

Nik : 2010002

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

5.

NIK diisi dengan benar dan sudah terdaftar dan melakukan absen diatas pukul 4 sore

Nik : 2010002

Sistem akan menerima dan karyawan telah melakukan absen keluar

Sesuai

harapan Valid

6.

NIK diisi dengan benar dan sudah terdaftar dan dilakukan diatas pukul 5

Nik : 2010002

Sistem akan menerima dan karyawan memasuki jam lembur

Sesuai

harapan Valid

(64)

C. Form Login Pengguna

Tabel IV.12.

Black Box Testing Form Login Pengguna

No Skenario

Pengujian Test case Hasil yang diharapkan

Hasil

pengujian Kesimpulan

1.

Username dan password tidak diisi kemudian klik tombol login

Username : (kosong) Passowrd : (kosong)

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

2.

Username diisi tapi password tidak diisi kemudian klik tombol login

Username : khairul Password : (kosong)

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

3.

Password diisi tapi username tidak diisi kemudian klik tombol login

Username : (kosong) Password : khairul

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

4.

Username dan password diisi dengan benar tapi tidak terdaftar oleh sistem

Username : retno Password : retno

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

5.

Username dan password diisi dengan benar dan sudah terdaftar di sistem

Username : khairul Password : khairul

Sistem akan menerima dan pengguna akan di arahkan ke halaman pengguna

Sesuai

harapan Valid

(65)

D. Form Login Admin

Tabel IV.13.

Black Box Testing Form Login Admin

No Skenario

Pengujian Test case Hasil yang diharapkan

Hasil

pengujian Kesimpulan

1.

Username dan password tidak diisi kemudian klik tombol login

Username : (kosong) Passowrd : (kosong)

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

2.

Username diisi tapi password tidak diisi kemudian klik tombol login

Username : admin Password : (kosong)

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

3.

Password diisi tapi username tidak diisi kemudian klik tombol login

Username : (kosong) Password : admin

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

4.

Username dan password diisi dengan benar tapi tidak terdaftar oleh sistem

Username : pengguna Password : pengguna

Sistem akan menolak dan tampil peringatan

Sesuai

harapan Valid

5.

Username dan password diisi dengan benar dan sudah terdaftar di sistem

Username : admin Password : admin

Sistem akan menerima dan pengguna akan di arahkan ke halaman admin

Sesuai

harapan Valid

(66)

4.5. Support

Dalam pembuatan sistem informasi absensi dan perhitungan lembur ini akan membantu hrd untuk mengelola data-data absensi maupun perhitungan lembur dan mempermudah dalam membuat laporan absensi maupun perhitungan lembur, untuk itu penulis menggunakan framework PHP yang bernama CodeIgniter 3.0 dalam pembuatan aplikasi. Untuk mengoperasikan program tersebut diperlukan spesifikasi komputer yang cukup tinggi dan untuk mendukung pembuatan aplikasi kebutuhan hardware yang diperlukan meliputi : processor, memory, harddisk, keyboard, mouse, barcode scanner, camera sedangkan kebutuhan software yang diperlukan meliputi sistem operasi dan software pendukung pemrograman lainnya.

4.5.1. Spesifikasi Hardware dan Software

Untuk menjalankan aplikasi ini membutuhkan spesifikasi hardware dan software yang cukup tinggi agar aplikasi berjalan dengan lancar tanpa adanya bug maupun error.

(67)

Tabel IV.14.

Spesifikasi Hardware dan Software

Kebutuhan Keterangan

Processor Core i3 2.30 GHz

RAM 2048 MB

Harddisk 320 GB

VGA AMD Radeon HD 6480G

Webcam Logitech HD 1080

Barcode Scanner Barcode Scanner Eppos X100

Keyboard 108 key

Mouse Standart

Printer Epson T1100

Sistem Operasi Windows 7 x86

Browser Google Chrome

Web Server Apache 2.4.17, PHP 5.6.21

Database Server MariaDB 10.1.13, phpMyAdmin 4.5.1

(68)

4.6. Spesifikasi Dokumen Sistem Usulan A. Laporan Absensi Semua Karyawan Perbulan

Nama Dokumen : Laporan Absensi

Fungsi : Rekap file absen semua karyawan perbulan

Sumber : Halaman Pengguna

Tujuan : HRD & Umum

Media : Kertas

Frekuensi : Setiap membutuhkan laporan absensi

Format : Lampiran B - 1

B. Laporan Absensi Perkaryawan dan Perbulan Nama Dokumen : Laporan Absensi

Fungsi : Rekap file absen perkaryawan dan perbulan

Sumber : Halaman Pengguna

Tujuan : HRD & Umum

Media : Kertas

Frekuensi : Setiap membutuhkan laporan absensi

Format : Lampiran B – 2

C. Laporan Lembur Semua Karyawan Perbulan Nama Dokumen : Laporan Lembur

Fungsi : Rekap file lembur semua karyawan perbulan

Sumber : Halaman Pengguna

Tujuan : HRD & Umum

Media : Kertas

(69)

Frekuensi : Setiap membutuhkan laporan lembur

Format : Lampiran B - 3

D. Laporan Lembur Perkaryawan dan Perbulan Nama Dokumen : Laporan Lembur

Fungsi : Rekap file lembur perkaryawan dan perbulan

Sumber : Halaman Pengguna

Tujuan : HRD & Umum

Media : Kertas

Frekuensi : Setiap membutuhkan laporan lembur

Format : Lampiran B - 4

Gambar

Gambar IV.5.
Gambar IV.6. Activity Diagram Halaman Pengguna
Gambar IV.7. Activity Diagram Halaman Admin
Gambar IV.8. Entity Relationship Diagram
+7

Referensi

Dokumen terkait

1 Username dan password tidak diisi kemudian klik tombol login Username : (kosong) Password : (kosong Sistem akan menolak akses dan menampilkan “ Gagal Login !”

diisi dengan benar kemudian klik login (admin) Data username tidak boleh kosong 4 Isi kedua username password dengan kondisi yang salah kemudian klik tombol

2 Mengetikkan Username, dan password tidak diisi atau kosong kemudian klik tombol Login Username: admin Password: (kosong) Sistem akan menolak dan menampilkan pesan

Username dan password tidak diisi kemudian klik tombol [Login] Username: (kosong) Password: (kosong) Sistem akan menolak dan menampilkan “Username dan Password tidak

Mengetikkan Username dan Password tidak diisi atau kosong kemudian klik tombol login Username: admin Password: (kosong) Sistem akan menolak akses dan menampilkan pesan

Mengetikkan username dan password tidak diisi atau kosong kemudian klik tombol login Username: agung Password : (kosong) Sistem akan menolak akses user dan

Username diisi dan password tidak diisi atau kosong kemudian klik tombol login Username: aulia12 Password : (kosong) Sistem akan menolak akses anggota dan

login gagal login 2 Mengetikan username dan password tidak diisi atau kosong kemudian klik tombol login Username : diana123 Password : (kosong) Sistem akan menolak akses user