Membuat Pencarian Data Menggunakan Codeigniter 3 Lengkap
Pada kesempatan kali ini, saya akan berbagi sedikit ilmu tentang bagaimana cara membuat pencarian data menggunakan framework Codeigniter.
Kamu pasti tahu kan bahwa fitur pencarian data sangatlah penting dalam sebua website maupun aplikasi. Dengan adanya fitur ini, kita bisa mencari data yang ingin kita temukan hanya dengan mengetikan kata kunci dari data tersebut.
Misalnya dalam sebuah website portal berita kamu ingin mencari artikel tentang Banjir, pastinya kita membutuhkan form pencarian untuk memudahkan kita menemukan konten yang tentang banjir tersebut.
Pada Codeigniter sendiri, sudah disediakan query builder yang dapat mempermudah kita untuk membuat pencarian data.
Tapi sbelum itu, kamu harus mengaktifkan helper form dan url pada Framework Codeigniter
Teknik Membuat Pencarian Data Menggunakan Codeigniter 3
Sebelum memulai, ada beberapa persiapan yang harus kita siapkan yaitu :
- Database dan Tabel
- Form pencarian
- Framework Codeigniter 3
langkah pertama yaitu kita buat terlebih dahulu database dan tabel yang akan kita gunakan nanti. Untuk nama database silakan kalian sesuaikan dengan projek kalian masing masing.
Untuk Struktur tabel bisa kalian ikuti seperti dibawah ini :
Jangan lupa untuk mengisi data pada tabel yang telah dibuat sebelumnya.
Setelah itu hubungkan database yang telah dibuat tersebut ke projek Codeigniter di bagian Application > config > database.php
dan di bagian autoload aktifkan database terlebih dahulu. Caranya buka Application > config > autoload.php baris 61
$autoload['libraries'] = array('database');
dan juba di baris 92 untuk memanggil helper url :
$autoload['helper'] = array('url');
Selain itu kita juga harus konfigurasi base_url projek kita di folder Application > config > config.php baris 26 :
$config['base_url'] = 'http://localhost/demo/CiSearch/';
Ganti nilai value dari base_url diatas denga lokasi projek kalian masing masing.
Setelah membuat Database dan tabel, selanjutnya kita buat Form Pencariannya. Buat di Application > View >dengan nama Search.php. Kemudian copy code dibawah ini :
<!DOCTYPE html>
<html>
<head>
<title>Search Data</title>
</head>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<body>
<div class="container">
<div class="row" style="margin-top: 50px">
<div class="col-xs-4 col-xs-offset-4">
<form action="<?= base_url('index.php/SearchController/index/') ?>" method="get">
<div class="input-group">
<input type="text" class="form-control" name="keyword" placeholder="Masukan Kata Kunci...">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">Cari</button>
</span>
</div>
</form>
</div>
</div>
<div class="row">
<div class="col-xs-4 col-xs-offset-4 text-center">
<h3>Data Barang</h3>
<?php if(!empty($keyword)){ ?>
<p style="color:orange"><b>Menampilkan data dengan kata kunci : "<?= $keyword; ?>"</b></p>
<?php } ?>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Nama Barang</th>
<th scope="col">Lokasi</th>
</tr>
</thead>
<tbody>
<?php foreach ($data as $row) { ?>
<tr>
<th scope="row"><?= $row['id'] ?></th>
<td><?= $row['nama_barang'] ?></td>
<td><?= $row['lokasi'] ?></td>
</tr>
<?php }?>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>
Keterangan kode diatas :
Pada kode html diatas, di bagian Form kita mengarahkan action ke Controller SearchController/index dan menggunakan Method Post untuk.
Setelah itu, kita buat Controller dengan nama SearchController.php, kemudian masukan kode dibawah ini :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SearchController extends CI_Controller {
public function index()
{
$this->load->model('SearchModel');
$keyword = $this->input->get('keyword');
$data = $this->SearchModel->ambil_data($keyword);
$data = array(
'keyword' => $keyword,
'data' => $data
);
$this->load->view('search',$data);
}
}
Penjelsana Kode Diatas :
Ketika SearchController diakses, pertama kali dia akan request data ke SearchModel untuk mengambil data, disini kita membuat sebuah kondisi, Jika user mengakses tampilan Halaman data tanpa melakukan pencarian maka controller akan request data ke Model tanpa mengirimkan keyword dari user.
Namun ketika user mengakses halaman data kemudian dia melakukan pencarian makan controller akan request data ke SearchModel dengan keyword yang diminta user.
Kemudian semua data yang diminta user akan disimpan didalam array $data = array()
Selanjutnya kita buat Model untuk menghandel perintah pengambilan data ke database. Buat file baru dengan nama SearchModel.php di Application > Models, kemudian masukan kode dibawah ini :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SearchModel extends CI_Model {
public function ambil_data($keyword=null){
$this->db->select('*');
$this->db->from('tbl_data');
if(!empty($keyword)){
$this->db->like('nama_barang',$keyword);
}
return $this->db->get()->result_array();
}
}
Penjelasan Kode Diatas :
Kita membuat sebuah function ambil_data dengan parameter $keyword=null
, ini artinya ketika user request data namun keyword nya kosong maka Model akan membertikan semua data ke user. Namun ketika nilai $keyword
tidak kosong makan Model akan melakukan pencarian berdasarkan kata kunci yang dimasukan user dengan perintah ini $this->db->like('nama_barang',$keyword);
Jika semua langkah langkah diatas kalian sudah ikuti, maka kamu sudah berhasil membuat pencarian data menggunakan Framewok CodeIgniter
Berikut adalah demo hasil dari contoh kode diatas :
Tampilan program pencarian data :
Hasil data ketika melakukan pencarian dengan kata kunci "topi":
Sekian tutorial dari saya tentang cara membuat pencarian data dengan Framework Codeigniter, Semoga bermanfaat dan dapat membantu. Apabila ada pertanyaan silahkan tanyakan langsung di form komentar dibawah ini, Terimakasi 😊