Anda di halaman 1dari 62

Framework Codeigniter

Sebuah Panduan dan Best Practice

Framework CodeIgniter
Sebuah Panduan dan Best Practice

Kata Pengantar
Codeigniter merupakan salah satu framework terbaik yang ada saat ini. Banyak website-website besar telah menggunakan codeigniter sabagai framwork utama dalam membangun website maupun aplikasi mereka. Selain kemudahkan dalam menggunakan, codeigniter juga cepat, mudah di kustomisasi dan integrasikan dengan library atau framework lainnya. Framework ini juga sempat menjadi perhatian pembuat php – Rasmus Lerdorf

“I like CodeIgniter because it is faster, lighter and the least like a framework.” - Rasmus Lerdorf
Dalam buku ini akan dibahas mengenai cara-cara penggunaan Codeigniter, mulai dari pengenalan tentang controller, model dan view, penggunaan codeigniter dan form, penggunaan database di codeigniter, studi-studi kasus hingga penggunaanya dengan library-library lain seperti jQuery dan jQuery UI. Akhir kata penulis mnyadari bahawa penulisan dalam buku ini masih jauh dari sempurna. Oleh karena itu pertanyaan, kritik dan saran dapat di emailkan ke xibnoe@gmail.com atau dapat mengunjugi blog penulis di http://www.koder.web.id

Pekanbary, Juni 2011 Ibnu Daqiqil Id, M.Ti

............................................................................................................................................................................................................................ 13 Mempersiapkan Web Server ............................................................................. 10 Apa itu Object .......................................................................................................................................................................... 9 Sejarah PHP ................................................... 7 PHP & Object Oriented Programming . 13 Instalasi CodeIgniter .......................................... 2 Apa itu Codeigniter?.......................................................................................................... 1 Kenapa Menggunakan Framework? ........................................................................................ 30 Helper CodeIgniter ........................................................................................................................................ 3 CodeIgniter 2.................................................. 21 Apaan sih Controller?. 21 Controller dan View ........................................................................................... 9 Menggunakan PHP ............................................................................................................................................................................... 29 Library CodeIgniter.................................................... 13 Konfigurasi CodeIgniter ............... 26 CodeIgniter Helper dan Library ............................................................................................................... 33 Membuat Library Sendiri ............ 10 Inheritance ................................. 24 Mempercantik URL Codeigniter .................................................................................................................. 29 Menggunakan Library dan Helper di CodeIgniter ..........................................................0 ................................ 9 Apasih PHP?..... 18 Hello CodeIgniter ... 5 Jangan Belajar CodeIgniter!! ......................................................................................................................................... 34 ...................................................................................................................................................................................... 12 Installasi dan Konfigurasi CodeIgniter ..................................................................................................................................................0 ............................... 16 Kesepakatan Coding (Coding Standart) CodeIgniter ........................................................................................................................................................................................................................................................................................... 3 Apa sih Kelebihan CodeIgniter? .........................................DAFTAR ISI Perkenalan CodeIgniter 2.......................................................................... 10 Apa itu Class? ........................................................................................................................................................ 4 Apa itu MVC? ............................................................................................................................................................................................................................................................................................................................................... 9 Apa sih Object Oriented Programming (OOP)? ........................................................................................

...................................................... CodeIgniter dan Ajax ................ Codeigniter dan Openflash Chart ....................... 34 Kasus 1............................................... Image Gallery Sederhana .............................................. 92 Konfigurasi Guestbook .......................................................... 111 Kasus 10.............. 37 Menggunakan Validasi Form............. 107 Kasus 9....................................................... 92 Membuat Table Guestbook ................................. Sistem Authentikasi ........................................................................Menggunakan Library External.............................................................................................. Sistem Templating ........................................................ 100 Kasus 8..................................................................................... 72 Kasus 4.................................................................................................................. CRUD dan Pagination Database ....................................................................................................................................................................................................................................................... 78 Kasus 5....................................................................................................................................................................................................................... Penanganan dan Validasi Form ..... 51 CodeIgniter Model ......................... 72 Native CodeIgniter Tempating ........ 92 Membuat Model Guestbook .................................................... 116 ...................... 87 Kasus 6........................................................................... 51 Connect ke Database............................................................................ Membuat Shopping Cart Sederhana .................................................................................................................................................. 54 Query Return Value .......... Buku Tamu menggunakan Codeigniter ................................................................ Codeigniter dan jQuery AutoComplete .......................................................... 37 Penanganan Form ............................... 93 Membuat Controller Dan View .................................................... 45 CodeIgniter & Database ...................................................................................................... 55 Menggunakan Active Record .................. 57 Kasus 2..................... 54 Melakukan Query pada Database ........................................................................ 94 Kasus 7................................................................................................................................................................................................... 61 Kasus 3......................................................................................

mengubah batu menjadi porselen dan lain-lain. sehingga kita dapat menggunakanya kembali di proyek-proyek lainnya. jadi Anda hanya fokus ke proses bisnis yang akan dikerjakan. selain itu juga bisa berbagi ilmu sehingga dapat meningkatkan kemampuan pemrograman kita. memotong kayu menjadi papan. Apa sih CodeIgniter? CodeIgniter adalah sebuah framework PHP yang dapat mempercepat pengembang untuk membuat sebuah aplikasi web. Hampir semua milis dan forum PHP banyak membahas masalah CodeIgniter. Jadi kita dapat meningkatkan kualitas kode kita.com.0 Akhir-akhir ini CodeIgniter menjadi sebuah framework yang hangat dibicarakan di Indonesia.www. Ibarat ingin membangun rumah maka Anda tidak perlu membuat semen. Gambar1. • Bantuan komunitas . okezone. • Reuse of code – Dengan menggunakan framework maka perkerjaan kita akan memiliki struktur yang baku.id – Kumpulan tutorial komputer Chapter 1 Perkenalan CodeIgniter 2. Website-website indonesia yang menggunakan Codeigniter Jadi keuntungan yang didapat dalam penggunaan framework adalah : • Menghemat Waktu Pengembangan – Dengan struktur dan library yang telah disediakan oleh framework maka tidak perlu lagi memikirkan hal-hal tersebut.Ada komunitas-komunitas yang siap membantu jika ada permasalahan.web.koder.com. bejubel. dan lain-lain) yang telah menggunakan CodeIgniter dalam produk mereka.com. Catatan: Framework adalah sebuah struktur konseptual dasar yang digunakan untuk memecahkan sebuah permasalahan atau isu-isu kompleks 1 .com. Ada banyak library dan helper yang berguna didalamnya dan tentunya mempermudah proses development. • Kumpulan best practice – sebuah framework merupakan kumpulan best practice yang sudah teruji. urbanesia. Terlebih lagi banyak perusahan-perusahan ternama di Indonesia (Kompas. Anda cukup memilih komponen-komponen tersebut lalu dikombinasikan menjadi rumah yang indah.

id – Kumpulan tutorial komputer Sebelum mendalami CodeIgniter lebih jauh. Dengan framework kita akan “dipaksa” untuk patuh kepada sebuah kesepakatan. framework bukanlah peralatan/tools untuk memecahkan sebuah masalah. Tanpa disadari ketika kita membangun sebuah aplikasi yang banyak melibatkan banyak fungsionalitas yang telah dibangun itu ternyata sama atau berulang-ulang.koder. bahkan isu-isu kompleks yang ada. Kita tidak perlu membuat sesuatu fungsionalitas yang bersifat umum. Framework adalah sebuah struktur konseptual dasar yang digunakan untuk memecahkan sebuah permasalahan. sebaiknya dipahami terlebih dahulu apa itu framework. tetapi sebagai ALAT BANTU. dengan menggunakan framework tertentu kita juga dapat “menyeragamkan” cara kita mengimplementasikan kode program. Sebuah framework telah berisi sekumpulan arsitektur/konsep-konsep yang dapat mempermudah dalam pemecahan sebuah permasalahan. Best Practice adalah Kumpulan-kumpulan action yang telah teruji oleh para expert Design Pattern adalah Teknik-teknik yang menjadi best practise 4 Common Function adalah fungsi-fungsi atau library yang telah umum digunakan dalam pengembangan sebuah sistem 2 . dan common function (4).www. Didalam sebuah framework biasanya sudah tersedia struktur aplikasi yang baik. Kenapa Menggunakan Framework? Salah satu alasan mengapa orang menggunakan framework terutama dalam membangun sebuah aplikasi adalah kemudahan yang ditawarkan. Dengan menggunakan framework kita dapat langsung fokus kepada business process yang dihadapi tanpa harus berfikir banyak masalah struktur aplikasi. Selain kemudahan dan kecepatan dalam membangun sistem. Perlu diingat. standar coding dan lain-lain. Dengan memanfaatkan design pattern dan common function yang telah ada di dalam framework maka hal tersebut dapat mempercepat proses pengembangan aplikasi.web. Selain itu juga akan memudahkan pengembang lain untuk mempelajari dan mengubah aplikasi yang telah dibuat apabila kode yang dihasilkan konsisten dan patuh pada sebuah aturan tertentu. standard coding (1). Dengan pengelempokkan itulah kita dapat mempercepat pengembangan aplikasi. best practice (2) dan design pattern (3). Framework hanya menjadi sebuah konstruksi dasar yang menopang sebuah konsep atau sistem yang bersifat “essential support” (penting tapi bukan komponen utama). 1Standar 2 3 Coding adalah sebuah standar yang harus diikuti oleh programmer untuk menulis code.

Mudah dimodifikasi dan beradaptasi. CodeIgniter sendiri dibangun menggunakan konsep Model-View-Controller development pattern. CodeIgniter sangat mudah dipelajari.www. CodeIgniter senditi merupakan salah satu framwoerk tercepat dibandingkan dengan framework lainnya. pembuat php Rasmus Lerdorf mengatakan dia menyukai codeigniter karena dia lebih ringan dan cepat dibandingkan framework lainnya ( "because it is faster. Sangat mudah memodifikasi behavior framework ini. Codeigniter menyediakan berbagai macam library yang dapat mempermudah dalam pengembangan. Kemudahan. Pada acara frOSCon (August 2008).web. lighter and the least like a framework. Selain itu CodeIgniter juga memiliki fitur-fitur lainya yang sangat bermanfaat. Dengan menggunakan pattern MVC ini. CodeIgniter diperkenalkan kepada publick pada tanggal 28 februari 2006. antara lain: • • • Menggunakan Pattern MVC. Semua informasi yang anda butuhkan tentang codeigniter ada disana. terstruktur. Jika kita membandingkan antara CodeIgniter dengan framework-framework lainnya maka beberapa poin yang membuat CodeIgniter unggul adalah: • • Kecepatan.") Apa sih Kelebihan CodeIgniter? CodeIgniter sangat ringan. struktur kode yang dihasilkan menjadi lebih terstruktur dan memiliki standar yang jelas. Pada CodeIgniter diminimalisasi penggunaan $_GET dan di gantikan dengan URI. membuat library dan helper.id – Kumpulan tutorial komputer Apa itu Codeigniter? CodeIgniter adalah sebuah web application framework yang bersifat open source digunakan untuk membangun aplikasi php dinamis. mudah dipelajari. Berdasarkan hasil benchmark CodeIgniter merupakan salah satu framework PHP tercepat yang ada saat ini. Bahkan tanpa buku ini pun CodeIgniter sebenarnya telah menyediakan sebuah panduan yang lengkap mengenai CodeIgniter. URL Friendly. URL yang dihasilkan sangat url friendly. Tidak membutuhkan server requirement yang macam-macam serta mudah mengadopsi library lainya.koder. Tujuan utama pengembangan Codeigniter adalah untuk membantu developer untuk mengerjakan aplikasi lebih cepat daripada menulis semua code dari awal. • Dokumentasi lengkap dan jelas. Kemudahan dalam mempelajari. • Learning Curve Rendah. dokumentasi lengkap dan dukungan yang luar biasa dari forum CodeIgniter. memodifikasi serta meng-integrasikan Library dan helper. Dalam pemilihan framework hal ini sangat penting diperhatikan karena kita juga harus memperhatikan skill dari seluruh 3 .

id – Kumpulan tutorial komputer anggota team.web. Pluggin mirip dengan helper. CodeIgniter 2.0 baru saja diluncurkan pada awal tahun 2011. 4 .www. Untuk meningkatkan kualitas aplikasi maka library cache baik menggunakan apc. PHP4 sudah tidak didukung oleh tim pengembang PHP.0 CodeIgniter versi 2. Support query string dan command-line execution. Penambahan library driver. Pada versi terbaru ini.0. memcached maupun file base. Penambahan fitur package. Fitur ini nyaris tidak pernah digunakan dan implementasinya masih kurang bagus. Ini adalah library khusus dimana kita dapat membuat driver dari library yang telah kita buat. Menghilangkan fitur scaffolding. Untuk mempermudah distribusi resource dalam sebuah folder. karena memberikan dukungan untuk PHP4 membuat CodeIgniter semakin ketinggalan dari segi fitur. • • • • • • Menghilangkan fitur pluggin. Perubahan ini menjadikan CodeIgniter jauh lebih kaya dan matang dibandingkan framework lainnya. Penambahan library cache. Perubahan itu diantaranya adalah: • Menghilangkan dukungan terhadap PHP4. Hal ini menjawab kesulitan-kesullitan yang dialami pada versi sebelumnya. bertujuan untuk menghilangkan kerancuan ini maka fitur ini dihilangkan pada CodeIgniter 2.koder. terdapat banyak perubahan mendasar dari CodeIgniter daripada versi sebelumnya. Jika sebuah framework sangat sulit dipelajari maka akan beresiko untuk memperlambat team development anda.

Model juga merepresentasikan struktur data dari aplikasi yang bisa berupa basis data maupun data lain. Di dalam Controller inilah terdapat class-class dan fungsi-fungsi yang memproses permintaan dari View ke dalam struktur data di dalam Model. Biasanya di dalam model akan berisi class dan fungsi untuk mengambil. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basisdata. MVC adalah singkatan dari Model View Controller. file XML maupun webservice.web. Kita harus menghindari adanya logika atau pemrosesan data di view. Sebuah aplikasi web biasanya menggunakan basis data dalam menyimpan data. Bisa berupa halaman web. Adapun komponen-komponen MVC antara lain: 1. View View berhubungan dengan segala sesuatu yang akan ditampilkan ke end-user. rss. Model Model berhubungan dengan data dan interaksi ke database atau webservice. data dan proses. javascript dan lain-lain. melakukan update dan menghapus data website. View dapat dikatakan sebagai halaman website yang dibuat dengan menggunakan HTML dan bantuan CSS atau JavaScript. menyediakan penanganan kesalahan/error. 5 . misalnya dalam bentuk file teks. Controller juga tidak boleh berisi kode untuk mengakses basis data karena tugas mengakses data telah diserahkan kepada model. data logic (penyimpanan data) dan presentation logic (antarmuka aplikasi) atau secara sederhana adalah memisahkan antara desain. mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view. memanggil model untuk melakukan akses ke basis data.id – Kumpulan tutorial komputer Apa itu MVC? MVC adalah konsep dasar yang harus diketahui sebelum mengenal CodeIgniter . Controller: Controller bertindak sebagai penghubung data dan view. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller 3. 2. Di dalam view hanya berisi variabel-variabel yang berisi data yang siap ditampilkan.koder.www. maka pada bagian Model biasanya akan berhubungan dengan perintah-perintah query SQL. MVC sebenarnya adalah sebuah pattern/teknik pemogramanan yang memisahkan bisnis logic (alur pikir).

Gambar 3. Query.. Data Fetch. Query. Data access.. Model View Controller PHP Logic.id – Kumpulan tutorial komputer PHP Logic.koder. tetapi ketika aplikasi tersebut menjadi kompleks/rumit maka kita akan sulit memeliharanya jika tidak didukung oleh arsitektur software yang bagus.web. Class. Flow CodeIgniter Jika dipetakan. Untuk data maka controller akan meminta ke Model dan untuk UI/template akan meminta ke View. Query. Controller-lah yang akan menerima dan membalas semua request dari browser. Jadi “Otak” dari aplikasi ada di controller. Browser berinteraksi melalui controller. Gambar 2. Pada eksekusi PHP. Perbandingan PHP Biasa dan CodeIgniter Perhatikan gambar 2. function. Class. Ketika 6 . HTML PHP Logic. Untuk kasus sederhana cara tersebut masih baik-baik saja. Class. “Muka” aplikasi ada di view dan “Data” ada di model. function. alur kerja CodeIgniter akan tampak seperti gambar 3. Data Fetch. biasanya kita akan me-“load” semua library dan fungsi yang dibutuhkan kemudian digabungkan ke dalam HTML untuk di eksekusi oleh PHP. Hal tersebut bisa terjadi disebabkan oleh code yang sama namun dibuat berulangulang .. function.www. kode tidak konsisten dan lain-lain.

Setelah itu barulah si controller menggunakan model untuk mengakses data dan View untuk menampilkan data tersebut.web. Setidaknya Anda telah memahami konsep OOP pada PHP untuk mulai belajar CodeIgniter.www. Akan lebih bagus lagi jika Anda sudah familiar dengan design pattern. Sebaiknya ketika Anda mempelajari CodeIgniter Anda sudah memahami PHP dan Object Oriented Programming. bukan dalam menguasi konsep CodeIgniter tetapi masih berkutat seputar PHP.id – Kumpulan tutorial komputer browser meminta sebuah halaman web maka router akan mencarikan controller mana yang harus menangani request tersebut. 7 . kebanyakan mereka yang belajar CodeIgniter tanpa memiliki dasar PHP yang baik akan mengalami banyak kesulitan.koder. Jangan Belajar CodeIgniter!! Jangan coba-coba belajar CodeIgniter ketika Anda belum mengenal PHP. Berdasarkan pengalaman di forum dan milis.

.

9 . Pada saat itu PHP sudah mendukung multiflatform (bukan hanya linux).5 juta domain.id – Kumpulan tutorial komputer Chapter 2 PHP & Object Oriented Programming Syarat utama untuk menguasai CodeIgniter adalah memahami PHP dan konsep Object Oriented Programming.mMenurut survei yang dilakukan oleh http://netcraft. Ia menamai engine parser tersebut dengan nama PHP/FI. para pengembang di dunia mencoba mengembangkan PHP/FI. SNMP (Simple Network Management Protocol) and IMAP (Internet Message Access Protocol).www. Misalnya kita me-request sebuah file PHP http://www. iPlanet. Sejarah PHP Pada tahun 1994. Dengan semangat opensource. Xintami.org. Pada bab ini kita akan membahas sedikit mengenai PHP dan OOP. dan lain-lain. webserver. Apasih PHP? PHP (PHP: Hypertext Preprocessor) adalah sebuah bahasa pemogramaman di sisi server. Pada saat itu engine digunakan untuk pembuatan buku tamu. counter dan beberapa homepage. Ketika Anda mengakses sebuah URL.koder. Setelah web server terinstal barulah kita install PHP sebagai modul. lebih dari 500.koder.web/index. PHP parser yang menjalankan kode-kode PHP yang terdapat pada file index. maka web browser akan melakukan request ke sebuah web server. Sampai pada tahun 1997.web. Rasmus Lerdorf mengembangkan sebuah perkakas yang digunakan sebagai engine parsing sebagai penerjemah/interpreter beberapa macro. maka webserver akan melakukan parsing terhadap file PHP tersebut.php . IIS. PHP 3. seperti yang sudah dibahas sebelumnya bahwa PHP merupakan bahasa pemrograman disisi server.0 dirilis. sejumlah database. menampilkan content yang dinamis dan lainlain. antara lain Apache. Banyak sekali jenis web server yang dapat digunakan. Omnni.php lalu mengirimkan hasilnya ke web browser. Pada juni 1998. hal pertama yang harus disiapkan adalah sebuah web server. saat ini pengguna PHP sudah mencapat 9. Menggunakan PHP Ketika kita ingin mempelajari PHP.000 website di dunia menggunakan PHP/FI untuk menyelesaikan masalah seperti konkesi kedatabase.

FOX Server. Obyek memiliki 2 elemen utama: 1. dan lain-lain. APACHE. Dalam konsep OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai obyek. dimanipulasi. Obyek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. memproses data.web. Sebelum menginstall PHP. dan dibuang/di-destroy ketika eksekusi. Attributes atau Properties: Yaitu nilai-nilai yang tersimpan dalam objek tersebut dan secara langsung maupun tidak langsung menentukan karakteristik dari obyek tersebut. dan MySQL. terlebih dahulu harus meng-install web server.koder. Apa sih Object Oriented Programming (OOP)? Object Oriented Programming (OOP) merupakan paradigma pemrograman yang berorientasikan kepada obyek. PHPTRIAD. Contoh Software-nya adalah XAMPP. method umum pada semua obyek.net/downloads.php) atau website lain yang mempunyai salinan program PHP untuk di-download. dan mengirim pesan ke obyek lainnya. Entitas tersebut dapat berupa variabel biasa. 10 .php. Perhatikan contoh class di berikut ini. Adapun class merupakan definisi statik dari himpunan obyek yang mungkin diciptakan sebagai instantiasi dari class. 2.php. sebuah obyek adalah kumpulan dari variabel dan fungsi yang dibungkus menjadi satu entitas. Anda dapat meletakkan source code PHP ke dalam folder yang akan di publish oleh web server dengan ekstensi file . Semua data dan fungsi pada paradigma ini dibungkus dalam kelas-kelas atau obyek-obyek. Setelah PHP terinstall. Jika tidak ingin direpotkan oleh proses konfigurasi dan implementasi webserver. setiap obyek dapat menerima pesan. Obyek adalah elemen pada saat run-time yang akan diciptakan. Konsep dari OOP sendiri adalah semua pemecahan masalah dibagi ke dalam obyek. Lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang mendefinisikan variabel. Sebuah obyek diciptakan melalui sebuah kelas atau dengan istilah instance of class. Method: Yaitu suatu aksi yang akan dijalankan atau dikerjakan oleh obyek tersebut. Apa itu Object Sederhananya.id – Kumpulan tutorial komputer PHP dapat diperoleh secara gratis dengan cara men-download dari situs resmi PHP (http://www. Anda dapat menggunakan software yang sudah terpaket menjadi satu antara PHP. OOP diciptakan untuk mengatasi keterbatasan pada bahasa pemrograman tradisional. Apa itu Class? Class dapat didefinisikan sebagai struktur data atau cetak biru dari suatu obyek. Bandingkan dengan logika pemrograman terstruktur.www.

<br />'. Perhatikan contoh berikut. Kode-kode di dalam sebuah kelas terbagi menjadi dua kelompok. $saya_adalah_object->show_harga(). Pada contoh di atas kita membuat sebuah kelas bernama “Kendaraan”. Sedangkan method adalah fungsi yang ada di dalam kelas.$this->harga. $saya_adalah_object->set_harga(100000). } public function set_harga($harga){ $this->harga = $harga. private $jumlah_roda. Di dalam kurung kurawal kita menuliskan kode-kode (berisi property dan method) supaya kelas tersebut bekerja seperti yang diinginkan. } public function show_harga(){ echo 'harga kendaraan : rp.www. pertama kita menggunakan kata kunci class yang diikuti oleh nama kelas.id – Kumpulan tutorial komputer <?php /** Contoh kelas **/ class Kendaraan{} /*** end of class ***/ ?> Contoh diatas memperlihatkan bagaimana mendefinisikan sebuah class dan meng-create sebuah instance dari class. public $harga. public $merk. Sederhananya property itu bisa disebut sebagai variabel di dalam kelas.web. } public function jalan(){ echo 'brrroooooom!!!'. Dalam pembuatan kelas. } } /*** end of class ***/ /** contoh object **/ #mengcreate object $saya_adalah_object dari class kendaraan $saya_adalah_object= new kendaraan. <br />'.'. 11 .'. <?php /** contoh kelas **/ class kendaraan{ /*** property class ***/ private $warna. private $jumlah_pintu. yaitu property dan method. /*** method class ***/ public function __construct(){ echo 'ini adalah object kendaraan. kemudian diakhiri dengan kurung kurawal. Property adalah suatu wadah penyimpanan di dalam kelas yang bisa menampung informasi.koder.

