Gambar IV.25. Halaman Pengaturan Pengguna
Keterangan :
1) Hak Akses : Penguna
2) Nama : Halaman Pengaturan Pengguna 3) Fungsi : Merubah data login pengguna.
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.
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.
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.
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.
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.
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
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.
4.3. Code Generation A. Class Absen
<!--
/**********************************************************
*/
/
/
/ @copyright handc0de
/
/
/
/
/**********************************************************
*/
-->
<?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() {
$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
</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'>
<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');
$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
);
$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';
$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">
<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>
</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>
<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 {
?>
<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>
<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>
<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 ?>
<?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;
} );
}
</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();
}
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");
}
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