Anda di halaman 1dari 19

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. $query=”select nama,alamat,telp from mahasiswa”;
2. $hasil=$this->db->query(“$query”);
3. foreach ($hasil as $row)
4. {
5. echo $row->nama;
6. echo $row->alamat;
7. echo $row->telp;

CodeIgniter Lanjut | 2
8. }
9. echo “Hasil Nilai :”. $hasil->num_rows();

2. Query standard dengan hasil multiple (Array version)


1. $query=”select nama,alamat,telp from mahasiswa”;
2. $hasil=$this->db->query(“$query”);
3. foreach ($hasil as $row)
4. {
5. echo $row['nama'];
6. echo $row['alamat'];
7. echo $row['telp'];
8. }
9. 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. $query=”select nama from mahasiswa limit 1”;
2. $hasil=$this->db->query(“$query”);
3. $hasilnya=$hasil->row();
4. 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. $this->load->library(“email”);
2. // Kita perlu meload library e-mail di dalam controller atau di taruh
di autoload.php
3. $this->email->from(“
4. sofwan@sofwan.net
5. ”,”Akhmad Sofwan”);
6. $this->email->to(“
7. sofwan@sofwan.net
8. ”);
9. $this->email->cc(“
10. wansofwan@yahoo.co.id
11. ”);
12. $this->email->bcc(“
13. wansofwan@gmail.com
14. ”);
15. $this->email->subject(“Test Email”);
16. $this->email->message(“Hallo apa kabar nich ... ?”);
17. $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. $config[“protocol”]=”sendmail”;
2. $config[“mailpath”]=”/usr/sbin/sendmail”;
3. $config[“charset”]=”iso-8859-1”;
4. $config[“wordwrap”]=TRUE;
5. $this->email->initialize($config);

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. <?php
2. class Upload extends Controller {
3. function Upload()
4. {
5. parent::Controller();
6. $this->load->helper(array('form', 'url'));
7. }
8. function index()
9. {
10. $this->load->view('upload_form', array('error' => ' ' ));
11. }
12. function do_upload()
13. {
14. $config['upload_path'] = './uploads/';
15. $config['allowed_types'] = 'gif|jpg|png';
16. $config['max_size']
17. = '100';
18. $config['max_width'] = '1024';
19. $config['max_height'] = '768';
20. $this->load->library('upload', $config);
21. if ( ! $this->upload->do_upload())
22. {
23. $error = array('error' => $this->upload->display_errors());
24. $this->load->view('upload_form', $error);
25. }
26. else
27. {
28. $data = array('upload_data' => $this->upload->data());
29. $this->load->view('upload_success', $data);
30. }
31. }
32. }
33. ?>

Agar form dapat melakukan uploading file, maka tipe enctype suatu form
haruslah berbentuk multipart/form-data.
<form method=”post” enctype=”multipart/form-data”>
g. Form Validation Class
Library Form Vlidation digunakan untuk mengecek kesalahan form-form yang
sudah di submit oleh user.

CodeIgniter Lanjut | 4
h. FTP Class
Library FTP digunakan untuk meng-upload atau download file melalui ftp server.
i. HTML Table Class
Library HTML Table table adalah sebuah kelas yang berfungsi untuk men-
generate table dari data array.
Contoh :
1. $this->load->library(“table”);
2. $data=array(
3. array(“Nim”,”Nama”,”Kota”),
4. array(“090012”,”Andi”,”Jakarta”),
5. array(“090014”,”Umar”,”Jakarta”),
6. array(“090013”,”Udin”,”Semarang”));
7. echo $this->table->generate($data);
Menampilkan tabel dari data yang di peroleh dari database. Contoh nya adalah
sbb :
1. $this->load->library(“table”);
2. $query=$this->db->query(“select * from mahasiswa”);
3. echo $this->table->generate($query);
j. Image Manipulation Class
Library Image Manipulation berfungsi untuk mengolah gambar. Adapun fungsi
yang telah disediakan adalah Image Resizing, Thumbnail Creation, Image
Cropping, Image Rotating dan Image Watermarking.
k. Input and Security Class
Library Input dan Security berfungsi untuk menjamin bahwa inputan dari form
telah bersih dari karakter-karakter “aneh”.
l. Loader Class
Library ini disebut sebagai pengatur sumberdaya CodeIgniter. Semua sumberdaya
yang ada akan dikendalikan oleh kelas ini. Library ini sudah di-load secara
otomatis oleh CodeIgniter.
m. Language Class
Library Language digunakan untuk mengatur bahasa apa yang akan dipakai oleh
CodeIgniter.
n. Output Class
Library Output bertujuan untuk meng-handle output dari CodeIgniter, mulai dari
cache sampai ke profiling bias dilakukan kelas ini.
o. Pagination Class
Untuk mem-paginate hasil database untuk performance dan usability, kita bisa
mengontrol beberapa banyak record untuk ditampilkan disetiap halaman website,
berapa banyak record untuk ditarik dari database dan tampilan dari bagian
pagination.

