Faber Nainggolan Blog's

Artikel, Tutorial Pemrograman, Tutorial database, PHP dan Framework

LightBlog

Fungsi helper sangat membantu kita dalam menangani berbagai macam yang akan diterapkan di tampilan akhir. Pada codeigniter sudah disediakan ...

Memulai Project CodeIgniter : Part 8 Membuat Helper

Fungsi helper sangat membantu kita dalam menangani berbagai macam yang akan diterapkan di tampilan akhir. Pada codeigniter sudah disediakan helper fungsi yang dapat membantu kita dalam menangani berbagai macam masalah.


Pada kesempatan ini kita akan membuat fungsi helper buatan kita sendiri dan dapat diterapkan pada aplikasi yang kita bangun.

  1. Dalam membuat fungsi helper yang mesti kita ingat adalah ini membantu dalam penangan masalah di codeigniter (hanya pembantu) bukan menjadi penanganan utama. Kalo utama buat aja di contollernya.
  2. Kemudian penamaan helper bisanya dimulai dengan namahelper kemudian diakhiri dengan _helper.php
  3. Kita dapat menyimpan helper kita ini di folder /application/helpers/
  4. Helper dapat kita buat untuk menangani penggantian jenis kelamin contoh laki-laki dan perempuan yang dimana di database kita simpan dengan nilai value 0 atau 1
  5. Helper bisa juga kita buat untuk menagani pergantian status, contoh aktif, noaktif, pending dan lain sebagainya

Baik pada artikel sebelum sebelumnya saya sudah pernah menambah sebuah artikel tentang fungsi tanggal indonesia di php dan codeigniter ini bisa kita gabungkan menjadi helper buatan kita. Jika belum dibaca silakan dibuka pada link dibawah :
Fungsi PHP format tanggal Indonesia
Membuat Fungsi konversi mata uang Rupiah pada PHP

Mari kita buat beberapa contoh fungsi, dan kita buat dalam satu helper, beri nama file ini dengan nama fungsi_helper.php dan simpan sesuai keterangan diatas

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

//function tanggal indonesia yang berformat yyyy-mm-dd dan akan menghasilkan output 12 Juni 2017
 function tgl_indo($tgl){
    $ubah = gmdate($tgl, time()+60*60*8);
 $pecah = explode("-",$ubah);
 $tanggal = $pecah[2];
 $bulan = bulan($pecah[1]);
 $tahun = $pecah[0];
 return $tanggal.' '.$bulan.' '.$tahun;
} 
//function tanggal yang berformat timestamp yang diubah menjadi seperti ini 12 Jun 2017
 function tgldikit($tgl){

     $inttime=date('Y-m-d H:i:s',$tgl);

     $arr_bulan=array("","Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des");
      $tglBaru=explode(" ",$inttime);
      $tglBaru1=$tglBaru[0];$tglBaru2=$tglBaru[1];
      $tglBarua=explode("-",$tglBaru1);
      $tgl=$tglBarua[2]; $bln=$tglBarua[1]; $thn=$tglBarua[0];
      if(substr($bln,0,1)=="0") $bln=substr($bln,1,1);
      $bln=substr($arr_bulan[$bln],0,10);
      $ubahTanggal="$tgl $bln $thn";

  return $ubahTanggal;
}

 //fungsi untuk mengubah nilai integer menjadi format rupiah dengan fungsi number_format diphp
 function rupiah($nilai, $pecahan = 0){
   return number_format($nilai, $pecahan, ',', '.');
} 

