0% menganggap dokumen ini bermanfaat (0 suara)
76 tayangan22 halaman

77sample Codeigniter

tes

Diunggah oleh

Herlina Ekawati
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
76 tayangan22 halaman

77sample Codeigniter

tes

Diunggah oleh

Herlina Ekawati
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

Proyek Membangun Website

Berbasis PHP
dengan Codeigniter

Awan Pribadi Basuki

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

Editor : Lukmanul Hakim


Cover : Subkhan Anshori
Layout : Lukmanul Hakim

Diterbitkan pertama kali oleh :


CV. LOKOMEDIA
Jl. Jambon, Perum. Pesona Alam Hijau 2 Kav. B-4, Kricak
Yogyakarta 55242.

email : [email protected]
website : www.bukulokomedia.com

Copyright © Lokomedia, 2014

Hak Cipta dilindungi oleh Undang-Undang

Dilarang memperbanyak, mencetak ataupun menerbitkan sebagian


maupun seluruh isi buku ini tanpa izin tertulis dari penerbit.

ii
UCAPAN TERIMA KASIH

Allah SWT, tanpa-Mu semua ini tidak mungkin.


Ayah (Basuki Adi), Ibu (Endang Sri Hartini); untuk kesabaranmu
dan semuanya.
Adik-adikku, Bangkit, Tiwi; semoga kalian sukses.
Bapak/Ibu Guru dan Dosen (yang tidak dapat saya sebut semuanya
satu persatu) yang telah mengajar dan mendidikku hingga aku
menjadi diriku saat ini. Pak Sahudi (Alm), Pak Bambang (Alm), Bu
Hartini (Almh); semoga Allah SWT menempatkan Anda semua di
sisi-Nya.
Teman-teman yang tidak “rewel” selama saya menghilang dari
peredaran untuk mengerjakan buku ini; Bambang dan Rani (trims
untuk mouse dan kopi-nya, kapan ke Semeru???), Ivan (setelah ini
aku ikut jadi kenek truk, Jakarta?), Toni (selamat sudah jadi ayah),
Novi dan Mas Hartoyo, Huda (sorry kemarin gak datang, lagi sakit,
semoga menjadi keluarga sakinah), Eko (suwun, Le), Mas Fitriono
dan Mbak Fitri (trims untuk doa-nya), Mas Dondik (semoga laris
es cappuccino-nya), Mas Arif (trims untuk penjelasannya), Linto
(selamat sudah jadi PNS, bro).
KH. Alfan, KH. Nur Hafidz, Bapak H. Harsono, Pak Gatot, Pak
Toyub, Pak Purwono, Mas Pipit, Mas Eko, Mas Ali, Mas Nanang,
Cak Solikin, Cak Keceng, Rollis, Bayu; semoga saya segera bisa
bergabung lagi.
Warung Pecel Mak-e Cak Dugel (sahabat kelaparan saat tengah
malam, sambel super pedes dan peyek teri-nya mengalahkan rasa
ngantukku).

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

BAB 2. Instalasi CodeIgniter............................................................................5


2.1. Mendapatkan CodeIgniter............................................................................6
2.2. Proses Instalasi CodeIgniter.........................................................................6

BAB 3. Dasar-Dasar CodeIgniter..................................................................11


3.1. Apa itu Framework?....................................................................................12
3.2. Mengapa Memilih CodeIgniter?................................................................13
3.3. Fitur-Fitur CodeIgniter................................................................................14
3.4. Kebutuhan Sistem.......................................................................................15
3.5. Aliran Data CodeIgniter..............................................................................16
3.6. Struktur Folder CodeIgniter........................................................................17
3.7. Macam-Macam File CodeIgniter...............................................................20
3.8. Konfigurasi Dasar CodeIgniter...................................................................22
3.8.1. config.php..........................................................................................22
3.8.2. database.php......................................................................................23
3.9. Model-View-Controller (MVC).................................................................23
3.10. URL CodeIgniter.......................................................................................29
3.10.1. URI Segment...................................................................................29

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

BAB 4. Proyek Program Absensi Siswa........................................................69


4.1. Tentang Program Absensi Siswa 2014.......................................................70
4.2. Spesifikasi Program Absensi Siswa...........................................................71
4.3. Mengedit Primary Key Tabel.....................................................................71

BAB 5. Membuat Database Absensi Siswa...................................................73


5.1. Merancang Database...................................................................................74
5.2. Membuat Database di MySQL...................................................................76
5.3. Foreign Key dan Referential Integrity.......................................................76

BAB 6. Persiapan Awal Proyek......................................................................79


6.1. Mengatur Konfigurasi (config.php)............................................................80
6.2. Membuat File .htaccess..............................................................................81

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

BAB 7. Modul Login dan Logout...................................................................97


7.1. Controller Login..........................................................................................98
7.2. Model Login..............................................................................................100
7.3. View Login................................................................................................103
7.4. Ujicoba Modul Login dan Logout............................................................106

BAB 8. Modul Kelas......................................................................................109


8.1. Controller Kelas........................................................................................110
8.2. Model Kelas.............................................................................................. 111
8.3. Menampilkan Data Kelas......................................................................... 111
8.4. Menambahkan Kelas................................................................................117
8.5. Mengedit Kelas.........................................................................................124
8.6. Menghapus Kelas......................................................................................136

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

BAB 10. Modul Siswa....................................................................................153


10.1. Controller Siswa......................................................................................154
10.2. Model Siswa............................................................................................154
10.3. Menampilkan Data Siswa.......................................................................154
10.4. Menambahkan Siswa..............................................................................163
10.5. Mengedit Siswa.......................................................................................171
10.6. Menghapus Siswa...................................................................................176

BAB 11. Modul Absen....................................................................................181


11.1. Controller Absen.....................................................................................182
11.2. Model Absen...........................................................................................183
11.3. Menampilkan Data Absen......................................................................183
11.4. Menambahkan Absen..............................................................................192
11.5. Mengedit Absen......................................................................................202
11.6. Menghapus Absen...................................................................................210

BAB 12. Modul Rekap (Laporan)...............................................................213


12.1. Controller Rekap.....................................................................................214
12.2. Model Rekap...........................................................................................215
12.3. Menampilkan Data Rekap Absensi........................................................215
12.4. Membuat Laporan Excel........................................................................224

xi
12.5. Membuat Laporan PDF..........................................................................229

BAB 13. Penutup............................................................................................238

Daftar Pustaka................................................................................................240

xii
BAB I
Pembuka
BAB 1
Pembuka

1.1 Tentang Buku Ini


Sebelumnya saya pernah menulis sebuah buku berjudul “Membangun Web
Berbasis PHP dengan Framework Codeigniter” yang juga diterbitkan penerbit
Lokomedia pada tahun 2010. Lihat gambar 1.1.

Gambar 1.1 Cover buku Membangun Web Berbasis PHP dengan CodeIgniter

2 Proyek Website Berbasis PHP dengan Codeigniter


Buku itu cukup populer dan menjadi BEST SELLER, karena merupakan buku
pertama berbahasa Indonesia yang membahas Codeigniter dan menyajikan
contoh nyata bagaimana membuat sebuah aplikasi dengan Codeigniter.
Banyak pembaca yang berkomentar bahwa buku itu sangat mudah dimengerti
dan sangat membantu mereka, terutama teman-teman pemula yang baru belajar
Codeigniter, siswa SMK atau mahasiswa. Bahkan hingga kini saya masih
menerima email dari pembaca buku itu. Namun seiring dengan waktu, isi dari
buku itu sudah tidak up to date.
Buku ini adalah “adik” dari buku tersebut. Untuk itu, saya telah melakukan
perubahan pada struktur buku, agar pembahasannya menjadi lebih terstruktur
dan mendetail, sehingga pembaca lebih mudah dalam mengikuti dan memahami
pembahasannya. Penjelasan tentang Codeigniter akan disesuaikan dengan versi
terkini.
Studi kasus berupa pembuatan program absensi siswa juga telah diperbaiki, versi
Codeigniter yang dipakai telah di update ke versi 2.1.4 (sebelumnya memakai
versi 1.7.2), beberapa “lubang” telah ditutup, serta ditambahkan beberapa fitur
yang sebelumnya tidak ada, seperti kalender pop-up pada modul absen untuk
memudahkan pengisian field tanggal dan pembuatan laporan dalam format
PDF. Namun menurut saya pribadi, peningkatan yang paling berarti adalah
skrip program absensi siswa telah ditulis ulang sehingga lebih rapi. Semua
perbaikan itu akan disajikan kembali dalam bentuk “Program Absensi Siswa
2014” yang dibahas mulai Bab 5 hingga akhir buku.

1.2 Versi Server


Pengembangan aplikasi berbasis PHP umumnya membutuhkan 3 komponen
dasar; Apache sebagai server, PHP engine untuk memparser skrip PHP, dan
MySQL sebagai database untuk menyimpan data.
Menginstall dan mengkonfigurasi ketiga komponen tersebut satu per satu tidak
praktis, membutuhkan waktu relatif lebih lama dan cukup merepotkan, terutama
bagi pemula. Cara yang lebih mudah dan praktis menggunakan aplikasi untuk
menginstall ketiga komponen itu dalam satu paket. Untuk alasan itulah buku ini
menggunakan WampServer 2.4, didalamnya terdapat:
 Apache 2.4.4
 PHP 5.4.16
 MySQL 5.6.12

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.

1.3 Versi Codeigniter


Pada saat proses penulisan buku ini sedang berlangsung (Februari-Maret 2014),
versi terbaru Codeigniter adalah versi 2.1.4, versi ini pula yang saya gunakan
dalam penulisan buku ini.
Agar Anda dapat mengikuti pembahasan di buku dengan baik dan tidak
mengalami kendala, saya sarankan Anda memakai Codeigniter versi 2.14.
Jika Anda memakai Codeigniter versi 1.7.x atau sebelumnya, mungkin Anda
akan mengalami kendala dalam mengikuti instruksi yang terdapat di buku ini,
karena Codeigniter 1.7.x tidak “compatible” dengan Codeigniter 2.x.x. Saya akan
memberikan keterangan dan informasi singkat tentang hal ini pada bagian-bagian
yang relevan.
Selanjutnya dalam pembahasan buku ini, jika disebutkan “Codeigniter” maka hal
ini akan mengacu pada Codeigniter versi 2.1.4, kecuali saya menyebutkan secara
spesifik versinya.

4 Proyek Website Berbasis PHP dengan Codeigniter


BAB II
Instalasi Codeigniter
BAB 2
Instalasi Codeigniter

2.1 Mendapatkan Codeigniter


Sebelum menginstall Codeigniter, kita perlu mendapatkan file instalasinya. Anda
bisa mendownload di http://ellislab.com/codeigniter/download. Lihat gambar 2.1.

Gambar 2.1 Website resmi CodeIgniter

Atau Anda juga bisa menemukan file instalasi Codeigniter pada CD yang
menyertai buku ini di folder installer/codeigniter.

2.2 Proses Instalasi Codeigniter


Selanjutnya, ikuti langkah-langkah berikut untuk menginstall Codeigniter:
1. Buat folder absensi2014 di C:\xamp\htdocs (atau C:\wamp\www untuk
pengguna WampServer). Lihat gambar 2.2.

6 Proyek Website Berbasis PHP dengan Codeigniter


Gambar 2.2 Membuat folder absensi2014 di C:\xampp\htdocs

2. Kemudian klik kanan file instalasi CodeIgniter (CodeIgniter_2.1.4.zip) yang


ada di CD, lalu pilih Extract files. Lihat gambar 2.3.

Gambar 2.3 Mengklik kanan file instalasi codeigniter dan memilih Extract files

Bab II. Instalasi Codeigniter 7


3. Selanjutnya, pilih lokasi untuk mengekstrak filenya. Pastikan lokasi tujuannya
ke C:\xampp\htdocs\absensi2014. Lihat gambar 2.4.

Gambar 2.4 Memilih lokasi tujuan ekstrak file Codeigniter

4. Jika proses ekstrak berjalan dengan baik, maka Anda akan mendapati file-file
dan folder dari file instalasi Codeigniter seperti pada gambar 2.5.

8 Proyek Website Berbasis PHP dengan Codeigniter


Gambar 2.5 Hasil ekstrak file instalasi CodeIgniter berupa file dan folder

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.

Bab II. Instalasi Codeigniter 9


Gambar 2.6 Halaman Selamat Datang dari CodeIgniter

10 Proyek Website Berbasis PHP dengan Codeigniter

Anda mungkin juga menyukai