CodeIgniter Lanjut | 5
Contohnya:
1. $this->load->library(“pagination”); // Loading library pagination
2. $config[“base_url”]=”
3. http://localhost/dkpnew
4. ”; // base_url
5. $config[“total_rows”]=”100”; // Total baris
6. $config[“per_page”]= “20”; // per page
7. $this->pagination->initialize($config);
8. echo $this->pagination->create_links();

p. 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 datri PHP, library Session men-generate session datanya sendiri yang
disimpan di dalam Cookies.
Contohnya :
1. $data=array(
2. 'nim'=>'0900189',
3. 'nama'=>'Andi Hasan',
4. 'logged_in'=>TRUE);
5. $this->session->set_userdata($data);
q. Trackback Class
Library Trackback digunakan untuk mengirim dan menerima data trackback.
r. Template Parses Class
Library Tamplate Parses digunakan untuk membuat template yang berisi parsable
pseudo-template.
s. Unit Testing Class
Library Unit Testing digunakan untuk unit test fuction dalam aplikasi yang
sedang dibuat. CodeIgniter menyediakan fungsi evaluasi dan dua fungsi hasil
dalam library ini.
t. URL Class
Library URL digunakan untuk memparsing URL, lalu memecahkan ke dalam
beberapa segmen dan kemudian di passing ke controller atau disimpan sebagai
variable.
u. User Agent Class
Library User Agent digunakan untuk mengidentifikasi browser, mobile device,
atau robot yang mengunjungi website. Kita juga bias menggunakannya untuk
mendeteksi dukungan bahasa, sekumpulan karakter, dan referrer.
v. XML-RPC Class
Library XML-RPC digunakan untuk men-setup client XML-RMP dan server.
w. Zip Encoding Class
Library Zip Encoding digunakan untuk membuat ZIP baik yang berjenis teks
maupun data binary.

CodeIgniter Lanjut | 6
2. Helper CodeIgniter
Helpers seperti namanya akan membantu membangun aplikasi dengan tugas
tertentu. Tidak seperti library, helper bukanlah object Oriented tapi berupa
procedural. 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 :
a. Array
Helper Array berisi fungsi yang membantu pekerjaan berhubungan dengan array.
Sebagai contoh: fungsi random_element() mengambil array sebagai input dan
mengasilkan elemen random darinya.
b. Cookie
Helper Cookie berisi fungsi yang membantu pekerjaan berhubungan dengan
pemberian nilai, pembacaan data cookies, dan penghapusan data cookie.
Sintaknya:
$this->load->helper(“cookie”);
1. set_cookie()
Fungsi : Setting cookie
2. get_cookie()
Fungsi : Fetch Cookie
3. delete_cookie()
Fungsi : Menghapus Cookie
c. Date
Helper Date berisi fungsi yang membantu pekerjaan berhubungan dengan
tanggal. Sebagai contoh: fungsi now() menghasilkan waktu sekarang sebagai
UNIX timestamp.
d. Directory
Helper Directory berisi fungsi tunggal yang membantu pekerjaan berhubungan
dengan directory. Sebagai contoh: fungsi directory_map() adalah untuk membaca
path directory tertentu dan membangun array-nya yang berisi semua file-filenya
dan sub directorynya.

