• Tidak ada hasil yang ditemukan

Strategi Cepat Pengembangan Aplikasi Web

N/A
N/A
Protected

Academic year: 2018

Membagikan "Strategi Cepat Pengembangan Aplikasi Web"

Copied!
55
0
0

Teks penuh

(1)
(2)

Strategi Cepat Pengembangan Aplikasi Web

(3)
(4)
(5)

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

25

3.1. Instalasi dan Konfigurasi 25

3.2. Routing CakePHP 30

3.3. Hello World ! 32

(6)
(7)

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

(8)

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

(9)

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

(10)
(11)

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

(12)

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 modul-modul 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

(13)

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 serverirc.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 ! ).

(14)

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 Sca

ff

olding

(15)

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

(16)

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.

(17)

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

(18)

• /views : berisi file - file view yang akan berperan sebagai presentation logic dari aplikasi Anda. Folder ini juga memiliki beberapa subfolder 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

(19)

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.

(20)

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

(21)

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.

(22)

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 :

(23)

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 userroot, 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

(24)

Ekstrak dan konfigurasi dahulu source MySQL. Setelah itu, Anda boleh langsung

meng-compile-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 <new_password>

(25)

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-restartApache bila ada konfigurasi yang diganti saat Apache dijalankan :

/usr/local/apache/bin/apachectl restart

6.Testing PHP

(26)

File : phpinfo.php

<?php

phpinfo(); ?>

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 filemysql.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 /etc/rc3.d

#ln -s ../init.d/mysql S85mysql #ln -s ../init.d/mysql K85mysql #cd /etc/rc5.d

(27)

#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 /etc/rc3.d

#ln -s ../init.d/httpd S85httpd #ln -s ../init.d/httpd K85httpd #cd /etc/rc5.d

#ln -s ../init.d/httpd S85httpd #ln -s ../init.d/httpd 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

di-download 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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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 <-- Folder ini menjadi DocumentRoot Anda

.htaccess index.php /cake /vendors .htaccess index.php

Model Production Setup memerlukan konfigurasi pada file httpd.conf. Di bawah ini adalah contoh konfigurasi yang memungkinkan untuk mengubah DocumentRoot Anda :

DocumentRoot /path_ke_instalasi_cake/app/webroot

Pada instalasi ini, folder webroot pada aplikasi CakePHP akan berperan sebagai web root

aplikasi secara keseluruhan, sehingga apabila diakses dari browser, url aplikasi CakePHP Anda akan terlihat sebagaimana berikut ini :

http://www.situsku.com/namaController/namaAction/param1/param2

Model Instalasi 3 : Custom Setup

Pada beberapa kondisi khusus, Anda mungkin menginginkan peletakan direktori aplikasi CakePHP pada folder-folder yang berbeda di dalam harddisk Anda. Kondisi ini barangkali dilatarbelakangi oleh adanya restriksi pada konfigurasi server Anda, atau Anda menginginkan beberapa aplikasi CakePHP mengakses pustaka CakePHP yang sama. Ada tiga komponen utama pada aplikasi CakePHP :

• Inti dari pustaka CakePHP pada folder/cake

• Aplikasi berbasis CakePHP yang akan Anda kembangkan pada folder/app

(34)

Masing-masing direktori ini bisa diletakkan di mana saja di file system Anda, dengan catatan folder webroot harus bisa diakses oleh web server Anda. Anda bahkan bisa memindahkan folderwebroot keluar dari folder/app selama Anda memberitahu CakePHP di mana Anda meletakkan direktori webroot Anda. Untuk melakukan konfigurasi pada instalasi dengan model Custom Setup ini, Anda harus melakukan sedikit perubahan pada

file /app/webroot/index.php. Jika Anda mencermati isi fileindex.php ini, Anda akan menjumpai setidaknya tiga variabel pokok, yakni : ROOT, APP_DIR, dan

CAKE_CORE_INCLUDE_PATH.

• ROOT seyogyanya di set pada path yang menunjuk ke direktori yang mengandung

folder/app ;

• APP_DIR seyogyanya diset pada pathfolder/app itu sendiri.

• CAKE_CORE_INCLUDE_PATH seyogyanya diset pada path folder/cake yakni folder

pustaka CakePHP.

Sebelum Anda melakukan perubahan, seharusnya secara lengkap susunan konfigurasi pada fileindex.php sebagai berikut :

File : index.php

<?php ....

if (!defined('ROOT')) {

define('ROOT',dirname(dirname(dirname(__FILE__))));

}

if (!defined('APP_DIR')) {

define('APP_DIR',basename(dirname(dirname(__FILE__))));

}

if (!defined('CAKE_CORE_INCLUDE_PATH')) {

define('CAKE_CORE_INCLUDE_PATH', ROOT);

}

...

?>

(35)

1. Pustaka Cake akan digunakan bersama dengan aplikasi lainnya, dan akan diletakkan pada folder /usr/lib/cake (asumsikan, sistem operasi Anda adalah Linux).

2. Folderwebroot Anda akan Anda letakkan di /var/www/situsku

3. Aplikasi Anda akan Anda letakkan di /home/aku/situsku

/home /aku

/situsku <-- Sebelumnya adalah /cake_install/app

/config /controllers /models /plugins /tmp /vendors /views index.php /var /www

/situsku <-- Sebelumnya adalah /cake_install/app/webroot

/css /files /img /js .htaccess css.php favicon.ico index.php /usr /lib

/cake <-- Sebelumnya adalah /cake_install/cake

/cake /config /docs /libs /scripts app_controller.php app_model.php basics.php bootstrap.php dispatcher.php /vendors

(36)

File : index.php <?php ... if (!defined('ROOT')) { define('ROOT', DS.'home'.DS.'aku'); } if (!defined('APP_DIR')) {

define ('APP_DIR', 'situsku');

} if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake'); } .... ?>

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 :

(37)

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

<?php ...

$Route->connect('/',

array('controller'=>'pages',

'action' => 'display', 'home'));

$Route->connect('/pages/*',

array('controller' => 'pages',

'action' => 'display'));

$Route->connect('/tests',

array('controller' => 'tests',

'action' => 'index'));

.... ?>

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('/',

(38)

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

(39)

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

<h1>Halo, dunia !<br/></h1>

<h3>Ini adalah script CakePHP pertama penulis<h3>

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

<h3>Selamat datang, di aplikasi CakePHP <br/></h3>

<p>Ini adalah contoh pertama penerapan routing dan halaman statis</p>

(40)

routes.php, sehingga apabila sebelumnya file konfigurasi Anda tampak sebagaimana di bawah ini :

File : routes.php

<? ....

$Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

.... ?>

Setelah diarahkan pada halaman statis hello.thtml, akan berubah menjadi seperti ini :

File : routes.php

<? ....

$Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'hello'));

.... ?>

Arahkan kembali browser Anda ke direktori instalasi CakePHP. Browser Anda akan menampilkan halaman web berikut ini :

Gambar 3.4. Tampilan hello.thtml

(41)

3.4. Sca

ff

olding

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

(42)

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.

(43)

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, filedatabase.php akan tampak sebagaimana di bawah ini :

File : database.php

<?php

class DATABASE_CONFIG {

var $default = array(

'driver' => 'mysql',

'connect' => 'mysql_connect',

'host' => 'localhost',

'login' => 'user',

'password' => 'password',

'database' => 'project_name',

'prefix' => '');

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 arraylogin, password_database_anda pada elemen arraypassword. Setelah Anda ubah dan sesuaikan dengan konfigurasi database

(44)

menggunakan username ‘root’ dengan password ‘root’ untuk mengakses database milik penulis. Anda bisa menggunakan username dan password yang sesuai.

File : database.php

<?php

class DATABASE_CONFIG {

var $default = array(

'driver' => 'mysql',

'connect' => 'mysql_connect',

'host' => 'localhost',

'login' => 'root',

'password' => 'root',

'database' => 'latihancake',

'prefix' => '');

} ?>

Setelah Anda selesai menciptakan database dan tabel yang dibutuhkan, serta mengarahkan instalasi CakePHP Anda pada databaselatihancake, 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

<?php

class PlayersController extends AppController {

var $scaffold; }

(45)

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

<?php

class TeamsController extends AppController {

var $scaffold; }

?>

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

<?php

class Player extends AppModel {

var $name = 'Player';

var $belongsTo = array('Team' =>

array('className' => 'Team', 'conditions' => '',

'order' => '',

'foreignKey' => 'team_id' )

); }

?>

(46)

File : team.php

<?php

class Team extends AppModel {

var $name = 'Team';

var $displayField = 'name'; }

?>

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

(47)

Gambar 3.6. Halaman List Teams telah terisi

Untuk melakukan pengubahan record atau isi database, Anda cukup menekan linkEdit. Untuk menghapus record, Anda bisa menekan linkDelete. Untuk menampilkan informasi

record, Anda bisa masuk pada linkView. Kini, arahkan browser Anda pada halaman players

dengan url :

http://localhost/cake/players

(48)

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 ?

(49)

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

(50)

Referensi Online

Nama Situs

Profil

Situs Resmi CakePHP

http://cakephp.org

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.

Situs CakeForge

http://cakeforge.org

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

21 Things about CakePHP

http://avatarfinancial.com/pages/cake/

(51)

Nama Situs

Profil

Bakery CakePHP

http://bakery.cakephp.org

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.

Baking With Sosa

http://nolimit-studio.com/baking/

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.

Cake Baker 42dh

http://cakebaker.42dh.com

(52)

Nama Situs

Profil

Cake Bits

http://cakebits.net

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.

Unofficial CakePHP API

http://docs.cakephp.nu/

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.

CakePHP Japan

http://cakephp.seesaa.net

(53)

Nama Situs

Profil

CakePHP Indonesia

http://idcake.web.id/

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.

Milis CakePHP bahasa Indonesia

http://groups.yahoo.com/group/id-cakephp/

Mailing list CakePHP berbahasa Indonesia y a n g m e n j a d i a j a n g b e r k u m p u l

“baker” (developer dan user) CakePHP. Jika A n d a m e n g a l a m i k e s u l i t a n s a a t menggunakan CakePHP, jangan sungkan-sungkan untuk bergabung dan berdiskusi di

mailing list ini.

Milis CakePHP bahasa Inggris

http://groups.google.com/group/cake-php/

(54)

Nama Situs

Profil

Old CakePHP Wiki

http://tinyurl.com/yqnqf2

Jika Anda ingin melihat dokumentasi lama dari CakePHP, cobalah berkunjung ke Old CakePHP Wiki. Saat ini, dokumentasi Wiki CakePHP sudah dipindahkan ke Bakery C a k e P H P m e s k i p u n b e l u m s e m u a dokumentasi dimasukkan ke dalam Bakery CakePHP. Jika Anda masih penasaran, kunjungi situs ini dan rasakan sensasi dokumentasi ala Wikipedia untuk aplikasi CakePHP Anda.

Thinking PHP

http://thinkingphp.org/

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 m e m a n g A n d a s u d a h m e n g g e l u t i pemrograman web dalam kurun waktu yang cukup lama (2 - 3 tahun).

Noswald’s Blog

http://www.ad7six.com/

Blog milik Andy Dawson, salah seorang baker dari Inggris yang membuat beberapa snippet

(55)

Nama Situs

Profil

Planet MVC

http://www.planetmvc.com/

Anda tertarik dengan framework MVC selain CakePHP ? Kunjungi situs Planet MVC dan dapatkan informasi terbaru seputar beberapa framework MVC terkenal di dunia.

Rossoft’s Blog

http://rossoft.wordpress.com/

Blog milik Miguel Ros, berisi beberapa tutorial menarik tentang CakePHP. Cocok sebagai referensi sekunder dan bahan pengayaan untuk aplikasi kita.

H3rald.Com

http://h3rald.com/

Gambar

Gambar 1.2. Struktur kerja CakePHP (Grahambird.co.uk)
Gambar 1.3. Struktur Folder CakePHP
Gambar 2.1. Tampilan Awal Installer AppServ untuk Windows
Gambar 2.2. Menentukan letak direktori instalasi
+7

Referensi

Dokumen terkait

Assalamualaikum Wr. Puji syukur alhamdulillah penulis panjatkan ke hadirat Ilahi Rabbi, atas segala rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi

ISO 26000 mengakui untuk mendapatkan kredibilitas yang tinggi, suatu laporan tanggung jawab sosial harus mencakup kinerja tanggung jawab sosial organisasi berdasarkan objektifnya,

Dalam waktu sebulan setelah dilakukan penghentian sementara itu Badan Pengurus berkewajiban untuk memanggil Rapat Anggota Perkumpulan, guna menentukan apakah anggota yang

Pilihlah kata-kata di kolom kanan yang artinya paling dekat dengan kata-kata di sebelah

Hasil regresi sesuai dengan hipotesis penelitian awal yang menduga terdapat pengaruh positif antara aglomerasi sektor industri terhadap ketimpangan

Psikoedukasi adalah sebuah proses pemberian pemahaman atau pendidikan psikologis pada individu atau kelompok. Pengertian psikoedukasi senada di definisikan Lukens dan

Skripsi ini merupakan laporan dari penelitian penulis yang berjudul Pola Ekspresi Gen HbACO2 pada Kulit Batang dan Lateks Karet Akibat Stres Eksploitasi yang penulis

Qur’an, (Yogyakarta: Pustaka Pelajar, 2004), h.. Maka dapat disimpulkan dan dipahami bahwa al-fitrah sebagai sistem alamiah yang ada dalam nafs manusia yang membentuk