• Tidak ada hasil yang ditemukan

Sca ff olding

Dalam dokumen Strategi Cepat Pengembangan Aplikasi Web (Halaman 41-50)

Model Instalasi 3 : Custom Setup

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 team_id small int (6) Null

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

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

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; }

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' ) ); } ?>

Masih pada folder yang sama, buatlah model untuk tabel teams dengan nama team.php. Isikan script di bawah ini :

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

Cobalah untuk menambahkan nama-nama tim sepakbola kesayangan Anda dengan masuk pada linkNew 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 :

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

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

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.

Dalam dokumen Strategi Cepat Pengembangan Aplikasi Web (Halaman 41-50)

Dokumen terkait