Membuat Helper Log Aktivitas dengan CodeIgniter

- April 03, 2019
Ini buat catatan saja, pada postingan kali ini, saya akan membagikan cara membuat Helper Log Aktivitas menggunakan CodeIgniter Framework. Menurut saya, Helper sebenarnya fungsi-fungsi yang bertugas untuk membantu pemrograman dan dapat dipanggil dalam MVC CodeIgniter.
Membuat Helper Log Aktivitas dengan CodeIgniter
Helper pada CodeIgniter Framework terdiri dari dua macam berdasarkan ketersediaannya, ada yang sudah disediakan oleh CodeIgniter sendiri atau bawaan, dan ada juga helper custom yang pastinya buatan kita sendiri. Karena terkadang ketika mungkin helper pada CodeIgniter sangat terbatas, sehingga pastilah kita membutuhkan helper tambahan sesuai keinginan atau kebutuhan.
helper - Membuat Helper Log Aktivitas dengan CodeIgniter
Helper buatan ini akan tersimpan di lokasi /Application/helpers/nama_helper.php. Pastikan menambahkan kata "_helper" pada saat penamaan file PHP nantinya. Untuk memanggil helper buatan kita, sama seperti memanggil helper bawaan seperti "url", "form" dan sebagainya.
$autoload['helper'] = array('url', 'form','nama_helper');

Membuat Helper Log Aktivitas

Selanjutnya saya akan membahas cara singkat (menurut saya lohh) membuat helper log aktivitas, yang pada contoh ini nantinya akan mencatat semua aktivitas user dalam mengelola aset atau inventori. Tentunya akan berbeda-beda sesuai dengan kebutuhan programming nantinya.
log aktivitas - Membuat Helper Log Aktivitas dengan CodeIgniter


Pertama-tama, buat file activity_helper.php, dengan kode seperti ini:
<?php

function activity_log($tipe, $aksi, $item, $assign_to, $assign_type){
    $CI =& get_instance();

    $param['log_user'] = $CI->session->userdata('nama_user');
    $param['log_tipe'] = $tipe; //asset, asesoris, komponen, inventori
    $param['log_aksi'] = $aksi; //membuat, menambah, menghapus, mengubah,
    $param['log_item'] = $item; //nama item
    $param['log_assign_to']= $assign_to; //target
    $param['log_assign_type']= $assign_type; //target

    //load model log
    $CI->load->model('m_log');

    //save to database
    $CI->m_log->save_log($param);

}
?> 
Pada helper tersebut dibuat function activity_log, dengan parameter tipe, aksi, item, assign_to dan assign_type. Ada beberapa parameter yang akan digunakan, seperti $param['log_user'], yang akan  mengambil data sesssion nama_user yang sedang aktif/login dan parameter lainnya, yang bisa dilihat pada keterangan komentar. Selanjutnya me-load model M_log, dan memanggil fungsi save_log, dengan array $param tadi. Adapun isi dari M_log.php adalah seperti berikut:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class M_log extends CI_Model {

    public function save_log($param)
    {
        $sql        = $this->db->insert_string('tb_log',$param);
        $ex         = $this->db->query($sql);
        return $this->db->affected_rows($sql);
    }
}
Yang hanya berfungsi untuk menyimpan (INSERT) data ke tabel tb_log, dengan struktur tabel seperti ini:
tabel log

Cara Penggunaan Helper

Untuk cara penggunaan helper, pada kasus aplikasi inventori ini, saya menggunakan helper log aktifitas pada saat melakukan query ke database, misalnya saat ada penambahan inventori. Seperti pada potongan code berikut ini.
//tambah data chekin di tb_inventori_in
$this->db->insert('tb_inventori_in', $field);
if($this->db->affected_rows() > 0)
{
 $assign_to  = '';
 $assign_type= '';
 activity_log("inventori", "menambah stok", $id_model, $assign_to, $assign_type);
 return true;
}
else
{
 return false;
}
Sehingga nantinya diharapkan outputnya akan seperti ini
log aktivitas - Membuat Helper Log Aktivitas dengan CodeIgniter
Demikian catatan singkat saya dalam membuat helper log aktivitas menggunakan Framework CodeIgniter, silahkan dikembangkan sesuai kebutuhan. Tutorial ini berdasarkan pemahaman saya saja yah, kalau ada kesalahan atau saran, silahkan beri komentar pada kolom komentar di bawah.

Jangan lupa like, share dan follow sosial media blog zdienos, semoga bermanfaat.
Terima kasih (z).

3 comments:

  1. cara biar jamnya tepat gimana gan?

    ReplyDelete
    Replies
    1. itu sudah pasti tepat mas, karena pakai type data timestamp

      Delete
  2. terimakasih mastah ilmunya, sangat bermanfaat

    ReplyDelete


EmoticonEmoticon

 

Start typing and press Enter to search