Bikin Sendiri Metode Pencarian Data Berdasarkan Field Menggunakan Framework CakePHP

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 folderapp/views/searches).. kemudian ikuti saja skrip berikut :
<h4> Cari Data </h4>
<?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>
<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>
</table>
<?php if(!empty($result)): ?><hr>
<h5> Hasil Pencarian: </h5>
<div id=”tahoma”>
<ol>
<?php
foreach($result as $search):
?>

<li>
<?php echo $search[‘Search’][‘nim’]; ?> |
<?php echo $search[‘Search’][‘nama’]; ?> |
<?php echo $search[‘Search’][‘kota’]; ?>
</li><br>

<?php endforeach; ?>
</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 urlhttp://localhost/NamaFolder/searches …

Jika Anda tidak ingin direpotkan dalam menuliskan kode, dapat Anda download source code lengkapnyadisini.

Semoga dengan adanya pembahasan kali ini, dapat memberikan pengetahuan yang baru kepada Anda dalam mempelajari Framework CakePHP..

from : agus saputra’s book

This entry was published on December 21, 2011 at 10:58 am and is filed under Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: