Seri #11 – Tutorial Belajar Framework CodeIgniter untuk Pemula | Pencarian Data – Tutorial terakhir pada seri belajar framework codeigniter ialah pencarian data. Pada halaman utama, kita telah berhasil menampilkan daftar mahasiswa, nah disini kita akan menyiapkan sebuah field untuk mencari data, sehingga daftar mahasiswa dapat difilter berdasarkan keyword yang kita masukkan.

Kita tidak akan membuat view baru, tetapi hanya akan melakukan modifikasi pada file view daftar_mahasiswa.php dengan menambahkan field pencarian diantara tulisan Daftar Mahasiswa dan tabel.
View
Silakan teman-teman buka view bernama daftar_mahasiswa.php dan lakukan modifikasi dengan menambahkan sintaks pada baris 16 – 20 berikut:
<!DOCTYPE html> <html> <head> <title>Daftar Mahasiswa | Kangriyanto.net</title> <style type="text/css"> .container { width: 800px; margin: 10px auto; } table { width: 100%; } table tr:first-child { background: #d0d0d0; } table td { border: 1px solid #d0d0d0; } </style> </head> <body> <div class="container"> <h1>Daftar Mahasiswa</h1> <?php echo form_open('mahasiswa'); echo form_input(['type' => 'text', 'name' => 'keyword', 'placeholder' => 'Masukkan keyword']); echo form_submit('submit', 'Cari Data'); ?> <table> <tr> <th>No</th> <th>NIM</th> <th>Nama Mahasiswa</th> <th>Jenis Kelamin</th> <th>Alamat</th> <th>Aksi</th> </tr> <?php $no = 1; foreach($mahasiswa as $data): ?> <tr> <td><?php echo $no++; ?></td> <td><?php echo $data['nim']; ?></td> <td><?php echo $data['nama']; ?></td> <td><?php echo ($data['jk'] == 'L') ? 'Laki-laki' : 'Perempuan'; ?></td> <td><?php echo $data['alamat']; ?></td> <td align="center"> <a href="<?php echo site_url('mahasiswa/edit/' . $data['nim']) ?>">Edit</a> | <a href="<?php echo site_url('mahasiswa/hapus/' . $data['nim']) ?>" onclick="return confirm('Yakin ingin menghapus data ini?')">Hapus</a> </td> </tr> <?php endforeach; ?> <tr> <td colspan="6" align="center"> <a href="<?php echo site_url('mahasiswa/tambah') ?>">Tambah Data</a> </td> </tr> </table> </div> </body> </html>
Apabila dijalankan maka akan menampilkan error sebab kita belum memanggil helper bernama form sedangkan pada view di atas kita telah menggunakannya. Untuk itu kita akan memodifikasi pada file controller.
Controller
Pada controller Mahasiswa kita akan lakukan modifikasi pada method index agar dapat memanggil helper form sehingga menjadi seperti ini:
public function index() { $this->load->database(); $this->load->model('mahasiswa_model'); $this->load->helper('form'); $data['mahasiswa'] = $this->mahasiswa_model->get_mahasiswa(); $this->load->view('daftar_mahasiswa', $data); }
Ok, sekarang apabila diakses menggunakan alamat localhost/belajarci/index.php/mahasiswa maka akan tampil halaman seperti pada gambar berikut (perhatikan field pencarian):

Jika kita lakukan pencarian data, maka field tersebut masih belum berfungsi. Kita akan membuatnya berfungsi dengan memodifikasi method index pada controller Mahasiswa di atas dengan baris berikut:
public function index() { $this->load->database(); $this->load->model('mahasiswa_model'); $this->load->helper('form'); if($this->input->method() == 'post') { $keyword = $this->input->post('keyword'); $data['mahasiswa'] = $this->mahasiswa_model->cari_mahasiswa($keyword); } else { $data['mahasiswa'] = $this->mahasiswa_model->get_mahasiswa(); } $this->load->view('daftar_mahasiswa', $data); }
Pada method di atas, jika dilakukan pencarian data maka panggil method cari_mahasiswa pada mahasiswa_model, tetapi jika tidak dilakukan pencarian maka panggil method get_mahasiswa
Secara keseluruhan controller Mahasiswa akan menjadi seperti ini:
<?php class Mahasiswa extends CI_Controller { public function index() { $this->load->database(); $this->load->model('mahasiswa_model'); $this->load->helper('form'); if($this->input->method() == 'post') { $keyword = $this->input->post('keyword'); $data['mahasiswa'] = $this->mahasiswa_model->cari_mahasiswa($keyword); } else { $data['mahasiswa'] = $this->mahasiswa_model->get_mahasiswa(); } $this->load->view('daftar_mahasiswa', $data); } public function hapus($nim) { $this->load->database(); $this->load->model('mahasiswa_model'); $hapus = $this->mahasiswa_model->delete_mahasiswa($nim); if($hapus) { redirect(site_url('mahasiswa')); } } public function tambah() { if($this->input->method() == 'post') { $this->load->database(); $this->load->model('mahasiswa_model'); $data = [ 'nim' => $this->input->post('nim'), 'nama' => $this->input->post('nama'), 'jk' => $this->input->post('jk'), 'alamat' => $this->input->post('alamat') ]; if($this->mahasiswa_model->add_mahasiswa($data)) { redirect(site_url('mahasiswa')); } } else { $this->load->helper('form'); $this->load->view('tambah_mahasiswa'); } } public function edit($nim) { $this->load->database(); $this->load->helper('form'); $this->load->model('mahasiswa_model'); // ambil satu data dari tabel mahasiswa beradasarkan nim $data = $this->mahasiswa_model->get_mahasiswa($nim); $this->load->view('edit_mahasiswa', $data); // jika user menekan tombol edit data, maka lakukan update if($this->input->method() == 'post') { $data = [ 'nama' => $this->input->post('nama'), 'jk' => $this->input->post('jk'), 'alamat' => $this->input->post('alamat') ]; if($this->mahasiswa_model->update_mahasiswa($data, $nim)) { redirect('mahasiswa'); } } } }
Selanjutnya kita akan memodifikasi model Mahasiswa_model dan membuatkan satu method bernama cari_mahasiswa.
Model
Buka model Mahasiswa_model dan tambahkan method cari_mahasiswa:
public function cari_mahasiswa($keyword) { $this->db->like('nim', $keyword); $this->db->or_like('nama', $keyword); return $this->db->get('mahasiswa')->result_array(); }
Query builder di atas akan menghasilkan query:
SELECT * FROM `mahasiswa` WHERE `nim` LIKE '%$keyword%' OR `nama` LIKE '%$keyword%'
Sehingga model Mahasiswa_model secara keseluruhan akan menjadi seperti ini:
<?php class Mahasiswa_model extends CI_Model { public function get_mahasiswa($nim = false) { if($nim === false) { $query = $this->db->get('mahasiswa'); return $query->result_array(); } else { $this->db->where(['nim' => $nim]); $query = $this->db->get('mahasiswa'); return $query->row(); } } public function delete_mahasiswa($nim) { return $this->db->delete('mahasiswa', ['nim' => $nim]); } public function add_mahasiswa($data) { return $this->db->insert('mahasiswa', $data); } public function update_mahasiswa($data, $nim) { return $this->db->update('mahasiswa', $data, "nim = $nim"); } public function cari_mahasiswa($keyword) { $this->db->like('nim', $keyword); $this->db->or_like('nama', $keyword); return $this->db->get('mahasiswa')->result_array(); } }
Oke, sampai disini pembahasan tentang pencarian data dengan menggunakan framework CodeIgniter (CI) telah selesai. Silakan teman-teman buka kembali localhost/belajarci/index.php/mahasiswa dan lakukan pencarian dengan keyword tertentu. Disini saya contohkan melakukan pencarian daftar mahasiswa dengan keyword di, maka akan ditampilkan data mahasiswa seperti Aras Harmadinata, Dika Luthfi M dan Dicky Wahyudi.