CodeIgniter Lanjut | 7
e. Download
Helper Download berisi fungsi tunggal yang membantu men-download data
dengan mudah. Fungsi forve_download() menghasilkan header server yang
memaksa data di-download.
f. File
Helper File berisi fungsi yang membantu untuk membaca, menulis, dan
menghapus file.
g. Form
Helper Form berisi fungsi-fungsi yang membantu membangun form.
Syntax yang ada pada helper ini adalah :
1. form_open()
Fungsi : Untuk membuat form pada awal form.
Sama dengan
<form method=”post” action=”<?=base_url();?>index.php/input”>
2. form_open_multipart()
Fungsi : Sama dengan form_open().
3. form_input()
Fungsi : Untuk membentuk fungsi input text
Contoh :
$data=array(“name” => “username”,
“size” => “10”);
echo form_input ($data)
// Sama dengan : <input type=”text” name=”username” size=”10”>
4. form_password()
Sama dengan form_input. Hanya saja form ini masukkan nya berupa
password.
Sama dengan : <input type=”password”>
h. HTML
Helper HTML berisi fungsi yang membantu membuat blok HTML dengan cepat
dan mudah. Sebagai contoh fungsi: ul() bias mengubah array item ke bulleted list.
i. 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’.

CodeIgniter Lanjut | 8
j. Security
Helper Security berisi fungsi yang berhubungan dengan keamanan yang akan
menyaring setiap kode yang mungkin digunakan dalam cross site scripting hack.
Security helper terdiri dari 2 syntax, yaitu :
1. xss_clean()
Menyediakan Cross Site Script Hack filtering. Function ini termasuk juga ke
dalam input class.
2. dohash()
Akan membentuk SH1 atau MD5 encrypting password.
Contoh :
$str =dohash($str) // SHA1
$str =dohash($str,'md5') // MD5

k. Smiley
Helper smiley berisi fungsi-fungsi yang membantu pengolahan emoticons.
l. 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 argument.
m. Text
Helper text berisi fungsi-fungsi yang membantu kita untuk bekerja dengan teks.
Sebagai contoh: fungsi word_limiter, dapatb membatasi string ke sejumlah kata
tertentu yang berguna untuk membatasi input user pada form.
n. Typography
Helper typography berisi fungsi tunggal yang membantu menformat teks dengan
cara yang tepat. Sebagai contoh: fungsi auto_typography() me_wrap paragraph
dengan <p> dan </p>, mengkonversi line breaks ke </br> dan menkonversi tanda
kutip, dash, dan ellips dengan baik.
o. URL
Helper URL berisi fungsi-fungsi yang membantu bekerja dengan URL. Kita akan
menggunakan fungsi dalam setiap projek.
Syntax yang ada di dalam URL Helper, yaitu :
1. base_url()
Fungsi: Mengembalikan base_url, seperti yang tertulis di dalam file
config.php

CodeIgniter Lanjut | 9
2. uri_string()
Fungsi : Mengembalikan URL Segment di halaman yang berisi fungsi ini. Jika
URL anda :
http://sofwan.net/blog/comments/123 ,
Fungsi akan mengembalikan nilai : blog/comments/123
3. anchor()
Fungsi : membuat standard html anchor link berdasarkan url local anda.
Contoh :
1. echo anchor (“berita/local/123”,”berita”);
2. <a href=”
3. http://localhost/local/123
4. ” >Click Here</a>
4. redirect()
Fungsi : Untuk redirect ke function tertentu.
Redirect (“form/index”);
Maka akan menuju ke syntax tertentu.
p. E-mail Helper
Helper E-mail berisi fungsi untuk membantu developer bekerja dengan E-mail.
Syntax yang ada pada helper email ini adalah :
1. $this->load->helper(“email”);
Untuk loading helper email.
2. Valid_email('email');
Untuk mengecek format e-mail yang benar.
Contoh :
1. if (valid_email(“
2. sofwan@sofwan.net
3. ”))
4. { echo “Mail is valid”; }
5. Else
6. { echo “Mail is invalid”;}

3. Send_email(“recipient”,”subject”,”message”)
Syntax untuk Mengirim e-mail.
q. XML
Helper XML berisi fungsi tunggal yang membantu bekerja XML. Fungsi
xml_convert berfungsi untuk mengkonversi string menjadi teks XML,
mengkonversi ampersand dan angle bracket menjadi entity.

CodeIgniter Lanjut | 10
C. LANGKAH-LANGKAH PERCOBAAN
Sebelum melakukan percobaan sebaiknya kita mendownload CodeIgniter terlebih
dahulu, disini penulis memakai CodeIgniter 2.2 dan kemudian di simpan ke dalam
Appserv/www/CI atau bias juga dengan xampp/htdoct/CI.
1. Membuat HTML.php
Contoh sederhana untuk membuat tulisan dengan menggunakan CodeIgniter. Berikut
ini kita membuat script pada Controller dengan nama html.php
1. <?php
2. class Html extends CI_Controller{
3. function index(){
4. $this->load->helper('html');
5. echo heading("Belajar CodeIgniter",1);
6. echo heading("Di Akademi Komunitas Negeri Lamongan",2);
7. echo heading("Jurusan : Teknik Informatika",3);
8. echo heading("Materi : Teknologi Web",4);
9. echo heading("TENTANG",5);
10. echo heading("Helper dan Library",6);
11. }
12. }
Penjelasan:
 Pada baris ke-4 kita akan mencoba menggunakan helper, kelas tersebut akan
memanggil sebuah tulisan yang ada pada script html tersebut.
 Baris ke-5-10, berisi tulisan yang akan di tampilkan.
Berikut ini adalah hasil output dari percobaan helper

Gambar 9.1 hasil percobaan dari helper


Pada Gambar 9.1 ditunjukan hasil dari percobaan helper yang menampilkan hasil fungsi
index dengan menggunakan class Controller.

CodeIgniter Lanjut | 11
2. Membuat form_validasi
Pada percobaan ini, kita akan membuat sebuah form data yang menyimpan username,
password dan alamat email.
a. Membuat script pada View dengan nama myform.php
1. <html>
2. <head>
3. <title>My Form</title>
4. </head>
5. <body>
6. <?php echo validation_errors(); ?>
7. <?php echo form_open('form'); ?>
8. <h5>Username</h5>
9. <input type="text" name="username" value="" size="50" />
10. <h5>Password</h5>
11. <input type="text" name="password" value="" size="50" />
12. <h5>Password Confirm</h5>
13. <input type="text" name="passconf" value="" size="50" />
14. <h5>Email Address</h5>
15. <input type="text" name="email" value="" size="50" />
16. <div><input type="submit" value="Submit" /></div>
17. </form>
18. </body>
19. </html>
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. <html>
2. <head>
3. <title>My Form</title>
4. </head>
5. <body>
6. <h3>Your form was successfully submitted!</h3>
7. <p><?php echo anchor('form', 'Try it again!'); ?></p>
8. </body>
9. </html>
Penjelasan :
 Baris ke-7, menampilkan data form yang ada pada view.

c. Membuat script pada Controller dengan nama form.php


