• Tidak ada hasil yang ditemukan

BAB V KESIMPULAN DAN SARAN

5.2 Saran

Beberapa saran yang dapat diberikan terkait dengan pelaksanaan skripsi ini adalah sebagai berikut:

1. Pada pengembangan atau pembuatan aplikasi perangkat bergerak sebaiknya tidak hanya membuat pada perangkat bergerak yang bersistem operasi Android saja melainkan untuk sistem operasi lain juga.

2. Pada pengembangan selanjutnya perlu dibahas mengenai pengamanan GPS yang dapat mengubah informasi tentang koordinat GPS pengguna dan pengamanan pada identitas smartphone / IMEI (International Mobile Equipment Identity)

3. Pada pengembangan aplikasi Web sebaiknya user pengguna aplikasi Web memiliki tingkat autentikasi user yang terintegrasi dengan data pegawai.

4. Pada pengembangan selanjutnya sebaiknya ditambahkan pengamanan pada pengiriman data dari client ke server dan perlu dilakukan pencatatan data presensi apabila melakukan presensi diluar waktu yang ditetapkan (terlambat).

DAFTAR PUSTAKA

[1] Android. Diakses 4 Maret 2018.

https://id.wikipedia.org/wiki/Android_(sistem_operasi)

[2] Kadir, Abdul.2013. Form Zero to Hero - Pengembangan Aplikasi Android Yogyakarta: CV.ANDI OFFSET.

[3] Lim, Byungsoo dan Kim, Joonoo. 2009. Efficient Database Reduction Method of Building Recognition using Global Positioning System On Mobile Device.

Korea. Telecommunication R&D Center, Samsung Electronics CO., LTD.

[4] Hernawan, Dwi Fajar. 2015. Pembuatan Aplikasi Peta Wisata Di Salatiga Berbasis Mobilegis Memanfaatkan SmartphoneAndroid. Semarang: Universitas

Diponegoro.

[5] AGPS : Mempercepat Kalkulasi Posisi. Diakses 17 Oktober 2018

http://gadget.jagatreview.com/2017/04/cara-kerja-GPS-pada-smartphone/

[6] Nugroho, Adi. 2011. Perancangan Dan Implementasi Sistem Basis Data. Yogyakarta:

CV. ANDI OFFSET.

[7] Database. Diakses 4 Maret 2018 dari

https://id.wikipedia.org/wiki/Pangkalan_data.

[8] User Interfacse. Diakses Maret 3, 2018 dari

https://id.wikipedia.org/wiki/Antarmuka-pemrograman_aplikasi.

[9] Fingerprint, Diakses 4 Maret 2018 dari

https://id.wikipedia.org/wiki/Sidik_jari.

[10] Putra, Darma. 2008. Sistem Biometrika.Yogyakarta : Andi

[11] Purbasari, Karlina dan Angga Rahabistara Sumadji Variasi Pola Sidik Jari

Mahasiswa Berbagai Suku Bangsa Di Kota Madiun.2017. Universitas Katolik

Widya Mandala Madiun.

[12] Pemindai sidik jari. Diakses Maret 10, 2019 dari

https://id.wikipedia.org/wiki/Pemindai_sidik_jari

[13] Sistem Pembacaan Sensor Sidik Jari. Diakses Maret 10, 2019 dari

http://sidik-jari.com/4-sistem-teknik-pembacaan-sensor-sidik-jari.html/

[14] Application programming interface. Diakses Maret 10, 2019 dari

https://en.wikipedia.org/wiki/Application_programming_interface#

[15] Measuring Api Usability. Diakses Maret 10, 2019 dari

http://www.drdobbs.com/windows/measuring-api-usability/184405654

[16] Henrique, Luiz. Dkk. 2013. “The Design and Implementation of a Language for Extending Applications”. eCGraf Grupo de Tecnologia Em Computacao Grafica

[17] Antarmuka Pemrograman Aplikasi. Diakses Maret 3, 2019 dari

https://id.wikipedia.org/wiki/Antarmuka_pemrograman_aplikasi [18] Scribner, Kenn dan Seely Scott. 2009. Effective REST Services via .NET: For.NET

Framework 3.5 (1st Edition). Addison-Wesley Professional.

[19] SOAP vs REST vs JSON comparison. Diakses Maret 27, 2019 https://raygun.com/blog/soap-vs-REST-vs-json/

[20] Mukhammad Agus Arianto, dkk. Analisis Dan Perancangan Representational State Transfer (REST) Web Service Sistem Informasi Akademik Stt Terpadu Nurul Fikri Menggunakan Yii Framework. 2016. Sekolah Tinggi Teknologi Terpadu Nurul Fikri

[21] Yulianto, dkk. Penerapan Formula Haversine Pada Sistem Informasi Geografis Pencarian Jarak Terdekat Lokasi Lapangan Futsal. 2018. Universitas Mulawarman Samarinda

LAMPIRAN

public class MainActivity extends AppCompatActivity { private static final int REQUEST_READ_PHONE_STATE = 0;

private static final int REQUEST_USE_LOCATION = 1000;

private static final int REQUEST_USE_FINGERPRINT = 300;

TelephonyManager tel;

private String mIMEI;

public Button mRegisterButton;

private ImageView mFingerprintImage;

private FusedLocationProviderClient mFusedLocationClient;

private double wayLatitude = 0.0, wayLongitude = 0.0;

private FingerprintManager fingerprintManager;

private KeyguardManager keyguardManager;

private KeyStore keyStore;

private KeyGenerator keyGenerator;

private Cipher cipher;

private FingerprintManager.CryptoObject cryptoObject;

private FingerprintHandler fingerprintHandler;

private static final String FINGERPRINT_KEY = "yourKey";

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mRegisterButton = (Button) findViewById(R.id.register_button);

//cek izin imei

tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

if (ActivityCompat.checkSelfPermission(this,

Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {

mRegisterButton.setOnClickListener(new View.OnClickListener() { @Override

mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

if (ActivityCompat.checkSelfPermission(this, Android.Manifest.permission.ACCESS_FINE_LOCATION) !=

mFusedLocationClient.getLastLocation().addOnSuccessListener(this, new OnSuccessListener<Location>() {

@Override

public void onSuccess(Location location) { if (location != null) {

wayLatitude = location.getLatitude();

Log.d("TAG", String.format(Locale.US, "%s -- %s",

fingerprintHandler = new FingerprintHandler(this);

fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE);

keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);

checkDeviceFingerprintSupport();

ImageView fingerprintImage = (ImageView)findViewById(R.id.fingerprint_image);

fingerprintImage.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

fingerprintHandler.completeFingerAuthentication(fingerprintManager, cryptoObject);

} });

}

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[]

permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

switch (requestCode) {

PackageManager.PERMISSION_GRANTED) {

private void checkDeviceFingerprintSupport() { if (ActivityCompat.checkSelfPermission(this,

Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {

private void generateFingerprintKeyStore(){

try {

keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES,

"AndroidKeyStore");

keyGenerator.init(new KeyGenParameterSpec.Builder(FINGERPRINT_KEY, KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)

.setBlockModes(KeyProperties.BLOCK_MODE_CBC) .setUserAuthenticationRequired(true)

} catch (InvalidAlgorithmParameterException e) { e.printStackTrace();

}

keyGenerator.generateKey();

}

private Cipher instantiateCipher(){

try {

cipher = Cipher.getInstance(KeyProperties.KEY_ALGORITHM_AES + "/" + KeyProperties.BLOCK_MODE_CBC + "/" + KeyProperties.ENCRYPTION_PADDING_PKCS7);

keyStore.load(null);

SecretKey secretKey = (SecretKey) keyStore.getKey(FINGERPRINT_KEY, null);

cipher.init(Cipher.ENCRYPT_MODE, secretKey);

return cipher;

} catch (NoSuchAlgorithmException | NoSuchPaddingException | UnrecoverableKeyException |

public class FingerprintHandler extends FingerprintManager.AuthenticationCallback{

private final String TAG = FingerprintHandler.class.getSimpleName();

private Context context;

public FingerprintHandler(Context context){

this.context = context;

}

@Override

public void onAuthenticationError(int errorCode, CharSequence errString) { super.onAuthenticationError(errorCode, errString);

public void onAuthenticationHelp(int helpCode, CharSequence helpString) { super.onAuthenticationHelp(helpCode, helpString);

Toast.makeText(context, R.string.auth_fingerprint_help, Toast.LENGTH_LONG).show();

}

@Override

public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {

public void onAuthenticationFailed() { super.onAuthenticationFailed();

Toast.makeText(context,

context.getString(R.string.auth_fingerprint_failed), Toast.LENGTH_LONG).show();

}

public void completeFingerAuthentication(FingerprintManager fingerprintManager, FingerprintManager.CryptoObject cryptoObject){

private void funabsen(final double lat, final double lng, final String mIMEI) { RequestQueue queue = Volley.newRequestQueue(MainActivity.this);

String url ="http://absensicerdas.web.id/api/absen2/";

Log.d("TAG","cek." + mIMEI + lat + lng);

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {

}, new Response.ErrorListener() {

Intent intent = new Intent(this, RegisterActivity.class);

startActivity(intent);

import org.json.JSONObject;

import java.util.HashMap;

import java.util.Map;

class RegisterActivity extends AppCompatActivity {

private static final int REQUEST_READ_PHONE_STATE = 0;

TelephonyManager tel;

TextView imei;

private String mIMEI;

private AutoCompleteTextView mNoinduk;

private EditText mTempatlahir;

public Button mRegisterButton2;

@SuppressLint("WrongViewCast") @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_register);

mRegisterButton2 = (Button) findViewById(R.id.register_button2);

tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

imei = (TextView) findViewById(R.id.textView2);

if (ActivityCompat.checkSelfPermission(this,

Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {

mNoinduk = (AutoCompleteTextView) findViewById(R.id.Nomorinduktext);

mTempatlahir = (EditText) findViewById(R.id.tempatlahirtext);

mRegisterButton2.setOnClickListener(new View.OnClickListener() { @Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[]

permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

switch (requestCode) {

final String tempatlahir = mTempatlahir.getText().toString();

Log.d("TAG","isi data." + imei + noinduk + tempatlahir);

RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);

String url ="http://absensicerdas.web.id/api/register2/";

StringRequest stringRequest = new StringRequest(Request.Method.PUT, url, new Response.Listener<String>() {

import Android.widget.TextView;

import org.json.JSONException;

import org.json.JSONObject;

class HasilActivity extends AppCompatActivity { private String mNama;

private String mabsensiHari;

private String mabsensiDatang;

private String mabsensiPulang;

private Button mKeluarButton;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_hasil);

mKeluarButton = (Button) findViewById(R.id.keluar_button);

Bundle extras = getIntent().getExtras();

mabsensiDatang = jDataJamdatang.getString("absensiDatang");

Log.d("TAG", "Data is: nama ="+ mNama);

TextView mjam1View = (TextView) findViewById(R.id.jamMasuk_textview);

mjam1View.setText("Jam Presensi Masuk : " + mabsensiDatang);

mKeluarButton.setOnClickListener(new View.OnClickListener() { @Override

$app->put("/register2/", function (Request $request, Response $response){

$req = $request->getParsedBody();

$sql = "SELECT * FROM pegawai where nomorInduk=:nomorInduk and tempatLahir=:tempatLahir";

$stmt = $this->db->prepare($sql);

$data = [

$sql = "UPDATE pegawai SET absensi_devId=:absensi_devId, statusAktivasi='1' WHERE user_id='".$result["user_id"]."'";

$stmt = $this->db->prepare($sql);

$data = [":absensi_devId" => $req["absensi_devId"]];

if($stmt->execute($data))

return $response->withJson(["status" => "success", "data" => "1","message" => "Terima kasih , anda berhasil registrasi"], 200);

} else { return $response->withJson(["status" => "failed", "data" => "0","message" => "Registrasi gagal"], 200);}

2.1.2 RESTApi Presensi

$app->post("/absen2/", function (Request $request, Response $response){

$req = $request->getParsedBody();

if (empty($req["lng"])||empty($req["lat"])||empty($req["absensi_devId"]))

{return $response->withJson(["status" => "failed", "data" => "0", "message" => "kosong"], 200);}

$lon2$req["lng"];

$latarea2=3.561821; // Elektro

$lonarea2=98.654837;

$latarea3=3.561436; // S2 Elektro

$lonarea3=98.653631;

// distance between latitudes and longitudes

$dLat = ($lat2 - $latarea6) * M_PI / 180.0;

if ($jarakmeter < 200 and $jarakmeter >= 0) {

$sql = "SELECT * FROM pegawai where absensi_devId=:absensi_devId";

$stmt = $this->db->prepare($sql);

if ($waktuSekarang < $absensijamDatang && $waktuSekarang > date("06:00:00")) { // ABSENSI pagi

$sql = "INSERT INTO absensi (absensi_status, absensiHari, absensiDatang, lng, lat, absensiLokasi, absensi_devId) VALUE ('1', '".$absensiHari."', '".$waktuSekarang."', :lng, :lat, '".$absensiLokasi1."', :absensi_devId)";

$stmt2 = $this->db->prepare($sql);

$data = [":lng" =>$req["lng"],lat" =>$req["lat"],":absensi_devId" =>$req["absensi_devId"]];

$stmt2->execute($data);

"namaLengkap"=>$result["namaLengkap"],"absensiPulang"=>$result["absensiPulang"]],"message" => "Anda berhasil melakukan absensi datang"], 200);

} else if ($waktuSekarang > $absensijamPulang && $waktuSekarang < date("23:59:59")) { // ABSENSI sore // cek pagi udah absen atau belum

$sql = "SELECT * FROM absensi where absensi_devId=:absensi_devId and absensiHari=:absensiHari";

$stmt3 = $this->db->prepare($sql);

$data = [":absensi_devId" =>$req["absensi_devId"],":absensiHari" =>$absensiHari];

$stmt3->execute($data);

$result = $stmt3->fetch();

if ($stmt3->rowCount()>0) {

$sql = "UPDATE absensi SET absensiPulang=:absensiPulang, absensiLokasi=:absensiLokasi WHERE id_num=:id_num";

$stmt2 = $this->db->prepare($sql);

$data2 = [":id_num" => $result["id_num"],":absensiPulang" => $waktuSekarang,":absensiLokasi" =>

$absensiLokasi]

$stmt2->execute($data2);

if($stmt2->execute($data2))

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiPulang" =>

$waktuSekarang],"message" => "Anda berhasil melakukan absensi pulang"], 200);

} else {

$sql = "INSERT INTO absensi ( absensi_status, absensiHari, absensiPulang, lng, lat, absensiLokasi, absensi_devId)

VALUE ( '1', '".$absensiHari."', '".$waktuSekarang."', :lng, :lat, '".$absensiLokasi1."', :absensi_devId)";

$stmt2 = $this->db->prepare($sql);

$data4 = [":lng" =>$req["lng"],":lat" =>$req["lat"],":absensi_devId" =>$req["absensi_devId"]

$stmt2->execute($data4);

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiPulang" =>

$waktuSekarang, "absensiLokasi" => $absensiLokasi],"message" => "Anda berhasil melakukan absensi pulang"], 200);

}

} else {return $response->withJson(["status" => "failed", "data" => "0", "message" => "Waktu melakukan absensi sudah habis."], 200);}

} else {return $response->withJson(["status" => "failed", "data" => "0","message" => "Pegawai tidak ditemukan."], 200);}

} else {

// cek lokasi elektro

$lon2= $req["lng"];

$lat2= $req["lat"];

pow(sin($dLon / 2), 2) * cos($clat1) * cos($clat2);

$rad = 6371; $c = 2 * asin(sqrt($a)); $jarak = $rad * $c;

$jarakmeter2=$jarak*1000;

if ($jarakmeter2 < 35 and $jarakmeter2 > 0) {$sql = "SELECT * FROM pegawai where absensi_devId=:absensi_devId";

if ($waktuSekarang < $absensijamDatang && $waktuSekarang > date("06:00:00")) { // ABSENSI pagi

$sql = "INSERT INTO absensi (absensi_status, absensiHari, absensiDatang, lng, lat, absensiLokasi, absensi_devId) VALUE ('1', '".$absensiHari."', '".$waktuSekarang."', :lng, :lat, '".$absensiLokasi2."', :absensi_devId)";

$stmt2 = $this->db->prepare($sql);

$data = [":lng" =>$req["lng"],":lat" =>$req["lat"],":absensi_devId" =>$req["absensi_devId"]

]; $stmt2->execute($data);

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiDatang" =>

$waktuSekarang, "lokasi"=>"Fakultas Teknik"],"message" => "Anda berhasil melakukan absensi datang"], 200);

} else if ($waktuSekarang > $absensijamPulang && $waktuSekarang < date("23:59:59")) { // ABSENSI sore // cek pagi udah absen atau belum

$sql = "SELECT * FROM absensi where absensi_devId=:absensi_devId and absensiHari=:absensiHari";

$stmt3 = $this->db->prepare($sql);

$data = [":absensi_devId" =>$req["absensi_devId"],":absensiHari" =>$absensiHari];

$stmt3->execute($data);

$sql = "UPDATE absensi SET absensiPulang=:absensiPulang, absensiLokasi=:absensiLokasi WHERE id_num=:id_num";

$stmt2 = $this->db->prepare($sql);

$data2 = [":id_num" => $result["id_num"],":absensiPulang" => $waktuSekarang, ":absensiLokasi" =>

$absensiLokasi

$stmt2->execute($data2);

if($stmt2->execute($data2))

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiPulang" =>

$waktuSekarang],"message" => "Anda berhasil melakukan absensi pulang"], 200);

} else {

$sql = "INSERT INTO absensi ( absensi_status, absensiHari, absensiPulang, lng, lat, absensiLokasi, absensi_devId)

VALUE ( '1', '".$absensiHari."', '".$waktuSekarang."', :lng, :lat, '".$absensiLokasi2."', :absensi_devId)";

$stmt2 = $this->db->prepare($sql); $data4 = [":lng" =>$req["lng"],":lat" =>$req["lat"],":absensi_devId"

=>$req["absensi_devId"]];

$stmt2->execute($data4);

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiPulang" =>

$waktuSekarang, "absensiLokasi" => $absensiLokasi],"message" => "Anda berhasil melakukan absensi pulang"], 200);

}} else {return $response->withJson(["status" => "failed", "data" => "0", "message" => "Waktu melakukan absensi sudah habis."], 200);}

} else {return $response->withJson(["status" => "failed", "data" => "0","message" => "Pegawai tidak ditemukan."], 200);}

$jarakmeter3=$jarak*1000;

if ($jarakmeter3 < 35 and $jarakmeter3 > 0) {

$sql = "SELECT * FROM pegawai where absensi_devId=:absensi_devId";

$stmt = $this->db->prepare($sql);

$data = [":absensi_devId" =>$req["absensi_devId"]];

$stmt->execute($data);

$result = $stmt->fetch();

if ($stmt->rowCount()>0) {

$absensiHari=date("Y-m-d");

if ($waktuSekarang < $absensijamDatang && $waktuSekarang > date("06:00:00")) { // ABSENSI pagi

$sql = "INSERT INTO absensi (absensi_status, absensiHari, absensiDatang, lng, lat, absensiLokasi, absensi_devId) VALUE ('1', '".$absensiHari."', '".$waktuSekarang."', :lng, :lat, '".$absensiLokasi3."', :absensi_devId)";

$stmt2 = $this->db->prepare($sql);

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiDatang" =>

$waktuSekarang],"message" => "Anda berhasil melakukan absensi datang"], 200);

} else if ($waktuSekarang > $absensijamPulang && $waktuSekarang < date("23:59:59")) { // ABSENSI sore // cek pagi udah absen atau belum

$sql = "SELECT * FROM absensi where absensi_devId=:absensi_devId and absensiHari=:absensiHari";

$stmt3 = $this->db->prepare($sql);

$data = [":absensi_devId" =>$req["absensi_devId"],":absensiHari" =>$absensiHari];

$stmt3->execute($data);

$result = $stmt3->fetch();

if ($stmt3->rowCount()>0) {

$sql = "UPDATE absensi SET absensiPulang=:absensiPulang, absensiLokasi=:absensiLokasi WHERE id_num=:id_num";

$stmt2 = $this->db->prepare($sql);

$stmt2->execute($data2);

if($stmt2->execute($data2))

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiPulang" =>

$waktuSekarang],"message" => "Anda berhasil melakukan absensi pulang"], 200);

} else {

$sql = "INSERT INTO absensi ( absensi_status, absensiHari, absensiPulang, lng, lat, absensiLokasi, absensi_devId)

VALUE ( '1', '".$absensiHari."', '".$waktuSekarang."', :lng, :lat, '".$absensiLokasi3."', :absensi_devId)";

$stmt2 = $this->db->prepare($sql);

$data4 = [":lng" =>$req["lng"],":lat" =>$req["lat"],":absensi_devId" =>$req["absensi_devId"]];

$stmt2->execute($data4);

return $response->withJson(["status" => "success","data" => ["absensiHari" => $absensiHari, "absensiPulang" =>

$waktuSekarang, "absensiLokasi" => $absensiLokasi],"message" => "Anda berhasil melakukan absensi pulang"], 200); }} else {

return $response->withJson(["status" => "failed", "data" => "0", "message" => "Waktu melakukan absensi sudah habis."], 200);}

} else {

return $response->withJson(["status" => "failed", "data" => "0","message" => "Pegawai tidak ditemukan."], 200);}

}return $response->withJson(["status" => "failed", "data" => ["radius" => $radius3],"message" => "Anda tidak berada dalam jangkauan absensi / out ".$jarakmeter], 200); }}});

2.2 Aplikasi Web 2.2.1 Auth.php

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Auth extends CI_Controller { public function __construct() { parent::__construct();

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

$this->load->library('Form_validation');

$this->load->helper(array('Form', 'Cookie', 'String'));

}

public function index() {

// ambil cookie

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

$row = $this->Auth_model->login($username, $password)->row();

if ($row) {

$this->session->set_flashdata('message','Login Gagal');

$this->index();

} }

public function _daftarkan_session($row) { // 1. Daftarkan Session

$this->session->set_userdata($sess);

// 2. Redirect ke home redirect('Welcome');

}

public function logout()

{

defined('BASEPATH') OR exit('No direct script access allowed');

class Pegawai extends CI_Controller {

function __construct(){

function simpan(){ //function simpan data $data=array(

'nomorInduk' => $this->input->post('nomorInduk'), 'namaLengkap' => $this->input->post('namaLengkap'), 'jenisKelamin' => $this->input->post('jenisKelamin'), 'tempatLahir' => $this->input->post('tempatLahir'), 'tglLahir' => $this->input->post('tglLahir'), 'bagianKerja' => $this->input->post('bagianKerja'), 'jabatan' => $this->input->post('jabatan') );

$this->db->insert('pegawai', $data);

redirect('pegawai');

function update(){ //function update data $id=$this->input->post('user_id');

$data=array(

'namaLengkap' => $this->input->post('namaLengkap'), 'nomorInduk' => $this->input->post('nomorInduk'), 'jenisKelamin' => $this->input->post('jenisKelamin'), 'tempatLahir' => $this->input->post('tempatLahir'), 'tglLahir' => $this->input->post('tglLahir'), 'bagianKerja' => $this->input->post('bagianKerja'), 'jabatan' => $this->input->post('jabatan')

);

$this->db->where('user_id',$id);

$this->db->update('pegawai', $data);

redirect('pegawai');

}

function delete(){ //function hapus data $id=$this->input->post('user_id');

$this->db->where('user_id',$id);

$this->db->delete('pegawai');

redirect('pegawai');

}public function index()

{$this->load->view('pegawai_view');}}

2.2.3 kehadiran.php

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Kehadiran extends CI_Controller {

function __construct(){

header('Content-Type: application/json');

echo $this->Kehadiran_model->get_all();

}

function topdf () {

$this->load->library('cezpdf');

$this->load->helper('pdf');

prep_pdf();

$data['absensi']= $this->Kehadiran_model->alldata();

$titlecolumn = array(

'user_id' => 'user_id',

'absensi_status' => 'absensi_status',

'absensiHari' => 'absensiHari',

'absensiDatang' => 'absensiDatang',

'absensiPulang' => 'absensiPulang'

); }

public function index(){

$this->load->view('Kehadiran_view');

}}

Dokumen terkait