//fungsi untuk mengubah nilai integer menjadi format rupiah dengan strlen (penghitungan karakter) kemudian dipisah berdasarkan ratusan ribuan dan seterusnya
 function rupiah2($harga)
{
 $a=(string)$harga; //membuat $harga menjadi string
 $len=strlen($a); //menghitung panjang string $a

 if ( $len <=18 )
 {
  $ratril=$len-3-1;
  $ramil=$len-6-1;
  $rajut=$len-9-1; //untuk mengecek apakah ada nilai ratusan juta (9angka dari belakang)
  $juta=$len-12-1; //untuk mengecek apakah ada nilai jutaan (6angka belakang)
  $ribu=$len-15-1; //untuk mengecek apakah ada nilai ribuan (3angka belakang)

  $angka='';
  for ($i=0;$i<$len;$i++)
  {
   if ( $i == $ratril )
   {
    $angka=$angka.$a[$i].".";
   }
   else if ($i == $ramil )
   {
    $angka=$angka.$a[$i].".";
   }
   else if ( $i == $rajut )
   {
    $angka=$angka.$a[$i]."."; //meletakkan tanda titik setelah 3angka dari depan
   }
   else if ( $i == $juta )
   {
    $angka=$angka.$a[$i]."."; //meletakkan tanda titik setelah 6angka dari depan
   }
   else if ( $i == $ribu )
   {
    $angka=$angka.$a[$i]."."; //meletakkan tanda titik setelah 9angka dari depan
   }
   else
   {
    $angka=$angka.$a[$i];
   }
  }
 }
 return $angka.",-";
 }

untuk menjalankan tinggal helper nya di load kemudian panggil nama fungsi nya di controller atau view. Mari kita coba implementasikan ke project kita sebelumnya yaitu crud.
Pertama load helper fungsi di autoload atau bisa juga dload pada controller, saya akan load di autoload, tambahkan pada bagian seperti dibawah
$autoload['helper'] = array('url','form','fungsi');

kemudian pada views vbarang.php ubah menjadi seperti dibawah ini
<section>
<div class="container"> 
 <h1>Data Barang</h1>
  <a href="<?php echo base_url();?>barang/tambah" class="button">Tambah</a>
  <div class="pesan-sukses"><?php echo $this->session->flashdata("pesan");?></div> 
 <form action="<?php echo base_url();?>barang/cari/">
 <div class="inputgroup">
     <input name="key" value="" class="formcontrol" placeholder="Search" type="text" >
     <span class="input-group-btn">
        <button class="btn-default" type="submit">Cari</button>
     </span>
     <div class="clear"></div>
</div>
</form>
  <table class="table">
   <tr>
    <th>No</th>
    <th>Kode</th>
    <th>Barcode</th>
    <th>Nama Barang</th>
    <th>Harga </th>
    <th>Jenis </th>
    <th>Satuan </th>
    <th>Stok </th>
    <th style="width: 30%;">Keterangan </th>
    <th></th>
   </tr>
   <?php if(!$querybarang){?>
    <tr><td colspan="9">Data Masih Kosong</td> </tr>
   <?php }else{
     $no =$jlhpage; 
     foreach ($querybarang as $rstbrg) {$no++;
   ?>
   <tr>
    <td><?php echo $no;?></td>
    <td>#<?php echo $rstbrg->kode_brg;?></td>
    <td><?php echo $rstbrg->barcode;?></td>
    <td><?php echo $rstbrg->nama_brg;?></td>
    <td><?php echo rupiah($rstbrg->harga_brg);?></td>
    <td><?php echo $rstbrg->jenis;?></td>
    <td><?php echo $rstbrg->satuan;?></td>
    <td><?php echo $rstbrg->stok_brg;?></td>
    <td><?php echo $rstbrg->keterangan;?></td>
    <td><a href="<?php echo base_url()?>barang/edit/?id=<? echo $rstbrg->kode_brg;?>">Edit</a>
     <a href="<?php echo base_url()?>barang/detail/?id=<? echo $rstbrg->kode_brg;?>">Detail</a>
     <a onclick="return KonfirmasiHapus()" href="<?php echo base_url()?>barang/hapus/?id=<? echo $rstbrg->kode_brg;?>">Hapus</a>
    </td>
   </tr>
   <?php }}?>
  </table>
  <div class="pagination">
   <span class="pagination-btns">
          <?=$page_halaman?>
          <div class="clear"></div>
      </span>
        </div> 
</div>
</section>
<script type="text/javascript">
function KonfirmasiHapus() {
  return confirm("Apa anda yakin akan menghapus data ini?");
}
</script>
  
pada baris ke-39 saya panggil fungsi rupiah() sebelum variabel.

dan berikut tampilan nya jika lihat di browser
terlihat harga dirubah menjadi format rupiah

Demikian tutorial kali semoga bermanfaat
mungkin yang mau nambah fungsi bisa dibuat komentar biar saya naikkan pada artikel ini


0 comments: