bab 9 framework : codeigniter lanjut - sbiindo.com · framework : codeigniter lanjut a. tujuan 1....

19
CodeIgniter Lanjut | 1 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

Upload: vukhue

Post on 02-Mar-2019

250 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 1

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

Page 2: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 2

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;

Page 3: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 3

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. [email protected]

5. ”,”Akhmad Sofwan”);

6. $this->email->to(“

7. [email protected]

8. ”);

9. $this->email->cc(“

10. [email protected]

11. ”);

12. $this->email->bcc(“

13. [email protected]

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.

Page 4: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 4

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.

Page 5: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 5

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.

Page 6: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 6

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.

Page 7: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 7

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.

Page 8: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 8

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’.

Page 9: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 9

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

Page 10: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 10

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. [email protected] 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.

Page 11: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 11

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.

Page 12: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 12

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. {

Page 13: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 13

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:

Page 14: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 14

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,

Page 15: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 15

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');

Page 16: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 16

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

Page 17: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 17

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

Page 18: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 18

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;

Page 19: BAB 9 Framework : CodeIgniter Lanjut - sbiindo.com · Framework : CodeIgniter Lanjut A. TUJUAN 1. Memahami Framework PHP tingkat lanjut. 2. Mempelajari dan Mengimplementasikan Library,

CodeIgniter Lanjut | 19

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.