dokumen-dokumen yang mirip
1 MEMBUAT BLOG LARAVEL MYSQL DATABASE KHUSUS PEMULA. Membuat blog sederhana dengan Laravel 5.3 dan database MySQL

DAFTAR PUSTAKA. Adisasmita, Rahardjo Pengelolaan Pendapatan & Anggaran Daerah. Yogyakarta: Graha Ilmu.

DAFTAR PUSTAKA. Upton, D. (2007). CodeIgniter for Rapid PHP Application Development. Birmingham: Packt Publishing Ltd.

Link Nama digunakan untuk menuju halaman Data Absensi Siswa.

CRUD pada Aplikasi Web dengan Laravel 5.5

LAMPIRAN 1. Script Database a) Semester b) Mata Praktikum c) Jadwal d) Waktu pelaksanaan

Validasi Form dengan CakePHP

Oleh: Ahmad Syauqi Ahsan

Artikel Ilmiah. Diajukan kepada Fakultas Teknologi Informasi untuk Memperoleh Gelar Sarjana Komputer

BAB III ANALISA DAN DESAIN SISTEM

PRAKTIKUM. Rekayasa Web. Modul 2: CRUD CodeIgniter Part I. Laboratorium Teknik Informatika Universitas Pasundan

Gambar 1. Tampilan form karyawan

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM

BAB III ANALISIS DAN UJI COBA

PERANCANGAN SISTEM IDENTIFIKASI KECANDUAN GAME BERDASARKAN JENIS PERILAKU KECANDUAN GAME MENGGUNAKAN PENDEKATAN BERBASIS OBJECT

BAB IV ANALISIS DAN PERANCANGAN SISTEM

Gambar 4.28Konfigurasi Base Path dan Sistem

Lampiran A : Hasil Wawancara. Hasil wawancara dengan Bapak Setiawan Soetopo, manager Internet Service

Gambar 4.2 Tampilan Layar Login

BAB IV HASIL DAN UJI COBA

Oleh: Ahmad Syauqi Ahsan

BERKENALAN DENGAN MODEL CODEIGNITER

Oleh: Ahmad Syauqi Ahsan

Rancangan Sistem Informasi Pengelolaan Piutang Dengan Metodologi Berorientasi Objek (Studi Kasus di PT Shinta Woo Sung)

BAB V IMPLEMENTASI DAN PENGUJIAN. siap untuk dioperasikan. Dalam implementasi web dashboard lembur dan perjalanan dinas

Oleh: Ahmad Syauqi Ahsan

BAB III METODOLOGI PENELITIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III PERANCANGAN SISTEM

KEAHLIAN PEMROGAMAN JAVA

BAB III CARA DAN METODOLOGI PENELITIAN

BAB IV IMPLEMENTASI DAN PENGUJIAN. untuk dioperasikan. Dalam implementasi web dashboard absen dan biaya berobat karyawan

BAB III PERANCANGAN PENELITIAN

BAB III ANALISIS DAN DESAIN SISTEM

DAFTAR PUSTAKA.

BAB V IMPLEMENTASI DAN PENGUJIAN. (Studi kasus Dinas Tenaga Kerja dan Transmigrasi sub Kepegawaian dan Umum) ada

BAB III METODOLOGI PENELITIAN. mendukung berjalannya perancangan dan pembuatan aplikasi.

PERANCANGAN ARSITEKTUR SISTEM INFORMASI MANAJEMEN DATA UMRAH DI TOUR & TRAVEL X. Yudhi Widya Arthana Rustam

Bab 4 Hasil dan Pembahasan

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

Menganalisis dan merancang sistem absensi guru dan siswa dengan pendekatan berorientasi objek menggunakan UML.

DESAIN APLIKASI SISTEM INFORMASI ABSENSI KARYAWAN DENGAN RADIO FREQUENCY IDENTIFICATION (RFID) PADA PT. SKYPUTRA PANCASURYA