Private berarti method atau property yang ada di dalam suatu kelas hanya bisa diakses di dalam kelasnya.web. 12 . Pada hubungan inheritance. Inheritance Inheritance atau dalam bahasa Indonesianya disebut sebagai pewarisan adalah suatu cara untuk membuat sebuah kelas yang baru dengan menggunakan kelas lain yang sebelumnya sudah dibuat. } function Hallo() { echo "Halo. maka semua atribut dan method class dari induk akan dibawa (kecuali yang bersifat private). $test->Hallo(). } } class Anak extends Bapak { function Hai(){ Echo “hai dari kelas anak”. anak juga dapat menambah fungsi baru yaitu fungsi Hai. saya $this->nama <br>".id – Kumpulan tutorial komputer $saya_adalah_object->jalan(). Jika kita perhatikan di kelas anak sama sekali tidak memiliki fungsi hello. Adapun keuntungan yang didapat dari inheritance menambah fitur baru pada kelas anak dan mengubah atau mengganti fitur yang diwarisi dari kelas parent Adapun contoh kelas yang menggunakan konsep inheritance adalah <?php /* inheritance.www. Setiap property dan method memiliki identifier.php */ class Bapak { private $nama ="Bapak". Selain menggunakan fungsi bapak. Identifier-lah yang mengatur bagaimana property dan method digunakan.koder. tetapi karena parentnya memiliki fungsi tersebut maka si anak dapat menggunakan fungsi tersebut. } } $test = new Anak("Anak dari Bapak"). private dan protected. Identifier tersebut adalah public. function Bapak($n) { $this->nama = $n. Sedangkan pada method atau property yang bersifat public berarti method atau property tersebut bisa diakses di dalam dan di luar kelas. Oleh karena mewarisi. secara intrinsik menjadi bagian dari class anak. sebuah class turunan mewarisi kelas leluhur (parent class).

sebuah web server yang digunakan pada sebagian server yang ada di internet.com/ (disediakan pula di dalam CD penyerta buku). yaitu folder htdocs didalam direktori C:\\apachefriends\xampp bagi yang menggunakan XAMPP di Windows atau /var/www/html bagi yang menggunakan linux (semua tergantung dimana anda menginstall dan mengkonfigurasi webserver). Sebelum melakukan instalasi yang perlu dilakukan pertama kali adalah mendapatkan kode sumber dari CodeIgniter itu sendiri yang dapat didownload di http://www. yaitu MySQL. baik Windows. salah satu web server yang sangat terkenal dan juga bersifat bebas adalah web server Apache. Selanjutnya letakkan folder hasil ekstrak tadi di DocumentRoot web server. CodeIgniter juga bisa dijalankan di semua sistem operasi yang bisa menjalankan aplikasi-aplikasi di atas. dan SQLite.www. Installasi CodeIgniter sangatlah mudah.web.CodeIgniter. BSD dan yang lainnya. Dengan menggunakan konfigurasi default saja maka CodeIgniter sudah dapat berjalan di web server Anda. Berbeda dengan instalasi software pada umumnya. MySQLi. Untuk website yang melibatkan basis data sebagai tempat penyimpanan datanya maka tidak perlu bingung karena CodeIgniter juga mendukung berbagai jenis server basis data. 13 . di komputer harus terinstall aplikasi web server yang mendukung PHP. Linux. Hal-hal yang harus dipersiapkan dalam menginstall CodeIgniter adalah Mempersiapkan Web Server Seperti yang kita tahu bahwa PHP adalah bahasa pemrograman website yang berjalan disisi server oleh karena itu untuk dapat menjalankan website yang dibuat dengan menggunakan PHP. Instalasi CodeIgniter Instalasi CodeIgniter sangat mudah.id – Kumpulan tutorial komputer Chapter 3 Installasi dan Konfigurasi CodeIgniter Agar dapat menggunakan CodeIgniter. Oracle. Meskipun namanya instalasi tetapi karena CodeIgniter adalah aplikasi berbasis website maka sebenarnya yang perlu dilakukan adalah meng-copy folder aplikasi CodeIgniter ke dalam folder htdocs atau DocumentRoot dari web server yang telah diinstall sebelumnya. Anda harus menginstall dan melakukan konfigurasi terhadap CodeIgniter terlebih dahulu.koder. MS SQL. Banyak sekali aplikasi web server yang beredar. PostgreeSQL.

tempat menyimpan semua library buatan kita sendiri. Gambar 4. router dan autoload aplikasi.www. Application adalah tempat kita meletakkan code yang akan dibuat (bewarna merah dan hijau sedangkan sistem/core CodeIgniter yang bewarna ungu) . yaitu application dan sistem/core CodeIgniter.tempat menyimpan hook yang digunakan untuk mengubah alur fungsi dari core CI.tempat menyimpan semua file konfigurasi yang ada di dalam aplikasi. Folder helpers . mulai dari database. Folder libraries . Folder controllers .tempat menyimpan semua template error aplikasi. Adapun struktur utama dari CodeIgniter terbagi menjadi dua bagian.tempat menyimpan bahasa-bahasa yang akan di gunakan. Struktur Direktori CodeIgniter Adapun susunan folder CodeIgniter secara default adalah: • Folder application: disinilah aplikasi yang akan kita bangun diletakkan.tempat menyimpan semua file view aplikasi. 14 . Folder models .tempat menyimpan semua model.tempat menyimpan semua file controller.tempat menyimpan helper-helper yang bukan berasal dari CI.koder. Folder views . Folder errors . Folder hooks . Folder language .web.id – Kumpulan tutorial komputer Dengan menggunakan konfigurasi default saja maka CodeIgniter sudah dapat berjalan di web server Anda. Folder sistem berisi library-library dan helper bawaan CodeIgniter. Folder config .

• Folder user_guide berisi userguide/manual penggunaan CI.tempat menyimpan semua file yang berfungsi sebagai scaffolding . Folder database . Folder cache . Folder fonts . Tampilan browser ketika sukses menginstall Codeigniter Adapun checklist yang harus dilakukan untuk menjalankan CodeIgniter secara default adalah • • Pastikan Apache dan PHP telah terinstall dan berjalan di komputer. Folder language .tempat menyimpan semua plugin core CI.tempat menyimpan semua logs generated oleh CI. Folder helpers . Gambar 5.www.tempat menyimpan semua driver database drivers dan class yang akan digunakan.tempat menyimpan semua library core CI Folder logs . Folder libaries . Folder scaffolding . Pastikan peletakkan source code CodeIgniter di folder/direktory web apache (biasanya htdocs) dan memiliki permission setidak-tidaknya read only atau kode 644.php file yang akan menghandle semua request yang dilakukan oleh client. 15 .web.tempat menyimpan semua semua file internals CI. Folder plugin .tempat menyimpan semua cache yang dibuat caching library.id – Kumpulan tutorial komputer • Folder system menyimpan semua file baik itu file aplikasi yang dibuat maupun core frameworknya. • File index. artinya CodeIgniter telah sukses berjalan di aplikasi Anda. Folder codeigniter .tempat menyimpan semua font yang digunakan image manipulation library. Setelah meletakkan CodeIgniter ke dalam folder htdocs maka akan didapatkan tampilan seperti di bawah ini.tempat menyimpan semua helper core CI.tempat menyimpan semua language core CI.koder.

"". oleh karena itu secara default digunakan pilihan auto.contoh. Lebih lanjut akan dibahas dibagian library. str_replace(basename($_SERVER['SCRIPT_NAME']). REQUEST_URI dan ORIG_PATH_INFO. 16 .id – Kumpulan tutorial komputer Konfigurasi CodeIgniter Walaupun CodeIgniter dapat berjalan dengan konfigurasi default.php/page.php. dengan menambahkan url_suffix berisi “html” maka url tadi dapat juga diakses melalui http://localhost/index. bahkan tidak semua web server mendukung semua cara tersebut. suffix.web. maka controller tersebut akan diakses melalui http://localhost/index.com/app_ci maka pada konfigurasi ini harus diisikan: $config['base_url']="http://www.com/app_ci/". setidaknya pada bagian base_url dan router. serta metode yang digunakan URI dan lain-lain.Konfigurasi ini berisi file yang menjadi frontcontroller. o $config[‘index_php’] . o $config['uri_protocol'] . frontcontroller. QUERY_STRING. Contoh: $config['base_url']="http://".contoh. Masing-masing cara mempunyai kelebihan dan kekurangan masing-masing. Jika menggunakan .php berisi konfigurasi secara umum mengenai CodeIgniter. o $config['url_suffix'] . Tetapi jika aplikasi membutuhkan sesuatu yang lebih custom maka pemilihan metode URI secara langsung akan lebih baik.$_SERVER['HTTP_HOST'].koder. Pada file konfigurasi config. Jika menggunakan helper url maka konfigurasi ini harus di-set dengan benar. Contoh Anda mempunyai sebuah controller page. File konfigurasi terletak dalam folder application/config. Adapun konfigurasi-konfigurasi yang perlu diperhatikan adalah : o $config[‘base_url’] . Tetapi jika ingin menggunakan base url yang lebih fleksibel maka dapat menggantinya dengan variabel server. CodeIgniter dapat menangkap URI yang di berikan melalui 4 cara yaitu PATH_INFO.htaccess untuk mempercantik url maka isi variabel ini harus dikosongkan. Konfigurasi ini berhubungan dengan base_url.Konfigurasi ini berisi alamat url sebuah aplikasi. Pengaturan base_url dan router sangat berguna ketika proses pengembangan aplikasi yang banyak menggunakan helper dan library. $_SERVER['SCRIPT_NAME']). Contoh: aplikasi Anda akan diakses dengan menggunakan domain www. seperti peletakkan baseurl. Adapun file-file yang terdapat dalam direktori tersebut dan sering digunakan antara lain: • Config.Konfigurasi ini bertujuan untuk menentukan bagaimana library URI bekerja.www.Konfigurasi ini bertujuan untuk menambahkan akhiran pada url. tetapi untuk sebuah aplikasi yang nyata kita harus tetap melakukan konfigurasi.html.php/page.

www.koder.web.id – Kumpulan tutorial komputer o $config['language'] - Secara default CodeIgniter sudah mendukung banyak bahasa/multy language. Kita dapat mengubah pesan-pesan yang ada di dalam CodeIgniter dengan bahasa yang kita kehendaki. Untuk mengubah bahasa tersebut cukup dengan mendownload paket bahasa yang diinginkan lalu uraikan di dalam direktori system/languages/[nama_lang] lalu Anda tinggal mengubah nama_lang di config. o $config['enable_hooks'] - Konfigurasi ini bertujuan mengaktifkan/menonaktifkan hook pada CodeIgniter. Hook dapat dikatakan event-event yang terjadi pada CodeIgniter, dimana kita bisa meletakkan fungsi di dalamnya. Hook akan bermanfaat sekali ketika Anda ingin mengubah perilaku CodeIgniter maupun untuk logging event. Contoh: Anda ingin mengubah urutan loading library dimana Anda sudah meng-extend library router untuk menggunakan database untuk aturan routing-nya. Artinya Anda harus meload library database sebelum library loader. Hal tersebut bisa dilakukan melalui hook. o $config['subclass_prefix'] = 'MY_'. Jika kita ingin mengubah/mengextend library CodeIgniter maka library tersebut harus memliki prefik yang sama dengan konfigurasi ini. o $config['permitted_uri_chars']. Konfigurasi ini bertujuan untuk keamanan CodeIgniter. Konfigurasi ini menentukan karakter apa saja yang bolah digunakan di dalam uri. o $config['log_threshold']. Konfigurasi ini menentukan bagaimana sistem logging

CodeIgniter bekerja. Sistem logging ini sangat membantu dalam proses pengembangan terutama ketika debugging. Jika di set 0 maka tidak ada proses logging error di CodeIgniter. Jika di set 1 maka yang dicatat hanyalah pesan-pesan kesalahan yang termasuk kesalahan PHP. Jika di set 2 maka akan menampilkan semua pesan debug dan pesan kesalahan CodeIgniter dan PHP. Jika di set 3 maka logging-loging yang berisi informasi seperti sebuah library telah di load juga akan ditampilkan. Jika di set 4 maka semuanya akan dilog mulai dari error, pesan debug sampai yang bersifat informasi. o $config['log_path']. Dikonfigurasi ini kita dapat menentukan dimana log akan diletakkan. Jika diisi kosong maka akan diletakkan di system/logs. Harus dingat Anda harus mengubah tingkat hak akses dari direktori tersebut menjadi dapat ditulisi / writeable jika kita menggunakan fasilitas logging. o Konfigurasi session. Session di CodeIgniter menggunakan cookies jadi kita dapat mengeset waktu hidup cookies/expire, nama cookies dan lain-lain melalui konfigurasi ini. $config['sess_cookie_name']='Nama cookie'; $config['sess_expiration']=7200; $config['sess_encrypt_cookie']=FALSE; $config['sess_use_database']=FALSE; $config['sess_table_name']='session_table'; $config['sess_match_ip']=FALSE; $config['sess_match_useragent']=TRUE; $config['sess_time_to_update']=300;

17

www.koder.web.id – Kumpulan tutorial komputer • Autoload.php. Konfigurasi ini bertujuan untuk mementukan sumber daya apa yang akan diload secara otomatis. Cara penggunaannya sederhana, misalnya kita ingin meload library database, pagination dan lain-lain secara otomatis maka kita tinggal mengubah

$autoload[‘libraries’] menjadi : $autoload['libraries']=array('database','session','pagination')

Routes.php. Konfigurasi di file ini bertujuan untuk menentukan kemana routing oleh library route akan dilakukan. Hal paling sederhana yang harus dilakukan adalah mengubah default controller (controller yang akan dibuka ketika tidak ada uri yang diberikan oleh browser). Misalnya website kita beralamat www.koder.web.id. Maka ketika membuka website tersebut maka secara otomatis CodeIgniter akan mengalihkan ke controller default, karena tidak disertakan di dalam url kita. Adapun yang perlu diubah adalah $route['default_controller']="welcome";

Kesepakatan Coding (Coding Standart) CodeIgniter
Sebelum melakukan coding menggunakan codeigniter maka ada baiknya kita mengetahui apasaja kesepakatan-kesepakatan yang ada di codeigniter. Kesepakatan-kesepakatan tersebut akan membuat kode kita lebih mudah dipahami oleh developer lainnya . Adapun kesepakaatan tersebut diantaranya : • PHP Closing Tag Ketika kita menulis library, helper, controller ataupun model maka sebaiknya tidak menggunakan tanda penutup pada dokumen php ?>. Hal tersebut dilakukan untuk mencegah adanya spasi atau karakter yang tidak diinginkan pada code kita sehingga membuat aplikasi error. Kita juga disarankan untuk memberikan infomasi tentang akhir dokumen dan berisi path dokumen tersebut.
Contoh salah: <?php echo "Here's my code!"; ?>

Contoh Benar: <?php echo "Here's my code!";

/* End of file myfile.php */ /* Location: ./system/modules/mymodule/myfile.php */

Penamaan Class dan Method Penamaan Class harus dimulai dengan huruf besar. Jika class menggunakan beberapa kata maka kata-kata tersebut dipisahkan menggkanan underscore dan bukan camelcase.

18

www.koder.web.id – Kumpulan tutorial komputer
Contoh salah: class superclass class SuperClass Contoh Benar: class Super_class

Aturan diatas juga berlaku untuk method contohnya
Contoh kurang tepat: function fileproperties() //Tidak deskriptif dan memiliki underscore function fileProperties() // Tidak deskriptif dan underscore CamelCase function getfileproperties() // Kurang underscore function getFileProperties() // menggunakan CamelCase get_the_file_properties_from_the_file() // terlalu panjang Contoh Tepat: function kecil get_file_properties() //deskriptif, pakai underscore, dan huruf

19

.

Apabila segment kedua ini kosong maka fungsi yang dipanggil adalah fungsi index dari kelas controller tersebut • Segmen URI ketiga biasanya berisi parameter dari fungsi. Bagian ini merupakan url yang kita masukkan pada konfigurasi base_url yang berupakan url paling dasar untuk mengakses web atau aplikasi kita • Segmen URI pertama yaitu class.com/ Segment URI 1 Adapun komponen-komponen URL diatas adalah • Konfigurasi Base Url. Segmen-segment pada URL pada codeigniter mencerminkan Controller yang dipanggil.com/class/fungsi/id maka domain tersebut dapat dipecah menjadi bagianbagian diantaranya: Konfigurasi base url Segment URI 2 class/ fungsi/ id/ Segment URI 3 http://www. karena controller menentukan bagaimana permintaan HTTP yang harus ditangani.web.php • Segmen URI kedua yaitu fungsi dari class controller yang telah kita panggil tadi.www. Jika fungsi dari controller yang dipanggil mempunyai parameter maka parameternya harus dimasukkan sebagai segment URI sesuai urutan. Contoh: http://www.id – Kumpulan tutorial komputer Chapter 3 Hello CodeIgniter Pada bab ini kira akan memulai coding menggunakan Codeigniter. Apabila segment ini kosong maka akan digantikan dengan default controller yang telah disetting di konfigurasi router. Sebelum memulai memulai maka perlu kita pahami kembali apa itu Controller? Dan bagaimana hubungan controller dengan URI? Apaan sih Controller? CodeIgniter adalah sebuah framework berbasis MVC. 21 .domainsaya. Sebuah Controller dapat dikatakan sebagai jantung dari suatu aplikasi. Sebuah kelas Controller adalah sebuah file yang terletak di dalam folder application/controller dan memiliki nama file yang sama dengan nama kelasnya dan dikaitkan dengan URL. Class tersebut merupakan nama kelas controller yang akan kita panggil.koder.domainsaya.

id – Kumpulan tutorial komputer Untuk contoh pertama. 4. saya adalah contoh codeigniter pertama". } 15.php/blog/ Pada contoh di atas.php di dalam folder application/controller. maka akan tampak tulisan Hello. Contoh: 22 .. Tampilan Aplikasi Hello Codeigniter Jika Anda melakukannya dengan benar. Sekedar mengingatkan kembali. kemudian menampilkannya ke browser. { 13. } 10. 6. 9. ketentuan penamaan class (baik controller maupun library) harus dimulai dengan huruf besar. 11. CodeIgniter akan berusaha untuk menemukan sebuah controller bernama blog pada file blog. Aplikasi tersebut akan diletakkan di folder hello dari htdoc anda. echo "Haloo.php */ Setelah itu apa yang terjadi? Coba buka situs Anda dengan menggunakan URL seperti ini: http://localhost/index. Mari kita coba membuat sebuah controller sederhana sehingga dapat melihat apa yang terjadi. 3. } 17.koder. /* Location: . 16. kita akan membuat sebuah aplikasi hello codeigniter yang sederhana. exit('No direct script access allowed'). <?php if ( ! defined('BASEPATH')) 2.. buatlah file bernama blog. function __construct() 7. { 8.php/blog/ Gambar 6. saya adalah contoh CodeIgniter pertama.web.php */ 18. 14. class Blog extends CI_Controller { 5. Setelah itu buatlah sebuah kelas Blog yang merupakan turunan dari kelas CI_Controller. 1. Perhatikan URL Berikut ini: http://localhost/hello/index. sehingga anda dapat mengaksesnnya dengan membuka url http://localhost/hello. Dengan menggunakan teks editor. /* End of file Blog. parent::__construct(). function index() 12./application/controllers/blog.php.www.

Sebagai contoh URI yang disertai parameter seperti ini: 23 .php */ /* Location: .koder.. } function komentar() { echo "Ini adalah fungsi komentar". Mari kita coba menambahkan fungsi baru ke controller: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'). class Blog extends CI_Controller { function __construct() { parent::__construct()./application/controllers/blog. Jika ingin mengisi variabel $param maka Anda tinggal menambahkan sebuah URI lagi setelah Blog.www. } } /* End of file Blog. Fungsi "Index" akan selalu dibaca secara default jika segmen kedua dari URI kosong. } function index() { echo "Haloo.php/blog/index/ Segmen kedua dari URI yang menentukan fungsi mana yang akan dipanggil dari controller.php */ Sekarang cobalah panggi URL berikut untuk melihat fungsi komentar: localhost/index. saya adalah contoh codeigniter pertama". Biasanya parameter ketiga atau lebih digunakan sebagai parameter (kecuali Anda menambahkan folder di dalam folder controller). Cara lain untuk menampilkan "Hello CodeIgniter" adalah dengan mengakses url berikut: localhost/index.id – Kumpulan tutorial komputer <?php class Blog extends CI_Controller { } Berikut ini contoh yang salah : <?php class blog extends CI_Controller { } Pada contoh di atas nama fungsi yang dipanggil adalah index ().php/blog/komentar/ Maka hasilnya akan menampilkan pesan "Ini Fungsi Komentar".web.

php/[Controller]/[Fungsi]/[param]/[param]/.id – Kumpulan tutorial komputer localhost/index. Namun sebenarnya hal tersebut bisa dilakukan di view.php */ /* Location: .php */ 24 ./application/controllers/ Blog.koder. } function index() { $this->load->view("hello_codeigniter").php utama. Sebagai contoh: tuliskan kode program di bawah ini pada file application/controller/blog..php/blog/komentar/tutorial-ci/123 Fungsi post pada controller dapat memiliki dua parameter yang akan dilewatkan pada URI segmen 3 dan 4 ( "tutorial-ci" dan "123")..www. buka folder application/config/routes. Jadi dapat disimpulkan bahwa URI yang dipanggil dapat ditunjukkan seperti ini: localhost/index. Jika sekarang hanya memanggil file index. Controller dan View Pada contoh program Hello CodeIgniter diatas adalah cara untuk menampilkan tulisan "hello CodeIgniter" secara langsung di controller. maka secara default Anda akan melihat pesan Hello Codeigniter. Codeigniter Tips Mendefinisikan Default Controller Seperti halnya Controller yang memiliki fungsi default yang di eksekusi. class Blog extends CI_Controller { function __construct() { parent::__construct().web.php: $route['default_controller'] = 'Blog'. Dimana Blog adalah nama kelas controller yang ingin digunakan. tanpa menentukan segmen URI apapun.php : <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'). Untuk menentukan default controller. CodeIgniter juga memililiki Controller default untuk di panggil atau dijalankan.php dan ubah variabel ini pada file routes. } } /* End of file Blog.

} } /* End of file Blog. Nama file view . Sebuah View sebenarnya hanyalah sebuah halaman web atau bagian dari halaman web.Parameter ini digunakan untuk melewatkan data dari controller ke dalam view. class Blog extends CI_Controller { function __construct() { parent::__construct(). sidebar. View bisa menjadi fleksibel karena view dapat dimasukkan ke dalam view yang lain jika dibutuhkan.id – Kumpulan tutorial komputer Selanjutnya buatlah file hello_CodeIgniter.Nama file yang hendak di-load yang terletak di dalam folder application/view 2.php */ /* Location: .php dengan kode program seperti berikut ini: <?php if (! defined('BASEPATH')) exit('No direct script access allowed'). Data Parameter . yang berbeda hanya tulisannya saja. Nama_view adalah nama file view Anda. Contoh: buatlah file controller dengan nama blog. Fungsi view sendiri memiliki 3 parameter: 1. $data['isi']="Isi blog".php) yang berisi tulisan: <h1> Hello saya adalah view </h1> Maka kode diatas akan memberikan hasil yang sama dengan contoh kasus pertama (tanpa menggunakan view). Untuk memanggil file view dapat digunakan fungsi seperti berikut ini (perhatikan baris 12):: $this->load->view('nama_view').koder. $this->load->view("blog_view".web. } function index() { $data['judul']="Judul blog".$data).php */ Selanjutnya buatlah file view bernama blog_view. dan lain-lain. Dan file tersebut harus diletakkan di dalam folder application/view. footer./application/controllers/ Blog. Bahkan.php dengan kode program seperti berikut ini: 25 .php di folder application>view (application/view/hello_codeIgniter.www. seperti sebuah header.

koder. $out = $this->load->view(“blog_view”. $data[‘isi’] = “Isi blog”. } function view() { $data[‘judul’] = “Judul blog”. Contohnya http://bejubel.com/jual/pakaian-wanita .com ayau bejubel.$data.$data.Parameter ini akan di set true jika kita ingin menyimpan hasil view ke dalam sebuah variabel.com maka kita akan menemukan url yang unik.www.true).true).php dipanggil maka tampilannya kurang lebih seperti berikut: 3. echo $out.web. Untuk membuat url seperti diatas 26 . Contohnya : <?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’). class Blog extends CI_Controller { function __construct() { parent::__construct().com.?></h1> <p><?php echo $isi. Jika kita mengambil contoh code controller blog sebelumnya maka kita tinggal mengubah cara pemanggilan view menjadi $out = $this->load->view(“blog_view”. Code diatas berarti kita akan menyimpan hasil view kedalam sebuah variabel. } function index() { $this->load->view(“hello_codeigniter”). ?></p> <p><br />Page rendered in {elapsed_time} seconds</p> Jika halaman blog. } } Mempercantik URL Codeigniter Jika kita memperhatikan url yang ada di website kompas. okezone.id – Kumpulan tutorial komputer <h1><?php echo $judul. Output Parameter . seakan-akan url tersebut bukan lah berasal dari script php biasa.

web.php" = "". Membuat file . di pada file $config['index_page'] $config['index_page'] application/config/config.txt) RewriteRule ^(.*)$ /index.php|images|robots\.php pada url misalnya url http://localhost/hello/index.htaccess adalah RewriteEngine on RewriteCond $1 !^(index\.www. adapun langkah yang dapat dilakukan adalah : 1.php.php Dengan menyelesaikan tahap kedua anda telah bisa ngehilangkan index.htaccess. 27 .php.koder. Selain itu untuk lebih advance lagi kita dapat menggunakan konfigurasi application/config/router.htaccess di folder root aplikasi anda.id – Kumpulan tutorial komputer kita bisa menggunakan settingan codeigniter dan file . Mengubah konfigurasi = application/configs/config.php/$1 [L] 2. "index. menjadi Membuang "index.php/blog/ sudah dapat diakses dengan url http://localhost/hello/blog/ tanpa index.php". Adapun isi dari difile .php lebih menari bukan? Dengan sampai pada tahap kedua sebenarnya sudah cukup untuk membuat url yang menarik.

.

Nama library. Cara penggunaannya adalah: $this->load->library('nama_library').koder. dan lain-lain. url. Menggunakan Perintah Loader Library Kita dapat juga menggunakan library loader untuk men-load library. View. Sebaiknya library yang di load dengan cara ini adalah jenis library yang dipakai di seluruh aplikasi seperti login. dan pluggin. Menambahkan Pada Konfigurasi Autoload Menambahkan sebuah library di autoload berarti seluruh aplikasi Anda akan dapat menggunakan library tersebut secara langsung. $this->load->pluggin('nama_pluggin').id – Kumpulan tutorial komputer Chapter 5 CodeIgniter Helper dan Library CodeIgniter menyediakan dua jenis sarana yang dapat digunakan untuk membantu proses pengembangan aplikasi. helper dan pluggin harus di isi dengan huruf kecil. antara lain: • Library Library dapat dikatakan sebagai kumpulan tools yang dapat digunakan untuk membantu sebuah proses. • Helper Helper adalah kumpulan fungsi yang diletakkan di dalam folder system/helpers atau applications/helpers. maka ketiganya harus di load terlebih dahulu. Library pada dasarnya adalah sebuah kelas yang diletakkan di dalam folder system/libraries atau application/libraries. Biasanya helper sering digunakan dalam view untuk membantu prosesproses yang berulang. seperti generate html. Library.web. Menggunakan Library dan Helper di CodeIgniter Agar dapat menggunakan library. 2. CodeIgniter telah menyediakan banyak library yang dapat digunakan secara langsung. Ada dua cara yang dapat dilakukan untuk men-load sebuah library dan helper antara lain: 1.www. Untuk library buatan sendiri harus diletakkan di dalam folder application/libraries. Loader berfungsi sebagai pengatur dari sumberdaya-sumberdaya yang ada di dalam CodeIgniter seperti Model. Helper. helper dan pluggin. 29 . template. security. dan lain-lain. $this->load->helper('nama_helper'). Library yang terletak di dalam folder system merupakan library bawaan dari CodeIgniter yang secara default di beri awalan CI_. Library loader adalah sebuah library CodeIgniter yang otomatis di load.

web. • Database Class Library database digunakan untuk memanipulasi serta mendapatkan data dari sebuah sistem database. Cart Class Library ini berfungsi untuk membuat shopping cart (keranjang belanja). Library CodeIgniter Secara default CodeIgniter telah menyediakan library yang dapat digunakan secara langsung. mssql. • Form Validation Class Library form Validation digunakan untuk mengecek keabsahan form-form yang sudah di-submit oleh user. Library ini sudah digunakan dan diload secara otomatis oleh CodeIgniter. Seperti untuk mengetahui berapa lama waktu eksekusi dan berapa jumlah memori yang digunakan. oracle. 30 . Sedangkan database yang tidak didukung secara langsung oleh CodeIgniter dapat dijembatani dengan driver odbc. Adapun cara penggunaannya adalah sebagai berikut: $this->nama_library->fungsi(). Kelas ini sudah dilengkapi dengan pengecekan jenis file. Secara default database yang sudah didukung oleh CodeIgniter adalah mysql. Library ini sudah di load secara otomatis oleh CodeIgniter. • • Calendar Class Library ini berfungsi untuk menampilkan dan men-generate kalender. Adapun library yang telah tersedia antara lain: • Benchmarking Class Library ini digunakan untuk melakukan pengukuran terhadap aplikasi yang dibuat. sendmail dan smtp. Pengiriman email tersebut bisa dilakukan dengan menggunakan protokol mail. Library ini memiliki ketergantungan terhadap kelas session karena item-item chart tersebut disimpan di dalam session. dan ukuran file. postgres.sqawd • • Encryption Class Library Encryption digunakan untuk melakukan penyandian terhadap string tertentu File Uploading Class Library Uploading digunakan untuk meng-upload file.koder. • Email Class Library email digunakan untuk mengirimkan email.www. • Config Class Library ini berfungsi untuk mengambil data-data di dalam file konfigurasi.id – Kumpulan tutorial komputer Ketika sebuah library sudah di-load maka library tersebut menjadi property pada object Controller.

31 . 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). • Pagination Class Untuk mem-paginate hasil database untuk performance dan usability. • • Language Class Library language digunakan untuk mengatur bahasa apa yang akan dipakai oleh CodeIgniter. Image Cropping. Tetapi Library ini tidak menggunakan session built-in dari PHP. Library Session men-generate session datanya sendiri yang disimpan di dalam Cookies.koder. • Unit Testing Class Library Unit Testing digunakan untuk unit test function dalam aplikasi yang sedang dibuat. mulai dari cache sampai ke profiling bisa dilakukan kelas ini. Adapun fungsi-fungsi yang telah disediakan adalah Image Resizing. • Image Manipulation Class Library image manipulation berfungsi untuk mengolah gambar. • • Trackback Class Library Trackback digunakan untuk mengirim dan menerima data trackback.web. Image Rotating dan Image Watermarking. Library ini sudah di-load secara otomatis oleh CodeIgniter. Template Parser Class Library Template Parser digunakan untuk membuat template yang berisi parsable pseudo – templates.www. kita bisa mengontrol berapa banyak record untuk ditampilkan disetiap halaman website. • Loader Class Library ini dapat disebut sebagai pengatur sumberdaya CodeIgniter. Thumbnail Creation.id – Kumpulan tutorial komputer • • 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. CodeIgniter menyediakan fungsi evaluasi dan dua fungsi hasil dalam library ini. • Input and Security Class Library Input dan security berfungsi untuk menjamin bahwa inputan dari form telah bersih dari karakter-karakter “aneh”. Semua sumberdaya yang ada akan dikendalikan oleh kelas ini. Output Class Library Output bertujuan untuk meng-handle output dari CodeIgniter.

web. atau robot yang mengunjungi website. • User Agent Class Library User Agent digunakan untuk mengidentifikasi browser. Zip Encoding Class Library Zip Encoding digunakan untuk membuat file ZIP baik yang berjenis teks maupun data binary.koder.id – Kumpulan tutorial komputer • URI Class Library URI digunakan untuk memparsing URL. sekumpulam karakter.www. 32 . Kita juga bisa menggunakannya untuk mendeteksi dukungan bahasa. lalu memecahnya ke dalam beberapa segmen dan kemudian di-passing ke controller atau disimpan sebagai variabel. mobile device. • • XML-RPC Class Library XML-RPC digunakan untuk men-setup klien XML-RPC dan server. dan referrer.

33 . • String — Helper string berisi fungsi-fungsi yang membantu pekerjaan berhubungan dengan string. Sebagai contoh. • Directory — Helper direktori berisi fungsi tunggal yang membantu pekerjaan berhubungan dengan direktori. sebagai contoh fungsi singular bisa mengubah string ‘girls’ menjadi ‘girl’. Sebagai contoh fungsi ul() bisa mengubah array item ke bulleted list.php. • Smiley — Helper smiley berisi fungsi-fungsi yang membantu pengelolaan emoticons. Setiap helper berisi satu atau lebih fungsi. fungsi now() menghasilkan waktu sekarang sebagai UNIX timestamp. seperti fungsi random_string() yang akan membuat string random berdasarkan tipe dan panjang argumen.koder. Adapun helper yang ada di dalam CodeIgniter antara lain: • Array — Helper array berisi fungsi yang membantu pekerjaan berhubungan dengan array. Sebagai contoh fungsi directory_map() adalah untuk membaca path direktori tertentu dan membangun array-nya yang berisi semua file-filenya dan subdirektorinya. • Security — Helper security berisi fungsi yang berhubungan dengan keamanan seperti xss_clean(). memberlakukan camel case atau mengubah kata-kata yang dipisahkan oleh spasi menjadi phrase yang digaris bawahi. • Inflector — Helper inflector berisi fungsi yang membantu mengubah kata-kata menjadi bentuk plural atau singular. 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. • Download — Helper download berisi fungsi tunggal yang membantu men-download data dengan mudah. Tidak seperti library. • HTML — Helper HTML berisi fungsi yang membantu membuat blok HTML dengan cepat dan mudah. helper bukanlah Object Oriented tapi berupa prosedural. • File — Helper file berisi fungsi yang membantu untuk membaca. • Form — Helper form berisi fungsi-fungsi yang membantu membangun form. Sebagai contoh fungsi random_element() mengambil array sebagai input dan menghasilkan elemen random darinya. dan penghapusan data cookie.web.id – Kumpulan tutorial komputer Helper CodeIgniter Helpers seperti namanya akan membantu Anda membangun aplikasi dengan tugas tertentu. yang akan menyaring setiap kode yang mungkin digunakan dalam cross site scripting hack. pembacaan data cookies. • Cookie — Helper cookie berisi fungsi yang membantu pekerjaan berhubungan dengan pemberian nilai. dan menghapus file.www. Fungsi force_download() menghasilkan header server yang memaksa data untuk di-download. menulis. • Date — Helper date berisi fungsi yang membantu pekerjaan berhubungan dengan tanggal.

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.. Fungsi xml_convert berfungsi untuk mengkonversi string menjadi teks XML. dapat membatasi string ke sejumlah kata tertentu yang berguna untuk membatasi input user pada form. Sebagai contoh kita akan membuat sebuah library breadcrumb yang akan memanfaatkan data dari segmen-segmen URI. Adapun isi dari librari tersebut adalah <?php if(!defined('BASEPATH'))exit('No direct script access allowed'). Anda akan menggunakan fungsi base_url() dan anchor() dalam setiap projek. • Typography — Helper typography berisi fungsi tunggal yang membantu memformat teks dengan cara yang tepat. • XML — Helper XML berisi fungsi tunggal yang membantu bekerja dengan XML. Contoh 1. Sebuah library adalah sebuh kelas yang diletakkan pada folder application/libraries Get_instance() adalah sebuah fungsi yang mengimplementasikan singleton dari controller CI. Sebagai contoh: fungsi word_limiter.web. Library yang paling mudah untuk diadopsi adalah sebuah single class tanpa parameter pada constructor.koder. Menggunakan Library External CodeIgniter sangat mudah untuk mengadopsi library yang bersifat external. mengkonversi ampersand dan angle bracket menjadi entity. 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. • URL — Helper URL berisi fungsi-fungsi yang membantu bekerja dengan URL. Membuat Library Sendiri Untuk mendapatkan kode yang bagus sebaiknya fungsionalitas yang sama itu di bungkus menjadi sebuah library. dan ellipse dengan baik.id – Kumpulan tutorial komputer • Text — Helper text berisi fungsi-fungsi yang membantu Anda bekerja dengan teks. Sebagai contoh: fungsi auto_typography() me-wrap paragraph dengan <p> dan </p>. Data URI dapat diakses dari library uri yang sudah di-load secara otomatis oleh Codeigniiter. mengkonversi line breaks ke <br/> dan mengkonversi tanda kutip. /** 34 .www. Library CSV Reader Sebagai contoh kita akan menggunakan sebuah library yang berfungsi untuk membaca file CSV kedalam memori. dash.

$this>separator. * * @access public * @param string * @param boolean * @return array */ function parse_file($p_Filepath. foreach($this->fields as$id=>$field) { if(isset($row[$id])) {$items[$field]=$row[$id].koder. } } Agar dapat menggunakan library tersebut maka lakukan langkah-langkah berikut ini: 35 .$this->enclosure).web. $enclosure='"'.'r'). } else { $content[]=$row. $this->separator.$this->enclosure))!=false) { if($row[0]!=null) {// skip empty lines if(!$content){$content=array().id – Kumpulan tutorial komputer * CSVReader Class * @author Pierre-Jean Turpeau * @link http://www. $file= fopen($p_Filepath. $max_row_size=4096.$this->max_row_size.www.com/wiki/CSVReader */ class csv_reader { var var var var $fields.$this->max_row_size.} if($p_NamedFields) { $items=array(). /** * Parse a file containing CSV formatted data.CodeIgniter. $p_NamedFields=true) { $content=false.} } $content[]=$items. } while(($row= fgetcsv($file. $separator='. if($p_NamedFields) { $this->fields = fgetcsv($file.'. } } } fclose($file). return $content.

koder. 9. } } /* End of file welcome. /* Location: .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. 16. 21.csv'). Setelah di load maka nama library tersebut akan menjadi property di kelas controller. Perhatikan contoller berikut ini 1. $data = $this->csv_reader->parse_file(FCPATH. class Welcome extends CI_Controller { function __construct() { parent::__construct(). 2. print_r($data).www. Nama file dan nama kelas harus sama. 15. 5. echo "<pre>". 14. 36 . 7.php */ . kelas tersebut akan memparsing sebuah file CSV. 18. } function index() { $this->load->library('csv_reader'). 12. 10. Pada baris ke-13 kita akan mencoba menggunakan library csv_reader. 20./application/controllers/welcome. Lalu hasil parsingan tersebut kita tampilkan di layar browser anda.web. 22. 11. 17. 8. 3. 13. 6. Contoh nama file adalah csv_reader.id – Kumpulan tutorial komputer • 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.'data_nilai. 4. 19. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed').php */ 23.

