77sample Codeigniter
77sample Codeigniter
Berbasis PHP
dengan Codeigniter
CV. LOKOMEDIA
Proyek Membangun Website dengan Codeigniter
Perpustakaan Nasional : Katalog Dalam Terbitan (KDT)
Penulis : Awan Pribadi Basuki
Proyek Membangun Website Berbasis PHP dengan Codeigniter
- Cet. I. - Yogyakarta : Penerbit Lokomedia, 2014
238 halaman; 14 x 21 cm
ISBN : 978-602-14306-4-4
Penerbit Lokomedia,
Cetakan Pertama : Juli 2014
email : [email protected]
website : www.bukulokomedia.com
ii
UCAPAN TERIMA KASIH
iii
Rick Ellis (thanks for CI but don’t screw up!), Phil Sturgeon (thanks
for articles and libraries), Derek Allard (Thanks for To_Excel
helper), Jamie Rumbelow (Thanks for MY_Model). Semua anggota
komunitas pengguna Codeigniter di dunia, saya berhutang banyak
pada kalian. Thanks.
Masha and The Bear, Standup Comedy MetroTV, Kick Andy, Just
Alvin, OVJ, Nat Geo Wild, Indonesian Idol, Sinema Tengah Malam,
Winamp. Trims sudah menemani dan mengusir kejenuhan.
Para pembaca yang sudah membeli buku ini, dengan begitu Anda
telah membantu saya untuk membeli sebuah Lamborghini :)
Last but not least, Penerbit Lokomedia yang untuk kedua kalinya
bersedia menerbitkan buku saya. Semoga makin sukses.
Yang nggak disebut jangan marah!
iv
KATA PENGANTAR
Tren pengembangan sebuah aplikasi berbasis PHP dewasa ini sudah sangat
tergantung kepada framework. Framework menyediakan struktur dasar bagi
aplikasi yang sedang dikembangkan, sehingga Programmer dapat segera
berkonsentrasi kepada pembuatan fitur-itur aplikasi yang sedang
dikerjakan alih-alih membuat aplikasi tersebut dari awal. Dengan demikian
proses pembuatan aplikasi menjadi lebih cepat dan efisien.
Framework adalah paket berisi fungsi-fungsi yang biasa digunakan dalam
pembuatan sebuah aplikasi. Beberapa contoh fungsi standar yang biasa ada
pada sebuah framework misalnya: email, paging, kalender, tanggal, bahasa,
upload file, session, validasi form, tabel, manipulasi gambar, text, string, captcha,
enkripsi, proteksi terhadap XSS, security dan lain-lain. Fungsi-fungsi tersebut
dapat segera digunakan dengan cara memanggilnya pada program, tentu saja cara
memanggilnya tergantung dari framework yang digunakan. Jadi, Programmer
tidak perlu membuat lagi fungsi-fungsi tersebut dari awal.
Keuntungan lain dari penggunaan framework adalah gaya (style) pemrograman
dapat menjadi seragam dan terstandar. Mengapa hal ini diperlukan? Kecuali
Anda bekerja sendiri hal itu tidak menjadi masalah. Lain halnya jika Anda adalah
salah satu anggota tim dalam sebuah perusahaan pengembang perangkat lunak
(software house), hal ini menjadi sangat penting. Gaya pemrograman yang
beraneka ragam bisa membingungkan anggota tim lainnya, sehingga menghambat
proses pembuatan program. Program yang dibuat menggunakan framework,
“memaksa” Programmer untuk mengikuti aturan dalam penggunaannya.
Jadi, siapapun Programmernya asal ia menguasai framework tersebut, dipastikan
ia bisa mengerjakan program yang dibuat karena gaya pemrograman yang sudah
seragam.
Tidak heran, banyak lowongan pekerjaan di bidang software development
mensyaratkan Programmer untuk menguasai framework. Penguasaan
framework membuat kinerja perusahaan lebih baik dan efisien. Selain itu,
umumnya perusahaan menerapkan sistem kontrak dalam perekrutan Programmer.
Sehingga tingkat turn over-nya sangat tinggi, Programmer dapat bergonta-ganti,
keluar-masuk perusahaan dalam tempo yang cepat. Nah, jika Programmer
pengganti menguasai framework yang biasa digunakan di perusahaan, maka hal
ini tidak menjadi masalah, operasional perusahaan tidak terganggu.
v
Saat ini banyak sekali framework berbasis PHP, diantaranya: Zend Framework,
Symfony, Prado, CakePHP, Yii, Laravel, Codeigniter dan lain-lain. Framework-
framework tersebut memiliki kelebihan dan kekurangannya masing-masing,
begitu pula dengan Codeigniter. Pertanyaannya, mengapa memilih Codeigniter?
Terlepas dari segala kekurangannya dibanding framework lainnya, Codeigniter
adalah framework dengan ukuran kecil, waktu eksekusi yang minimal dan dapat
diandalkan. Menurut survei, Codeigniter adalah framework yang paling
mudah untuk dipelajari. Strukturnya sederhana, dokumentasinya lengkap dan
jelas. Hal ini membuat Programmer pemula (fresh graduate) yang tidak terbiasa
menggunakan framework, mampu dengan mudah menguasainya.
Framework-framework yang ada di pasaran saat ini umumnya menggunakan
konsep MVC (Model-View-Controller). Dengan diterapkannya konsep ini,
program menjadi lebih rapi, tidak bercampur antara logic dan presentation
(spaghetti code). Sehingga program dapat di-maintain dengan mudah.
Dengan menguasai konsep dasar MVC, bisa dikatakan Anda sudah
menguasai garis besar framework, apapun frameworknya. Pemahaman ini
dapat diterapkan di framework-framework lainnya, tentu saja secara teknis harus
menyesuaikan aturan framework yang digunakan.
Satu lagi konsep yang perlu dikuasai untuk memudahkan Anda dalam belajar
framework, yaitu OOP (Object Oriented Programming). Karena pada dasarnya,
“core” framework adalah kumpulan class yang saling berhubungan.
Bagaimana seandainya jika Anda belum menguasai konsep-konsep tersebut?
Jangan khawatir, buku ini akan membantu Anda dalam mempelajari Codeigniter
apapun tingkat skill yang Anda miliki. Pembahasan di dalam buku ini sangat
mendetail, dimulai dengan Instalasi Codeigniter, kemudian menjelaskan tentang
Dasar-Dasar Codeigniter. Dilanjutkan dengan studi kasus pembuatan “Program
Absensi Siswa 2014”, dimulai dari proses pengumpulan data, perancangan
database, hingga membuat modul-modul (Login, Kelas, Siswa, Semester, Absen,
Rekap) yang diperlukan aplikasi. Terakhir, buku ini akan mengajarkan Anda
cara membuat laporan dalam format Excel dan PDF yang datanya berasal dari
database, dalam hal ini Laporan Data Absensi Siswa.
Saya menyadari banyak kekurangan pada penulisan buku ini, untuk itu saran dan
kritik yang membangun akan sangat berguna bagi penyempurnaan buku ini untuk
edisi-edisi mendatang.
Pasirian, Februari-Maret 2014
Awan Pribadi Basuki
vi
DAFTAR ISI
BAB 1. Pembuka................................................................................................1
1.1. Tentang Buku Ini...........................................................................................2
1.2. Versi Server...................................................................................................3
1.3. Versi CodeIgniter..........................................................................................4
vii
3.10.2. Menghilangkan index.php..............................................................30
3.11. Controllers.................................................................................................31
3.11.1. Apa itu Controller?..........................................................................31
3.11.2. Membuat Controller........................................................................31
3.11.3. Method/Fungsi................................................................................32
3.11.4. Memberi Parameter untuk Method................................................33
3.11.5. Default Controller...........................................................................33
3.11.6. Menyimpan Controller ke dalam Sub-Folder................................34
3.11.7. Constructor Controller....................................................................35
3.12. View...........................................................................................................36
3.12.1. Membuat View................................................................................36
3.12.2. Memanggil View.............................................................................36
3.12.3. Memanggil Beberapa View Sekaligus...........................................38
3.12.4. Menyimpan View ke dalam Sub-Folder........................................39
3.12.5. Menambahkan Data pada View.....................................................39
3.12.6. Melakukan Perulangan (Looping).................................................40
3.13. Model.........................................................................................................42
3.13.1. Membuat Model..............................................................................43
3.13.2. Memanggil dan Menggunakan Model...........................................44
3.13.3. Auto-Loading Model......................................................................45
3.13.4. Menghubungkan Model dengan Database....................................45
3.13.5. Constructor Model..........................................................................46
3.14. Library.......................................................................................................47
3.14.1. Membuat Library............................................................................51
3.14.2. Constructor Library.........................................................................52
3.14.3. Memanggil dan Menggunakan Custom Library...........................52
3.14.4. Mennggunakan Resource CodeIgniter Custom Library...............53
viii
3.14.5. Me-Replace Native Library............................................................54
3.14.6. Meng-Extend Native Library.........................................................54
3.14.7. Core Class.......................................................................................55
3.15. Helper........................................................................................................57
3.15.1. Memanggil dan Menggunakan Helper..........................................60
3.15.2. Membuat Helper.............................................................................60
3.15.3. Meng-Extend Helper......................................................................61
3.16. Auto-Loading............................................................................................62
3.17. URI Routing..............................................................................................63
3.18. Error Handling..........................................................................................65
3.19. File Bahasa................................................................................................66
3.19.1. Cara ke-1 (Menerjemahkan Langsung).........................................66
3.19.2. Cara ke-2 (Membuat File Bahasa Sendiri)....................................67
ix
6.3. Mengatur Database (database.php)............................................................81
6.4. Mengatur Auto-Loading (autoload.php)....................................................81
6.5. Mengatur Rute (routing.php)......................................................................82
6.6. Membuat File Bahasa Indonesia................................................................83
6.7. Membuat Cek Status Login (MY_Controller.php)....................................86
6.8. Membuat Controller Error (error404.php).................................................87
6.9. Membuat View Error (view404.php).........................................................87
6.10. Merancang Layout Halaman....................................................................89
6.10.1. Membuat Template (template.php)................................................91
6.10.2. Membuat Header (masthead.php)..................................................92
6.10.3. Membuat Menu Navigasi (navigation.php)...................................93
6.10.4. Membuat Footer (footer.php).........................................................93
6.11. Asset (CSS, Javascript, images)...............................................................94
x
BAB 9. Modul Semester................................................................................141
9.1. Controller Semester..................................................................................142
9.2. Model Semester........................................................................................143
9.3. Menampilkan Form untuk Mengatur Semester.......................................143
9.4. Mengatur Semester yang Aktif.................................................................148
xi
12.5. Membuat Laporan PDF..........................................................................229
Daftar Pustaka................................................................................................240
xii
BAB I
Pembuka
BAB 1
Pembuka
Gambar 1.1 Cover buku Membangun Web Berbasis PHP dengan CodeIgniter
Bab I. Pembuka 3
Agar Anda dapat mengikuti instruksi-instruksi yang terdapat di buku ini dengan
lancar, saya berasumsi bahwa Anda juga menggunakan WampServer versi 2.4.
Jika Anda memakai aplikasi lain atau paket alternatif lain seperti Xampp versi
1.8.0 yang jugad disertakan di CD, silakan menyesuaikan sesuai dengan aplikasi
yang Anda pakai.
Catatan:
Untuk instalasi WampServer 2.4 dan Xampp 1.8.0 tersedia dalam bentuk
Video Tutorial yang ada di CD.
Apabila Anda menggunakan Xampp 1.8.0, Anda tidak perlu mengaktifkan
mod_rewrite untuk mendukung URL SEO Friendly, namun kalau Anda
menggunakan WamServer 2.4, Anda perlu mengaktifkan mod_rewrite secara
manual, caranya bisa dilihat langsung pada Video Tutorial yang ada di CD.
Atau Anda juga bisa menemukan file instalasi Codeigniter pada CD yang
menyertai buku ini di folder installer/codeigniter.
Gambar 2.3 Mengklik kanan file instalasi codeigniter dan memilih Extract files
4. Jika proses ekstrak berjalan dengan baik, maka Anda akan mendapati file-file
dan folder dari file instalasi Codeigniter seperti pada gambar 2.5.
5. Perhatikan pada gambar 2.5, hapus ketiga file dan folder yang ditunjukkan
gambar, karena ketiganya tidak diperlukan dalam pembuatan proyek.
6. Untuk menguji apakah proses instalasi Codeigniter berjalan dengan baik,
coba buka browser dan ketikkan http://localhost/absensi2014. Jika Anda
mendapatkan halaman Welcome to Codeigniter, maka proses instalasi
Codeigniter berhasil. Lihat gambar 2.6.