Daftar Isi / Sample Produk

advertisement
Sanksi Pelanggaran Pasal 72
Undang-undang Nomor 19 Tahun 2002
Tentang Hak Cipta
1. Barangsiapa dengan sengaja melanggar dan tanpa hak melakukan perbuatan
sebagaimana dimaksud dalam Pasal 2 Ayat (1) atau Pasal 49 Ayat (1) dan
Ayat (2) dipidana dengan pidana penjara masing-masing paling singkat 1
(satu) bulan dan/atau denda paling sedikit Rp 1.000.000,00 (satu juta rupiah),
atau pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak
Rp 5.000.000.000,00 (lima miliar rupiah).
2. Barangsiapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau
menjual kepada umum suatu ciptaan atau barang hasil pelanggaran hak cipta
atau hak terkait sebagai dimaksud Ayat (1) dipidana dengan pidana penjara
paling lama 5 (lima) tahun dan/atau denda paling banyak Rp 500.000.000,00
(lima ratus juta rupiah).
Te k n i k C e p a t M e m b a n g u n
Aplikasi Web Dengan
Framework CakePHP
AGUS SAPUTRA
www.bukulokomedia.com
TEKNIK CEPAT MEMBANGUN APLIKASI WEB
DENGAN FRAMEWORK CAKEPHP
Perpustakaan Nasional : Katalog Dalam Terbitan (KDT)
Penulis : Agus Saputra
TEKNIK CEPAT MEMBANGUN APLIKASI WEB DENGAN
FRAMEWORK CAKEPHP
- Cet. I. - Yogyakarta : Penerbit Lokomedia, 2011
143 hlm; 14 x 21 cm
ISBN : 978-979-1758-72-7
Penerbit Lokomedia,
Cetakan Pertama : Februari 2011
Editor : Lukmanul Hakim
Cover : Subkhan Anshori
Layout : Lukmanul Hakim
Diterbitkan pertama kali oleh :
Penerbit Lokomedia
Jl. Jambon, Perum. Pesona Alam Hijau 2 Kav. B-4, Kricak
Yogyakarta 55242.
email : [email protected]
website : www.bukulokomedia.com
Copyright © Lokomedia, 2011
Hak Cipta dilindungi oleh Undang-Undang
Dilarang memperbanyak, mencetak ataupun menerbitkan sebagian
maupun seluruh isi buku ini tanpa izin tertulis dari penerbit.
Kata Pengantar
Teknik Pemrograman berbasis OOP framework (Object Oriented Programming)
telah menjadi trend pemograman saat ini, karena kemudahan, kecepatan dan
pengerjaan yang terstruktur, membuat framework menjadi alternatif bagi
programmer dalam mengembangkan suatu website. Tidak dipungkiri bahwa
dimasa-masa mendatang, teknik pemograman PHP akan beralih kepada
pemograman OOP.
CakePHP sebagai salah satu framework yang cukup lengkap dan populer (saat
ini menduduki peringkat 3) mulai dilirik oleh programmer, developer bahkan
perusahaan karena kemampuannya yang handal. Namun terbatasnya panduan
mengenai CakePHP, menjadi kesulitan tersendiri bagi mereka yang ingin
menggunakannya, sehingga enggan dan memilih framework lain yang memiliki
panduan lengkap sebagai pembuatan web.
Buku ini hadir untuk menjawab permasalahan diatas. buku ini mengajak pembaca
untuk mengubah pandangan bahwa CakePHP tidak sesulit yang dibayangkan dan
akan memberikan efek lebih dibandingkan framework lain jika kita memahami
betul tentang penggunaan CakePHP. Buku ini membahas tentang pengertian
CakePHP, penginstalan dan konfigurasi, penanganan HTML dan database,
operasi CRUD, teknik-teknik CakePHP, Components (Authentication, Session),
hingga kepada praktek pembuatan web secara sederhana berbasis CakePHP.
Penulis menyadari bahwa buku ini jauh dari sempurna, untuk itu penulis sangat
mengharapkan kritik maupun saran yang membangun, sehingga dapat menulis
lebih baik lagi untuk edisi-edisi mendatang. Akhir kata, penulis ucapkan terima
kasih.
Cirebon, November 2010
Agus Saputra
[email protected]
v
Halaman ini Sengaja Dikosongkan
vi
Daftar Isi
BAB 1. Pengenalan Dasar CakePHP..............................................................1
1.1. Apa itu CakePHP? .......................................................................................2
1.2. Keuntungan dan Kelemahan CakePHP........................................................3
1.3. Fitur-Fitur CakePHP.....................................................................................4
1.4. Mengenal Konsep MVC...............................................................................5
1.5. Struktur Folder CakePHP.............................................................................7
1.6. Kebutuhan Tools Dasar CakePHP................................................................8
1.6.1. Instalasi Web Server............................................................................8
1.6.2. Instalasi CakePHP.............................................................................14
BAB 2. Memulai CakePHP............................................................................17
2.1. Menentukan Layout Awal...........................................................................18
2.2. Welcome to CakePHP Framework.............................................................20
2.3. Penanganan HTML.....................................................................................21
2.3.1. Charset...............................................................................................21
2.3.2. CSS....................................................................................................22
2.3.3. Meta...................................................................................................22
2.3.4. docType.............................................................................................22
2.3.5. Style...................................................................................................23
2.3.6. Image.................................................................................................24
2.3.7. Link....................................................................................................24
2.4. Penanganan Form.......................................................................................24
2.4.1. Form Open........................................................................................24
2.4.2. Form Close........................................................................................25
vii
2.4.3. Form Input Text.................................................................................25
2.4.4. Form Input Hidden............................................................................25
2.4.5. Form Input Password........................................................................26
2.4.6. Form Input Upload............................................................................26
2.4.7. Form TextArea..................................................................................27
2.4.8. Form Label........................................................................................27
2.4.9. Form Dropdown................................................................................28
2.4.10. Form Checkbox...............................................................................29
2.4.11. Form Radio......................................................................................30
2.4.12. Form Submit...................................................................................31
2.4.13. Form Button....................................................................................31
2.4.14. Form Reset......................................................................................32
BAB 3. CakePHP dan Database.....................................................................33
3.1. Membangun Database................................................................................34
3.2. Konfigurasi Database..................................................................................35
3.3. Penanganan Database.................................................................................36
3.3.1. Fungsi First........................................................................................37
3.3.2. Fungsi All..........................................................................................38
3.3.3. Fungsi Count.....................................................................................38
3.3.4. Fungsi List.........................................................................................39
3.3.5. Fungsi Neighbors..............................................................................39
3.3.6. Fungsi Threaded................................................................................39
3.4. Menampilkan Record..................................................................................40
3.5. Mengurutkan Record..................................................................................43
3.6. Menampilkan Kolom Secara Spesifik........................................................45
3.7. Menampilkan Record Secara Spesifik.......................................................46
viii
BAB 4. Operasi CRUD....................................................................................49
4.1. Model...........................................................................................................50
4.2. Controller.....................................................................................................51
4.3. View.............................................................................................................54
4.3.1. Operasi Create (Menambah Data)....................................................54
4.3.2. Operasi Read (Membaca Data)........................................................55
4.3.3. Operasi Update (Mengubah Data)...................................................59
4.3.4. Operasi Delete (Menghapus Data)...................................................61
BAB 5. Teknik CakePHP................................................................................63
5.1. Teknik Scaffolding......................................................................................64
5.2. Teknik Pagination........................................................................................66
5.3. Teknik Paginator (Sort By).........................................................................69
5.4. Teknik Validation........................................................................................70
5.5. Menu Tree...................................................................................................72
5.6. Menangani Upload File..............................................................................79
5.6. Menghapus File yang Telah di Upload......................................................88
BAB 6. Components.........................................................................................93
6.1. Authentication.............................................................................................94
6.1.1. Membuat Tabel Users.......................................................................94
6.1.2. Membuat Model Users.....................................................................95
6.1.3. Membuat Controller Global.............................................................95
6.1.4. Membuat Controller Users...............................................................97
6.1.5. Membuat Form Login.......................................................................98
6.1.6. Menambah User................................................................................99
6.1.7. Menambah Status Login.................................................................102
ix
6.2. Session.......................................................................................................103
6.2.1. Write and Read Session..................................................................103
6.2.2. Destroy Session...............................................................................104
BAB 7. Proyek Membuat Web Blog............................................................107
7.1. Menentukan Layout..................................................................................108
7.2. Membuat Database dan Tabel..................................................................109
7.3. Konfigurasi Databasae.............................................................................. 111
7.4. Membuat Controller Global (Links)........................................................ 111
7.5. Membuat Halaman Articles untuk User ..................................................112
7.6. Membuat Halaman Comments untuk User..............................................117
7.7. Membuat Halaman Login Admin............................................................122
7.8. Manajemen Articles untuk Admin...........................................................128
7.8.1. Menampilkan Articles untuk Admin..............................................133
7.8.2. Menambah Articles untuk Admin..................................................135
7.8.3. Menampilkan Detail Articles untuk Admin...................................136
7.8.4. Mengedit Articles untuk Admin.....................................................138
7.9. Mempercantik Paging...............................................................................140
7.10. Catatan Akhir CakePHP.........................................................................142
Daftar Pustaka................................................................................................143
x
BAB 1
Pengenalan Dasar
CakePHP
BAB 1
Pengenalan Dasar CakePHP
1.1 Apa Itu CakePHP?
CakePHP merupakan sebuah framework PHP yang bersifat open source (gratis).
CakePHP merupakan struktur dasar bagi para programmer dalam membuat
suatu aplikasi web. Secara umum, tujuan dari adanya CakePHP adalah untuk
memungkinkan kita untuk bekerja dalam cara yang terstruktur dan cepat tanpa
kehilangan fleksibilitas.
Sebagaimana kita ketahui, setiap pembuat program (programmer) memiliki gaya
yang berbeda-beda dalam membuat suatu aplikasi web, tak dipungkiri pada tiap
baris kode yang dibuat, tidak ada komentar atau dokumentasi yang lengkap yang
mengiringinya. Ditambah ada juga programmer yang sengaja meng-enkripsi kode
yang dibuat, sehingga pengembangan menjadi sulit dilakukan. Nah, karena kondisi
seperti itu, yang menjadi direpotkan adalah orang yang ingin mengembangkan
web tersebut (developer).
Coba Anda bayangkan jika pengembangan web tersebut telah dilakukan oleh
sepuluh developer yang memiliki gaya yang berbeda dalam membuat program,
bagaimana dengan developer terakhir yang ingin mengembangkannya?.. maka
harus terpaksa juga developer itu mengikuti aturan dari developer sebelumnya.
Untuk itu,dengan adanya framework, khususnya CakePHP, diharapkan lebih
memudahkan para pembuat ataupun pengembang web. Karena semua gaya
penulisan kode telah diseragamkan dan disesuaikan dengan ketentuan framework
tersebut, sehingga web dapat lebih mudah dikembangkan.
Selain itu, dengan adanya kemampuan RAD (Rapid Application Development),
dapat memungkinkan web digunakan dan dikembangkan menjadi aplikasi lain
yang lebih kompleks. Dapat dipastikan bahwa pada masa-masa mendatang
pembuatan web akan beralih kepada teknik pemograman OOP dan meninggalkan
PHP classic.
Banyak perusahaan sekarang ini mulai menanggapi masalah tersebut, sehingga
banyak perusahaan mengharuskan setiap programmernya menguasai framework,
faktanya juga dapat dilihat dalam setiap lowongan kerja yang mencari programmer
2
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
yang menguasai framework (bukan dilihat dari tingkat pendidikan).
Di Indonesia, penggunaan framework CakePHP memang belum semarak
CodeIgniter (CI). Alasannya, panduan yang tersedia sangat terbatas, sehingga
menjadi sulit dipelajari serta kecepatan akses yang tidak secepat CI. Sebenarnya
banyak kelebihan-kelebihan yang diperoleh dalam menggunakan CakePHP
dibandingkan framework lain, misalnya Cake Bake ataupun penggunaan
component yang disediakan oleh CakePHP.
Dari pembahasan diatas, dapat disimpulkan bahwa CakePHP framework
merupakan suatu struktur kerja yang memiliki fungsi, modul, class dan
aturan-aturan dari semua kebutuhan aplikasi web yang memudahkan
developer dalam mengembangkan web secara terstruktur dan cepat
serta memiliki kelebihan-kelebihan tersendiri dari setiap masing-masing jenis
framework yang dipakai.
1.2 Keuntungan dan Kelemahan CakePHP
CakePHP merupakan framework terlengkap saat ini untuk mendukung penggunaan
dan pengembangan aplikasi web. Karena selain mendukung pengembangan dan
pembuatan, CakePHP juga mendukung penggunaan ajax ataupun jQuery.
Berikut beberapa keunggulan dari CakePHP framework, diantaranya:
1. Open source (gratis).
CakePHP adalah framework yang bersifat open source. ini adalah salah satu
syarat berkembangnya sebuah framework yang baik.
2. Mendukung Ajax.
CakePHP mendukung penggunaan ajax. Sehingga untuk menggunakannya,
kita hanya mengaktifkan, membuat dan menerapkannya saja.
3.Automagic Function.
CakePHP juga memiliki fungsi-fungsi yang telah disediakan, seperti validasi
input, session, auth, dll. Yang berguna untuk mempercepat coding, Seperti
helper untuk form. Membuat form dengan menggunakan helper dari CakePHP,
sangat berguna bagi kita yang bekerja dengan banyak form.
4.Mendukung PHP4 dan PHP5.
CakePHP memungkinkan dapat dijalankan hampir disemua browser maupun
server.
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
3
5. Konsep MCV.
Dengan konsep MVC (Model, View, Controller), memungkinkan pengerjaan
web akan lebih terstruktur dan mudah dikembangkan karena antara logika dan
layout telah dipisahkan, sehingga pengerjaan dapat dilakukan secara fokus.
6. Mendukung ORM.
CakePHP juga mendukung ORM (Object Relational Model), yang dapat
menterjemahkan relational database menjadi kode program.
7.Komunitas pengguna yang besar dan forum yang cukup baik.
CakePHP juga memiliki komunitas dan forum yang cukup baik. Anda dapat
bergabung dengan komunitasnya di http://www.cakephpforum.net.
Selain beberapa keunggulan yang dimiliki oleh CakePHP, juga memiliki beberapa
kelemahan, diantaranya:
1. Manual book yang ada tidak selengkap framework lain.
Ini merupakan salah satu kelemahan dari CakePHP, dengan tidak lengkapnya
buku manual, untuk memahami dan mempelajari CakePHP akan memakan
waktu yang lebih lama dibandingkan dengan framework lain, seperti salah
satunya CodeIgniter (CI).
2. Terlalu banyak aturan dan kurang fleksibel.
Terlalu banyaknya aturan dalam CakePHP menjadi salah satu kelemahan dari
framework ini. Maksud dari kurang fleksibel disini yaitu case sensitive. Case
sensitive ini adalah cara pengerjaan dalam penamaan file harus benar-benar
sama. Seperti contoh nama controller harus sama dengan nama folder untuk
view, dan juga nama view harus sama dengan nama action. Namun sebenarnya,
case sensitive ini juga dapat menjadi nilai positif dalam mengembangkan.
Karena dengan penamaan yang harus sama seperti itu, kita tidak perlu lagi
mencari-cari letak file tempat kode dituliskan, jadi kita bisa langsung fokus
terhadap file yang ingin dikembangkan.
1.3 Fitur-Fitur CakePHP
CakePHP sebagai framework yang memiliki beberapa kelebihan, CakePHP juga
memiliki beberapa fitur yang dapat kita nikmati dalam membangun web. Fiturfitur tersebut antara lain:
4
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
•
Komunitas yang baik dan ramah
•
Lisensi yang fleksibel
•
Kompatibel dengan PHP4 dan PHP5
•
CRUD yang teritegrasi untuk interaksi database
•
Aplikasi scaffolding
•
Code generation
•
Component (Authentication, Session) yang memungkinkan kita
memproteksi area dengan cepat.
•
Konsep MVC
•
Cake bake, yang memungkinkan pengerjaan dilakukan melalui command
line, sehingga meminimalisir pengetikkan kode dan pengerjaan akan
selesai dalam waktu singkat.
•
Permintaan dispatcher yang rapih
•
Mendukung validasi
•
Template yang cepat dan fleksibel
•
Sanitasi data
•
Chacing yang fleksibel
•
Localization
•
Bekerja dari direktori situs web, dengan sedikit atau tidak ada konfigurasi
Apache yang terlibat.
1.4 Mengenal Konsep MVC
MVC merupakan kepanjangan dari Model - View - Controller, yang merupakan
alur kerja atau konsep yang digunakan CakePHP. Dengan konsep MVC ini akan
menyebabkan halaman web sedikit mengandung kode, karena telah dipisahkan
struktur tampilan dan logika. Adapun ilustrasi dari MVC dapat dilihat pada
gambar 1.1.
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
5
Gambar 1.1 Konsep MVC
Keterangan:
•
Client, merupakan pengguna saat meminta request pada url web
browser.
•
Dispatcher, berfungsi untuk memeriksa url yang diminta serta
menangani permintaan yang sesuai dengan controller.
•
Controller, merupakan pengendali yang menghubungkan antara model
dan juga view, karena semua permintaan yang masuk, akan ditangani
oleh controller terlebih dahulu. Dalam controller juga memerlukan
spesifikasi logika.
•
Model, merupakan tempat untuk representasi data atau bagian yang
berhubungan dengan database.
•
View, merupakan tempat untuk memberi informasi atau menampilkan
data yang diminta pengguna ke dalam tampilan layar. Secara default,
hal yang terdapat dalam view merupakan hal yang kelihatan dihalaman
web. Ketika kita mempunyai template atau tampilan web
, view
merupakan tempat untuk itu.
Setelah melihat penjelasan diatas, dapat disimpulkan alur kerja dari framework
CakePHP sebagai berikut:
1. Client meminta kepada CakePHP melalui url kepada dispatcher.
2. Dispatcher kemudian menerima dan memeriksa hasil request url tersebut
kepada per segment kepada controller.
6
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
3. Controller kemudian memproses hasil request tersebut berdasarkan
segment dan diteruskan kepada bagian model.
4. Lalu dari bagian model akan memproses request controller kepada
database, kemudian akan memperoleh hasil dan akan dikembalikan
kepada controller untuk ditangani selanjutnya sesuai perintah yang ada
dalam controller.
5. Bagian view akan memproses data hasil controller sebelum ditampilkan
kepada client.
6. Client mendapatkan informasi sesuai request yang diminta.
1.5 Struktur Folder CakePHP
Sebelum kita mempelajari framework CakePHP, kita harus mengenal folderfolder yang tersedia dalam CakePHP, adapun folder-folder yang tersedia adalah
sebagai berikut:
a.Folder app: tempat untuk menyimpan aplikasi yang akan kita bangun atau
kembangkan.
•
Folder config: tempat untuk menyimpan semua file konfigurasi yang
ada dalam aplikasi web.
•
Folder controllers: tempat menyimpan semua file controller.
•
Folder models: berisi file-file model yang akan berperan sebagai
representasi data, baik itu validasi maupun relasi.
•
Folder plugins: digunakan apabila developer ingin mengembangkan
aplikasi kecil sebagai pendukung aplikasi utama.
•
Folder tmp: digunakan untuk fungsi caching.
•
Folder vendors: digunakan apabila developer melibatkan aplikasiaplikasi tambahan yang dikembangkan oleh developer lain.
•
Folder views: untuk mempresentasikan dari aplikasi yang dibuat. Folder
ini mempunyai beberapa sub folder yang digunakan untuk halaman
statis (pages), halaman dasar aplikasi (layout), dan sebagainya.
•
Folder webroot: sebagai document root dari aplikasi yang dibuat.
b.Folder cake: berisi class-class dan pustaka dasar CakePHP. Ditempat ini
fungsi-fungsi CakePHP ditempatkan.
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
7
c.Folder vendors: untuk menyimpan file-file tambahan dan aplikasi source lain
yang akan digunakan bersama CakePHP.
1.6 Kebutuhan Tools Dasar CakePHP
Sebelum memulai pembelajaran tentang CakePHP, ada beberapa tools dasar yang
harus dipenuhi, diantaranya:
1. Web Server
Dalam membuat aplikasi yang bersifat dinamis, salah satu hal mutlak yang
harus dipenuhi adalah Web Server. tanpa web server, semua yang kita lakukan
adalah sia-sia.
2. Text Editor
Editor ini berfungsi untuk kita menuliskan skrip program yang akan kita buat.
Dalam hal ini, penulis menggunakan Crimson Editor sebagai text editor PHP.
Anda juga dapat menggunakan editor lain, seperti Notepad, Zend Studio,
Macromedia Dreamweaver, maupun yang lainnya sesuai selera anda. File
ini telah penulis sertakan dalam CD tutorial yang diletakkan dalam folder
installer.
3.CakePHP
CakePHP merupakan file utama dalam membangun aplikasi berbasis
CakePHP. Anda dapat mendapatkan versi terbarunya melalui situs resminya,
yaitu http://www.cakephp.org.
1.6.1 Instalasi Web Server
Kali ini kita akan mencoba menginstal web server sebelum terjun ke dalam
langkah awal CakePHP. Web server ini akan dijadikan sebagai mesin PHP dalam
menjalankan website dinamis. Disini kita akan memakai Xampp Server, berikut
langkah-langkahnya:
1.Karena kita akan belajar menggunakan sistem operasi windows, Anda
dapat mendownload xampp di http://www.apachefriends.org/en/xamppwindows.html untuk mendapatkan versi terbarunya. Atau untuk memudahkan
Anda belajar, penulis telah menyertakan file tersebut didalam CD yang
disertakan pada folder installer.
2. Klik 2x file instalasinya, kemudian anda akan diminta menentukan bahasa
8
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
yang akan digunakan pada saat instalasi. Biarkan secara default (English),
selanjutnya klik OK. Lihat gambar 1.2.
Gambar 1.2 Memilih Bahasa
3. Maka akan ditampilkan jendela Welcome to the Xampp, klik tombol Next.
Lihat gambar 1.3.
Gambar 1.3 Kotak dialog Welcome
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
9
4. Selanjutnya Anda akan diminta untuk menentukan letak folder Xampp.
Biarkan dalam keadaan default. Kemudian klik Next. Lihat gambar 1.4.
Gambar 1.4 Menentukan folder Instalasi Xampp
5. Menentukan Apache dan MySQL Service sebagai service windows.
Berikan tanda cek pada pilihan “Install Apache as service” dan “Install
MySQL as service” untuk menjalankan server secara otomatis pada saat
kita menjalankan sistem operasi Windows. Lihat gambar 1.5.
6. Proses instalasi, tunggu hingga proses selesai. Xampp akan secara otomatis
meng-ekstrak file-file yang diperlukan. Lihat gambar 1.6.
10
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Gambar 1.5 Apache dan MySQL Service
Gambar 1.6 Proses instalasi
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
11
7. Apabila proses instalasi selesai, maka akan tampil kotak dialog Complete,
klik tombol Finish. Lihat gambar 1.7.
Gambar 1.7 Kotak dialog complete (Finish)
8. Selanjutnya, ikuti instruksi pada kotak dialog yang tampil, apabila tampil
kotak peringatan dari firewall sistem operasi, pilih Allow access. Lihat
gambar 1.8.
9. Apabila proses instalasi berhasil, maka akan tampil Xampp Control Panel,
pastikan bahwa Apache dan Mysql dalam keadaan Running. Jika tidak
dalam keadaan Running, Anda dapat menjalankannya melalui tombol
Start yang berada di sebelah kanannya. Lihat gambar 1.9.
12
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Gambar 1.8 Kotak peringatan Firewall dari sistem operasi
Gambar 1.9 Xampp Control Panel
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
13
1.6.2 Instalasi CakePHP
Sebelum melakukan penginstalan terhadap CakePHP, kita akan mengaktifkan
modul yang bernama mod_rewrite yang terdapat pada server terlebih dahulu.
Caranya sebagai berikut:
1. Buka file httpd.conf yang terdapat di direktori C:\xampp\apache\conf\
dengan menggunakan editor Anda (Notepad).
2. Kemudian cari baris:
#LoadModule rewrite_module modules/mod_rewrite.so
Untuk mempercepat pencarian, gunakan bantuan search pada toolbar atau
tekan shortcut CTRL+F, kemudian ketikkan keyword mod_rewrite.
3. Hilangkan tanda #, sehingga menjadi:
LoadModule rewrite_module modules/mod_rewrite.so
4.Terakhir, Anda lakukan penyimpanan terhadap perubahan tersebut.
Selanjutnya Anda restart server apache, dengan cara klik 2x file xampp_
restart.exe yang berada di direktori C:\xampp\.
Setelah mod_rewrite diaktifkan, Anda dapat melakukan penginstalan terhadap
CakePHP. Anda dapat mendownload CakePHP melalui alamat situs resminya
di http://www.cakephp.org atau Anda dapat menggunakan CakePHP yang
penulis gunakan yang terdapat dalam CD di folder Installer/CakePHP.
1. Copy file yang bernama cakephp-cakephp-1.3.4.0-g703344c.zip dan
letakkan ke dalam C:\xampp\htdocs\.
2. Lakukan ekstrak pada file zip tersebut, sehingga akan menghasilkan folder
cakephp-cakephp-df6ffd4.
3. Selanjutnya untuk memudahkan saat kita melakukan pengaksesan, ubah
nama folder tersebut menjadi nama yang mudah dicerna, seperti contoh
ubah menjadi cakephp.
4. Buka web browser anda dan panggil alamat http://localhost/cakephp.
5.Apabila instalasi terhadap CakePHP telah berhasil, maka akan tampil
halaman seperti pada gambar 1.10.
14
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Gambar 1.10 Halaman utama CakePHP
6.Perhatikan Notice (1024) pada gambar 1.10, itu berarti kita diminta untuk
mengubah value (nilai) yang terdapat pada folder app/config/core.php
menjadi apapun sesuai keinginan kita.
Buka file core.php yang terdapat dalam app/config/core.php dengan editor
Anda (Notepad). Ubah atau tambahkan coding value menjadi apapun,
seperti contoh penulis menambahkan kata blog pada value tersebut. Untuk
memudahkan pencarian Anda dapat mengetikkan keyword salt pada menu
Search > Find (CTRL + F).
Skrip core.php
201
202
203
204
205
206
207
208
* A random string used in security hashing methods.
*/
Configure::write(‘Security.salt’,
DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9miblog’);
/**
* A random numeric string (digits only) used to
encrypt/decrypt strings.
*/
Configure::write(‘Security.cipherSeed’, ‘76859309657453
542496749683645blog’);
B A B 1 . P e n ge n al a n D a s a r C a k ePH P
15
Perhatikan pada kode skrip yang bercetak tebal, value telah kita ubah/
tambahkan, selanjutnya buka kembali web browser Anda dan ketikkan kembali
url http://localhost/cakephp, pastikan bahwa Notice tersebut telah hilang dari
tampilan browser Anda. Lihat gambar 1.11.
Gambar 1.11 CakePHP yang telah diubah valuenya
16
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
BAB 2
Memulai CakePHP
BAB 2
Memulai CakePHP
2.1 Menentukan Layout Awal
Sebelum kita memulai, terdapat beberapa pilihan yang akan ditentukan dalam
memilih tampilan layout. Apakah kita akan menggunakan layout default pada
CakePHP atau menciptakan layout sendiri.
Untuk menggunakan layout default, kita cukup membuat halaman konten saja.
Langkahnya sebagai berikut:
1. Buat satu file atau isi konten dengan menggunakan text editor anda dan simpan
dengan nama home.ctp ke dalam direktori \app\views\pages.
2. Buka web browser dan ketikkan alamat http://localhost/cakephp,sehingga
akan dipastikan tampilannya berubah menjadi seperti pada gambar 2.1.
Gambar 2.1 Menggunakan Layout Default
18
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Anda dapat mengubah CSS (Cascading Style Sheet) pada layout diatas sesuai
dengan keinginan anda pada path direktori app\webroot\css, di folder tersebut
CSS-nya diletakkan.
Selanjutnya, jika Anda ingin menggunakan layout desain hasil buatan sendiri
ataupun menggunakan template yang tersedia, berikut langkahnya:
1. Anda buat layout desain atau template yang sudah disediakan dan anda simpan
dengan nama default.ctp ke dalam path app\views\layouts.
2. Kemudian Anda letakkan file CSS dari layout tersebut ke dalam app\webroot\
css.
3. Ubah pemanggilan file CSS pada default.ctp, ikuti dengan prosedur
pemanggilan sesuai skrip CakePHP. Skrip dapat Anda lihat pada sub-bab
Penanganan HTML.
4. Selanjutnya, kembali kepada web browser anda dan cobalah Anda lakukan
refresh/reload, maka tampilan akan berubah menjadi layout yang sesuai
keinginan kita. Lihat gambar 2.2.
Gambar 2.2 Layout yang telah diubah
B A B 2 . M em u l a i C a k ePH P
19
Namun disini penulis akan menggunakan layout default CakePHP sebagai bahan
belajar.
Jika kita telah menciptakan layout dan telah menyimpannya dengan nama default.
ctp didalam app\views\layouts\. Tanpa perlu kita menghapus, layout default yang
dimiliki CakePHP akan secara otomatis diganti menjadi layout baru anda. Karena
disini kedudukan pada folder layout tersebut diatas dari tingkat default CakePHP.
Jika pada folder tempat anda menyimpan adalah kosong. Maka secara otomatis
juga yang akan ditampilkan kembali menjadi layout default CakePHP.
2.2 Welcome to CakePHP Framework
Sebagai langkah pertama, ada dua hal yang perlu kita ketahui. Apakah kita
hendak membuat suatu konten statis atau dinamis? Karena didalam CakePHP,
penempatan terhadap perbedaan konten itu berbeda. Jika kita ingin membuat
suatu file konten statis, anda dapat meletakkannya didalam folder app\views\
pages. Namun sebaliknya, jika kita ingin menciptakan suatu konten dinamis,
Anda dapat meletakkannya pada folder app\views\(folder_anda).
Sebagai langkah awal, kita akan mencoba membuat file untuk menampilkan teks
yang berisi Welcome to CakePHP Framework. Berikut langkahnya:
1. Buka editor anda (Notepad), dan ketikkan skrip berikut:
Skrip home.ctp
1
2
3
<?php
echo “Welcome to CakePHP Framework“;
?>
Setelah itu anda simpan dengan nama home.ctp ke dalam folder app\views\
pages. Perhatikan format nama penyimpanan. Setiap nama penyimpanan
didalam folder views, penamaan harus berformat ctp (bukan php). Karena ctp
merupakan format PHP dasar yang terdapat dalam CakePHP.
2. Sekarang coba buka web browser Anda, dan ketikkan url http://localhost/
cakephp. sehingga nanti akan tampil teks Welcome pada browser Anda.
Lihat gambar 2.3.
20
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Gambar 2.3 Welcome to CakePHP Framework
2.3 Penanganan HTML
Penanganan kode HTML, meliputi perintah-perintah dasar yang terdapat dalam
kode HTML, seperti charset, css, meta, docType, style, dan sebagainya. Berikut
adalah contoh-contoh penggunaan kode HTML dalam CakePHP:
2.3.1 Charset
Digunakan untuk membuat meta tag yang menentukan karakter dokumen. Default
dari charset adalah UTF-8.
Berikut contoh penggunaan Charset:
echo $html->charset();
Maka akan menghasilkan kode html:
<meta http-equiv=“Content-Type” content=”text/
html;charset=utf-8” />
B A B 2 . M em u l a i C a k ePH P
21
2.3.2 CSS
Digunakan untuk memanggil file css ke dalam suatu kerja CakePHP
Framework.
Berikut contoh penggunaan CSS:
echo $html->css(‘style’);
Maka akan menghasilkan kode html:
<link rel=”stylesheet” type=”text/css” href=”/css/style.css”/>
Atau jika ingin memanggil lebih dari satu file css, anda dapat menggunakan skrip
berikut agar lebih praktis:
echo $html->css(array(‘style’,’tables’,’menu’));
Maka akan menghasilkan kode html:
<link rel=”stylesheet” type=”text/css” href=”/css/style.css” />
<link rel=”stylesheet” type=”text/css” href=”/css/tables.css” />
<link rel=”stylesheet” type=”text/css” href=”/css/menu.css” />
2.3.3 Meta
Digunakan untuk menghubungkan ke sumber daya eksternal seperti RSS ataupun
favicon.
Berikut contoh penggunaan meta:
echo $html->meta(‘Comments’,’/comments/index.rss’,
array(‘type’ => ‘rss’));
Maka akan menghasilkan kode html:
<link rel=”http://example.com/comments/index.rss”
title=”Comments” type=”application/rss+xml” rel=”alternate” />
2.3.4 docType
Menghasilkan (x) HTML docType tag. Berikut adalah daftar type dari penggunaan
docType:
22
Type
Nilai Terjemahan
Html
Text/html
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
html4-strict
HTML4 Strict
html4-trans
HTML4 Transitional
html4-frame
HTML4 Frameset
xhtml-strict
XHTML1 Strict
xhtml-trans
XHTML1 Transitional
xhtml-frame
XHTML1 Frameset
xhtml11
XHTML 1.1.
Dan berikut contoh penggunaan docType:
echo $html->docType();
echo $html->docType(‘html4-trans’);
Maka akan menghasilkan kode html:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
2.3.5 Style
Penggunaan style ini dilakukan apabila kita ingin membangun css dalam suatu
file PHP dalam CakePHP.
Berikut contoh penggunaan fungsi style:
echo
$html->style(array(
‘background’ => ‘#633’,
‘border-bottom’ => ‘1px solid #000’,
‘padding’ => ‘10px’
));
Maka akan menghasilkan kode html:
background: #633;
border-bottom: 1px solid #000;
padding: 10px;
B A B 2 . M em u l a i C a k ePH P
23
2.3.6 Image
Digunakan untuk menampilkan gambar pada suatu halaman web.
Berikut adalah contoh penggunaan image:
echo $html->image(‘cake_logo.png’, array(‘alt’ => ‘CakePHP’));
Maka akan menghasilkan kode html sebagai berikut:
<img src=”/img/cake_logo.png” alt=”CakePHP” />
2.3.7 Link
Digunakan untuk menciptakan link html baru.
Berikut contoh penggunaan link:
echo $html->link(‘Enter’, ‘/pages/home’, array(‘class’ =>
‘button’, ‘target’ => ‘_blank’));
Maka akan menghasilkan kode html sebagai berikut:
<a href=”/pages/home” class=”button” target=”_blank”>
Enter</a>
2.4 Penanganan Form
Dalam penanganan form, seperti tombol submit, form, textarea, textbox, radio,
checkbox, dropdown, dan sebagainya. CakePHP framework jugamenyediakan
fasilitas-fasilitas yang dapat menyederhanakan pembuatan dan pengaturan form
tersebut. berikut adalah penyederhanaan yang tersedia dalam CakePHP untuk
menangani penanganan kode form HTML:
2.4.1 Form Open
Form open ini digunakan apabila kita ingin mengirimkan suatu variabel dalam
web untuk diproses.
Berikut adalah skrip untuk memulai bentuk form:
echo $form->create(‘post’);
Maka akan menghasilkan kode html:
<form id=”PostAddForm” method=”post” action=”/cakephp/posts/
add” accept-charset=”utf-8”>
24
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Seperti yang kita ketahui, bahwa elemen method form mempunyai dua variabel,
yaitu post dan get. Jika penulisan yang diatas adalah metode post, maka dibawah
ini merupakan form dengan method “get”.
echo $form->create(‘post’,array(‘type’ => ‘get’));
2.4.2 Form Close
Form close berfungsi untuk mengakhiri suatu form.
Berikut merupakan contoh penggunaan penutupan terhadap suatu form:
echo $form->end(‘Finish’);
Maka akan menghasilkan kode html:
<input type=”submit” value=”Finish”>
2.4.3 Form Input Text
Form input text berfungsi untuk menyimpan atau tempat untuk mengisi data
sebelum kita mempostkan ke dalam database.
Berikut adalah contoh dari penggunaan form input text:
echo $form->input(‘name’);
Maka akan menghasilkan kode html:
<input name=”data[Post][name]” type=”text” maxlength=”100”
id=”PostName” />
2.4.4 Form Input Hidden
Form input hidden dapat digunakan apabila kita ingin membuat input field yang
tidak kelihatan atau tidak akan ditampilkan (hidden) pada jendela web browser,
namun terdapat value yang terdapat didalamnya.
Berikut adalah contoh dari penggunaan form input hidden:
echo $form->hidden(‘name’);
Maka akan menghasilkan kode html:
<input type=”hidden” name=”data[Post][name]” id=”PostName” />
Anda juga dapat menggunakan pengaturan lain yang tersedia, misalnya:
B A B 2 . M em u l a i C a k ePH P
25
echo $form->hidden(‘name’, array(
‘size’ => ‘20’,
‘value’ => ‘name’,
‘maxlength’ => ‘100’
));
Maka akan menghasilkan kode html:
<input type=”hidden” name=”data[Post][name]” size=”20”
value=”name” maxlength=”100” id=”PostName” />
2.4.5 Form Input Password
Dalam penggunaan form input untuk penginputan password sangat berguna
bahkan sangat penting dalam menjaga kerahasiaan identitas seoserang. Sehingga
dengan adanya form input password, setiap inputan yang diketik dalam kotak
inputan akan disamarkan dalam bentuk bintang (*) ataupun bullet.
Sama seperti skrip input sebelumnya, berikut adalah contoh dalam penggunaan
fom input password dalam CakePHP:
echo $form->password(‘password’);
Maka akan menghasilkan kode html:
<input type=”password” name=”data[Post][password]”
id=”PostPassword” />
Kita juga dapat membuat pengaturan dari skrip input password diatas. Berikut
adalah contoh dalam pengaturan pembuatan form input password:
echo $form->password(‘password’, array(
‘size’ => ‘20’,
‘value’ => ‘123456’,
‘maxlength’ => ‘100’
));
Maka akan menghasilkan kode html:
<input type=”password” name=”data[Post][password]” size=”20”
value=”123456” maxlength=”100” id=”PostPassword” />
2.4.6 Form Input Upload
Penggunaan input upload sangat berguna dalam pembuatan pembangunan
website, yang berfungsi sebagai sarana untuk menginputkan suatu file atau data
selain daripada text, seperti gambar, video, aplikasi, maupun software-software
26
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
lain.
Berikut adalah contoh penggunaan form input upload:
echo $form->file(‘file’);
Maka akan menghasilkan kode html:
<input type=”file” name=”data[Post][file]” id=”PostFile” />
2.4.7 Form Textarea
Textarea digunakan untuk inputan text dengan jumlah karakter tidak terbatas.
Biasanya form textarea digunakan apabila kita ingin menginputkan berita, artikel,
acara, ataupun hal-hal yang memakan jumlah karakter banyak.
Berikut adalah contoh pembuatan textarea:
echo $form->textarea(‘alamat’);
Maka akan menghasilkan kode html:
<textarea name=”data[Post][alamat]” id=”PostAlamat” />
Kita juga dapat mengatur baris dan kolom (lebar dan tinggi) dari form textarea,
berikut adalah contoh dalam mengatur lebar dan tinggi dari textarea:
echo $form->textarea(‘alamat’, array(
‘cols’ => ‘30’,
‘rows’ => ‘6’
));
Maka akan menghasilkan kode html:
<textarea name=”data[Post][alamat]” cols=”30” rows=”6”
id=”PostAlamat” />
2.4.8 Form Label
Berikut adalah contoh penggunaan form label:
echo $form->label(‘status’);
Maka akan menghasilkan kode html:
<label for=”UserStatus”>Status</label>
B A B 2 . M em u l a i C a k ePH P
27
2.4.9 Form Dropdown
Form dropdown digunakan apabila kita ingin menentukan pilihan dari beberapa
pilihan. Seperti contoh kita memilih kota tempat tinggal kita.
Dropdown ditandai dengan bentuk kotak seperti textbox dan juga terdapat tanda
panah ke bawah pada textbox tersebut.
Berikut adalah format skrip kode dalam penggunaan form dropdown:
echo $form->select(‘namafield’, $options, ‘0’);
Dari format tersebut dapat dicontohkan dalam penggunaannya sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// deklarasikan pilihan melalui fungsi array
$options
'0' =>
‘a’ =>
‘b’ =>
‘c’ =>
‘d’ =>
?>
= array(
'Pilih Kota',
‘Jakarta’,
‘Bandung’,
‘Cirebon’,
‘Surabaya’);
echo $form->select(‘kota’, $options, ‘0’);
Maka akan menghasilkan kode html:
1
2
3
4
5
6
7
8
<select name=”data[Post][kota]” id=”PostKota”>
<option value=””></option>
<option value="0" selected="selected">Pilih Kota</option>
<option value=”a”>Jakarta</option>
<option value=”b”>Bandung</option>
<option value=”c”>Cirebon</option>
<option value=”d”>Surabaya</option>
</select>
Atau untuk lebih praktis, Anda dapat menggunakan cara alternatif berikut:
echo $form->select(‘kota’, array(‘options’ => array(‘Jakarta’,
‘Bandung’,’Cirebon’,’Surabaya’)));
Maka akan menghasil kode html yang sama seperti skrip sebelumnya. Contoh
hasil pembuatan dropdown dilihat pada gambar 2.4.
28
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Gambar 2.4 Tampilan Dropdown
2.4.10 Form Checkbox
Fungsi checkbox digunakan apabila kita ingin memilih lebih dari satu option yang
tersedia. Seperti contoh kita dihadapkan dalam memilih hobi yang ditampilkan
dalam halaman web.
Berikut adalah contoh dari penggunaan form checkbox:
echo $form->input(‘hobi’, array(
‘type’ => ‘select’,
‘multiple’ => ‘checkbox’,
‘options’ => array(
‘value 1’ => ‘Label 1’,
‘value 2’ => ‘Label 2’)
));
Maka akan menghasilkan kode html:
<div class=”checkbox”>
<input type=”checkbox” name=”data[hobi][]” value=”Value 1”
id=”HobiValue1” />
<label for=”HobiValue1”> Label 1 </label>
</div>
<div class=”checkbox”>
<input type=”checkbox” name=”data[hobi][]” value=”Value 2”
id=”HobiValue2” />
<label for=”HobiValue2”>Label 2</label>
</div>
B A B 2 . M em u l a i C a k ePH P
29
Contoh hasil pembuatan checkbox dilihat pada gambar 2.5.
Gambar 2.5 Tampilan Checkbox
2.4.11 Form Radio
Form radio biasanya digunakan dalam menentukan salah satu dari pilihan yang
tersedia dalam halaman web. Seperti contoh ketika kita memilih salah satu jenis
kelamin dalam sautu web pendaftaran.
Dibawah ini adalah contoh susunan penggunaan form radio:
echo $form->radio(‘$fieldname’, $options , $attribut);
Berikut adalah contoh penggunaan penerapan form radio. Dalam hal ini, penulis
akan mengambil contoh pembuatan dalam pemilihan antar dua pilihan mengenai
jenis kelamin.
1
2
3
4
5
6
7
8
9
10
<?php
// uraikan option dalam bentuk array
$jk = array(‘L’ => ‘Laki-laki’, ‘P’ => ‘Perempuan’);
// ubah Legend pada Radio menjadi false
$attribut = array (‘legend’ => false);
// cetak array dalam bentuk fungsi radio
echo $form->radio (‘jk’, $jk, $attribut);
?>
Maka akan menghasilkan kode html:
<input type=”radio” name=”data[Post][jk]” id=”PostJkL”
value=”L”>Laki-laki
<input type=”radio” name=”data[Post][jk]” id=”PostJkP”
value=”P”>Perempuan
Contoh hasil pembuatan form radio dilihat pada gambar 2.6.
30
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Gambar 2.6 Tampilan Radio
2.4.12 Form Submit
Secara default penggunaan pada pembuatan tombol submit sebagai berikut:
echo $form->submit();
Dari penulisan skrip diatas, akan menghasilkan kode html sebagai berikut:
<div class=”submit”><input type=”submit” value=”Submit”></div>
Dalam menggunakan tombol submit, kita juga dapat mengganti tombol tersebut
dengan gambar. Berikut contoh penggunaannya:
echo $form->submit(‘ok.png’);
Maka akan menghasilkan kode html:
<input type=”image” src=”/img/ok.png”>
2.4.13 Form Button
Form button digunakan untuk membuat tombol standar.
Berikut adalah contoh dari penggunaan form button:
echo $form->button(‘Simpan’);
Maka akan menghasilkan kode html sebagai berikut:
<button type=”submit”>Simpan</button>
Agar penulisan tombol button lebih kompleks, anda dapat menambahkan
komponen-komponen button, berikut contohnya:
echo $form->button(‘Simpan’, array(
‘id’ => ‘button’,
‘value’ => ‘true’,
‘name’ => ‘button’,
‘type’ => ‘reset’,
‘content’ => ‘reset’
));
B A B 2 . M em u l a i C a k ePH P
31
Maka akan menghasilkan kode html:
<button type=”reset” id=”button” value=”true” name=”button”
content=”reset”>Simpan</button>
2.4.14 Form Reset
Form reset berfungsi untuk membatalkan atau mengulang penginputan dari
awal, sehingga penginputan yang telah terisi akan terhapus secara otomatis
dan mengembalikannya ke awal penginputan. Form reset biasanya dipakai
bersebelahan dengan form submit pada proses input.
Berikut adalah contoh penggunaan form reset dalam CakePHP:
echo $form->submit(‘reset’, array(‘type’ => ‘reset’));
Maka akan menghasilkan kode html:
<input type=”reset” value=”reset” />
32
Te kni k Ce pat Memban g u n A p likas i W e b de n gan Fr a m ew or k C a k ePH P
Download