php dari $config['global_xss_filtering'] = FALSE. $this->input->server('PATH_INFO'. $this->input->get('nama'. Xss dan lain-lain. Penanganan dan Validasi Form Pada bab ini akan dibahas mengenai penanganan form dan cara melakukan validasi terhadap sebuah form inputan. Selain itu fungsi input juga dapat digunakan untuk cookie. TRUE). $nama = $this->input->xss_filter($this->input->post('nama')). sebaiknya kita menggunakan helper form. Setelah kita berhasil mendapatkan data dari user. Penanganan form artinya bagaimana cara kita untuk mendapatkan dan mengolah data yang dikirimkan oleh pengguna melalui form. Contohnya untuk menghandle atau memfilter xss kita dapat menggunakan fungsi xss_filter.web. Fungsi yang tersedia pada library ini selain untuk menangani form juga memiliki fungsi security/keamanan.id – Kumpulan tutorial komputer Chapter 6 Kasus 1. TRUE). Library tersebut sudah dipanggil secara otomatis oleh codeigniter. Inputan yang tidak divalidasi membuat aplikasi kita rentan terhadap serangan seperti Sql Injection. $this->input->ip_address(). Menjadi $config['global_xss_filtering'] = TRUE. variabel SERVER. Fungsi post digunakan untuk menangkap inputan POST sedangkan get digunakan untuk menangkap inputan GET. Untuk membuat form sendiri. contohnya $this->input->post('nama'. kta harus memvalidasi data-data yang telah dikirimkan tersebut agar aplikasi yang kita bangun menjadi aman. Penanganan Form Untuk menangani form kita membutuhkan library input. 37 .www. dan user agent $this->input->cookie('nama_cookie'. Jika kita ingin melindungi seluruh aplikasi dari dengan xss filter maka kita bisa menconfignya dengan mengubah konfigurasi di system/application/config/config. kita dapat juga menggunakan parameter kedua dari fungsi post atau get maka kita akan mendapatkan hasil yang sama dengan kedua cara diatas.koder. Selain kedua cara diatas. TRUE). TRUE).