1. <?php
2. class Form extends CI_Controller {
3. function index()
4. {
5. $this->load->helper(array('form', 'url'));
6. $this->load->library('form_validation');
7. $this->form_validation->set_rules('username', 'Username', 'required');
8. $this->form_validation->set_rules('password', 'Password', 'required');
9. $this->form_validation->set_rules('passconf', 'Password Confirmation',
'required');
10. $this->form_validation->set_rules('email', 'Email', 'required');
11. if ($this->form_validation->run() == FALSE)
12. {
13. $this->load->view('myform');
14. }
15. else
16. {

CodeIgniter Lanjut | 12
17. $this->load->view('formsuccess');
18. }
19. }
20. }
21. ?>

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. <html>
2. <head>
3. <title>CARIKODE</title>
4. </head>
5. <body>
6. <h1>CARIKODE</h1>
7. <form action="<?php echo base_url();?>index.php/kalkulator/hitung"
method="post">
8. <table>
9. <tr>
10. <td>Masukkan bilangan pertama</td>
11. <td><input type="text" name="bil1"></td>
12. </tr>
13. <tr>
14. <td>Masukkan bilangan kedua</td>
15. <td><input type="text" name="bil2"></td>
16. </tr>
17. <tr>
18. <td>Operasi</td>
19. <td>
20. <select name="operasi">
21. <option value="+">+</option>
22. <option value="-">-</option>
23. <option value="x">X</option>
24. <option value=":">:</option>
25. </select>
26. </td>
27. </tr>
28. <tr>
29. <td></td>
30. <td><input type="submit" value="Hitung"></td>
31. </tr>
32. </table>
33. </form>
34. </body>
35. </html>

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. <?php if ( ! defined('BASEPATH')) exit('No direct script access
allowed');
2. class Kalkulator extends CI_Controller{
3. function __construct(){
4. parent::__construct();
5. $this->load->helper(array('url','form'));
6. }
7. function index(){
8. $this->load->view('hitung');
9. }
10. function hitung(){
11. $bil1=$this->input->post('bil1');
12. $bil2=$this->input->post('bil2');
13. $operasi=$this->input->post('operasi');

CodeIgniter Lanjut | 15
14. if($operasi=="+"){
15. $hasil=$bil1+$bil2;
16. }else if($operasi=="-"){
17. $hasil=$bil1-$bil2;
18. }else if($operasi=="x"){
19. $hasil=$bil1*$bil2;
20. }else if($operasi==":"){
21. $hasil=$bil1/$bil2;
22. }
23. $data['bil1']=$bil1;
24. $data['bil2']=$bil2;
25. $data['operasi']=$operasi;
26. $data['hasil']=$hasil;
27. $this->load->view('v_hasil',$data);
28. }
29. }
30. ?>

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. <html>
2. <head>
3. <title>CARIKODE</title>
4. </head>
5. <body>
6. <h1>CARIKODE</h1>
7. <?php
8. echo " $bil1 "." $operasi "." $bil2 "." = "." $hasil ";
9. ?>
10. <br/>
11. <?php echo anchor('kalkulator/','kembali') ?>
12. </body>
13. </html>

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. <html>
2. <head>
3. <title>Upload Form</title>
4. </head>
5. <body>
6. <?php echo $error;?>
7. <?php echo form_open_multipart('upload/do_upload');?>
8. <input type="file" name="userfile" size="20" />
9. <br /><br />
10. <input type="submit" value="upload" />
11. </form>
12. </body>
13. </html>

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. <html>
2. <head>
3. <title>Upload Form</title>
4. </head>
5. <body>
6. <h3>Your file was successfully uploaded!</h3>
7. <ul>
8. <?php foreach ($upload_data as $item => $value):?>
9. <li><?php echo $item;?>: <?php echo $value;?></li>
10. <?php endforeach; ?>
11. </ul>
12. <p><?php echo anchor('upload', 'Upload Another File!'); ?></p>
13. </body>
14. </html>

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. <?php
2. class Upload extends CI_Controller {
3. public function __construct()
4. {
5. parent::__construct();
6. $this->load->helper(array('form', 'url'));
7. }
8. public function index()
9. {
10. $this->load->view('upload_form', array('error' => ' ' ));
11. }
12. public function do_upload()
13. {
14. $config['upload_path'] = './uploads/';
15. $config['allowed_types'] = 'gif|jpg|png';
16. $config['max_size'] = 100;

CodeIgniter Lanjut | 18
17. $config['max_width'] = 1024;
18. $config['max_height'] = 768;
19. $this->load->library('upload', $config);
20. if ( ! $this->upload->do_upload())
21. {
22. $error = array('error' => $this->upload->display_errors());
23. $this->load->view('upload_form', $error);
24. }
25. else
26. {
27. $data = array('upload_data' => $this->upload->data());
28. $this->load->view('upload_success', $data);
29. }
30. }
31. }
32. ?>

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.

CodeIgniter Lanjut | 19

Anda mungkin juga menyukai