buku-A4.pdf
September 18, 2017 | Author: Sudaltinah Hadi | Category: N/A
Short Description
Download buku-A4.pdf...
Description
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Sunu Wibirama, S.T. (www.idcake.web.id)
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Terima kasih kuucapkan untuk :
i
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Kata Pengantar
ii
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Daftar Isi Pendahuluan
1
Bab 1. CakePHP
5
1.1 Pengembangan Aplikasi Berbasis Framework
5
1.2 Profil CakePHP
6
1.3 Mengapa CakePHP ?
7
1.3. Struktur Aplikasi
10
Bab 2. Instalasi dan Kebutuhan Dasar
13
2.1. Kebutuhan Dasar
13
2.2. Instalasi Paket AppServ
14
2.3. Instalasi Paket Pendukung
21
2.4. Konfigurasi Server
22
Bab 3. Instalasi CakePHP
iii
25
3.1. Instalasi dan Konfigurasi
25
3.2. Routing CakePHP
30
3.3. Hello World !
32
3.4. Scaffolding
35
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
iv
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Pendahuluan Gambaran Umum Buku Buku ini membahas tentang penggunaan framework CakePHP sebagai dasar untuk membangun aplikasi web, terutama aplikasi berskala besar (enterprise). Bagi Anda para programmer pemula, buku ini akan memberikan wawasan kepada Anda sekaligus mengajak Anda untuk masuk ke paradigma baru pemrograman PHP, yang berbasis pada konsep OOP (Object Oriented Programming) dan MVC (model view controller). Bagi Anda para programmer profesional, buku ini akan mengajak Anda untuk bergabung dalam sebuah komunitas pengguna CakePHP, sebuah framework PHP yang saat ini menempati urutan pertama sebagai framework yang banyak digunakan oleh para pengembang aplikasi amatir dan profesional. Berbagai aplikasi web terkenal di dunia tercatat menggunakan CakePHP sebagai bagian atau keseluruhan inti aplikasi. Tercatat portal Yahoo!, TextLinkBroker.Com, Panasonic, dan masih banyak lagi aplikasi web yang dikembangkan dengan CakePHP. Selain itu, buku ini akan menjelaskan secara jelas dan bertahap tentang bagian-bagian dari CakePHP, contoh riil aplikasi yang dibangun dengan CakePHP dan beberapa tips-tips menarik seputar CakePHP.
Bab 1. CakePHP Pada bab ini Anda akan dijelaskan tentang dasar pengembangan aplikasi web menggunakan framework berbasis PHP. Selain itu, akan dibahas pula profil, kelebihan dan kurangan serta struktur dasar aplikasi CakePHP, sehingga memberikan gambaran awal tentang framework CakePHP dan mengapa CakePHP layak dipilih untuk dasar pengembangan aplikasi web.
Bab 2. Instalasi dan Kebutuhan Dasar Bab ini akan menjelaskan tentang kebutuhan dasar sistem yang digunakan, meliputi spesifikasi minimal komputer yang diperlukan, web server dan database server, serta program pendukung lainnya. Bab ini juga akan menjelaskan secara sekilas panduan instalasi paket server yang akan digunakan, serta paket pendukung lainnya.
Bab 3. Instalasi CakePHP Bab ini akan menjelaskan tahapan instalasi dan konfigurasi CakePHP, sesuai dengan server yang digunakan. Pada bab ini, Anda akan dipandu langkah demi langkah untuk menginstalasi CakePHP, melakukan konfigurasi pada database, routing aplikasi, membuat contoh aplikasi dasar dan mencoba Scaffolding (fitur spesial CakePHP).
1
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Bab 4. Prinsip Kerja : Resep Sebelum Memasak Bab ini akan menjelaskan secara detail arsitektur CakePHP yang menggunakan konsep MVC (model view controller). Bagian awal akan menjelaskan tentang gambaran umum konsep MVC. Berturut-turut akan dibahas masing-masing komponen MVC dan penerapannya pada framework CakePHP.
Bab 5. Mengenal Komponen dan Elemen Bab ini akan menjelaskan kepada Anda tentang konsep penggunaan komponen dan elemen dalam mendukung pembuatan aplikasi web. Penjelasan pada bab ini disertai potongan-potongan source code untuk memperjelas pemahaman.
Bab 6. Mengenal Helper Bab ini akan menjelaskan kepada Anda tentang konsep templating dan pembuatan tampilan (presentation logic) di framework CakePHP. Fitur templating ini didukung oleh beberapa kelas helper yang menyediakan berbagai fungsi untuk mempermudah templating.
BAB 7. Mengenal Access Control List Bab ini akan menjelaskan kepada Anda tentang penggunaan Access Control List (ACL) pada framework CakePHP. Penjelasan disertai dengan contoh penggunaan yang memperjelas pemahaman.
Bab 8. Sanitasi dan Validasi Data Cake PHP mendukung sanitasi dan validasi data. Bab ini akan menjelaskan secara singkat tentang metode sanitasi dan validasi data dalam sebuah aplikasi berbasis framework CakePHP dan penerapannya.
Bab 9. Mengenal Plug-in CakePHP juga memungkinkan para developer untuk membuat aplikasi kecil yang bisa digunakan berkali-kali untuk mendukung pembuatan aplikasi yang lebih besar. Aplikasi kecil ini disebut dengan plug-in. Bab ini akan mengajak Anda untuk melongok sekilas proses pembuatan plug-in dan penerapannya.
Bab 10. Manajemen Error CakePHP juga mendukung manajemen error, yang akan melindungi aplikasi yang Anda buat dari berbagai macam gangguan yang tidak diinginkan. Fasilitas manajemen error yang disediakan CakePHP akan mempermudah developer untuk menampilkan error dengan tampilan yang “aman” sesuai dengan kesalahan yang terjadi.
2
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Bab 11. Mari Memasak : Resep Andalan CakePHP Bab ini adalah bab yang paling ditunggu-tunggu. Berisi tutorial bersambung yang akan menuntun Anda langkah demi langkah untuk membuat sebuah aplikasi blog, lengkap dengan halaman administrasi dan berbagai macam modul yang akan menyertainya.
Bab 12. Tips dan Trik Bab ini berisi sedikit tips dan trik khusus yang berkaitan dengan CakePHP, maupun seputar pemrograman PHP yang bermanfaat untuk mendukung proses pengembangan aplikasi web berbasis CakePHP.
Bab 13. Penutup Bab ini adalah penutup dari buku ini. Didalamnya berisi harapan – harapan dan gambaran aplikasi enterprise lain yang bisa dikembangkan dari aplikasi blog yang Anda buat.
Bab 14. Referensi Web Bab ini akan membahas beberapa referensi online yang bisa menjadi rujukan untuk mempelajari CakePHP ke tingkat lanjut. Referensi disertai dengan gambar, tema utama website, dan penjelasan singkat.
Keterangan Ikon Buku Ikon CD Ikon ini menggambarkan bagian tertentu pada buku yang terletak pada halaman terkait, yang bisa dijumpai pada CD Pendukung
Ikon Peringatan Ikon ini menggambarkan bagian tertentu pada buku yang terletak pada halaman terkait, yang berisi catatan penting atau tips-tips yang berguna
Ikon FAQ Ikon ini menggambarkan bagian tertentu pada buku yang terletak pada halaman terkait, yang berisi pertanyaanpertanyaan dan solusi permasalahan yang sering dijumpai.
3
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
4
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Bab 1. CakePHP 1.1 Pengembangan Aplikasi Berbasis Framework PHP adalah sebuah bahasa pemrograman yang memungkinkan seorang developer (programmer atau system analist) membuat sebuah aplikasi berbasis web yang powerful sekaligus mampu mengampu database berskala besar. Dalam perkembangannya, seorang programmer PHP seringkali dituntut untuk menyelesaikan berbagai macam aplikasi dengan tingkat kerumitan yang cukup tinggi dalam waktu singkat. Di sisi lain, programmer juga dituntut untuk menciptakan sebuah dasar aplikasi yang bisa dikembangkan menjadi aplikasi lain dengan skala yang lebih besar dengan melibatkan banyak anggota tim. Aplikasi web berskala besar seringkali diasosiasikan dengan indikasi-indikasi sebagai berikut : • Diakses oleh banyak orang (public access) • Melibatkan database dengan skala record diatas 1000 • Mempunyai banyak modul, seperti modul berita, modul administrasi, modul keuangan, modul pencarian tingkat lanjut, modul polling dan sebagainya • Dikerjakan oleh sebuah tim pengembang dengan spesialisasi tugas Berbicara tentang aplikasi web berskala besar tentu tidak bisa dilepaskan dari pembagian peran anggota tim. Aplikasi web, terutama web berskala besar, tidak hanya membutuhkan seorang programmer saja, akan tetapi melibatkan pula seorang web desainer, system analist, database maintainer, manajer keuangan, manajer riset dan promosi dan manajer proyek yang akan mengatur jalannya pembuatan, pengembangan dan pemeliharaan aplikasi tersebut. Tingkat kerumitan dan kesamaan cara pandang inilah yang melahirkan konsep kerangka kerja (framework) dalam pengembangan aplikasi berbasis web. Framework memudahkan anggota tim untuk bekerja bersama dengan satu cara pandang, sekaligus memudahkan pembagian kerja. Pada umumnya, framework terdiri dari file-file pustaka berupa kelas-kelas PHP yang bisa digunakan dan dikolaborasikan dalam aplikasi yang sedang Anda kembangkan.
Di internet, tersedia puluhan, bahkan ratusan framework dan Content Management System (CMS). Sebut saja Mojavi, Prado, Agavi, Seagull, Code Igniter, Fusebox, PHP Nuke, Post Nuke, Mambo, Joomla, Wordpress, Blogspot, Aura, Endonesia, dan masih banyak lagi. Ada beberapa developer yang menyediakan file inti (core) framework saja, beserta manualnya, tanpa memberikan contoh-contoh aplikasi secara detail, misalnya Fusebox dan Mojavi (saat ini riset Mojavi terhenti, tapi dikembangkan menjadi framework baru, yakni Agavi). Ada juga framework yang benar-benar dibuat untuk membangun aplikasi enterprise,
5
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
memberikan contoh yang detail, manual yang lengkap, namun memiliki ukuran besar dan memerlukan instalasi PHP 5 supaya bisa berjalan dengan baik, misalnya Prado. Terkadang orang mengartikan framework adalah dasar dari CMS. Di sisi lain, CMS tak lain juga sebuah framework dengan bermacam modul yang datang bersamanya.
Buku ini membahas sebuah framework berbasis bahasa pemrograman PHP yang sering digunakan untuk mengembangkan aplikasi web dalam waktu singkat. Framework tersebut dikenal dengan nama CakePHP. Dalam buku ini, Anda diajak untuk memahami konsep dasar pengembangan aplikasi web berbasis framework dengan konsep pemisahan bussiness logic (logika bisnis atau logika kerja sistem) dan presentation logic (logika tampilan sistem). Konsep pemisahan logic ini sangat erat kaitannya dengan penerapan konsep OOP (Object Oriented Programming) dan MVC (model view controller) yang akan diulas pada bagian lain dari bab ini dan pada bab 4. Anda juga akan diajak untuk mengenali satu per satu bagian-bagian dari framework CakePHP dan dilengkapi dengan contoh penggunaannya dalam membangun aplikasi web. Bab 11 dari buku ini akan menyuguhkan penerapan langsung framework CakePHP untuk membuat berbagai macam aplikasi dan mengkombinasikannya menjadi satu aplikasi utuh, sebuah blog lengkap dengan modul administrasi, modul manajemen user, modul manajemen error dan modulmodul tambahan lainnya. Bab 12 dari buku ini akan menyajikan beberapa tips dan trik CakePHP yang tak lain adalah dokumentasi dari pengalaman penulis saat mengerjakan berbagai macam project dengan menggunakan CakePHP. Selain itu, bab ini juga berisi beberapa pertanyaan umum, diskusi singkat, dan berbagai inovasi yang telah dituangkan beberapa developer CakePHP yang penulis ambil dari milis CakePHP (Indonesia) dan situs CakePHP Indonesia. Sebagai penutup, buku ini juga akan memberikan daftar situs-situs CakePHP yang sangat cocok untuk dipelajari dan digunakan sebagai referensi tingkat lanjut.
1.2 Profil CakePHP CakePHP adalah sebuah framework open source yang digunakan untuk mengembangkan aplikasi web dengan dasar kerja CRUD (Create, Read, Update, Delete). CakePHP juga menjadi salah satu framework pilihan yang memungkinkan developer untuk membuat sebuah aplikasi web dengan karakter pengembangan RAD (Rapid Application Development), yang memungkinkan untuk digunakan dan dikembangkan menjadi aplikasi lain yang lebih kompleks. CakePHP terdiri dari file-file pustaka (library), kelas-kelas, dan infrastruktur run-time yang terinspirasi oleh framework Ruby on Rails. CakePHP juga banyak digunakan oleh para programmer yang memilih untuk bekerja dengan struktur yang rapi dan padat tanpa kehilangan fleksibilitas pengembangan framework.
6
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Pada tahun 2005, Michal Tatarynowicz mulai menulis beberapa kelas untuk sebuah dasar aplikasi RAD dengan menggunakan bahasa pemrograman PHP. Ia menyadari bahwa beberapa kelas yang ia ciptakan sangat memungkinkan untuk dikembangkan menjadi sebuah framework yang lebih lengkap dan praktis. Akhirnya, Michal mempublikasikan hasil kerjanya di bawah lisensi MIT Amerika Serikat, menamainya dengan Cake dan menawarkan pengembangannya pada komunitas developer PHP dan saat ini proyek tersebut dikenal dengan nama CakePHP.
Gambar 1.1. Logo Resmi CakePHP
CakePHP bersifat terbuka, bebas didapatkan, dan bebas dikembangkan. Komunitas pengembang CakePHP mengajak seluruh programmer PHP untuk bergabung dalam Cake Software Foundation Inc. yang membawahi proyek pengembangan CakePHP dan aplikasi berbasis CakePHP. Informasi tentang CakePHP bisa didapatkan pada situs resmi Cake Software Foundation di website www.cakephp.org
Selain website resmi, para pengembang CakePHP juga biasa berdiskusi dengan menggunakan IRC (Internet Relay Chat). Di sini Anda bisa berjumpa dengan banyak Bakers, sebutan untuk mereka yang menjadi developer CakePHP. Forum diskusi CakePHP ini bisa dikunjungi di channel #cakephp pada server irc.freenode.com.
1.3 Mengapa CakePHP ? Selama ini, pemahaman yang kita peroleh tentang aplikasi web berbasis PHP adalah sebuah aplikasi yang terdiri dari file-file PHP yang berisi kode-kode dan tag html yang dicampur dengan kode-kode PHP atau lebih dikenal dengan nama spaghetti code (iya lah, coba aja liat makanan spaghetti yang lebih mirip dengan bakmi campur ! ). Pengembangan aplikasi web dengan cara konvensional seperti ini tidaklah keliru, namun akan menjadi masalah besar apabila aplikasi ini membutuhkan banyak fitur dan pengembangan di kemudian hari. Framework CakePHP menjadi pilihan untuk mengatasi berbagai permasalahan yang muncul dalam pengembangan aplikasi web, karena beberapa kelebihannya, antara lain :
7
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Open Source CakePHP bebas didapatkan dan dikembangkan. CakePHP mempunyai lisensi MIT. Ini adalah salah satu syarat yang baik untuk berkembangnya sebuah framework.
Riset yang terorganisir dengan baik Pengembangan framework bukanlah pekerjaan yang selesai dalam waktu 1-2 hari. Semakin terorganisirnya pengembangan sebuah framework akan berbanding lurus dengan kualitas framework yang dihasilkan. CakePHP memenuhi syarat ini dan dikembangkan dalam riset yang terorganisir dan berkesinambungan di bawah Cake Software Foundation.
Dokumentasi yang lengkap Framework yang baik harus mempunyai dokumentasi yang lengkap, karena sekumpulan kelas tanpa dokumentasi tak lebih dari sebongkah file yang asing dan menambah masalah developer. Untuk referensi lebih lengkap (gunakan manual dan API CakePHP), silahkan buka http://www.cakephp.org
Kompatibel dengan PHP 4 dan PHP 5 CakePHP berjalan mulus di server Apache yang menggunakan PHP 4 maupun PHP 5. Fleksibilitas dan kompatibilitas inilah yang banyak menarik minat para programmer untuk menggunakan framework CakePHP sebagai dasar untuk pengembangan aplikasi mereka.
Konsep CRUD terintegrasi CakePHP menerapkan konsep CRUD (Create, Read, Update, Delete) terintegrasi yang membantu interaksinya dengan database dan menyederhanakan query.
Arsitektur OOP dan MVC Kelas-kelas yang menjadi dasar dari CakePHP ditulis dengan konsep Object Oriented Programming yang memudahkan programmer untuk melakukan penambahan, pengurangan dan modifikasi kelas dan fungsi yang digunakan. CakePHP menggunakan arsitektur Model, View, Controller (MVC) yang memisahkan database logic (Model), presentation logic (View) dan bussiness logic (Controller).
Fitur Scaffolding Ya, barangkali inilah fitur yang jarang didapat pada framework lain. CakePHP mempunyai fitur yang mampu men-generate prototipe aplikasi Anda, sebelum Anda menyusun source
8
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
code-nya secara lengkap. Cukup tambahkan variabel $scaffold di controller Anda, dan sim salabim ! Aplikasi web Anda sudah bisa Anda nikmati.
Manajemen akses bagi user CakePHP memungkinkan pengaturan user dan hak aksesnya dalam aplikasi yang Anda kembangkan, dengan sarana yang lebih mudah dipahami. Fitur ini dikenal dengan nama Access Control List (ACL).
Validasi dan sanitasi data CakePHP mempunyai kelas-kelas dasar yang membantu programmer untuk melakukan sanitasi dan validasi data pada aplikasinya.
Komponen Security, Session, dan Request Handling yang terintegrasi CakePHP menyediakan komponen-komponen untuk menangani masalah Session, Keamanan (Security) dan Request Handling yang sudah terintegrasi dalam kelas dasar CakePHP. Developer cukup menyertakan komponen tersebut pada controller aplikasi dan memasukkan parameter-parameter untuk mendapatkan hasil yang diinginkan.
Metode templating yang simpel Sebagaimana framework-framework yang lain, CakePHP juga mendukung metode templating yang sangat mudah digunakan untuk membantu programmer dan web disainer menciptakan tampilan aplikasi yang indah dan mudah dimodifikasi. CakePHP mempunyai kelas helper yang mendukung templating HTML, Ajax, Javascript dan masih banyak lagi.
Cocok untuk segala strukutur direktori CakePHP mempunyai sistem konfigurasi yang menyediakan berbagai macam pilihan konfigurasi, sesuai dengan struktur direktori pengembangan aplikasi berbasis framework CakePHP.
9
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
1.3. Struktur Aplikasi
Gambar 1.2. Struktur kerja CakePHP (Grahambird.co.uk)
Dari gambar di atas, cara kerja CakePHP sebagian besar sudah bisa dijelaskan. Pertama kali, user melakukan request, yang akan ditangani oleh controller. Controller memiliki banyak method (fungsi – fungsi) yang akan menangani request. Controller akan mengambil data pada database melalui model. model memberikan data yang relevan kepada controller. Controller akan mengolah data dan memberikannya pada view (tampilan) yang dipilih. Tampilan inilah yang akan dilihat oleh user pada browser-nya.
10
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Gambar 1.3. Struktur Folder CakePHP Folder /app adalah folder di mana aplikasi web akan dikembangkan. Folder ini berisi beberapa folder lainnya, antara lain : • /config : berisi file – file konfigurasi CakePHP, termasuk konfigurasi database, debug
option, ACL config, dan routing option. • /controllers : berisi file-file controller yang akan berperan sebagai bussiness logic dari
aplikasi. • /models : berisi file-file model yang akan berperan sebagai database logic dari aplikasi. • /plugins : folder ini digunakan apabila seorang developer ingin mengembangkan
aplikasi kecil sebagai pendukung aplikasi utama. Folder ini berfungsi sebagai tempat penyimpanan aplikasi pendukung tersebut. • /tmp : digunakan untuk fungsi caching dan logging aplikasi • /vendors : digunakan apabila programmer melibatkan beberapa aplikasi-aplikasi
tambahan (third-party application) yang dikembangkan oleh developer lainnya.
11
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
• /views : berisi file - file view yang akan berperan sebagai presentation logic dari aplikasi
Anda. Folder ini juga memiliki beberapa sub folder yang digunakan untuk menyimpan untuk menyimpan halaman statis (folder /pages), halaman layout dasar aplikasi (folder / layouts), tampilan tambahan yang fleksibel (fodler /elements) dan sebagainya. • /webroot : folder ini berfungsi sebagai DocumentRoot dari aplikasi yang Anda buat.
Server akan mengakses file index.php yang diletakkan di folder ini.
Folder /cake berisi kelas dan pustaka dasar CakePHP. Pengembang aplikasi tidak disarankan untuk mengubah file-file di folder ini. Namun untuk beberapa keperluan, para developer CakePHP biasanya melakukan beberapa modifikasi dan perubahan source code pada file yang ada di folder ini.
Folder /vendors digunakan untuk menyimpan aplikasi third-party yang digunakan dalam lingkup yang lebih luas. Pemisahan antara folder /app dan folder /cake memungkinkan developer untuk memasang banyak folder /app dengan memanfaatkan satu folder /cake saja. Hal ini juga memudahkan developer untuk melakukan update framework CakePHP, cukup download versi terbaru dan timpakan ke folder /cake yang lama tanpa mengganggu folder /app.
12
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Bab 2. Instalasi dan Kebutuhan Dasar 2.1. Kebutuhan Dasar Dalam mengerjakan semua latihan yang ada pada buku ini, Anda membutuhkan komputer dengan spesifikasi minimum sebagai berikut : • Sistem Operasi Windows 98 SE atau sesudahnya. Bagi Anda yang menggunakan OS selain Windows, seperti GNU/Linux atau MacOS X, pastikan sistem operasi Anda berjalan dengan baik pada komputer Anda. Pada buku ini, Kami akan menyajikan contoh instalasi Apache, MySQL dan PHP pada dua sistem operasi yang berbeda, yakni Windows XP dan Linux Mandriva. • Prosesor Intel Pentium Celeron atau AMD dengan clock / kecepatan minimal 500 MHz • RAM 128 MB • Kapasitas Harddisk 10 GB • Resolusi Monitor 800 x 600 pixel, disarankan 1024x768 pixel • CD-ROM 16x
Selain itu, Anda membutuhkan pula beberapa paket instalasi sebagai berikut : • Paket installer Apache, PHP 4 atau PHP 5, dan MySQL . Ada banyak vendor yang menyediakan paket installer trio Apache, PHP dan MySQL. Kami menyediakan paket installer AppServ yang versi terbarunya bisa Anda download di http:// www.appservnetwork.com • Paket instalasi CakePHP terbaru (pada saat buku ini ditulis, Cake Software Foundation me-launching versi stabil Cake 1.1.10.3825 dan versi pengembangan Cake 1.2.0.4206 dev. Anda bisa mendapatkan paket terbaru cake di situs resmi CakePHP, yakni http:// www.cakephp.org • Paket instalasi phpMyAdmin (digunakan untuk memudahkan manajemen database berbasis web). • Software editor teks, seperti Notepad++, Editplus, Textpad, PHP Designer, Macromedia Dreamweaver dan lain sebagainya. • Manual dan API CakePHP yang terbaru (dua hal ini bukan sesuatu yang wajib dimiliki, tapi alangkah baiknya seorang developer memiliki paket source code CakePHP sekaligus buku panduannya).
13
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Kami menyertakan beberapa paket instalasi bersama CD pada buku ini, seperti paket AppServ 2.5.4a yang berisi installer Apache 2, PHP 5 dan MySQL 4. Selain itu kami juga menyertakan file-file CakePHP, manual dan API, serta beberapa source code pendukung latihan.
2.2. Instalasi Paket AppServ Pada bab ini, Anda akan melakukan instalasi paket Apache, PHP dan MySQL pada sistem operasi Windows XP. Bagi Anda yang menggunakan sistem operasi selain Windows XP, kami menyertakan juga contoh langkah instalasi paket Apache, PHP dan MySQL pada Linux Mandriva.
Instalasi Apache, PHP dan MySQL pada Windows XP 1. Pastikan di komputer Anda tidak ter-install paket Apache, PHP dan MySQL lainnya. 2. Klik dua kali paket installer AppServ 2.5.4a dan pastikan Anda menjumpai welcome window sebagai berikut
Gambar 2.1. Tampilan Awal Installer AppServ untuk Windows 3. Tentukan direktori tempat Anda akan meng-install paket AppServ Anda. Apabila Anda tidak yakin dengan apa yang Anda lakukan, klik tombol Next dan biarkan AppServ ter-install secara default pada direktori C:\AppServ.
14
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Gambar 2.2. Menentukan letak direktori instalasi 4. Tentukan nama server, email administrator dan port yang akan digunakan. Secara default, Apache akan menempati port 80.
Gambar 2.3. Menentukan konfigurasi Apache
5. Masukkan informasi tentang server MySQL. Biarkan AppServ mengisikan form isian secara default jika Anda tidak yakin dengan apa yang akan Anda lakukan.
Gambar 2.4. Menentukan konfigurasi MySQL
15
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
6. Instalasi AppServ Anda selesai ! Kini Anda bisa langsung menjalankannya dengan mengisikan tanda √ pada checkbox Apache dan MySQL.
Gambar 2.5. Menjalankan Apache dan MySQL
7. Untuk memulai dan menghentikan Apache dan MySQL server, klik Start Menu > AppServ > Service Control Server.
Gambar 2.6. Menjalankan AppServ dari Start Menu
Apabila instalasi Anda benar dan tidak mengalami kendala, pada layar komputer Anda akan terlihat prompt sebagai berikut :
Gambar 2.7. Server Apache Berjalan Normal
16
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Instalasi Apache, PHP dan MySQL pada Linux Mandriva Untuk keperluan instalasi pada sistem operasi selain Windows, kami menyarankan Anda menggunakan paket instalasi tarball (source) atau compact (deb, rpm) yang sesuai dengan distro linux Anda. Paket installer Apache bisa Anda download di http://www.apache.org. Sedangkan paket installer PHP bisa Anda dapatkan di http://www.php.net. Paket installer MySQL bisa Anda dapatkan di http://www.mysql.com . Beberapa distro linux tertentu membutuhkan library xml2 supaya installer PHP bisa berjalan dengan baik.
Pada instalasi ini, Anda akan menggunakan Apache 2.0.54, PHP 5.0.5 (atau yang lebih rendah dari versi ini) and MySQL 4.1.11. Sebelum instalasi dimulai, anggaplah bahwa dalam sistem operasi yang Anda gunakan belum terdapat instalasi AMP (Apache, MySQL, PHP) sama sekali. Jikapun sudah ada dan Anda ingin mencoba meng-upgrade dengan versi terbaru, cobalah untuk meng-uninstall versi lama yang telah Anda install. Sebelum Anda memulai instalasi, pastikan Anda mempunyai hak akses sebagai user root, atau Anda termasuk dalam group wheel (root,
gid=0) yang memungkinkan Anda untuk
menjalankan dan mengoonfigurasi AMP.
Beberapa poin penting yang akan Anda bicarakan antara lain : 1. Mendapatkan resources Apache, PHP & MySQL 2. Meng-install MySQL 4.1.x 3. Meng-install Apache 2.x 4. Meng-install PHP 5.x 5. Memulai Apache Web Server 6. Testing PHP
1. Mendapatkan resources Apache, PHP & MySQL Download dulu source-nya dari situs ini : Apache 2.x - http://httpd.apache.org/download.cgi PHP 5.x - http://us2.php.net/downloads.php MySQL 4.1.x - http://dev.mysql.com/downloads/mysql/4.1.html#source
2.Meng-install MySQL 4.1.x
17
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Ekstrak dan konfigurasi dahulu source MySQL. Setelah itu, Anda boleh langsung mengcompile-nya : #tar -xzvf mysql-4.1.11.tar.gz #cd mysql-4.1.11 #./configure --prefix=/usr/local/mysql #make #make install
Setelah instalasi selesai, jangan lupa untuk mengopikan file CNF ke area konfigurasi pada linux Anda (pada umumnya terletak di folder /etc) :
#cp support-files/my-medium.cnf /etc/my.cnf
Kemudian, lakukan instalasi database MySQL dan memulainya (pastikan Anda mengganti terlebih dahulu hak akses beberapa folder yang akan diakses oleh database Anda. Untuk mengetahuinya, cobalah mengecek error yang ada bila perintah di bawah tidak berjalan dengan baik). Eksekusi perintah di bawah ini pada konsole Anda : #/usr/sbin/groupadd mysql #/usr/sbin/useradd -g mysql mysql #/usr/local/mysql/bin/mysql_install_db #chown -R root:mysql /usr/local/mysql #chown -R mysql:mysql /usr/local/mysql/data
Kemudian, langkah yang terakhir adalah mengubah konfigurasi dalam file ld.so.conf dan menambahkan satu baris konfigurasi dalam file tersebut :
#vi /etc/ld.so.conf
Tambahkan baris ini : #/usr/local/mysql/lib/mysql
Untuk menjalankan MySQL, gunakan perintah berikut :
#/usr/local/mysql/bin/mysqld_safe ?user=mysql &
Untuk mengganti password MySQL, lakukan dengan perintah berikut :
#/usr/local/mysql/bin/mysqladmin -u root password
(isikan dengan password Anda)
18
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
3. Menginstal Apache 2.x Ikuti dulu langkah-langkah di bawah : #tar -xzvf httpd-2.0.54.tar.gz #cd httpd-2.0.54 #./configure --prefix=/usr/local/apache --enable-mods-shared=all #make #make install
4. Menginstal PHP 5.x Untuk menginstal source PHP, langkah-langkahnya adalah : #tar -xzvf php-5.0.4.tar.gz #cd php-5.0.4 #./configure – prefix=/usr/local/php --with-apxs2=/usr/local/apache/ #bin/apxs --with-mysql=/usr/local/mysql #make #make install
Kopikan file php.ini ke area yang ditentukan : #cp php.ini-dist /usr/local/lib/php.ini
Langkah selanjutnya adalah men-setup ekstensi .php dan .phtml supaya bisa di-parsing oleh PHP engine. Untuk itu, bukalah file httpd.conf dengan editor teks : #vi /usr/local/apache/conf/httpd.conf
Pada file ini, tambahkan beberapa baris konfigurasi. Carilah dimana line AddType berada dan tambahkan baris di bawah ini : AddType application/x-httpd-php .php .phtml
Simpan kembali file httpd.conf
5. Memulai Apache Web Server Untuk memulai Apache : #/usr/local/apache/bin/apachectl start
Untuk me-restart Apache bila ada konfigurasi yang diganti saat Apache dijalankan : /usr/local/apache/bin/apachectl restart
6.Testing PHP Buatlah dengan editor teks suatu file yang bernama phpinfo.php pada direktori /usr/ local/apache/htdocs/ dan masukkan kode php di bawah :
19
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
File : phpinfo.php
Oke ! Jalankan web browser dan jalankan http://localhost/phpinfo.php . Kalau muncul layar yang menunjukkan informasi Apache , PHP dan MySQL yang ter-install, berarti Anda sudah berhasil.
Otomatisasi Apache dan MySQL Server Saat Booting Beberapa paket instalasi Apache, MySQL dan PHP untuk Windows sudah melakukan konfigurasi secara otomatis supaya Apache dan MySQL Server dieksekusi saat komputer booting. Permasalahannya adalah, apa yang harus Anda lakukan apabila Anda menginstalasi Apache, MySQL, dan PHP pada sistem operasi Linux ? Yang harus Anda lakukan untuk melakukan otomatisasi tersebut tak lain adalah mengopikan file-file executeable MySQL dan Apache ke folder /etc/init.d, sehingga keduanya menjadi bagian dari servis-servis (daemon) yang akan aktif manakala komputer Anda dihidupkan. Berikut ini adalah langkah -langkahnya :
1. Mengaktifkan MySQL Mulai dengan MySQL. Pertama kali, masuklah sebagai user root. Kemudian dalam direktori kerja MySQL Anda (atau direktori instalasi) masuklah ke folder MySQL dengan perintah berikut ini : #cd /home/xxxx/mysql-4.0.16
Kemudian kopikan file mysql.server ke folder /etc/init.d sebagai berikut : #cd support-files/mysql.server /etc/init.d/mysql
Kemudian kopikan file mysql.server ke folder /etc/init.d sebagai berikut : Selanjutnya, Anda buat beberapa link untuk aktifasi MySQL pada run level 3 (text mode) dan run level 5 (GUI mode / Graphic Mode). #cd #ln #ln #cd #ln #ln
/etc/rc3.d -s ../init.d/mysql -s ../init.d/mysql /etc/rc5.d -s ../init.d/mysql -s ../init.d/mysql
S85mysql K85mysql S85mysql K85mysql
20
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
#cd ../init.d #chmod 755 mysql
2. Mengaktifkan Apache Tetap sebagai user root, pindah ke direktori kerja dengan perintah berikut ini : #cd /usr/local/apache/bin
Kemudian kopikan file apachectl dengan perintah sebagai berikut : #cp apachectl /etc/init.d/httpd
Sebgaimana pada MySQL, kini saatnya membuat link aktivasi untuk run level 3 dan run level 5: #cd #ln #ln #cd #ln #ln
/etc/rc3.d -s ../init.d/httpd -s ../init.d/httpd /etc/rc5.d -s ../init.d/httpd -s ../init.d/httpd
S85httpd K85httpd S85httpd K85httpd
Reboot komputer Anda dan cek konfigurasi yang sudah Anda lakukan. Amati proses yang berjalan saat komputer booting. Apache (HTTPD) dan MySQL Server akan dieksekusi sebagai daemon pada saat booting.
2.3. Instalasi Paket Pendukung Setelah Anda melakukan instalasi paket Apache, PHP dan MySQL, tentu Anda membutuhkan editor teks yang baik untuk menuliskan script-script PHP Anda. Kami menyertakan paket installer PHP Designer versi 2005 dan Notepad++ yang bisa didownload secara gratis melalui internet. Apabila Anda pengguna produk-produk Macromedia, Anda bisa menggunakan Macromedia Dreamweaver untuk melakukan pengeditan script Anda. Salah satu keuntungan menggunakan editor teks khusus untuk pemrograman PHP adalah, Anda bisa mengetahui perbedaan script PHP dan selain PHP (misalkan HTML, CSS, atau Javascript) berdasarkan warna yang diberikan oleh editor teks. Selain itu, editor teks khusus pemrograman PHP biasanya memberikan nomer-nomer baris, sehingga memudahkan programmer untuk melakukan pelacakan kesalahan. Untuk instalasi PHP Designer, Anda cukup melakukan klik dua kali pada file installer phpdesigner_setup.exe. Selanjutnya ikuti petunjuk instalasi yang ada.
21
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Gambar 2.8. Tampilan PHP Designer versi 2005
2.4. Konfigurasi Server Apakah CakePHP selalu berjalan mulus di setiap server Apache ? CakePHP menggunakan sistem url rewrite secara default. Pada beberapa installer Apache, developer terkadang harus mengubah konfigurasi pada file httpd.conf supaya Apache server mendukung url rewrite (mod_rewrite). Selain itu, file .htaccess harus bisa ditulisi server. Penjelasan tentang hal tersebut ada pada sub bab ini.
Seringkali permasalahan instalasi membuat sebagian programmer merasa putus asa untuk menggunakan CakePHP sebagai framework pilihannya. Ada beberapa hal yang harus diperhatikan, terkait dengan permasalahan instalasi yang sering dijumpai oleh pengguna CakePHP : 1.
Pastikan server Apache Anda mendukung penggunaan session dan mod_rewrite. Untuk melakukan pengecekan, buka file C:\AppServ\apache\conf \httpd.conf dan pastikan baris berikut dieksekusi oleh Apache (tidak ada tanda
‘#’ di depannya) :
LoadModule rewrite_module modules/mod_rewrite.so libexec/httpd/mod_rewrite.so AddModule mod_rewrite.c
2. Pastikan file .htaccess diperkenankan untuk di-override. Untuk mengetahuinya, pada file httpd.conf, pastikan pilihan AllowOverride diset All untuk direktori instalasi CakePHP Anda, atau DocumentRoot Anda. Gambar di bawah ini
22
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
memperlihatkan instalasi CakePHP pada server Apache, dengan permasalahan file .htaccess yang tidak di-override. Sekilas, tampaknya instalasi tidak bermasalah, namun coba bandingkan dengan gambar berikutnya. Instalasi CakePHP yang tidak bermasalah akan memunculkan logo “CakePHP Power” seperti ini
di bagian bawah, serta layout halaman yang tampak indah.
Instalasi CakePHP bermasalah tidak akan menampilkan logo “CakePHP Power” dan layout halaman polos (putih), dengan tulisan hitam di atasnya.
Gambar 2.9. Instalasi CakePHP bermasalah
Gambar 2.10. Instalasi CakePHP berhasil
3.
Untuk memastikan bahwa instalasi CakePHP Anda mengandung file .htaccess, pastikan Anda mendapatkan file instalasi CakePHP dalam bentuk .zip atau .tar.gz dari repository CakePHP. Seringkali, saat Anda mengopikan file-file CakePHP, beberapa sistem operasi menganggap file berawalan “ . ” (titik) sebagai file hidden (tersembunyi), sehingga file-file yang Anda kopi tidak melibatkan file .htaccess.
23
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
4.
Jika Anda melakukan instalasi CakePHP pada direktori user Anda (dengan struktur url sebagai berikut http://localhost/~usernameAnda/), maka Anda perlu mengubah file .htaccess Anda. Tambahkan baris RewriteBase
/
~usernameAnda/ pada file .htaccess Anda. Tambahkan di file .htaccess di
dalam folder /CakePHP, /app, dan /webroot. 5. Jika Anda merasa terganggu dengan struktur url panjangan seperti ini http:// example.com/posts/?CAKEPHP=4kgj577sgabvnmhjgkdiuy1956if6ska mak a tambahk an baris php_flag
session.trans_id
off pada
file .htaccess Anda. 6. Beberapa sistem operasi berbasis Unix mempermasalahkan hak akses folder /tmp yang terletak di /CakePHP/app/tmp. Folder /tmp ini erat kaitannya dengan caching dan logging aplikasi Anda. Anda perlu mengubah hak akses folder /tmp berikut sub direktori dan file di dalamnya, sehingga menjadi drwxrwxrwx, atau dengan melakukan perintah chmod 777 untuk tiap-tiap direktori dan file. 7. Pastikan instalasi Anda benar-benar sesuai dengan apa yang dibutuhkan oleh CakePHP. Keterangan lebih lanjut tentang konfigurasi server ini bisa Anda lihat di manual CakePHP.
Demikian beberapa hal yang harus Anda perhatikan saat melakukan instalasi dan konfigurasi Apache, MySQL dan PHP di sistem operasi Anda. Semoga penjelasan di atas mempermudah Anda untuk menyediakan lingkungan pengembangan aplikasi berbasis web yang baik. Pada bab 3, Anda akan diperkenalkan dengan langkah-langkah instalasi framework CakePHP.
24
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Bab 3. Instalasi CakePHP 3.1. Instalasi dan Konfigurasi Paket Instalasi CakePHP Ada beberapa cara untuk memperoleh paket instalasi CakePHP : mendapatkan paket instalasi versi stabil dari CakeForge, mendapatkan paket instalasi versi pengembangan (nightly build), atau mendapatkan versi terbaru dari SVN. Untuk medapatkan paket instalasi versi stabil, Anda bisa mengunjungi situs CakeForge pada alamat : http://cakeforge.org/projects/cakephp/
Untuk mendapatkan paket nightly build, dengan beberapa perbaikan pada bug-bug (kesalahan) yang ada, Anda bisa mendapatkannya di : http://cakephp.org/downloads/index/nightly
Untuk mendapatkan versi terbaru dari repository SVN, gunakan client SVN favorit Anda dan lakukan koneksi ke : https://svn.cakephp.org/repo/trunk/cake/ dan pilih beberapa versi yang ada.
Melakukan Ekstraksi Paket Instalasi Setelah Anda mendapatkan paket instalasi tersebut, letakkan paket instalasi pada wwwroot (DocumentRoot, biasanya pada sistem operasi Windows diletakkan pada C: \AppServ\www . Untuk sistem operasi Linux, biasanya diletakkan di direktori /usr/ local/apache/htdocs/. Untuk meyakinkan Anda, silahkan Anda cek konfigurasi file httpd.conf, dengan melakukan pencarian baris menggunakan kata kunci frase DocumentRoot). Setelah itu, ekstrak paket instalasi Anda. Ada tiga cara instalasi framework
CakePHP. Model instalasi yang pertama adalah Development Setup, yang akan memudahkan Anda untuk melihat banyak aplikasi berbasis CakePHP di bawah satu domain. Model instalasi yang kedua adalah Production Setup yang akan memungkinkan Anda untuk melihat hanya satu aplikasi berbasis CakePHP di bawah satu domain. Model instalasi ketiga adalah Custom Setup yang akan memudahkan Anda untuk meletakkan folder /app dari aplikasi CakePHP Anda di mana pun yang Anda inginkan. Model instalasi ketiga ini juga memungkinkan satu folder library CakePHP digunakan oleh banyak aplikasi berbasis CakePHP.
25
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Model Instalasi 1 : Development Setup Untuk model Development Setup, kita bisa meletakkan instalasi CakePHP dengan susunan instalasi sebagai berikut : /wwwroot /cake /app /cake /vendors .htaccess index.php
Pada instalasi ini, folder wwwroot (DocumentRoot Anda) akan berperan sebagai web root, sehingga apabila diakses dari browser, url aplikasi CakePHP Anda akan terlihat sebagaimana berikut ini : www.situsku.com/cake/namaController/namaAction/param1/param2 Secara garis besar, susunan folder instalasi CakePHP pada sistem operasi Windows XP bisa dilihat pada Gambar 3.1 di bawah ini. penulis menyederhanakan nama folder paket cake_1.x.x.x.xxx/ menjadi folder cake/ saja.
Gambar 3.1. Struktur instalasi CakePHP di Windows XP
Model Instalasi 2 : Production Setup
26
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Untuk model Production Setup, Anda harus memiliki hak untuk mengubah konfigurasi DocumentRoot pada server Anda. Dengan demikian, CakePHP akan menjadi aplikasi tunggal yang ter-install di server Anda. Susunan instalasi dari Production Setup sebagai berikut : /cake /app /config /controllers /models /plugins /tmp /vendors /views /webroot
Pada konfigurasi ini direkomendasikan menggunakan konstanta ‘DS’ daripada karakter ‘/’ (garis miring) untuk menuliskan path konfigurasi. Hal ini untuk mencegah munculnya peringatan kesalahan ‘missing file’ yang disebabkan oleh kesalahan penggunaan delimiter. Konfigurasi ini juga akan membuat aplikasi kita lebih kompatibel dengan konfigurasi server lainnya.
Dari berbagai model instalasi di atas, instalasi model pertamalah yang akan Anda gunakan untuk membangun aplikasi berdasarkan langkah-langkah yang ada di buku ini. Instalasi model pertama ini adalah model yang termudah dan tercepat apabila dibandingkan dengan model yang lainnya.
3.2. Routing CakePHP Sebelum masuk pada langkah pertama untuk menampilkan “Hello World”, kita akan membahas sekilas tentang Routing. Routing adalah sebuah metode khusus yang disediakan oleh CakePHP untuk memudahkan developer aplikasi mengatur susunan url aplikasi dan membuatnya rapi. Seringkali dalam sebuah aplikasi web berbasis php, kita menjumpai url sebagai berikut : http://www.situsku.com/index.php?sid=745334f54eb465994f3eef6c63d94503&lang=34
30
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Routing akan mengarahkan url aplikasi pada controller dan action tertentu, sesuai konfigurasi yang kita letakkan pada file /app/config/routes.php. Isi dari file routes.php sebagai berikut :
File : routes.php
Secara umum, struktur Routing CakePHP 1.1.xx.xxxx sebagai berikut : $Route->connect ('URL', array('controller'=>'namaController', 'action'=>'namaAction', 'parameter') );
Dengan penjelasan sebagai berikut : • URL : bagian dari url situs yang ingin Anda petakan dengan Routing. • namaController : nama controller yang akan kita panggil melalui url. controller berupa
sebuah kelas php. • namaAction : nama action pada controller yang akan kita panggil. Action berupa sebuah
fungsi di dalam kelas controller tersebut. • parameter : nilai dari parameter pertama pada action tersebut.
Dengan demikian, bisa dikatakan Routing akan mengarahkan bagian url tertentu ke namaController::namaAction(‘parameter’). Konfigurasi Routing Anda, secara
default sebagai berikut : $Route->connect('/',
array('controller'=>'pages',
'action' => 'display', 'home'));
31
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Apabila user mengakses url ‘/’ atau dengan kata lain mengarahkan browser pada instalasi CakePHP, maka CakePHP secara otomatis akan mengarahkan browser pada controller PagesController dengan action display dan parameter home. Kita akan melihat
implementasi Routing pada sub bab berikutnya.
3.3. Hello World ! Apabila instalasi CakePHP Anda tidak bermasalah, Anda akan menjumpai halaman pertama sebagaimana gambar di bawah ini apabila Anda mengarahkan browser ke direktori instalasi CakePHP. Direktori instalasi CakePHP diakses dengan url : http://localhost/cake/
Gambar 3.2. Instalasi CakePHP berhasil Gambar di atas memberikan informasi pada Anda bahwa CakePHP memerlukan konfigurasi database supaya bisa terkoneksi dengan server database MySQL yang telah Anda install bersama dengan server Apache sebagaimana dijelaskan pada bab 2. Selain itu, CakePHP juga memberikan beberapa petunjuk awal untuk memulai pengembangan web, yakni dengan memberikan tiga buah pesan : • Kita diminta untuk membuat sebuah file bernama home.thtml pada direktori /app/ views/pages/ yang akan mengganti konten (isi) dari tampilan halaman depan.
• Kita diminta untuk membuat sebuah file bernama default.thtml yang akan menggantikan layout tampilan halaman depan. Perlu diingat, layout berfungsi sebagai header dan footer dari halaman aplikasi yang akan selalu muncul saat konten berubah (semacam template halaman web). • Apabila kita akan menambahkan file css, CakePHP menyediakan lokasinya, yakni pada folder /app/webroot/css/.
32
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Sebagai langkah awal, kita akan mulai dengan membuat sebuah file bernama home.thtml pada folder /app/views/page/. Buat file kosong bernama home.thtml
dan isikan script di bawah ini : File : home.thtml Halo, dunia !
Ini adalah script CakePHP pertama penulis
Simpan file tersebut, kemudian arahkan browser Anda pada url : http://localhost/cake/ Anda akan melihat tampilan sebagaimana gambar di bawah ini
Gambar 3.3. Tampilan home.thtml Anda sudah berhasil membuat halaman web dengan CakePHP untuk pertama kalinya. Cukup mudah bukan ? Selanjutnya, kita akan mencoba mengimplementasikan konsep Routing dengan script kedua. Buat sebuah file bernama hello.thtml dan letakkan pada folder /app/views/pages/. Isikan script di bawah ini pada file hello.thtml Anda : File : hello.thtml Selamat datang, di aplikasi CakePHP Ini adalah contoh pertama penerapan routing statis
dan
halaman
Selanjutnya, buka file /app/contig/routes.php dan ganti konfigurasi Routing Anda. Arahkan CakePHP pada halaman hello.thtml dengan mengganti file konfigurasi
33
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
routes.php, sehingga apabila sebelumnya file konfigurasi Anda tampak sebagaimana di
bawah ini : File : routes.php
Setelah diarahkan pada halaman statis hello.thtml, akan berubah menjadi seperti ini : File : routes.php
Arahkan kembali browser Anda ke direktori instalasi CakePHP. Browser Anda akan menampilkan halaman web berikut ini :
Gambar 3.4. Tampilan hello.thtml Perhatikan title bar pada halaman web CakePHP Anda. Secara otomatis, CakePHP akan memberikan judul “CakePHP : Hello” pada saat Anda mengakses halaman statis hello.thtml. Langkah pertama menciptakan aplikasi dengan CakePHP sudah kita lalui. Pada pembahasan selanjutnya, kita akan melihat fitur lain CakePHP yang akan membuat Anda terkaget-kaget : Scaffolding !
34
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
3.4. Scaffolding Apa itu Scaffolding ? Scaffolding adalah sebuah fitur yang disediakan CakePHP untuk memudahkan pengembang aplikasi web menampilkan dan menganalisa konten database pada saat pertama kali mereka mengembangkan aplikasi web dinamis, dengan konten web yang bisa ditambahkan, diubah dan dihapus secara interaktif melalui halaman web. Sebelum masuk pada penjelasan, ada baiknya kita mencoba terlebih dahulu fitur Scaffolding. Ikuti langkah-langkah di bawah ini dengan seksama dan lihatlah keajaiban yang ditawarkan Scaffolding untuk Anda. Kali ini, kita akan membuat sebuah aplikasi web untuk melakukan manajemen pemain sepakbola Liga Indonesia. Dengan aplikasi ini, kita bisa menambahkan (Add), mengubah (Edit), dan menampilkan (View) pemain secara interaktif. Anda hanya membutuhkan waktu kurang dari 4 menit untuk membuat semuanya berjalan ! Sebelum masuk pada aplikasi, kita akan membuat database-nya terlebih dahulu. Buka aplikasi web phpMyAdmin dengan mengakses : http://localhost/phpmyadmin/ Apabila Anda belum memiliki aplikasi phpMyAdmin, Anda bisa menggunakan source phpMyAdmin yang tersedia pada CD atau mendapatkan versi terbarunya melalui internet. Setelah Anda membuka phpMyAdmin, buatlah sebuah database dengan nama latihancake. Database ini nantinya akan kita gunakan seterusnya untuk membuat
proyek-proyek aplikasi web berskala menengah di akhir buku ini. Setelah Anda berhasil menciptakan sebuah database baru, buatlah dua buah tabel baru, tabel players dan teams dengan struktur di bawah ini :
Tabel 3.1. Tabel ‘players’ Nama Field
Tipe Data
Keterangan
id
small int (5)
Unsigned, Not null, auto_increment, primary key
firstname
varchar(50)
Not null
position
varchar(25)
Not null
team_id
small int (6)
Null
35
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Tabel 3.2. Tabel ‘teams’ Nama Field
Tipe Data
Keterangan
id
small int (5)
Unsigned, Not null, auto_increment, primary key
name
varchar(50)
Not null
atau dengan mengeksekusi perintah SQL di bawah ini : Query SQL untuk Tabel ‘players’ dan ‘teams’ CREATE TABLE `players` ( `id` smallint(5) unsigned NOT NULL auto_increment, `firstname` varchar(50) NOT NULL default '', `position` varchar(25) NOT NULL default '', `team_id` smallint(6) default NULL, PRIMARY KEY (`id`) ); CREATE TABLE `teams` ( `id` smallint(5) unsigned NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', PRIMARY KEY (`id`) );
Perhatikan field team_id pada tabel players. Ini adalah foreign key yang dipetakan ke primary key tabel teams. Field tersebut diberi nama demikian karena CakePHP mampu secara otomatis mengidentifikasinya sebagai foreign key dan memanfaatkannya untuk menampilkan berbagai macam hal yang menarik seperti membuat komponen HTML listbox saat menambahkan dan mengedit pemain baru. Ada beberapa peraturan yang harus ditaati supaya fitur Scaffolding ini berjalan dengan baik : • Apabila Anda ingin memetakan sebuah foreign key ke sebuah tabel, pada aplikasi kita adalah tabel teams ke tabel players, maka foreign key tersebut harus diberi nama dengan TABLE_id, dimana TABLE adaIah bentuk tunggal dari foreign table yang kita petakan. Dalam hal ini, kita memberi nama foreign key kita dengan nama team_id (team adalah bentuk tunggal dari teams). • Tabel yang akan kita buat harus dipetakan pada controller yang mendefinisikan variabel $scaffold. Kita akan melihat penerapannya pada contoh ini.
• Apabila Anda ingin memanfaatkan keunggulan CakePHP untuk memetakan hubungan (asosiasi) antar tabel, tabel yang Anda buat harus dihubungkan pada model yang
36
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
mendefinisikan asosiasi tabel-tabel yang relevan. CakePHP mendukung empat jenis asosiasi antar tabel: hasOne, hasMany, belongsTo, dan hasAndBelongsToMany. Pada aplikasi kita, masing-masing pemain berasosiasi dengan satu tim, sehingga kita akan menggunakan jenis asosiasi belongsTo. Penjelasan lebih lengkap mengenai jenis asosiasi, model, controller, dan view terdapat pada bab selanjutnya. Langkah kedua adalah menghubungkan aplikasi CakePHP dengan database Anda. Buka f o l d e r / a p p / c o n f i g / . A n d a a k a n m e n e m u k a n s e b u a h fi l e b e r n a m a database.php.default. Ubah nama file tersebut, sehingga menjadi database.php.
Selanjutnya, ubah dan sesuaikan konfigurasi database pada file tersebut. Sebelum Anda ubah, file database.php akan tampak sebagaimana di bawah ini : File : database.php
var $test = array( 'driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'project_name-test', 'prefix' => '');
Kita akan menggunakan variabel $default pada kelas DATABASE_CONFIG. Untuk itu, variabel $test bisa Anda hapus. Ubah isi variabel $default tersebut dengan mengisikan latihancake pada elemen array database,
localhost pada elemen array host,
username_database_anda pada elemen array login, password_database_anda pada
elemen array password. Setelah Anda ubah dan sesuaikan dengan konfigurasi database Anda, maka file tersebut akan tampak sebagaimana di bawah ini. Sebagai catatan, penulis
37
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
menggunakan username ‘root’ dengan password ‘root’ untuk mengakses database milik penulis. Anda bisa menggunakan username dan password yang sesuai. File : database.php
Setelah Anda selesai menciptakan database dan tabel yang dibutuhkan, serta mengarahkan instalasi CakePHP Anda pada database latihancake, saatnya kita berkutat dengan aplikasi web berbasis CakePHP. Untuk membuat aplikasi ini, Anda akan membuat script pada tiga struktur pokok CakePHP, yakni model, controller dan view. Struktur model berupa sebuah kelas PHP yang menangani manajemen data dan berhubungan langsung dengan tabel database Anda. Struktur controller berupa sebuah kelas PHP yang akan menangani proses request dari pengguna aplikasi, mengambil data dari model, dan memberikan hasil request kepada view. Struktur view adalah gabungan script HTML dan PHP yang akan menampilkan hasil request kepada pengguna melalui browser. Penjelasan lebih lanjut mengenai konsep Model-View-Controler (MVC) akan dibahas pada bab selanjutnya. Buka folder /app/controllers/. Di dalam folder tersebut, buatlah sebuah file PHP dengan nama players_controller.php. Isikan script di bawah ini : File : players_controller.php
38
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Jangan pernah meninggalkan karakter kosong (spasi) setelah tanda ‘?>’ di akhir script karena CakePHP akan memunculkan pesan peringatan pada halaman aplikasi Anda.
Masih pada folder controllers, buatlah sebuah file controller kedua bernama teams_controller.php. Isikan script di bawah ini :
File : teams_controller.php
Dua buah file ini nantinya akan bertugas menangani semua request dari user, termasuk menambahkan pemain atau nama tim, mengubah, dan bahkan menghapusnya. Selanjutnya, buka folder /app/models/. Buatlah file model untuk tabel players dengan nama player.php. Isikan script di bawah ini : File : player.php
Masih pada folder yang sama, buatlah model untuk tabel teams dengan nama team.php. Isikan script di bawah ini :
39
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
File : team.php
Script penjelasan fitur Scaffolding, baik kelas controller maupun model dapat diambil dari CD yang kami sertakan bersama dengan buku ini.
Arahkan browser Anda pada url di bawah ini dan lihatlah apa yang dilakukan oleh Scaffolding : http://localhost/cake/teams
Gambar 3.5. Tampilan halaman List Teams Cobalah untuk menambahkan nama-nama tim sepakbola kesayangan Anda dengan masuk pada link New Team. Sebagai contoh, Anda menambahkan empat buah tim yang berlaga di Liga Indonesia : PSIM, Persija Jakarta, PSMS Medan, dan Persebaya Surabaya. Tampilan halaman tim setelah Anda menambahkan empat buah tim tersebut sebagai berikut :
40
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Gambar 3.6. Halaman List Teams telah terisi Untuk melakukan pengubahan record atau isi database, Anda cukup menekan link Edit. Untuk menghapus record, Anda bisa menekan link Delete. Untuk menampilkan informasi record, Anda bisa masuk pada link View. Kini, arahkan browser Anda pada halaman players dengan url : http://localhost/cake/players
Gambar 3.7. Tampilan List Players
41
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Kini Anda akan menambahkan seorang pemain depan (striker) bernama Bejo pada tim Persija. Setelah membuka link New Player, Anda akan menemukan form isian, berikut komponen listbox yang berisi nama-nama tim, sebagaimana gambar berikut ini :
Gambar 3.8. Menambahkan pemain Setelah Anda menambahkan beberapa pemain, halaman List Players akan tampak sebagaimana di bawah ini :
Gambar 3.9. Halaman List Players telah terisi Fitur Scaffolding yang menakjubkan telah Anda ciptakan dan dalam waktu kurang dari 4 menit CakePHP membantu Anda mewujudkan impian Anda untuk membuat sebuah aplikasi web yang menarik. Sangat mudah, bukan ? Pada dasarnya, fitur Scaffolding bekerja pada file controller saat Anda menambahkan variabel $scaffold. Untuk pengembangan aplikasi selanjutnya, variabel $scaffold
42
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
hanya digunakan untuk membantu memberikan sekilas gambaran aplikasi yang akan Anda ciptakan. Nantinya variabel ini akan dihilangkan dan Anda diminta untuk membuat sendiri fungsi-fungsi di dalam kelas-kelas PHP Anda, baik pada kelas-kelas model maupun controller. Dengan demikian, Anda bisa lebih leluasa melakukan inovasi-inovasi pada aplikasi web Anda.
43
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Referensi Online Nama Situs Situs Resmi CakePHP
Profil Situs ini adalah situs resmi framework CakePHP. Anda bisa mendapatkan berbagai macam hal yang berkaitan dengan CakePHP secara langsung, seperti link referensi online, manual, API, dan berbagai macam berita terbaru tentang Cake Software Foundation.
http://cakephp.org Situs CakeForge
Situs yang berisi project-project Open Source yang dikembangkan dengan frmaework CakePHP. Situs ini cukup representatif untuk dijadikan sumber referensi utama dalam pembuatan aplikasi berbasis CakePHP
http://cakeforge.org 21 Things about CakePHP
Situs ini yang layak menjadi referensi utama untuk Anda yang baru pertama kali mengenal CakePHP. Situs ini berisi penjelasan singkat tentang 21 hal yang bisa dipelajari oleh programmer PHP yang ter tarik menggunakan CakePHP sebagai dasar aplikasi web yang dibuatnya.
http://avatarfinancial.com/pages/cake/
44
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Nama Situs Bakery CakePHP
Profil Situs resmi CakePHP yang berisi tips dan trik seputar CakePHP. Dikemas dalam tampilan yang cukup menawan, situs ini menjadi referensi pengembang CakePHP saat menemui permasalahan yang berhubungan dengan pengembangan CakePHP dengan aplikasi third-party lainnya dan segudang trik lainnya.
http://bakery.cakephp.org Baking With Sosa
Blog milik salah seorang disainer web CakePHP sekaligus developer CakePHP, Armando Sosa. Berisi berbagai macam tips dan trik seputar CakePHP dan cerita-cerita menarik di balik pengembangan CakePHP. Layak untuk disimak, jika Anda memang seorang developer yang penasaran dengan kisah di balik pengembangan CakePHP.
http://nolimit-studio.com/baking/ Cake Baker 42dh
Blog milik Daniel Hofstetter yang berisi pengalamannya selama berkontribusi sebagai salah satu anggota tim developer CakePHP. Sangat menarik dan membantu kita untuk memahami proses pengembangan CakePHP, perbaikan bug-bug yang terdapat di dalamnya, sampai dengan cerita-cerita lucu dan menarik dari pemilik blog. Anda bisa mendapatkan pula contoh aplikasi-aplikasi
http://cakebaker.42dh.com
buatan Daniel di blog ini.
45
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Nama Situs Cake Bits
Profil Blog yang berisi info terbaru tentang aplikasi berbasis CakePHP dan berbagai berita tentang CakePHP yang dikumpulkan dari situs-situs tutorial CakePHP. Meskipun bukan situs resmi milik Cake Software Foundation, situs ini menjadi rujukan yang cukup baik tentang berita-berita terbaru seputar CakePHP.
http://cakebits.net Unofficial CakePHP API
Situs ini berisi dokumentasi dan API (Application Programming Interface) CakePHP. Penjelasan class-class, function, dan berbagai macam turunan dari class di CakePHP dijelaskan di situs ini. Meskipun bukan situs resmi Cake Software Foundation, situs ini bisa menjadi rujukan teknis yang cukup baik.
http://docs.cakephp.nu/ CakePHP Japan
Apabila Anda mahir berbahasa Jepang, mungkin ada baiknya melongok situs ini dan melihat-lihat isinya. Cukup menarik , meskipun tidak jauh berbeda dari beberapa situs CakePHP lain. Anda juga akan menjumpai contoh-contoh aplikasi sederhana buatan developer Jepang. Oya, jika Anda tidak bisa berbahasa Jepang, klik saja link “English” di pojok kanan.
http://cakephp.seesaa.net
46
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Nama Situs CakePHP Indonesia
Profil Situs CakePHP berbahasa Indonesia, awalnya menjadi tempat untuk menampung segala macam unek-unek, artikel, dan curahan hati developer CakePHP di Jogja khususnya dan di Indonesia secara umum. Bergabunglah bersama kami dan kirimkan pengalaman menarik Anda bersama CakePHP.
http://idcake.web.id/ Milis CakePHP bahasa Indonesia
Mailing list CakePHP berbahasa Indonesia yang menjadi ajang berkumpul “baker” (developer dan user) CakePHP. Jika Anda mengalami kesulitan saat menggunakan CakePHP, jangan sungkansungkan untuk bergabung dan berdiskusi di mailing list ini.
http://groups.yahoo.com/group/idcakephp/ Milis CakePHP bahasa Inggris
Mailing list CakePHP berbahasa Inggris. Milis ini direkomendasikan oleh seluruh baker di dunia sebagai ajang diskusi resmi pengguna CakePHP. Bergabunglah dan dapatkan berbagai macam info, trik dan tips, lowongan kerja dan masih banyak lagi.
http://groups.google.com/group/cakephp/
47
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Nama Situs Old CakePHP Wiki
Profil Jika Anda ingin melihat dokumentasi lama dari CakePHP, cobalah berkunjung ke Old CakePHP Wiki. Saat ini, dokumentasi Wiki CakePHP sudah dipindahkan ke Bakery CakePHP meskipun belum semua dokumentasi dimasukkan ke dalam Bakery CakePHP. Jika Anda masih penasaran, kunjungi situs ini dan rasakan sensasi dokumentasi ala Wikipedia untuk aplikasi
http://tinyurl.com/yqnqf2
CakePHP Anda.
Thinking PHP
B l o g m i l i k Fe l i x G e i s e n d ö r f e r a l i a s the_undefined ini berisi artikel-artikel yang cukup berisi tentang pemrograman web, termasuk CakePHP. Dari bobot dan tingkat kesulitan tutorial, situs ini masuk dalam kategori lanjut dan sangat cocok jika memang Anda sudah menggeluti pemrograman web dalam kurun waktu yang cukup lama (2 - 3 tahun).
http://thinkingphp.org/ Noswald’s Blog
Blog milik Andy Dawson, salah seorang baker dari Inggris yang membuat beberapa snippet (source code pendek / class) dan plug-in untuk CakePHP.
Berisi beberapa tips-tips menarik
tentang pengembangan plug-in untuk CakePHP , berikut contoh-contohnya.
http://www.ad7six.com/
48
CakePHP Framework ! Strategi Cepat Pengembangan Aplikasi Web
Nama Situs Planet MVC
Profil Anda tertarik dengan framework MVC selain CakePHP ? Kunjungi situs Planet MVC dan dapatkan informasi terbaru seputar beberapa framework MVC terkenal di dunia.
http://www.planetmvc.com/ Rossoft’s Blog
Blog milik Miguel Ros, berisi beberapa tutorial menarik tentang CakePHP. Cocok sebagai referensi sekunder dan bahan pengayaan untuk aplikasi kita.
http://rossoft.wordpress.com/ H3rald.Com
Blog dan portal milik Fabio Cevasco, salah seorang pengembang CakePHP 1.1 sekaligus penulis beberapa artikel pemrograman web. Ia juga berencana untuk menerbitkan buku resmi CakePHP dari Cake Software Foundation yang berjudul “CakePHP Recipes” meskipun sampai saat ini belum terealisasi.
http://h3rald.com/
49
View more...
Comments