Contoh: echo form_input('username'.id – Kumpulan tutorial komputer Selain library input. echo form_input($data). fungsi yang banyak digunakan adalah fungsi diantaranya form_open(). form_textarea(). 'ibnoe'). Ada banyak fungsi yang disediakan oleh helper ini diantaranya form_open(). Codeigniter juga menyediakan sebuah helper untuk mempermudah penanganan form. Pada kasus ini. 'ibnoe'. form_open_multipart().php/email/send" class="email" id="myform" /> Form_input berfungsi untuk menggenerate tag input pada html.web. form_multiselect(). 'id' => 'myform'). Contoh: $attributes = array('class' => 'email'. Helper tersebut membantu kita dalam membuat form pada view. 38 . '50'. '100'. form_password(). 'width:50%'. Maka akan menghasilkan <form method="post" accept-charset="utf-8" action= "http:/localhost/index. Fungsi ini dapat dipakai dengan dua cara. $attributes). form_close(). Akan menghasilkan output : <input type="text" name="username" id="username" value="ibnoe" maxlength="100" size="50" style="width:50%" /> => => => => => => 'username'. Cara pertama adalah dengan memasukkan nama tag dan valunya. form_hidden(). Cara ini adalah cara yang advance dan sangat berguna jika kita ingin mengcustomisasi inputan. akan menghasilkan <input type="text" name="username" id="username" value="ibnoe"> Cara kedua adalah dengan mempassing array kedalam fungsi tersebut. form_close() dan form_input(). echo form_open('form/send'. Adapun cara meload helper form adalah $this->load->helper('form'). form_dropdown(). Contohnya: $data = array( 'name' 'id' 'value' 'maxlength' 'size' 'style' ).www. form_fieldset() dan lain-lain. Form_open() berfungsi untuk menghasilkan tag form (<form>) pada html.koder. 'username'. Helper tersebut adalah helper form. Untuk lebih detailnya anda dapat melihat pada dokumentasi codeigniter.

30. 20. class Hitung extends CI_Controller { 4. View 39 . 27. 9. $data['v1']=(int)$this->input->post('v1'. 28. $this->load->view('perkalian'.true). Pada kelas hitung tersebut. parent::__construct(). v2 tidak boleh 0!'. 22. 3. 11.$data). 8. $data['hasil']='Error. terdapat 3 fungsi yaitu index. Perhatikan code berikut ini: Application/controllers/hitung.'form')). $this->load->view('menu_hitung'). 21. 5. { 13. { 7. } 10.koder. 2. 19. Membuat Controller Hitung Perlu diingat hal pertama yang harus di konfigurasi pada setiap aplikasi adalah BASE_URL. $data['hasil']=$data['v1']/$data['v2'].$data). Loading tersebut dilakukan dalam fungsi konstruktor karena kedua helper tersebut digunakan pada semua fungsi dan view yang ada.true). function index() 12. } 23. 1.www. <?php if (! defined('BASEPATH')) exit('No direct script access allowed').id – Kumpulan tutorial komputer Untuk contoh menangani form maka ikutilah langkah-langkah berikut ini. 16. 24.web. { 18. } 34. 32. $this->load->helper(array('url'.php 1. $data['v2']=(int)$this->input->post('v2'. dilakukan loading terhadap helper url dan form sekaligus. 33. Pada fungsi index hanya berisi sebuah pemanggilan terhadap view. } 15. $data['hasil']=$data['v1']*$data['v2']. } Pada baris ke 8. Konfigurasi pada base_url dilakukan supaya penggunaan library url menghasilkan keluaran yang tepat.true). $this->load->view('pembagian'. $data['v1']=(int)$this->input->post('v1'. Setelah melakukan konfigurasi base_url pada file application/config/config. perkalian dan pembagian. { 26. 14. function perkalian() 17.php maka kita akan membuat sebuah controller yang akan menangani proses perkalian dan pembagian. $data['v2']=(int)$this->input->post('v2'. function pembagian() 25. else 31. if ($data['v2']>0) 29. function __construct() 6.true).

35. View ini berisi navigasi ke fungsi perkalian dan pembagian. 10. font-size: 16px. color: #4F5155. variabel yang berasal dari view akan ditangkap menggunakan fungsi post (berarti dikirimkan melalui POST method). 34. border-bottom: 1px solid #D0D0D0. 32.id – Kumpulan tutorial komputer tersebut akan berisi menu-menu yang akan mengarahkan pengguna untuk melakukan perkalian atau pembagian. font-family: Lucida Grande. font-size: 14px. Membuat View Setelah membuat controller maka kita akan membuat view yang merupakan interface dari aplikasi tersebut.0 dan Form!</h1> . Pada fungsi perkalian dan pembagian akan dilakukan proses perkalian atau pembagian. Application/views/menu_hitung. 2. 17. 36. 7. 19. Sans-serif. font-weight: normal. 15. 8. background-color: transparent. 28. 24. margin: 24px 0 2px 0. 13.koder. 38. 26. 3. 5. } a { color: #003399. 25. 12. 29. 20. } h1 { color: #444. Pada fungsi tersebut. 23. } </style> </head> <body> <h1>CodeIgniter 2.www. 22. 16. Code berikut ini adalah view menu_hitung. 40 <!DOCTYPE html> <htmllang="en"> <head> <metacharset="utf-8"> <title>Welcome to CodeIgniter</title> <styletype="text/css"> body { background-color: #fff. 30. Verdana. 2. 21.php 1. 27. margin: 40px. 4. background-color: transparent. 11. padding: 5px 0 6px 0. 33. font-weight: bold. 37. 6.web. 18. 31. 14. 9.

45. itu adalah contoh penggunaan helper. 9.?> </ul> <p><br/>Page rendered in {elapsed_time} seconds</p> </body></html> Perhatikan baris ke-41 dan ke-42. Sans-serif. 3. 20. Screenshoot view menu_hitung Setelah menu hitung selanjutnya membuat view untuk perkalian dan pembagian. font-size: 14px. 10. 6. margin: 40px. 43. 4. Berikut ini adalah tampilan dari view diatas jika dipanggil. Gambar 7. 2.www. 16. 8. 44. 17. 41. 5. 14. background-color: transparent. <p>Silakan pilih menu dibawah ini. font-weight: normal.'Perkalian'). } 41 . 13.id – Kumpulan tutorial komputer 39. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Welcome to CodeIgniter</title> <style type="text/css"> body { background-color: #fff.koder. Application/views/perkalian. font-family: Lucida Grande. 7.?> <li><?php echo anchor('hitung/pembagian'. 12. 46.web. 11. Adapun view perkalian adalah sebagai berikut. } a { color: #003399.php 1. Fungsi anchor bertujuan untuk membuat sebuah link ke page tertentu. 21. color: #4F5155. 19.</p> <ul> <li><?php echo anchor('hitung/perkalian'. 22. 15. 40. 18. 42.'Pembagian'). Verdana.

41. h1 { color: #444. } </style> </head> <body> <h1>Perkalian!</h1> <p>Silakan <?php echo <?php echo <?php echo masukan data berikut!!</p> form_open('hitung/perkalian'). 40. 39. 33.web. Adapun tampilan datil view tersebut adalah Gambar 8. font-weight: bold. 24. 34.'Hitung!!'). 42. background-color: transparent. 26. 38. margin: 24px 0 2px 0. 32. font-size: 16px. Tag input yang ada pada view ini digenerate oleh fungsi form_input dan tombol submit oleh fungsi form_submit. 47. 28.$v1). 42 . 31. 49. 44.?><br> Hasil : <?php echo $hasil.id – Kumpulan tutorial komputer 23.www. 29. 50.?><br> <?php echo form_submit('submit'.koder.?> <p><br/>Page rendered in {elapsed_time} seconds</p> </body></html> Pada view ini banyak digunakan helper form (baris 40 – 45). 48. 46. padding: 5px 0 6px 0.$v2). 30. Pada prinsipnya pembuatanya sama saja dengan view perkalian tetapi bentuk layoutnya berbeda. 43. 35. 45. 37. 25.?> x form_input('v2'.?> form_input('v1'. 27. Screenshoot view perkalian Yang terakhir adalah membuat view untuk pembagian. 36. border-bottom: 1px solid #D0D0D0.?> <?php echo form_close().

33. 40. } h1 { color: #444. color: #4F5155. font-size: 16px. 4.?><br> <?php echo form_submit('submit'. Sans-serif. 14. 34. 30. 5. 38. 49. 46.php 1. } a { color: #003399. background-color: transparent. border-bottom: 1px solid #D0D0D0. 32. 43. 24. 6. 11. font-weight: normal. 18. background-color: transparent. 20. } </style> </head> <body> <h1>pembagian!</h1> <p>Silakan <?php echo <?php echo <?php echo masukan data berikut!!</p> form_open('hitung/pembagian'). 28. 21. 19.web.www. 41. 13. 48.$v2). margin: 40px. 47. 2. padding: 5px 0 6px 0. font-weight: bold. 9.?> <p><br/>Page rendered in {elapsed_time} seconds</p> </body></html> Berikut ini adalah tampilan dari form pembagian 43 . 25. 36.koder. margin: 24px 0 2px 0.$v1).?><br> Hasil : <?php echo $hasil. 22. 26.?> / form_input('v2'. Verdana. 44. font-family: Lucida Grande. 15. 35. 45. font-size: 14px. 17.?> form_input('v1'. 39. 37.'Hitung!!').?> <?php echo form_close(). 27. 42. 29. 7. 3. 16. 8. 31. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Welcome to CodeIgniter</title> <styletype="text/css"> body { background-color: #fff. 23.id – Kumpulan tutorial komputer Application/views/pembagian. 12. 10.

id – Kumpulan tutorial komputer Gambar 9.www.web. Screenshoot view pembagian Catatan : 44 .koder.

Pada contoh validasi form ini hampir sama dengan 2 langkah diatas. $data['v2']=0.web. class Hitung extends CI_Controller { function __construct() { parent::__construct(). 34. 'required|integer'). 23. 8. 'required|integer').koder. $data['hasil']=$data['v1']*$data['v2']. $data['hasil']=0.www. 24. $this->load->helper(array('url'. 6. 22. 30. 16. Perhatikan controller hitung berikut ini (contoller berikut ini berasal dari contoh sebelumnya dengan penambahan). $this->form_validation->set_rules('v2'. 7.php 1. 14. 32. 29.'form')). CodeIgniter memiliki sebuah library Form Validation Library yang akan membantu kita untuk membuat sebuah validasi yang cepat. Sebuah aplikasi akan memiliki banyak inputan dari pengguna dan semua inputan untuk pengguna harus aman. mudah dan aman. 33. 31. 4. 18.true). Application/controllers/hitung. 21. 28. 3. if ($this->form_validation->run()) { $data['v1']=(int)$this->input->post('v1'. $this->form_validation->set_rules('v1'. 27. 26. Validation form sangat penting pada aplikasi. <?php if (! defined('BASEPATH')) exit('No direct script access allowed'). 45 . 19. 10. } function index() { $this->load->view('menu_hitung'). 13. 17. tetapi memiliki sedikit penambahan terutama dalam fungsi perkalian dan pembagian. } function perkalian() { $this->load->library('form_validation'). 15. 12. 25. 9. 11.'Variabel 2'. 2.'Variabel 1'. $data['v2']=(int)$this->input->post('v2'. 5. 20. } else { $data['v1']=0.true).id – Kumpulan tutorial komputer Menggunakan Validasi Form Sebenarnya sampai pada tahap kedua di atas kita telah mampu membuat sebuah aplikasi perkalian dan pembagian sederhana. tetapi sebuah aplikasi yang baik harus memiliki sebuah kontrol terhadap inputan user.

62. if ($this->form_validation->run()) { $data['v1']=(int)$this->input->post('v1'. Library tersebut memiliki fungsi untuk melakukan validasi terhadap inputan user berdasarkan aturan yang telah kita tentukan. 36. Parameter pertama (berisi v1) merupakan name dari inputan yang akan divalidasi (harus sama dengan attribut name pada tag input contoh: <input name=”v1”>). 46. } $this->load->view('perkalian'. 39.koder. $this->form_validation->set_rules('v2'. Parameter kedua adalah nama dari inputan tersebut. Nama tersebut dapat berbeda atau sama dengan name pada parameter pertama. 49. 43. 40.true). Perhatikan baris 20 $this->form_validation->set_rules('v1'. Isi inputan harus sama dengan inputan tertentu contoh 46 . Aturan-aturan tersebut harus dipatuhi agar sebuah form dapat diproses. Pada contoh di atas berarti inputan v1 harus diisi (required) dan berisi data integer(integer). 42. Parameter ketiga merupakan aturan dari inputan tersebut.$data). $data['v2']=0. $this->form_validation->set_rules('v1'.web. 37.$data). 47. } $this->load->view('pembagian'. 52. 45. } function pembagian() { $this->load->library('form_validation'). Adapun aturan-aturan yang tersedia di dalam CodeIgniter adalah: Aturan required matches Keterangan Isi inputan tidak boleh kosong.'Variabel 1'. disana kita me-load sebuah library bernama form_validation.id – Kumpulan tutorial komputer 35. 54. Baris di atas merupakan salah satu contoh untuk menentukan aturan inputan pada form. 53. 61.www. 'required|is_natural_no_zero'). 50.'Variabel 2'. 41. } else { $data['v1']=0. 'required|is_natural_no_zero'). 57. Aturan-aturan tersebut dipisahkan oleh tanda |. 58. 51. 48. 38.'required|integer'). $data['hasil']=$data['v1']/$data['v2'].true). 56.'Variabel 1'. 44. $data['hasil']=0. 60. 59. 55. $data['v2']=(int)$this->input->post('v2'. } } Perhatikan baris 19-24 pada fungsi perkalian.

contoh max_length[12] artinya panjang inputan tidak boleh lebih dari 12 karakter. Inputan harus berisi semua huruf alfabet mulai dari a-z . dan seterusnya.koder. valid_ip valid_base64 Inputan harus berisi format IP yang benar.id – Kumpulan tutorial komputer matches[password] min_length Panjang inputan harus memiliki jumlah minimal karakter.www. exact_length Panjang inputan harus sama dengan jumlah karakter yang diinginkan. dan seterusnya. 1.web. numeric integer is_natural Inputan hanya boleh berisi angka / huruf numeric. Inputan hanya boleh berisi angka integer saja. 3. 3. Fungsi tersebut akan menghasilkan nilai TRUE apabila semua 47 . contoh penggunaan min_length[6] artinya panjang inputan harus lebih besar dari 6 karakter. Inputan harus berisi format karakter base64 yang benar. underscores atau dashes. is_natural_no_zero Inputan hanya boleh berisi bilangan natural saja kecuali nol: 1. Inputan harus berisi format email yang benar di batasi dengan koma jika alamat email lebih dari satu. 2. Inputan hanya boleh berisi bilangan natural saja: 0. kita melakukan pengecekan terhadap rule-rule yang telah diset ($this>form_validation->run())). 2. max_length Panjang inputan harus memiliki jumlah maksimal karakter. Inputan harus berisi karakter alfabet dan numeric. valid_email valid_emails Inputan harus berisi format email yang benar. Pada baris-46. contoh exact_length[8] artinya panjang inputan harus sama dengan 8 karakter. alpha alpha_numeric alpha_dash Inputan harus berisi semua huruf alfabet mulai dari a-z.

4. 43. 46. 10. 9. 21. 42. 44. margin: 40px.web.?> <?php echo form_close(). 13. 14.?><br> Hasil : <?php echo $hasil.www. 50. 18. Sans-serif.?> x <?php echo form_input('v2'. 23. } h1 { color: #444. 22.id – Kumpulan tutorial komputer rule terpenuhi dan menghasilkan nilai FALSe jika sebaliknya. Verdana. 36. 38. 29. 6. 19. 5. 45. border-bottom: 1px solid #D0D0D0. 30. 11. 32. } a { color: #003399.$v2). 31. color: #4F5155. 7. background-color: transparent.?> <p><br/>Page rendered in {elapsed_time} seconds</p> </body></html> 48 . 15. 12.$v1). font-family: Lucida Grande. 35. font-weight: normal. } </style> </head> <body> <h1>Perkalian!</h1> <?php echo validation_errors().?> <p>Silakan masukan data berikut!!</p> <?php echo form_open('hitung/perkalian'). 1. 47. 27. 40.koder. 17. <!DOCTYPE html> <htmllang="en"> <head> <meta charset="utf-8"> <title>Perkalian menggunakan validasi!!</title> <style type="text/css"> body { background-color: #fff.'Hitung!!'). 3. 24. 39.?> <?php echo form_input('v1'. font-size: 16px. 49. 26. 34. 48. background-color: transparent. 16. 8. font-weight: bold. 33. 25. 37. 2. 28. padding: 5px 0 6px 0.?><br> <?php echo form_submit('submit'. margin: 24px 0 2px 0. 20. Selain fungsi-fungsi diatas Anda juga dapat membuat custom validation jika aturan-aturan di atas tidak ada yang memenuhi dengan kebutuhan Anda. 41. font-size: 14px.

font-weight: normal. 28. 49 . font-size: 16px. 23. 9. border-bottom: 1px solid #D0D0D0. font-family: Lucida Grande. Gambar 10. 18. 17. Adapun code yang dapat digunakan adalah 1. 27. 12. margin: 40px. background-color: transparent. <!DOCTYPE html> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Pembagian menggunakan validasi!!</title> <style type="text/css"> body { background-color: #fff. Perhatikan baris 38. 22. 16.koder. 25. Form perkalian dengan tampilan error Begitu juga untuk view pembagian. 6. 15. 13.web. kita cukup menambahkan satu fungsi yang berguna untuk menampilkan kesalahan yang terjadi. 5. 10. 26. 19. 3. font-weight: bold.id – Kumpulan tutorial komputer Pada view. 29.www. 2. 21. color: #4F5155. Fungsi validations_error adalah fungsi untuk menampilkan kesalahan dari validasi yang dilakukan. } a { color: #003399. 8. font-size: 14px. 4. 14. Verdana. 20. background-color: transparent. 7. Sans-serif. 11. 24. } h1 { color: #444. kita tinggal menambah fungsi validations_error untuk menampilkan error pada form pembagian.

43. margin: 24px 0 2px 0. 49. 35. 39.?> / <?php echo form_input('v2'. Gambar 11. 40. 45. 48. 36. 44.?><br> <?php echo form_submit('submit'.www. 31. Form perkalian dengan tampilan error 50 . padding: 5px 0 6px 0.id – Kumpulan tutorial komputer 30.?> <?php echo form_close().?> <p><br/>Page rendered in {elapsed_time} seconds</p> </body></html> View diatas akan memberikan tampilan seperti gambar 11 berikut ini. 37. 34. 38.$v1).web.$v2). 41. 33. 32. 42. 47.?> <?php echo form_input('v1'.?><br> Hasil : <?php echo $hasil. 52. 46.?> <p>Silakan masukan data berikut!!</p> <?php echo form_open('hitung/pembagian').'Hitung!!'). 50. 51. } </style> </head> <body> <h1>pembagian!</h1> <?php echo validation_errors().koder.

caching dan active record. Anda menjalankan aplikasi dibeberapa kondisi lingkungan/environtment (development. $db['default']['char_set']="utf8". $db['default']['cachedir']="".id – Kumpulan tutorial komputer Chapter 7 CodeIgniter & Database CodeIgniter mendukung banyak jenis database misalnya MySql. Alasan kita menggunakan array multi-dimensi adalah agar memungkinkan Anda secara opsional menyimpan beberapa set nilai-nilai koneksi. Connect ke Database CodeIgniter memiliki sebuah file konfigurasi yang memungkinkan Anda menyimpan konfigurasi untuk melakukan koneksi ke database (username. dan lain-lain). 51 . $db['test']['cache_on']=FALSE. $db['default']['dbcollat']="utf8_general_ci". $db['default']['password']="".www. $db['test']['dbdriver']="mysql". $db['test']['username']="root". $db['default']['cache_on']=FALSE.koder. Pengaturan konfigurasi disimpan dalam bentuk array multi-dimensi dengan prototipe seperti berikut ini: $db['default']['hostname']="localhost". Oracle. $db['test']['dbprefix']="". production.php. dll) di bawah satu instalasi. $db['default']['db_debug']=FALSE. $db['test']['database']="database_name". File konfigurasi terletak berada di application/config/database. Kita dapat memiliki beberapa konfigurasi database. Sebagai contoh. Anda sedang menjalankan aplikasi di environment test maka Anda tinggal menambahkan konfigurasi berikut ini dan mengubah default konfigurasinya (mengeset $active_group="test") menjadi test: $db['test']['hostname']="localhost". $db['default']['pconnect']=TRUE. $db['default']['dbdriver']="mysql". nama database. Jika. $db['test']['pconnect']=TRUE. $db['default']['username']="root". $db['test']['password']="". maka Anda dapat mengatur kelompok konfigurasi untuk masing-masing environtment. PostGre SQL. $db['default']['database']="database_name".web. $db['default']['dbprefix']="". Dukungan database dari CodeIgniter berupa penyediaan beberapa driver database yang sekaligus juga memiliki fungsi sekuriti. testing. dan lainlain. misalnya. password. $db['test']['db_debug']=FALSE.

Menambahkan Database Library Sebagai Autoload Library Untuk connect ke database Anda bisa menambahkan database sebagai autoload library di file application/config/autoload. $config['username']="myusername". $db['test']['char_set']="utf8". Cara ini sangat sederhana. $config['password']="mypassword". 2. $config['cache_on']=FALSE. 52 . $db['test']['dbcollat']="utf8_general_ci".php. $config['db_debug']=TRUE. Hal tersebut berguna pada saat menggunakan aplikasi yang memiliki dua database. cukup menambahkan kata "database" ke dalam autoload library sehingga menjadi : $autoload['libraries'] = array("database"). $config['database']="mydatabase".id – Kumpulan tutorial komputer $db['test']['cachedir']="". Group_name adalah nama grup konfigurasi dari file konfigurasi Anda. Mengaktifkan Manual Dari Library Database Jika hanya ada beberapa halaman website yang memerlukan konektivitas database. $active_group="test".koder. maka untuk optimalisasi lakukan koneksi ke database secara manual. $config['dbprefix']="".www. $config['dbcollat']="utf8_general_ci".web. cukup dengan menambahkan baris kode di bawah ini pada tiap fungsi tempat yang membutuhkan koneksi kedatabase atau dalam konstruktor kelas Anda untuk membuat database yang tersedia secara global di kelas. Anda dapat melewatkan sebuah array nilai: $config['hostname']="localhost". $config['cachedir']="". Jika fungsi di atas tidak berisi informasi apapun di parameter pertama akan menyambung ke group konfigurasi yang aktif. Ketika menambahkan autoload pastikan bahwa database sudah terkonfigurasi dengan benar untuk menghindari kesalahan. $this->load->database(). $config['dbdriver']="mysql". Untuk connect ke database ada beberapa cara yang disediakan oleh CodeIgniter diantaranya : 1. Anda dapat melakukan seperti pada contoh berikut. $config['pconnect']=FALSE. $this->load->database('group_name'). Untuk menghubungkan secara manual ke database yang diinginkan. Untuk memilih kelompok tertentu dari file konfigurasi. $config['char_set']="utf8".

$manual_config['password']="mypassword". Contoh : $this->load->model('Model_name'. $this->load->model('Model_name'.TRUE). $manual_config['database']="mydatabase".web. Caranya adalah dengan mengeset TRUE pada parameter ketiga load model.''. 53 . $manual_config['dbprefix']="". $manual_config['db_debug']=TRUE.''. Atau Anda bisa mengirimkan nilai-nilai database Anda sebagai Data Source Name.koder. 3. $this->load->database($dsn). $manual_config['pconnect']=FALSE. $manual_config['dbdriver']="mysql". DSN harus memiliki prototipe seperti ini: $dsn='dbdriver://username:password@hostname/database'. $manual_config['username']="myusername". Selain itu Anda juga bisa menggunakan konfigurasi tertentu untuk sebuah model.www. Mengaktifkan manual dari model Selain kedua cara di atas Anda juga bisa mengaktifkan database pada saat loading model.$manual_config). Contoh: $manual_config['hostname']="localhost".id – Kumpulan tutorial komputer $this->load->database($config).

Setelah query dilakukan barulah bisa mendapatkan data hasil query tersebut. Adapun perintah yang dapat digunakan untuk meload sebuah model adalah $this->load->model('Model_name'). Return $query->result(). $query=$this->db->query('QUERY SQL ANDA').web.koder. var$date=''. Keluarannya hanya berupa Object(true) atau False. Ingat data bukan hanya dari database tetapi juga bisa dari File Text.www. Ketika keluarannya adalah False maka query yang dilakukan berarti gagal. } } Sebuah model sebenarnya tidak harus meng-extend class Model. Contoh Model: class Blogmodel extends Model { var$title=''. Perlu ditekankan bahwa fungsi query di atas belum menghasilkan data apapun. Ketika sudah berhasil me-load sebuah model maka model tersebut akan menjadi sebuah property. $this->Model_name->get_data(). baik dalam bentuk object maupun array. Melalui property itulah Anda akan menggunakan semua fungsi yang ada di dalam model (perhatikan baris ke 2 pada contoh diatas get_data adalah fungsi didalam kelas Model_name) Melakukan Query pada Database Untuk mendapatkan data pada database Anda harus melakukan query. Kelas model di-extend ketika hendak menggunakan fitur database pada CodeIgniter saja. } function get_data() { $query=$this->db->get('entries'.10). Tetapi jika true atau mengembalikan sebuah object maka query yang 54 . Web Service atau layanan-layanan data lainnya. Agar dapat menggunakan model maka kita harus me-load model tersebut. Semua Model harus diletakkan di dalam folder application/models.id – Kumpulan tutorial komputer CodeIgniter Model Model pada CodeIgniter adalah sebuah kelas php yang berfungsi untuk menangani data. function Blogmodel() { parent::Model(). var$content=''.

Perhatikan fungsi $result->result_array().$query->num_rows(). echo $row->email. Secara umum ada dua jenis tipe data yang dapat dihasilkan yaitu array dan object. itu adalah method yang digunakan untuk mengambil hasil query. 55 . pastikan Anda sudah memiliki konfigurasi database yang benar dan telah me-load library database. Fungsi yang digunakan hampir sama dengan mengembalikan nilai query sebagai array. Itu adalah contoh syntax untuk mendapatkan hasil query dalam bentuk object. Contoh di atas adalah salah satu contoh penggunaan query (tapi ingat. Dari segi jumlah kita hanya dapat mengambil satu record (per record) atau keseluruhan record. Anda juga dapat menggunakan $query->result_array() untuk mendapatkan hasil query dalam bentuk array assosiatif. echo $row->name. } } • Mengembalikan Hasil Query Sebagai Kumpulan Object. setelah query dilakukan kita perlu memanggil fungsi tertentu untuk mendapatkan hasil dari query.koder. Contoh: $query=$this->db->query('SELECT name. foreach($query->result()as $row) { echo $row->title. Dari object tersebut (variabel $query kalau mengacu contoh di atas) Anda dapat mengambil data yang diinginkan. email FROM my_table').web.www. Sebelum mengambil hasil query. if($result->num_rows()>0) { foreach($result->result_array()as $row) { echo $row['username']. Query Return Value Seperti yang telah disebutkan di atas. Sedangkan fungsi $result->num_rows() digunakan untuk mengetahui berapa jumlah record yang didapat. title. Cukup dengan memanggil method $result->result(). ada baiknya mengecek terlebih dahulu apakah query tersebut memiliki hasil atau tidak. $result=$this->db->query('SELECT * FROM users'). } echo'Total Results: '. echo $row['email']. Perhatikan $query->result().id – Kumpulan tutorial komputer dilakukan berarti berhasil. • Mengembalikan Hasil Query Sebagai Kumpulan Array.

echo $row->email. if($query->num_rows()>0) { $row=$query->row(). echo $row->email. echo $row['email']. } 56 . } • Mengembalikan Hasil Query Sebagai Row Object jadi kita hanya mengambil sebuah record dari sebuah query sebagai object. Bukan seluruh hasil query.id – Kumpulan tutorial komputer $result=$this->db->query('SELECT * FROM users'). echo $row->username. $result=$this->db->query('SELECT * FROM users').www.koder. $result=$this->db->query('SELECT * FROM users'). if($result->num_rows()>0) { foreach($result->result()as $row) { echo $row->username. } } • Mengembalikan Hasil Query Sebagai Row Array Jadi kita hanya mengambil sebuah record dari sebuah query. Bukan seluruh hasil query.web. if($query->num_rows()>0) { $row=$query->row(). echo $row['username'].

site_ad_mapping. terdapat juga method-method lainnya seperti from().web. Selain method select. where_in().password. where(). like. jadi kita dapat merangkai semua query tadi sehingga menjadi lebih ringkas. $this->db->get('users'). where().email'). tetapi ia melakukan sedikit modifikasi terhadap pattern tersebut. Sehingga tidak dibutuhkan SQL jika kita menggunakan active record.email FROM users'). Contoh query yang kompleks $data_all=$this->db ->select("sum(budget) as sum_budget. distinct() dan lain-lain. insert. Selecting Data Untuk mengambil data dari database dengan field-field tertentu kita dapat menggunakan perintah select(). Dengan menggunakan Active Record CI maka proses pengambilan data. tetapi jika diberi fungsi select().'approved') ->where('request_status'.id – Kumpulan tutorial komputer Menggunakan Active Record Active Record (AR) adalah sebuah pattern / pendekatan untuk membaca data dari sebuah table atau view dengan cara membungkusnya dalam sebuah kelas. CodeIgniter tidak sepenuhnya meniru pattern Active Record.'active') 57 . order_by. group_by. Ketika kita tidak menggunakan fungsi apapun maka fungsi get akan menghasilkan seluruh record yang berada di dalam tabel tersebut.*") ->where('site_ad_mapping.site_id'. Contoh: $this->db->select('username. update dan delete menjadi lebih sederhana.www. active record sudah memiliki fitur chaining method. dan lain-lain maka hasilnya akan berbeda. $this->db->get('users') Query di atas akan menghasilkan query “SELECT * FROM users” dan setara dengan $this->db->query('SELECT * FROM users').koder.$site_id) ->where('ad_status'. Semua method tersebut jika dipanggil akan membentuk sebuah query dan query tersebut akan dijalankan ketika method get() dipanggil.password. Untuk kemudahan. Keuntungan yang didapat adalah kesederhanaan dalam pengkodean program dan fleksibilitasnya ketika terjadi pergantian skema atau pun jenis database (bebas dari sintaks-sintaks SQL yang bersifat khusus ke database tertentu). Query di atas setara dengan $this->db->query('SELECT username.