codeigniter indonesia
Tutorial

CodeIgniter Indonesia 7 CodeIgniter Helper dan Library

CodeIgniter  menyediakan  dua  jenis  sarana  yang  dapat  digunakan  untuk  membantu  proses pengembangan aplikasi, antara lain:

  • Library

Library  dapat  dikatakan  sebagai  kumpulan  tools  yang  dapat  digunakan  untuk  membantu sebuah proses. CodeIgniter telah menyediakan banyak library yang dapat digunakan secara langsung. Library pada dasarnya adalah sebuah kelas yang diletakkan di dalam folder system/libraries atau application/libraries. Library yang terletak di dalam folder system merupakan library bawaan dari CodeIgniter yang secara default di beri awalan CI_. Untuk library buatan sendiri harus diletakkan di dalam folder application/libraries.

  • Helper

Helper adalah kumpulan fungsi yang diletakkan di dalam folder system/helpers atau applications/helpers. Biasanya helper sering digunakan dalam view untuk membantu proses- proses yang berulang, seperti generate html, url, security, dan lain-lain.

Menggunakan Library dan Helper di CodeIgniter

Agar  dapat  menggunakan library,  helper  dan  pluggin,  maka  ketiganya  harus  di  load  terlebih dahulu. Ada dua cara yang dapat dilakukan untuk men-load sebuah library dan helper antara lain:

  1. Menambahkan Pada Konfigurasi Autoload

Menambahkan sebuah library di autoload berarti seluruh aplikasi Anda akan dapat menggunakan library tersebut secara langsung. Sebaiknya library yang di load dengan cara ini adalah jenis library yang dipakai di seluruh aplikasi seperti login, template, dan lain-lain.

  1. Menggunakan Perintah Loader Library

Kita dapat juga menggunakan library loader untuk men-load library.   Library loader adalah sebuah library CodeIgniter yang otomatis di load. Loader berfungsi sebagai pengatur dari sumberdaya-sumberdaya yang ada di dalam CodeIgniter seperti Model, View, Library, Helper, dan pluggin. Cara penggunaannya adalah:

$this->load->library(‘nama_library’);

$this->load->helper(‘nama_helper’);

$this->load->pluggin(‘nama_pluggin’);

Nama library, helper dan pluggin harus di isi dengan huruf kecil.

Ketika  sebuah  library  sudah  di-load  maka  library  tersebut  menjadi  property  pada  object

Controller. Adapun cara penggunaannya adalah sebagai berikut:

$this->nama_library->fungsi();

Library CodeIgniter

Secara default CodeIgniter telah menyediakan library yang dapat digunakan secara langsung. Adapun library yang telah tersedia antara lain:

  • Benchmarking Class

Library ini digunakan untuk melakukan pengukuran terhadap aplikasi yang dibuat. Seperti untuk mengetahui berapa lama waktu eksekusi dan berapa jumlah memori yang digunakan. Library ini sudah digunakan dan diload secara otomatis oleh CodeIgniter.

  • Calendar Class

Library ini berfungsi untuk menampilkan dan men-generate kalender.

  • Cart Class

Library ini berfungsi untuk membuat shopping cart (keranjang belanja). Library ini memiliki ketergantungan terhadap kelas session karena item-item chart tersebut disimpan di dalam session.

  • Config Class

Library ini berfungsi untuk mengambil data-data di dalam file konfigurasi. Library ini sudah di load secara otomatis oleh CodeIgniter.

  • Database Class

Library database digunakan untuk memanipulasi serta mendapatkan data dari sebuah sistem database.  Secara default  database yang  sudah didukung  oleh  CodeIgniter  adalah mysql, mssql,  oracle,  postgres.  Sedangkan  database yang  tidak  didukung  secara  langsung  oleh CodeIgniter dapat dijembatani dengan driver odbc.

  • Email Class

Library email digunakan untuk mengirimkan email. Pengiriman email tersebut bisa dilakukan dengan menggunakan protokol mail, sendmail dan smtp.sqawd

  • Encryption Class

Library Encryption digunakan untuk melakukan penyandian terhadap string tertentu

  • File Uploading Class

Library Uploading digunakan untuk meng-upload file. Kelas ini sudah dilengkapi dengan pengecekan jenis file, dan ukuran file.

  • Form Validation Class

Library form Validation digunakan untuk mengecek keabsahan form-form yang sudah di-submit oleh user.

  • FTP Class

Library FTP digunakan untuk meng-upload atau download file melalui ftp server.

  • HTML Table Class

Library HTML table adalah sebuah kelas yang berfungsi untuk men-generate table dari data array.

  • Image Manipulation Class

Library image manipulation berfungsi untuk mengolah gambar. Adapun fungsi-fungsi yang telah disediakan adalah Image Resizing, Thumbnail Creation, Image Cropping, Image Rotating dan Image Watermarking.

  • Input and Security Class

Library Input dan security berfungsi untuk menjamin bahwa inputan dari form telah bersih dari karakter-karakter “aneh”.

  • Loader Class

Library ini dapat disebut sebagai pengatur sumberdaya CodeIgniter.  Semua sumberdaya yang ada  akan  dikendalikan  oleh  kelas  ini.  Library  ini  sudah  di-load  secara  otomatis  oleh CodeIgniter.

  • Language Class

Library language digunakan untuk mengatur bahasa apa yang akan dipakai oleh CodeIgniter.

  • Output Class

Library Output bertujuan untuk meng-handle output dari CodeIgniter, mulai dari cache sampai ke profiling bisa dilakukan kelas ini.

  • Pagination Class

Untuk mem-paginate hasil database untuk performance dan usability, kita bisa mengontrol berapa banyak record untuk ditampilkan disetiap halaman website, berapa banyak record untuk ditarik dari database dan tampilan dari bagian pagination

  • Session Class

Library Session dapat digunakan untuk memelihara informasi status tentang  user (seperti layaknya session di PHP). Tetapi Library ini tidak menggunakan session built-in dari PHP, Library Session men-generate session datanya sendiri yang disimpan di dalam Cookies.

  • Trackback Class

Library Trackback digunakan untuk mengirim dan menerima data trackback.

  • Template Parser Class

Library Template Parser digunakan untuk membuat template yang berisi parsable pseudo –templates.

  • Unit Testing Class

Library Unit Testing digunakan untuk unit test function dalam aplikasi yang sedang dibuat. CodeIgniter menyediakan fungsi evaluasi dan dua fungsi hasil dalam library ini.

  • URI Class

Library URI digunakan untuk memparsing URL, lalu memecahnya ke dalam beberapa segmen dan kemudian di-passing ke controller atau disimpan sebagai variabel.

  • User Agent Class

Library  User Agent  digunakan untuk mengidentifikasi browser, mobile device, atau robot yang mengunjungi website. Kita juga bisa menggunakannya untuk mendeteksi dukungan bahasa, sekumpulam karakter, dan referrer.

  • XML-RPC Class

Library XML-RPC  digunakan untuk men-setup klien XML-RPC dan server.

  • Zip Encoding Class

Library  Zip Encoding  digunakan untuk membuat file ZIP baik yang berjenis teks maupun data binary.

Helper CodeIgniter

Helpers seperti namanya akan membantu Anda membangun aplikasi dengan tugas tertentu. Tidak seperti library, helper bukanlah Object Oriented tapi berupa prosedural. Setiap helper berisi satu atau lebih fungsi, masing-masing berfokus pada tugas tertentu yang tidak ada ketergantungan dengan fungsi lainnya.

Helper dapat juga di-load secara otomatis dalam /system/application/config/autoload.php. Adapun helper yang ada di dalam CodeIgniter antara lain:

  • Array — Helper array berisi fungsi yang membantu pekerjaan berhubungan dengan array.

Sebagai contoh fungsi random_element() mengambil array sebagai input dan menghasilkan elemen random darinya.

  • Cookie — Helper cookie berisi fungsi yang membantu pekerjaan berhubungan dengan pemberian nilai, pembacaan data cookies, dan penghapusan data cookie.
  • Date — Helper date berisi fungsi yang membantu pekerjaan berhubungan dengan tanggal.

Sebagai contoh, fungsi now() menghasilkan waktu sekarang sebagai UNIX timestamp.

  • Directory — Helper direktori berisi fungsi tunggal yang membantu pekerjaan berhubungan dengan direktori. Sebagai contoh fungsi directory_map() adalah untuk membaca path direktori tertentu dan membangun array-nya yang berisi semua file-filenya dan subdirektorinya.
  • Download —  Helper  download  berisi  fungsi  tunggal  yang  membantu  men-download  data dengan mudah. Fungsi force_download() menghasilkan header server yang memaksa data untuk di-download.
  • File — Helper file berisi fungsi yang membantu untuk membaca, menulis, dan menghapus file.
  • Form — Helper form berisi fungsi-fungsi yang membantu membangun form.
  • HTML — Helper HTML berisi fungsi yang membantu membuat blok HTML dengan cepat dan mudah. Sebagai contoh fungsi ul() bisa mengubah array item ke bulleted list.
  • Inflector — Helper inflector berisi fungsi yang membantu mengubah kata-kata menjadi bentuk plural atau singular, memberlakukan camel case atau mengubah kata-kata yang dipisahkan oleh spasi menjadi phrase yang digaris bawahi, sebagai contoh fungsi singular bisa mengubah string ‘girls’ menjadi ‘girl’.
  • Security — Helper security berisi fungsi yang berhubungan dengan keamanan seperti xss_clean(), yang akan menyaring setiap kode yang mungkin digunakan dalam cross site scripting hack.
  • Smiley — Helper smiley berisi fungsi-fungsi yang membantu pengelolaan emoticons.
  • String — Helper string berisi fungsi-fungsi yang membantu pekerjaan berhubungan dengan string, seperti fungsi random_string() yang akan membuat string random berdasarkan tipe dan panjang argumen.
  • Text — Helper text berisi fungsi-fungsi yang membantu Anda bekerja dengan teks. Sebagai contoh: fungsi word_limiter, dapat membatasi string ke sejumlah kata tertentu yang berguna untuk membatasi input user pada form.
  • Typography —  Helper  typography  berisi  fungsi  tunggal  yang  membantu  memformat  teks dengan  cara  yang  tepat.  Sebagai  contoh:  fungsi  auto_typography()  me-wrap  paragraph dengan <p> dan </p>, mengkonversi line breaks ke <br/> dan mengkonversi tanda kutip, dash, dan ellipse dengan baik.
  • URL — Helper URL berisi fungsi-fungsi yang membantu bekerja dengan URL. Anda akan menggunakan fungsi base_url() dan anchor() dalam setiap projek.
  • XML — Helper XML berisi fungsi tunggal yang membantu bekerja dengan XML. Fungsi xml_convert berfungsi untuk mengkonversi string menjadi teks XML, mengkonversi ampersand dan angle bracket menjadi entity.

Membuat Library Sendiri

Untuk mendapatkan kode yang bagus sebaiknya fungsionalitas yang sama itu di bungkus menjadi sebuah library. Sebuah library adalah sebuh kelas yang diletakkan pada folder application/libraries

Get_instance() adalah sebuah fungsi yang mengimplementasikan singleton dari controller CI. Jika Anda membuat library sendiri dan membutuhkan data atau resource lainya yang terdapat di object utama maka kita dapat menggunakan fungsi tersebut untuk mengakses data atau resource yang dibutuhkan.

Sebagai contoh kita akan membuat sebuah library breadcrumb yang akan memanfaatkan data dari segmen-segmen URI. Data URI dapat diakses dari library uri yang sudah di-load secara otomatis oleh Codeigniiter.

Menggunakan Library External

CodeIgniter sangat mudah untuk mengadopsi library yang bersifat external. Library yang paling mudah untuk diadopsi adalah sebuah single class tanpa parameter pada constructor. Untuk kelas yang memiliki konstruktor lebih dari satu maka sebaiknya kelas tersebut diubah terlebih dahulu atau jika kelas library tersebut terdiri atas beberapa class maka lebih mudahnya kita membuat sebuah library factory dari library tersebut.

Contoh 1. Library CSV Reader

Sebagai contoh kita akan menggunakan sebuah library yang berfungsi untuk membaca file CSV

kedalam memori.. Adapun isi dari librari tersebut adalah

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

/**

* CSVReader Class

* @author Pierre-Jean Turpeau

* @link http://www.CodeIgniter.com/wiki/CSVReader

*/

class csv_reader {

var $fields;

var $separator=’;’;

var $enclosure='”‘;

var $max_row_size=4096;

/**

* Parse a file containing CSV formatted data.

*

* @access  public

* @param   string

* @param   boolean

* @return  array

*/

function parse_file($p_Filepath, $p_NamedFields=true)

{

$content=false;

$file= fopen($p_Filepath,’r’);

if($p_NamedFields)

{

$this->fields = fgetcsv($file,$this->max_row_size,

$this->separator,$this->enclosure);

}

while(($row= fgetcsv($file,$this->max_row_size, $this-

>separator,$this->enclosure))!=false)

{

if($row[0]!=null)

{// skip empty lines if(!$content){$content=array();} if($p_NamedFields)

{

$items=array();

foreach($this->fields as$id=>$field)

{

if(isset($row[$id]))

{$items[$field]=$row[$id];}

}

$content[]=$items;

}

else

{ $content[]=$row; }

}

}

fclose($file);

return $content;

}

}

Agar dapat menggunakan library tersebut maka lakukan langkah-langkah berikut ini:

  • Copy Library Ke Direktori application/libraries

Untuk menggunakan library buatan kita sendiri atau  library eksternal maka  langkah yang pertama yang harus dilakukan adalah meletakkan library itu di direktori application/libraries. Nama file dan nama kelas harus sama. Contoh nama file adalah csv_reader.php maka nama kelasnya adalah csv_reader

  • Load Library Menggunakan Library Loader

Setelah meletakkan library tersebut di direktori application/libraries kita tinggal meload library atau kelas tersebut. Setelah di load maka nama library tersebut akan menjadi property di kelas controller.

Perhatikan contoller berikut ini

1. <?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);

2.

3. class Welcome extends CI_Controller {

4.

5. function  construct()

6. {

7. parent:: construct();

8.

9. }

10.

11. function index()

12. {

13. $this->load->library(‘csv_reader’);

14. $data = $this->csv_reader->parse_file(FCPATH.’data_nilai.csv’);

15.

16. echo “<pre>”;

17. print_r($data);

18.

19. }

20. }

21.

22. /* End of file php */

/* Location: ./application/controllers/welcome.php */

.

Pada  baris  ke-13  kita  akan  mencoba  menggunakan  library  csv_reader,  kelas  tersebut  akan memparsing sebuah file CSV. Lalu hasil parsingan tersebut kita tampilkan di layar browser anda.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

%d blogger menyukai ini: