Setelah tidak update selama hampir kurang lebih 2 minggu, akhirnya saya sempatkan kembali untuk memposting tutorial terbaru (maaf bro, lagi banyak job.. ceileh.. alay.com) .. kali ini datangnya dari sebuah permintaan dari pengunjung yang menanyakan tentang bagaimana sih cara bikin form pencarian data berdasarkan field menggunakan Framework CakePHP?.. sebenarnya pembahasan ini juga akan dibahas pada buku CakePHP edisi lanjutan (Lengkap dengan teknik Highlight) .. tunggu saja ya kehadirannya .. ^^
Sebagai gambaran, kita mempunyai sebuah tabel dengan nama searches dengan masing-masing field sebagai berikut :
id | INT | Autoincreament | PrimaryKey
nim | Varchar | 10
nama | Varchar | 100
kota | Varchar | 100
nah, karena tabel bernama searches, maka kita buat file modelnya bernama search.php (Singular).. isinya cukup seperti berikut :
1. <?php
2. Class Search extends AppModel {
3. var $name = ‘Search’;
4. }
5. ?>
Pada baris ke-1, dan ke-5, merupakan perintah awal dan penutup untuk membuat suatu file PHP
Pada baris ke-2, deklarasi untuk membuat file model dengan nama Search.
Pada baris ke-3, membuat deklarasi variabel dengan nama Search.
berikutnya kita buat file controller (sebagai pengendali) dengan nama searches_controller.php, adapun skripnya sebagai berikut :
<?php
Class SearchesController extends AppController {
var $name = ‘Searches’;
function index() {
if (!empty ($this->data)) { // Jika POST tidak kosong
$field = $this->data[‘Search’][‘field’];
$keyword = $this->data[‘Search’][‘keyword’];
$options = array (
‘fields’ => array(‘Search.nim’,’Search.nama’,’Search.kota’
), // Field yang akan ditampilkan
‘conditions’ => array (
$field.’ LIKE’ => ‘%’ . $keyword . ‘%’ // Pencarian
)
);
$result = $this->Search->find(‘all’, $options);
$this->set(‘result’, $result); // Simpan hasil ke dalam bentuk array
$this->set(‘keyword’, $keyword); // Simpan Keyword ke dalam bentuk array
}
}
}
?>
Menurut saya sih, skrip tersebut sepertinya mudah dibaca.. betul ga? :) .. karena saya tak buat se-friendly mungkin codingnya..
Langkah terakhir adalah tinggal membuat saja file view nya dengan nama index.ctp (dalam folder app/views/searches).. kemudian ikuti saja skrip berikut :
<h4>Cari Data</h4>
<p><br />
<?php
$option = array(‘nim’ => ‘Nim’, ‘nama’ => ‘Nama’, ‘kota’ => ‘Kota’);
echo $form->create(‘Search’, array(‘url’ => array(‘action’ => ‘index’), ‘inputDefaults’ => array(‘label’ => false, ‘div’ => false)));
?>
<table>
<tbody>
<tr>
<td>
<div id="tahoma">Kategori</div>
</td>
<td>
<div id="tahoma">:</div>
</td>
<td><?php echo $form->select(‘field’, $option); ?></td>
</tr>
<tr>
<td>
<div id="tahoma">Keyword</div>
</td>
<td>
<div id="tahoma">:</div>
</td>
<td><?php echo $form->input(‘keyword’); ?></td>
</tr>
<tr>
<td><?php echo $form->end(‘Seacrh’); ?></td>
</tr>
</tbody>
</table>
<?php if(!empty($result)): ?>
<h5>Hasil Pencarian:</h5>
<div id="tahoma">
<ol>
<li><?php foreach($result as $search): ?></li>
<li>
<?php echo $search['Search']['nim']; ?> |
<?php echo $search['Search']['nama']; ?> |
<?php echo $search['Search']['kota']; ?>
</li>
<li><?php endforeach; ?></li>
</ol>
</div>
<?php else: ?>
<?php if($this->data): ?>
<div id="tahoma">
<hr />Maaf, Data Tidak Ditemukan</div>
<?php endif; ?>
<?php endif; ?>
Untuk mencoba hasil dari skrip tersebut, bisa langsung diakses pada url http://localhost/NamaFolder/searches
Jika Anda tidak ingin direpotkan dalam menuliskan kode, dapat Anda download source code lengkapnya http://www.ziddu.com/download/17869782/PencarianBerdasarkanFieldCakePHP.rar.html
Semoga dengan adanya pembahasan kali ini, dapat memberikan pengetahuan yang baru kepada Anda dalam mempelajari Framework CakePHP..
NEWS : Akan hadir Segera 3 buku Karya Agus Saputra, diantaranya :
1. MySQL Database Server | PT. Elex Media Komputindo | Agustus / September 2011
2. Framework Codeigniter | Lokomedia | Agustus / September 2011
3. Framework CakePHP (Edisi Lanjutan) | Lokomedia | Oktober / November 2011
Koleksi ya ..
Simon
Pertamax gan... Hehehe :)
Mas mantab artikelnya, btw kalo buat tingkatan user dan forum dengan cakephp bagaimana caranya???
Simon
Gan yang buku cake php lanjutan gak bisa di dahulukan tah gan dari code igniter??
Agus Saputra
Simon @ nanti akan saya coba bahas mengenai tingkatan user ..
Maunya sih seperti itu, Namun Penerbit melihat dari sisi pemasaran, ternyata peminat Codeigniter di Indonesia masih jauh lebih besar ketimbang CakePHP..
makanya untuk mempercepat antrian, setelah disepakati, maka jadwal terbitnya ditukar..
Disamping itu, agar Jarak Antar Buku CakePHP 1 dan 2 tidak terpaut dekat .. ^^
Simon
Mas, lain kali diulas captcha pada buku tamu buku cake php anda di bab7,menghitung jumlah pengunjung dan dari negara mana, cara membuat pooling, cara membuat flash news atau artikel bergerak pada cake php.
Oh ya mas project anda saya coba di cake terbaru versi 1.3.10 kok ada eror di menu linknya???
Robin
mas agus, kalau utk integrasi dgn tinypick dan gambar kalau tdk disertakan akan error pada artikel utk cakephp... Trims
Agus Saputra
sepertinya nih yg ada di Lokomedia ya? :-) yg inisial Rbin?..
Robin
yup, betul mas,... saya dah beli bukunya. Saya baru belajar php utk hoby.
Sekali2 tulis yii framework mas, cepet sekali buat CRUD nya,...ada generate toolnya.
Agus Saputra
Robin @ lanjutkan mas hobynya.. mantab.. :-)
iya, memang saya ada rencana untuk membuat tema tsb.. namun belum sempat waktunya.. lg bnyk job nih.. tunggu saja ya.. :-)
rizal
gan buat searching yang hasil tampilannya seperti di view artikel proyek web blog gmn????
Agus Saputra
Hampir sama kok mas seperti yg ada pada CMS Lokomedia.. :-)
andre
mas agus, email saya kok gak di balez seh??
Agus Saputra
andre @ maaf mas, baru sempat buka email skr td.. :-) waktu kemarin2 saya lagi plg kampung nih, ke Cirebon.. nanti saya balas ya..
andre
makasih mas bantuannya..
tapi maaf ada pertanyaan lagi yang saya email... makasih
Simon
gan... lama gak update artikel nih...???
kalo buat date time dan statistik pengunjung dengan cakephp kayak yang di webnya agan gmana??..
Oh yah gan gua udah bolak-balik ke gramedia tapi kok belum nemu2 bukunya agan yang baru, kapan seh terbitnya???
Moga-moga agan selalu diberkati karena bagi-bagi ilmu bagi sesama. Aminn
setno
gan.. numpang lewat nih... wkwkwkwk
oh yah gan, kemarin gua beli buku ente yang berjudul Step By Step Membangun Aplikasi SMS dgn PHP & MySQL.
Nah mau ane tanya nih.. kalo di buku ente untuk mencheck pulsa pake javascript. kalo di cakephp ini cara membuat fungsi check pulsa gmana?
setno
gan.. numpang lewat nih... wkwkwkwk
oh yah gan, kemarin gua beli buku ente yang berjudul Step By Step Membangun Aplikasi SMS dgn PHP & MySQL.
Nah mau ane tanya nih.. kalo di buku ente untuk mencheck pulsa pake javascript. kalo di cakephp ini cara membuat fungsi check pulsa gmana?
Agus Saputra
Simon @ tq gan.. btw buku baru yg mana dulu nih.. soalnya ada beberapa buku yg siap launching.. =)
Setno @ sama saja baik di PHP maupun CakePHP.. :-)
surya
mas agus... kalo buat search supaya menampilkan hasil seperti : http://mrphp.com.au/files/search-forms-in-cakephp.j pg dgn contoh kasus buku Teknik Cepat Membangun Aplikasi Web dengan Framework cake php gmana tuh mas?? kalo pake cara ini kan gak bisa nampilkan link sekalian gambar bukunya cuman nampilkan tulisan saja
Agus Saputra
untuk menampilkan gambar, ada kok kode dasarnya dibuku... nanti saya tampung dulu yah pertanyaannya.. :)
Yura
minta tutor ini yang menggunakan ci dong mas... maklum masih nubi...
Agus Saputra
Yura @ oke, nanti sy share ya..
zhedeng
Mas Kalau kita Maw Menerapkan Sebuah algoritma khusus di cake php apa yang harus dilakukan...?? Mis. saya akan menerapkan algo bubleshort. disini saya asumsikan bahwa sebelumnya telah ada file untuk bubleshort
Muhammad Cahya
Mas kalo di search conditionnya itu ditambah paginate gimana ya ?
Muhammad Reza
Gak bisa di download kok?
Agus Saputra
Muhammad Reza @ maaf, kemarin sempat ada lakukan migrasi ke ziddu... sekarang sudah bisa kok.. :)
iponk
mas nanya ne.. saya lagi buat tugas akhir ne, kalau membuat email balasan otomatis untuk yang registrasi di web kita caranya gmana ya mas..
Agus Saputra
Wah panjang, Logika saja seperti ini:
// Ketika data register berhasil disimpan ke tabel, maka kita kirimkan email ke orang yang bersangkutan..
Fungsi PHP untuk mengirim email adalah mail().. coba klik http://php.net/manual/en/function.mail.php
cialis
Great article.
sinopse.org
Hey there! Do you know if they make any plugins to help with Search Engine
Optimization? I'm trying to get my blog to
rank for some targeted keywords but I'm not seeing very good results.
If you know of any please share. Cheers!
mobile slot apps
Let them know what has happened, and when they curious, explain why industry.
You shouldn't buy goods just since they look optimistic. Try and rekindle the
romance in your married life.