CODEIGNITER 3 Belajar Mandiri
Zamah Sari
i
DAFTAR ISI
PENDAHULUAN CODEIGNITER .................................... 1 Fitur Codeigniter ......................................................................... 1
INSTALASI CODEIGNITER .......................................... 3
ARSITEKTUR CODEIGNITER ....................................... 5 Struktur Direktori ........................................................................ 6 Folder Application ........................................................................ 8 Folder System ............................................................................. 9 Folder User_guide ..................................................................... 10
FRAMEWORK MVC CODEIGNITER ............................. 12 CONTROLLER ............................................................................ 13 MODEL ..................................................................................... 13 VIEW ....................................................................................... 14
KONSEP DASAR CODEIGNITER ................................. 15 Controllers ............................................................................... 15 Membuat Class Controllers .................................................... 15 Memanggil Controllers .......................................................... 16
Membuat dan Memanggil Constructor Controllers ..................... 17 Yang Perlu Anda Ingat .......................................................... 18 Views....................................................................................... 19 Memanggil View................................................................... 20 Models ..................................................................................... 21 Membuat Class Model ........................................................... 21 Memanggil Model ................................................................. 21 Auto-loading Model .............................................................. 21
PENDAHULUAN CODEIGNITER
CodeIgniter adalah sebuah framework aplikasi, yang mana framework ini dapat digunakan untuk membangun aplikasi maupun website, berbasis
Bahasa
pemrograman
PHP.
Codeigniter
ini
merupakan
framework Open Source. Codeigniter memiliki library dan helper yang cukup lengkap, yang dapat membantu mempercepat pembuatan aplikasi maupun website.
FITUR CODEIGNITER Beberapa fiter penting yang ada dalam Codeigniter adalah sebagai berikut: ü Berbasis Model View Controller ü Sangat ringan (tidak lebih dari 2 MB, jika tanpa dokumentasi) ü Fitur lengkap pengelola database dan support beberapa macam database ü Suport Query database builder ü Validasi Form dan Data ü Keamanan dan XSS Filtering ü Management Session
1
ü Class Email yang support attachments, HTML/Texk email, multiple protocols (sendmail, SMTP, Mail) dan banyak lagi ü Class Upload ü Class FTP ü Mensuport Localization ü Pagination ü Data Encryption ü Benchmarking ü Full Page Caching ü Error Logging ü Application Profilling ü Class Calendaring ü Class User Agent ü Class Zip Encoding ü Class Template Engine ü Class Backtrack ü Class XML-RPC ü Class Unit Testing ü URL yang Search Engine Friendly ü Routing yang fleksibel ü Suport Hook dan Extension Class Terdapat library “Helper” yang banyak
2
INSTALASI CODEIGNITER
Untuk melakukan instalasi Codeigniter ini sangatlah mudah, cukup mengikuti langkah-langkah sebagai berikut: Langkah 1: Download Codeigniter dari link berikut ini: https://github.com/bcit-ci/CodeIgniter/archive/3.1.3.zip Langkah 2: Unzip file tersebut Langkah 3: Upload semua file dan folder ke server local atau server development anda Langkah 4: setelah selesai upload, bukalah URL dari server anda, misalnya: http://localhost/codeigniter3 atau yang lainnya sesuaikan dengan saat anda menguploadnya. Dan saat anda membuka URL tersebut, akan terlihat tampilan sebagai berikut.
3
Gambar 2.1 Tampilan Welcome dari Framework Codeigniter
4
ARSITEKTUR CODEIGNITER
Arsitektur dari framework Codeigniter dapat dilihat pada gambar berikut ini:
Gambar 3.1 Alur kerja Framework Codeigniter
5
Seperti terlihat pada alur kerja pada gambar 3.1, terlihat bahwa setiap ada request menuju Codeigniter, selalu ditampung dan diarahkan ke file index.php. Tahap
berikutnya,
Routing
akan
menentukan
apakah
akan
melanjutkan request ke tahap 3 untuk proses caching ataukah ke tahap 4 untuk dilakukan pengecekan keamanan. Jika halaman yang di request telah ada dalam Caching, maka Routing akan melewatkan request ke tahap 3 dan mengembalikan respon dari caching ke user. Namun jika halaman yang di request tidak terdapat dalam Caching, maka Routing akan melewatkan request ke tahap 4 untuk dilakukan pengecekan Security. Sebelum
melewatkan
request
ke
Application
Controller,
fitur
Security akan melakukan pengecekan pada data yang disubmit oleh user. Setelah dilakukan pengecekan, Application Controller me-load Model,
Library,
Helper,
Plugin,
dan
Script
untuk
kemudian
dilewatkan ke View. View akan melakukan render pada halaman yang di request dan menyimpannya dalam Caching, dan karena halaman yang di request tidak terdapat dalam caching sebelumnya, maka kali ini halaman ini akan di simpan dalam Caching agar permintaan pada halaman yang sama kedepannya dapat dilakukan dengan lebih cepat.
STRUKTUR DIREKTORI Gambar dibawah ini merupakan struktur folder dari framework Codeigniter, dimana folder utamanya terdapat 3, yaitu Application, System, dan User_guide:
6
Gambar 3.2 Struktur folder utama (kiri) dan folder dalam application (kanan)
Gambar 3.3 Struktur folder dalam System
7
Gambar 3.4 Struktur dalam folder User_guide
FOLDER APPLICATION Seperti namanya, maka folder ini merupakan folder aplikasi yang akan kita kembangkan. Di dalam folder inilah project kita akan dibuat. Folder ini berisi beberapa folder lain, yang akan dijelaskan sebagai berikut: ü Cache: folder ini berisi semua halaman yang telah di cache dalam aplikasi kita. Halaman yang telah di cache inilah yang nantinya
8
dapat mempercepat akses pada halaman-halaman yang sering di akses. ü Config: folder ini berisi berbagai file yang berisi konfigurasi aplikasi kita. Dengan bantuan file config.php, kita dapat mengkonfigurasi aplikasi kita. Sedangkan untuk mengkonfigurasi koneksi database, kita dapat menggunakan file database.php. ü Controller: folder ini berisi file-file controller dari aplikasi kita, dan ini merupakan bagian paling dasar dari aplikasi yang kita kembangkan. ü Core: folder ini berisi Class-Class utama aplikasi kita. ü Helpers: folder ini berisi Class-Class buatan kita yang merupakan penambahan fungsi dari Class helper yang sudah ada dan dapat membantu pengembangan aplikasi. ü Hooks: file-file dalam folder ini dimaksudkan untuk melakukan perubahan cara kerja dalam system core codeigniter. ü Language: berisi file-file yang berhubungan dengan Bahasa. ü Libraries: folder ini berisi Class-Class buatan kita yang dapat membantu aplikasi kita. ü Logs: merupakan folder yang berisi file-file yang berhubungan dengan log dari system codeigniter. ü Models: database method akan diletakkan dalam folder ini. ü Third_party: dalam folder ini kita dapat meletakkan plugin dari berbagai sumber untuk digunakan dalam aplikasi kita, misalnya plugin phpexcel, tinyMCE, dan lain sebagainya. ü Views: folder tempat kita meletakkan file-file HTML kita.
FOLDER SYSTEM Di dalam folder system ini terdapat kode-kode, library, helper, dan filefile lainnya, yang merupakan core dari framework codeigniter. Library dan helper inilah yang di load dan digunakan dalam aplikasi kita, sehingga proses pengembangan aplikasi menjadi lebih mudah. Isi dari folder system adalah sebagai berikut:
9
Core: folder ini berisi kode-kode core framework Codeigniter. Jangan mengubah apapun yang ada dalam folder ini. Semua yang anda lakukan berada dalam folder application. Bahkan jika anda bermaksud untuk menambah fungsi dalam core Codeigniter, yang perlu anda lakukan adalah menggunakan fitur hooks, dan folder hooks terletak dalam folder application. Database: folder database berisi driver-diver database dan file-file pendukung database. Fonts: berisi file-file yang berhubungan dengan font. Helpers: folder ini berisi class-class helper standart Codeigniter (misalnya date, cookie, dan URL helper). Language: dalam folder ini berisi file-file bahasa. Libraries: berisi library standart yang digunakan dalam framework Codeigniter
untuk
membantu
anda
mempercepat
proses
pengembangan aplikasi yang berhubungan dengan email, calender, upload file, dan masih banyak lagi. Anda juga dapat membuat sendiri library anda atau melakukan extend, atau bahkan melakukan overwrite atau mengganti library standart, tetapi class tersebut harus diletakkan dalam folder application/libraries agar terpisah dengan library standart Codeigniter. Hal ini penting dilakukan agar proses upgrade maupun update system pada core framework Codeigniter dapat dengan mudah dilakukan.
FOLDER USER_GUIDE Folder ini, sesuai dengan namanya, dapat kita tebak jika berisi file-file dokumentasi dari framework Codeigniter. File-file ini bersifat offline, sehingga dapat membantu kita mempelajari fungsi-fungsi yang terdapat pada
berbagai
macam
library,
helper,
dan
class-class.
Sangat
disarankan jika anda membaca petunjuk penggunaannya agar dapat dengan mudah melakukan pengembangan aplikasi dikemudian hari.
10
Selain ketiga folder diatas, terdapat file “index.php”. Dalam file ini, kita dapat melakukan konfigurasi lingkungan pengembangan kita, error level yang ditampilkan jika terjadi kesalahan, dan kita juga dapat mendefinisikan nama dari folder application dan system. Namun, sangat disarankan untuk tidak melakukan perubahan apapun dalam file index.php ini jika anda merasa pengetahuan anda belum mencukupi.
11
FRAMEWORK MVC CODEIGNITER
Codeigniter merupakan sebuah framework berbasis pada pola ModelView-Controller
(MVC).
MVC
merupakan
pola
pendekatan
pengembangan aplikasi yang memisahkan logika (model layer dan control
layer)
dari
sebuah
aplikasi
dengan
bagian
penyajian
(presentation layer). Pada implementasinya, pola pengembangan ini menjadikan
proses
pengembangan
masing-masing
layer
dapat
dilakukan oleh orang atau team yang berbeda, dan setiap layernya berisi kode-kode yang minimal dan mudah dilakukan maintain.
12
Gambar 4.1 Alur kerja MVC Framework Codeigniter
CONTROLLER Layer ini merupakan bagian yang menjadi jembatan antara layer Model dan layer View, maupun bagian lain yang dibutuhkan dalam proses HTTP request sehingga dihasilkan sebuah halaman WEB.
MODEL Layer ini merupakan layer yang menangani struktur data. Biasanya layer ini berisi metode atau fungsi-fungsi yang membantu retrieve, insert, update, dan delete informasi yang ada dalam database.
13
VIEW Layer ini merupakan leyer presentasi kepada user. Sebuah view biasanya
berupa sebuah halaman WEB, tetapi dalam Codeigniter,
sebuah view juga dapat berupa bagian dari halaman utuh WEB. Misalnya hanya berisi sebuah header, footer, menu atas, RSS, atau yang lainnya.
14
KONSEP DASAR CODEIGNITER
CONTROLLERS Sebuah controller pada hakekatnya merupakan sebuah Class. Seperti namanya “Controller”, bagian ini bertugas mengontrol seluruh aplikasi menggunakan URI. Membuat Class Controllers Untuk membuat sebuah Class Controller pada framework Codeigniter, yang perlu dilakukan adalah membuka folder application/controllers. Di dalam folder ini anda akan menemukan 2 buah file, index.html dan Welcome.php. File-file ini merupakan file default yang ada dalam Codeigniter. Untuk saat ini, biarkan saja kedua file tersebut ada. Buatlah sebuah file dalam folder yang sama dengan kedua file tersebut, kemudian beri nama “Percobaan.php”. Tetapi yang perlu anda ingat adalah, untuk penamaan file controller huruf besar dan kecil sangatlah berpengaruh, dan disarankan untuk controller gunakanlah huruf besar untuk huruf pertama penamaannya. Setelah itu bukalah file tersebut dengan editor
15
favorit anda, untuk buku ini saya menggunakan editor SublimeText v3. Kemudian tuliskan kode dibawah ini dalam file tersebut.
Gambar 5.1 Kode Class Percobaan Method index(). Class Percobaan merupakan extends dari Class CI_Controller yang merupakan bawaan dari framework Codeigniter. Class-class yang nantinya anda buat harus melakukan extends class CI_Controller. Memanggil Controllers Class controller pada file “Percobaan.php” pada gambar 5.1 dapat dipanggil menggunakan URI berikut:
dapat kita lihat, kata “percobaan” pada URI di atas setelah index.php, merupakan nama dari Class Controller. Sesuai dengan pemberian nama Class
“Percobaan”,
kita
cukup
menuliskan
“percobaan”
setelah
index.php. Namun, sekali lagi saya ingatkan, bahwa pemberian nama Class dalam Codeigniter harus menggunakan huruf besar pada huruf pertama nama Class, tetapi pada saat pemanggilan dalam URI, kita cukup menggunakan huruf kecil saja. Syntax umum yang digunakan dalam framework Codeigniter adalah sebagai berikut:
16
dan pada URI, semua dituliskan cukup dalam huruf kecil saja. Membuat dan Memanggil Constructor Method Selanjutnya, mari kita rubah sedikit kode-kode pada Class Percobaan yang telah kita buat tadi, menjadi seperti di bawah ini:
Gambar 5.2 Kode Class Percobaan dengan 2 buah method Dengan kode di atas, kita dapat melakukan 3 cara pemanggilah URI sebagai berikut: 1. http://localhost/codeigniter3/index.php/percobaan 2. http://localhost/codeigniter3/index.php/percobaan/index 3. http://localhost/codeigniter3/index.php/percobaan/halo dari ketiga URI tersebut, berikut adalah tampilan yang dihasilkan oleh masing-masing URI:
17
Gambar 5.3 Tampilan hasil masing-masing URI Yang Perlu Anda Ingat 1. Nama dari sebuah Class Controller harus diawali dengan huruf besar. 2. Pada URI Class Controller harus dipanggil menggunakan huruf kecil. 3. Jangan menggunakan nama yang sama antara nama Class dengan nama Method, karena akan mengakibatkan fungsi Parent Class di overwrite.
18
VIEWS Pada bagian view yang merupakan presentation layer, kita dapat membuat sebuah tampilan yang sederhana atau kompleks. View juga dapat berupa bagian-bagian sederhana seperti header, footer, menu atau lainnya. View ini tidak dapat diakses secara langsung, melainkan harus dipanggil melalui sebuah Controller. Mari kita coba membuat sebuah tampilan sederhana kemudian memanggilnya menggunakan controller yang telah kita buat sebelumnya, namun kita tambahkan sebuah method baru untuk memanggil view ini. Langkah yang perlu kita lakukan adalah sebagai berikut: 1. Buatlah sebuah file baru di dalam folder application/views dan berilah nama view_percobaan.php 2. Setelah file dibuat, bukalah file tersebut dengan editor favorit anda. 3. Kemudian tuliskan kode dibawah ini.
Gambar 5.4 Kode file view_percobaan.php Kemudian tambahkan sebuah method baru dalam file controller percobaan.php, dengan kode seperti di bawah ini.
19
Memanggil View Sebuah file view dapat dipanggil melalui Controller dengan kode di bawah ini:
dan jika anda ingin mengakses file-file view yang ada di dalam sebuah direktori, maka bentuk kode yang harus dijalankan adalah sebagai berikut:
kita tidak perlu menambahkan ekstensi file “.php”, kecuali kita membuat file view yang berekstensi selain php. Kode dalam Controller Percobaan.php akan berbentuk seperti ini:
20
sedangkan hasil dari browser jika kita memanggil dengan URI sebagai berikut adalah http://localhost/codeigniter3/index.php/percobaan/tampil_view
MODELS Sebuah controller pada hakekatnya merupakan sebuah Class. Seperti namanya “Controller”, bagian ini bertugas mengontrol seluruh aplikasi menggunakan URI. Membuat Class Model Sebuah controller pada hakekatnya merupakan sebuah Class. Seperti Memanggil Model Sebuah controller Auto-loading Model Sebuah controller
21