ANALISA DAN PERANCANGAN SISTEM REPORTING ONLINE PATROLI DAN LEAK SURVEY JARINGAN PIPA GAS BUMI. Muhammad Syaiful Mutaqin

BAB V IMPLEMENTASI DAN PEMBAHASAN. Hardware dan software yang dibutuhkan untuk menggunakan program

BAB III ANALISIS DAN DESAIN SISTEM

Gambar 4.85 Tooltip Message

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pemrograman Web II DANU WIRA PANGESTU

BAB II ANALISIS DAN PERANCANGAN

Storyboard. Username: user1. Password : ****** Login

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN DESAIN SISTEM

PERANCANGAN UML Penyewaan Alat Musik

BAB V IMPLEMENTASI DAN PEMBAHASAN. 1. Microprocessor Pentium IV atau yang lebih tinggi

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

MODUL 8 Insert, Update, & delete

SMK BHAKTI NUSANTARA BOJA

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV ANALISIS DAN PERANCANGAN

BAB IV PERANCANGAN SISTEM

SISTEM INFORMASI KEPEGAWAIAN PADA RUMAH SAKIT UMUM SARI MUTIARA MEDAN

Gambar 4.1. Basis Data Aplikasi


Gambar 4.1 Gambar Use Case Diagram

Modul-7 CRUD & Searching. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

Rancang Bangun Sistem Informasi Geografis Pendataan Paud Di Indonesia Berbasis Web

APLIKASI WAREHOUSE MANAGEMENT SYSTEM BERBASIS WEB MENGGUNAKAN PHP & MYSQL

BAB IV ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB 5 IMPLEMENTASI DAN EVALUASI. password untuk dapat masuk ke halaman Home.

DAFTAR PUSTAKA.

ANALISIS DAN PERANCANGAN SISTEM INFORMASI PENJUALAN TOKO BESI LANCAR BERORIENTASI OBJEK

BAB IV IMPLEMENTASI DAN PENGUJIAN

Aplikasi Document Imaging untuk PT. XYZ dapat diakses melalui web browser

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

PERANGKAT LUNAK PENGAJUAN ACARA BERBASIS WEB DI HOTEL SUTAN RAJA SOREANG

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

BAB IV IMPLEMENTASI DAN ANALISA

RANCANG BANGUN MEDIA SOSIAL KOMUNITAS PENGGIAT ALAM GUNUNG BERBASIS WEB

BAB IV PERANCANGAN SISTEM

LAPORAN PRAKTIKUM SISTEM BASIS DATA

BAB IV HASIL DAN PEMBAHASAN. sebagai sumber data untuk kemudian disimpan di dalam server. Database server

Bab 4 Hasil dan Pembahasan

Perancangan Halaman Tampil Pelunasan Perancangan Halaman Tampil Transaksi

BAB III ANALISIS DAN PERANCANGAN. Pada bab ini akan dijelaskan mengenai proses analisa perangkat lunak dan perancangan atau desain perangkat lunak.

BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM. menggunakan basis data MySQL. Aplikasi PHP dapat dijalankan pada Operating

Transkripsi:

Daftar Pustaka Coderseye. 2017. Coderseye. 12 January. Diakses April 20, 2017. http://www.coderseye.com. Darmawan, Deni, dan Nur Kunkun Fauzi. 2013. Sistem Informasi Manajemen. Bandung: PT Remaja Rosdakarya. Fakhroutdinov, Kirill. 2014. uml-diagram.org. 8 Agustus. Diakses Juni 19, 2017. http://www.uml-diagram.org. Fathansyah. 2012. Basis Data. Bandung: Informatika. Indrajani. 2015. Database Design. Jakarta: Elex Media Komputindo. Otwell, Taylor. 2016. Laravel Documentation. 15 Agustus. Diakses April 22, 2017. https://laravel.com/docs/5.4. Rosa, A S, dan M Shalahudin. 2013. Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung: Informatika Bandung. Sommerville, Ian. 2011. Software Engineering (Rekayasa Perangkat Lunak). Jakarta: Erlangga. Sutabri, Tata. 2012. Konsep Dasar Informasi. Yogyakarta: Andi. Yakub. 2012. Pengantar Sistem Informasi. Yogyakarta: Graha Ilmu. A

~LAMPIRAN~

Lampiran 1. File Migration 2017_04_01_154314_departemen.php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class Departemen extends Migration { public function up() { Schema::create('departemen', function (Blueprint $table) { $table->increments('id'); $table->string('nama', 50); $table->string('lokasi', 30); ); public function down() { Schema::dropIfExists('departemen'); Lampiran 2. File Migration 2017_04_02_150619_pegawai.php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class Pegawai extends Migration { public function up() { Schema::create('pegawai', function (Blueprint $table) { $table->increments('id'); $table->integer('departemen_id')->unsigned(); $table->string('nip', 18)->unique(); $table->string('jabatan', 30)->nullable(); $table->string('status', 10); $table->date('mulai_kerja'); $table->timestamps(); ); Schema::table('pegawai', function (Blueprint $table) { $table->foreign('departemen_id')->references('id')- >on('departemen'); ); public function down() { Schema::dropIfExists('pegawai'); Lampiran 3. File Migration 2017_04_02_153223_biodata.php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class Biodata extends Migration { public function up() { Schema::create('biodata', function (Blueprint $table) { $table->increments('id'); $table->integer('pegawai_id')->unsigned(); $table->string('nama', 50); 1

$table->char('jenis_kelamin', 1); $table->string('agama', 11); $table->string('tempat_lahir', 30); $table->date('tanggal_lahir'); $table->string('telepon', 25)->unique(); $table->string('email', 100)->unique(); ); Schema::table('biodata', function (Blueprint $table) { $table->foreign('pegawai_id')->references('id')- >on('pegawai')->ondelete('cascade'); ); public function down() { Schema::dropIfExists('biodata'); Lampiran 4. File Migration 2017_04_02_153832_alamat.php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class Alamat extends Migration { public function up() { Schema::create('alamat', function (Blueprint $table) { $table->increments('id'); $table->integer('pegawai_id')->unsigned(); $table->string('jalan', 100); $table->string('kecamatan', 50); $table->string('kota', 50); $table->string('provinsi', 50); $table->char('file_pos', 5)->nullable(); ); Schema::table('alamat', function (Blueprint $table) { $table->foreign('pegawai_id')->references('id')- >on('pegawai')->ondelete('cascade'); ); public function down() { Schema::dropIfExists('alamat'); Lampiran 5. File Migration 2017_04_03_154505_absensi.php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class Absensi extends Migration { public function up() { Schema::create('absensi', function (Blueprint $table) { $table->increments('id'); $table->integer('pegawai_id')->unsigned(); $table->date('tanggal')->nullable(); $table->time('masuk')->nullable(); $table->time('keluar')->nullable(); $table->string('status', 2)->nullable(); 2

$table->string('keterangan', 50)->nullable(); ); Schema::table('absensi', function (Blueprint $table) { $table->foreign('pegawai_id')->references('id')- >on('pegawai'); ); public function down() { Schema::dropIfExists('absensi'); Lampiran 6. File Migration 2017_05_27_145156_akun.php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class Akun extends Migration { public function up() { Schema::create('akun', function (Blueprint $table) { $table->increments('id'); $table->integer('pegawai_id')->unsigned(); $table->string('username', 50); $table->string('remember_token', 100); $table->string('password', 100); $table->string('role', 10); $table->timestamps(); ); Schema::table('akun', function (Blueprint $table) { $table->foreign('pegawai_id')->references('id')- >on('pegawai')->ondelete('cascade'); ); public function down() { Schema::dropIfExists('akun'); Lampiran 7. File Route web.php Auth::routes(); Route::get('home', 'HomeController@index'); Route::get('/', 'PegawaiController@index'); Route::get('admin', 'AdminController@index'); Route::get('riwayat', 'PegawaiController@showRiwayatAbsensi'); Route::post('absensi', 'PegawaiController@applyAbsensi'); Route::resource('master/absensi','Master\DataAbsensiController') ; Route::get('laporan/absensi','LaporanAbsensiController@index')- >name('laporan.absensi'); Route::get('laporan/absensi/bulanan', 'LaporanAbsensiController@laporanAbsensiBulanan'); Route::get('laporan/absensi/{id','LaporanAbsensiController@show '); Route::get('laporan/absensi/{id/pegawai', 'LaporanAbsensiController@laporanAbsensiPegawai'); 3

Lampiran 8. File Controller LoginController.php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Foundation\Auth\AuthenticatesUsers; class LoginController extends Controller { use AuthenticatesUsers; protected $redirectto = '/home'; public function construct() { $this->middleware('guest', ['except' => 'logout']); public function username() { return 'username'; protected function guard() { return Auth::guard(); Lampiran 9. File Controller HomeController namespace App\Http\Controllers; use Illuminate\Http\Request; use Auth; class HomeController extends Controller { public function index() { if (Auth::user()->role == 'pegawai') { return redirect('/'); else return redirect('admin'); Lampiran 10. File Controller PegawaiController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Absensi; use Auth; use Session; class PegawaiController extends Controller { public function construct() { $this->middleware('auth'); public function index() { if (Auth::user()->role == 'pegawai') { $pegawai = Auth::user()->pegawai; // ambil absensi bulan ini $absensi = $pegawai->absensi()- >wheremonth('tanggal', date('m'))->get(); // hitung jumlah hadir, izin, sakit, telat, dan alfa pegawai $hadir = count($absensi->where('status', 'H')); $izin = count($absensi->where('status', 'I')); $sakit = count($absensi->where('status', 'S')); 4

$telat = count($absensi->where('status', 'T')); $alfa = count($absensi->where('status', 'A')); // simpan dalam array $status = array( 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); $absentoday = $pegawai->absensi()->where('tanggal', date('y-m-d'))->first(); // cek apakah user memiliki absensi hari ini if (is_null($absentoday)) { // absen kosong session()->put('btnin', 'enabled'); session()->put('btnout', 'disabled'); elseif ($absentoday->masuk!= null && $absentoday- >keluar == null) { session()->put('btnin', 'disabled'); session()->put('btnout', 'enabled'); else { // ada session()->put('btnin', 'disabled'); session()->put('btnout', 'disabled'); // return halaman absensi return view('pegawai.absensi', compact('absensi', 'status')); else { public function showriwayatabsensi() { if (Auth::user()->role == 'pegawai') { $pegawai = Auth::user()->pegawai; // ambil absensi bulan ini $absensi = $pegawai->absensi()- >wheremonth('tanggal', date('m'))->get(); // hitung jumlah hadir, izin, sakit, telat, dan alfa pegawai $hadir = count($absensi->where('status', 'H')); $izin = count($absensi->where('status', 'I')); $sakit = count($absensi->where('status', 'S')); $telat = count($absensi->where('status', 'T')); $alfa = count($absensi->where('status', 'A')); // simpan dalam array $status = array( 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); return view('pegawai.riwayat', compact('absensi', 'status')); else { public function applyabsensi(request $request) { 5

if (Auth::user()->role == 'pegawai') { $pegawai = Auth::user()->pegawai; $pukulmasuk = date('08:00'); $pukultelat = date('08:30'); $batasmasuk = date('10:00'); // proses absen masuk if (isset($request->btnin)) { // jika pegawai datang terlambat if (date('h:i') > $pukultelat) { // hitung jumlah waktu terlambat $jam = date('h') - 8; $menit = date('i') - 30; str_replace('-', '', $menit); $absensi = new Absensi; $absensi->pegawai_id = $pegawai->id; $absensi->tanggal = date('y-m-d'); $absensi->masuk = date('h:i:s'); $absensi->keluar = null; $absensi->status = 'T'; $absensi->keterangan = 'Terlambat '. $jam. ' jam '. $menit. ' menit'; $absensi->save(); else { // simpan absen normal normal $absensi = new Absensi; $absensi->pegawai_id = $pegawai->id; $absensi->tanggal = date('y-m-d'); $absensi->masuk = date('h:i:s'); $absensi->keluar = null; $absensi->status = 'H'; $absensi->keterangan = ''; $absensi->save(); $request->session()->flash('sukses', 'sukses'); Session::put('btnIn', 'disabled'); // disable button absen masuk // proses absen keluar elseif (isset($request->btnout)) { // absensi keluar hanya dapat dilakukan jika pegawai telah mengisi absen masuk if (!is_null($pegawai->absensi()- >where('tanggal', date('y-m-d'))->first())) { // update data absensi pegawai hari ini $pegawai->absensi()->where('tanggal', date('y-m-d'))->update([ 'keluar' => date('h:i:s'), ]); Session::put('btnOut', 'disabled'); // disable button absen keluar else { 6

Lampiran 11. File Controller AdminController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Pegawai; use App\Models\Departemen; use App\Models\Absensi; class AdminController extends Controller { public function index() { $departemen = Departemen::all(); $pegawaibaru = Pegawai::whereYear('mulai_kerja', date('2017'))->get(); $absensihariini = Absensi::where('tanggal', date('y-md'))->get(); return view('admin.home', compact('departemen', 'pegawaibaru', 'absensihariini')); Lampiran 12. File Controller LaporanAbsensiController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Pegawai; use App\Models\Absensi; use PDF; use Auth; class LaporanAbsensiController extends Controller { public function construct() { $this->middleware('auth'); public function index() { $bulan = date('m'); $absensigroup = Absensi::whereMonth('tanggal', $bulan)->get()->groupby('pegawai_id'); $laporan = []; foreach ($absensigroup as $absensi) { $hadir = 0; $izin = 0; $sakit = 0; $telat = 0; $alfa = 0; // hitung jumlah status kehadiran foreach ($absensi as $a) { if ($a->status == 'H') { $hadir++; elseif ($a->status == 'I') { $izin++; elseif ($a->status == 'S') { $izin++; elseif ($a->status == 'T') { $telat++; elseif ($a->status == 'A') { $alfa++; 7

$pegawai = $a->pegawai; // simpan dalam array $status = array( 'pegawai' => $pegawai, 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); array_push($laporan, $status); return view('laporan.absensi.index', compact('laporan', 'bulan')); else { public function show($id) { $pegawai = Pegawai::find($id); $absensi = $pegawai->absensi()- >wheremonth('tanggal', date('m'))->get(); // hitung jumlah hadir, izin, sakit, telat, dan alfa pegawai $hadir = count($absensi->where('status', 'H')); $izin = count($absensi->where('status', 'I')); $sakit = count($absensi->where('status', 'S')); $telat = count($absensi->where('status', 'T')); $alfa = count($absensi->where('status', 'A')); // simpan dalam array $status = array( 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); return view('laporan.absensi.show', compact('pegawai', 'absensi', 'status')); else { public function laporanabsensibulanan() { $absensigroup = Absensi::whereMonth('tanggal', date('m'))->get()->groupby('pegawai_id'); $laporan = []; foreach ($absensigroup as $absensi) { $hadir = 0; $izin = 0; $sakit = 0; $telat = 0; $alfa = 0; // hitung jumlah status kehadiran foreach ($absensi as $a) { if ($a->status == 'H') { 8

$hadir++; elseif ($a->status == 'I') { $izin++; elseif ($a->status == 'S') { $izin++; elseif ($a->status == 'T') { $telat++; elseif ($a->status == 'A') { $alfa++; $pegawai = $a->pegawai; // simpan dalam array $status = array( 'pegawai' => $pegawai, 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); array_push($laporan, $status); $pdf = PDF::loadView('laporan.absensi.bulanan', compact('laporan')); return $pdf->download('laporan-bulanan.pdf'); else { public function laporanabsensipegawai($id) { $pegawai = Pegawai::find($id); $absensi = $pegawai->absensi()- >wheremonth('tanggal', date('m'))->get(); // hitung jumlah hadir, izin, sakit, telat, dan alfa pegawai $hadir = count($absensi->where('status', 'H')); $izin = count($absensi->where('status', 'I')); $sakit = count($absensi->where('status', 'S')); $telat = count($absensi->where('status', 'T')); $alfa = count($absensi->where('status', 'A')); // simpan dalam array $status = array( 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); $pdf = PDF::loadView('laporan.absensi.pegawai', compact('pegawai', 'absensi', 'status')); return $pdf->download('absensi-pegawai.pdf'); else { 9

Lampiran 13. File Controller DataAbsensiController.php namespace App\Http\Controllers\Master; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Absensi; use App\Models\Pegawai; use App\Models\Departemen; use Auth; class DataAbsensiController extends Controller { public function construct() { $this->middleware('auth'); public function index(request $request) { if ($request->tanggal == '') { $tanggal = date('y-m-d'); else { $tanggal = $request->tanggal; $absensi = Absensi::where('tanggal', $tanggal)- >get(); $hadir = count($absensi->where('status', 'H')); $izin = count($absensi->where('status', 'I')); $sakit = count($absensi->where('status', 'S')); $telat = count($absensi->where('status', 'T')); $alfa = count($absensi->where('status', 'A')); // simpan dalam array $status = array( 'hadir' => $hadir, 'izin' => $izin, 'sakit' => $sakit, 'telat' => $telat, 'alfa' => $alfa ); return view('master.absensi.index', compact('absensi', 'status', 'tanggal')); else { public function create() { return view('master.absensi.create'); else { public function store(request $request) { $this->validate($request, [ 'nip' => 'required exists:pegawai,nip', 'tanggal' => 'required date', 'status' => 'required', 'keterangan' => 'nullable min:5 max:100', ]); 10

// periksa apakah status hadir if ($request->status == 'H') { // validasi jam masuk dan jam keluar $this->validate($request, [ 'masuk' => 'required', 'keluar' => 'required', ]); $pegawai = Pegawai::where('nip', $request->nip)- >first(); // periksa apakah sudah ada absensi if (!is_null($pegawai->absensi()->where('tanggal', $request->tanggal)->first())) { session()->flash('terdapat_absensi', 'Sudah ada absensi'); return redirect('master/absensi'); $absensi = new Absensi; $absensi->pegawai_id = $pegawai->id; $absensi->tanggal = $request->tanggal; $absensi->masuk = $request->masuk; $absensi->keluar = $request->keluar; $absensi->status = $request->status; $absensi->keterangan = $request->keterangan; $absensi->save(); session()->flash('tersimpan', 'tersimpan'); return redirect('master/absensi'); else { public function edit($id) { $absensi = Absensi::find($id); return view('master.absensi.edit', compact('absensi')); else { public function update(request $request, $id) { $this->validate($request, [ 'status' => 'required', ]); // periksa apakah status hadir if ($request->status == 'H') { // validasi jam masuk dan jam keluar $this->validate($request, [ 'masuk' => 'required', 'keluar' => 'required', ]); else { $this->validate($request, [ 'keterangan' => 'required', ]); $request->masuk = null; $request->keluar = null; 11

$absensi = Absensi::find($id); $absensi->masuk = $request->masuk; $absensi->keluar = $request->keluar; $absensi->status = $request->status; $absensi->keterangan = $request->keterangan; $absensi->save(); session()->flash('terubah', 'terubah'); return redirect('master/absensi'); else { public function destroy(request $request, $id) { Absensi::find($id)->delete(); session()->flash('terhapus', 'terhapus'); return redirect('master/absensi'); else { 12