1 BAB 9 Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library, helper dan ...
BAB 9 Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari
dan
Mengimplementasikan
Library,
helper
dan
komponen
pendudukungnya pada CodeIgniter.
B. LANDASAN TEORI CodeIgniter menyediakan dua jenis sarana yang dapat digunakan untuk membantu proses pengembangan aplikasi, antara lain: 1. 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_. 2. Helper Helper adalah kumpulan fungsi yang diletakkan di dalam folder system/helper 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 dan helper maka harus di load terlebih dahulu. Ada dua cara yang dapat dilakukan untuk men-load sebuah library dan helper, antara lain : a. Menambah pada Konfigurasi Autoload Menambahkan sebuah library di autoload berarti seluruh aplikasi anda akan dapat menggunakan library tersebut secara langsung. Sebaliknya library yang di load dengan cara ini adalah jenis library yang dipakai di seluruh aplikasi login, template, dan lain-lain. b. 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
CodeIgniter Lanjut | 1
pengatur dari sumberdaya-sumberdaya yang ada di dalam CodeIgniter, seperti: Model, View, Library, Helper. Cara penggunaanya adalah : $this->load->library(‘nama_library’); $this->load->helper(‘nama_helper’);
Nama library dan helper 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 ();
1.
Library CodeIgniter Secara default CodeIgniter telah menyediakan library yang dapat digunakan secara langsung. Adapun library yang telah tersedia antara lain: a. Benchmarking Class Library Benchmarking 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. b. Calendar Class Library Calendar berfungsi untuk menampilkan dan men-generate kalender. c. Cart Class Library Cart berfungsi untuk mengambil data-data di dalam file konfigurasi. Library ini sudsh di load secara otomatis oleh CodeIgniter. d. Database Class Library Database digunakan untuk memanipulasi serta mendapatkan data dari sebuah system 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. Kita perlu mengaktifkan sebelum nya, dengan cara : $this->load->database() atau dengan $this->load->library('database'); Untuk loading otomatis, kita perlu mengaktifkan library tsb dengan cara memberikan perintah $this>load->library('database'); 1. Query standard dengan hasil multiple (object version) 1. 2. 3. 4. 5. 6. 7.
$query=”select nama,alamat,telp from mahasiswa”; $hasil=$this->db->query(“$query”); foreach ($hasil as $row) { echo $row->nama; echo $row->alamat; echo $row->telp;
CodeIgniter Lanjut | 2
8. } 9. echo “Hasil Nilai :”. $hasil->num_rows();
2. Query standard dengan hasil multiple (Array version) 1. 2. 3. 4. 5. 6. 7. 8. 9.
$query=”select nama,alamat,telp from mahasiswa”; $hasil=$this->db->query(“$query”); foreach ($hasil as $row) { echo $row['nama']; echo $row['alamat']; echo $row['telp']; } echo “Hasil Nilai :”. $hasil->num_rows();
3. Query dengan hasil tunggal Untuk menampilkan sebuah hasil query, kita dapat menggunakan syntax sbb : $query->row() Contoh : 1. 2. 3. 4.
$query=”select nama from mahasiswa limit 1”; $hasil=$this->db->query(“$query”); $hasilnya=$hasil->row(); echo $hasilnya->nama;
4. Query Bindings Yaitu membuat query dengan nilai yang dapat berubah-ubah. $sql=”select * from mahasiswa where nama=? And kota=?”; $this->db->query($sql,array('andi','jakarta'); 5. Active Record Class CI menggunakan teknik active record, di samping juga dapat memproses perintah sql. Cara ini adalah cara lain yang di gunakan di CI untuk memproses query. d. Email Class Library Email digunakan untuk mengirimkan email. Pengiriman email tersebut bisa dilakukan dengan menggunakan protocol mail, sendmail, dan smtp.sqawd. Contoh: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
$this->load->library(“email”); // Kita perlu meload library e-mail di dalam controller atau di taruh di autoload.php $this->email->from(“ [email protected] ”,”Akhmad Sofwan”); $this->email->to(“ [email protected] ”); $this->email->cc(“ [email protected] ”); $this->email->bcc(“ [email protected] ”); $this->email->subject(“Test Email”); $this->email->message(“Hallo apa kabar nich ... ?”); $this->email->send();
Setting E-mail : Setting e-mail di set secara default di dalam file config.php. CodeIgniter Lanjut | 3
Kita dapat melakukan setting manual seperti contoh di bawah ini : 1. 2. 3. 4. 5.
e. Encryption Class Library Encryption digunakan untuk melakukan penyandian terhadap string tertentu. f. File Uploading Class Library Uploading digunakan untuk meng-upload file. Kelas ini sudah dilengkapi dengan pengecekan jenis file, dan ukuran file. Contoh: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Agar form dapat melakukan uploading file, maka tipe enctype suatu form haruslah berbentuk multipart/form-data.
Penjelasan: Baris ke-6, menampilkan data validasi yang eror . Baris ke-7, menampilkan data yang telah dibuka di data form yang meliputi username, password, dan email address.. b. Membuat script pada View dengan nama formsuccess.php 1. 2. 3. 4. 5. 6. 7. 8. 9.
My Form
Your form was successfully submitted!
Penjelasan : Baris ke-7, menampilkan data form yang ada pada view. c. Membuat script pada Controller dengan nama form.php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Penjelasan: Baris ke-3, memanggil fungsi dari index Baris ke-5, memanggil data dari helper form array Baris ke-6, menmanggil data dari library form validasi. Baris ke-13, memanggil data dari view yang bernama myform.php Baris ke-17, memanggil data dari view yang bernama formsuccess.php Berikut ini adalah hasil dari outputnya
Gambar 9.2 hasil percobaan dari index form Pada Gambar 9.2 ditunjukan hasil dari percobaan library yang menampilkan hasil fungsi index dengan menggunakan class view . Apabila pada salah satu menu di klik maka akan muncul isi konten dari menu yang dipanggil. Default tampilan awalnya adalah menampilkan isi konten dari menu form. Jika data tersebut di isi dan data tersebut benar kemudian di submit , maka akan muncul tampilan:
CodeIgniter Lanjut | 13
Gambar 9.3 hasil index jika success Pada gambar 9.3 di tunjukkan hasil percobaan index jika data tersebut diisi semua dengan benar maka akan tampil successfully. Dan sebaliknya jika data tersebut hanya diisi salah satu maka akan muncul tampilan seperti gambar 9.4
Gambar 9.4 jika tidak diisi datanya semua Pada gambar 9.4 di tunjukkan hasil percobaan index jika data tersebut hanya diisi satu maka akan tampil tulisan required. 3. Membuat form hitung Perlu diingat hal pertama yang harus dilakukan di konfigurasi pada setiap aplikasi base_url. Setelah melakukan konfigurasi base_url pada file application maka kita akan membuat sebuah controller yang menangani proses penambahan, pengurangan,
CodeIgniter Lanjut | 14
perkalian dan pembagian. Konfigurasi pada base_url dilakukan supaya penggunaan library url menghasilkan keluaran yang tepat. Perhatikan code berikut ini: a. Application/controllers/hitung.php. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
CARIKODE
CARIKODE
Penjelasan: Baris 20-24, memasukkan operasi bilangan dari penjumlahan, pengurangan, perkalian dan pembagian. Baris 30, terdapat tombol submit oleh fungsi hitung. b. Proses kedua yaitu menggunakan application/views/kalkulator.php Setelah membuat controller maka kita akan membuat view yang merupakan interface aplikasi tersebut. Code berikut ini adalah view menu_hitung. View ini berisi navigasi ke fungsi perkalian dan pembagian. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
load->helper(array('url','form')); } function index(){ $this->load->view('hitung'); } function hitung(){ $bil1=$this->input->post('bil1'); $bil2=$this->input->post('bil2'); $operasi=$this->input->post('operasi');
Penjelasan : Baris 5, dilakukan loading terhadap helper url dan form sekaligus. Loading tersebut dilakukan dalam fungsi konstruktor karena kedua helper tersebut digunakan pada semua fungsi dan view yang ada. Pada kelas hitung tersebut, terdapat 4 fungsi, yaitu penjumlahan, pengurangan, perkalian dan pembagian. Baris 14-21, kita melakukan pengecekan terhadap bilangan yang diset. Fungsi tersebut akan menghasilkan nilai TRUE apabila semua bilangan terpenuhi dan menghasilkan nilai FALSE jika tidak terpenuhi. Baris 23, menginputkan bilangan pertama yang akan di ketik. Baris 24, menginputkan bilangan kedua yang akan di ketik. Baris 27, memanggil hasil dari script yang ada pada view. c. Lalu yang terakhir kita tulis script hasil.php dan simpan di view. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
CARIKODE
CARIKODE
Penjelasan : Baris 8, menampilkan hasil operasi dari bilangan pertama dan bilangan kedua Baris 11, menampilkan tulisan kembali Berikut ini adalah hasil output dari percobaan helper
CodeIgniter Lanjut | 16
Gambar 9.3 hasil dari percobaan hitung Pada Gambar 9.3 ditunjukan hasil dari percobaan yang menampilkan bilangan pertama dan bilangan kedua dari operasi perkalian.
Gambar 9.5 hasil dari percobaan hitung Pada Gambar 9.5 ditunjukan hasil dari inputan perkalian bilangan pertama dan bilangan kedua. Dan terdapat menu link kembali
CodeIgniter Lanjut | 17
4.
Membuat upload form Pada percobaan ini , kita akan membuat sebuah form yang bias mengupload sebuah gambar. a. Menggunakan menu dengan nama upload_form.php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Upload Form
Penjelasan : Baris ke-6, menampilkan hasil eror jika salah. Baris ke-7, memanggil subuah gambar dari menu upload dari view. Baris ke-10, terdapat tombol submit menu yang akan di upload dari controller. b. Menggunakan menu view dengan nama upload_success.php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Upload Form
Your file was successfully
:
uploaded! $item => $value):?> echo $value;?> 'Upload Another File!'); ?>
Penjelasan : Baris ke-8, memanggil isi dari upload_data di menu view. Baris ke-10, jika data upload tersebut selesai di panggil. Baris ke-11, memanggil data upload dari controller. c. Menggunakan menu controller dengan nama upload.php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
load->helper(array('form', 'url')); } public function index() { $this->load->view('upload_form', array('error' => ' ' )); } public function do_upload() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 100;
Penjelasan: Baris ke-6, memanggil data helper dari array form url. Baris ke-10, memanggil class view dari upload_form. Baris ke-12, memanggil fungsi upload. Baris ke 14-18, berisi ukuran gambar yang tersedia pada menu upload. Baris ke-20, jika gambar tersebut akan diupload. Baris ke-22, muncul eror jika gambar tadi tidak berhasil di upload. Baris ke 23, memanggil upload_form pada menu view yang eror tadi. Baris ke-25, akan muncul else jika salah. Baris ke-27, memanggil data array dari upload_data dari class view. Baris ke-28, memanggil data upload_success dari class view. Berikut ini adalah hasil output dari form upload
Gambar 9.6 index dari form upload Pada gambar 9.6 ditunjukkan gambar index yang akan kita upload dari percobaan menu helper yang berisi tombol browser dan upload.