Membuat Pagination dengan Codeigniter 4
Tutorial Membuat Pagination dengan codeigniter 4 - Pagination merupakan sebuah fitur yang digunakan untuk membagi suatu resource/data menjadi beberapa bagian kecil yang terpisah. Dalam dunia web pagination digunakan untuk memecah resource/data yang besar (yang ada didalam database) agar mudah ditangani oleh user.
Pada dasarnya jika kita menggunakan pagination pada website kita sama dengan kita membatasi data yang kita tampilkan kemudian kita pecah menjadi beberapa halaman yang saling terhubung. Mengapa kita perlu menggunakan pagination dalam website ? karena jika kita tidak menggunakan pagination dalam aplikasi website kita yang sudah mempunyai ratusan ribu data maka yang terjadi pada website kita adalah load yang sangat lama dan server akan bekerja ekstra untuk menampilkan data yang kita minta.
Mungkin pada diri kita bertanya mengapa kita harus membuat pagination tidak menggunakan datatable saja , karena dalam datatable sistimnya adalah datatable akan meload hampir semua data terlebih dahulu kemudian baru ditampilkan perpage, jadi jika kita mempunyai ratusan ribu data dan menggunakan datatable maka yang terjadi adalah seperti diatas load data yang lama dan sangat mempengaruhi performa website kita.
Pagination yang akan kita buat kali ini dengan menggunakan framework codeigniter 4, framework codeigmiter atau sering disingkat dengan CI merupakan sebuah kerangka kerja PHP yang cukup populer dikalangan web development Indonesia karena penggunaannya yang cukup mudah dan performa yang lumayan.
Pada pembuatan pagination di codeigniter 4 ini tidak serumit dengan codeigniter versi sebelumnya yang sedikit agak rumit dan memakan lumayan banyak waktu, Ok langsung saja kita ke tutorialnya.
Installasi Codeigniter 4
Seperti biasa saat kita memulai sebuah aplikasi jika kita belum mempunyai aplikasi tersebut maka yang kita lakukan adalah installasi aplikasi, Jika kalian belum paham tentang cara installasi Codeigniter 4 saya sudah membahasnya di artikel sebelumnya yaitu Cara Installasi Codeigniter 4
Membuat Database
Sebelum melaju kelangkah selanjutnya kita buat dulu database yang digunakan untuk menyimpan data kita. Disini saya membuat database dengan nama Sekolah dan juga tabel siswa seperti dibawah ini .
mysql> create database sekolah;
Query OK, 1 row affected (0.00 sec)
mysql> create table siswa (ID int(5) not null AUTO_INCREMENT, NamaLengkap varchar(50), Kelas varchar(20), PRIMARY KEY(ID));
Query OK, 0 rows affected (0.53 sec)
Membuat Koneksi Database
database.default.hostname = localhost
database.default.database = sekolah
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
Membuat File Model
<?php namespace App\Models;
use CodeIgniter\Model;
class ModelsSiswa extends Model
{
protected $table = 'siswa';
}
Pada kode diatas kita sudah menset tabel siswa (protected $table = 'siswa';) yang akan kita proses Membuat File Controllers
<?php namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\ModelsSiswa;
class Siswa extends BaseController
{
public function index()
{
$pager = \Config\Services::pager();
$model = new ModelsSiswa();
$data['siswa'] = $model->paginate(10);
$data['pager'] = $model->pager;
$data['page'] = $this->request->getVar('page') ? $this->request->getVar('page') : 1;
echo view('list_siswa',$data);
}
}
Di dalam controller ini terdapat kode $pager = \Config\Services::pager(); yang berfungsi untuk menload pagination ada juga kode paginate(10) ($data['siswa'] = $model->paginate(10);)digunakan untuk menentukan banyaknya data yang tampil perhalaman pada contoh diatas kita menset angka 10 maka nantinya yang akan tampil perhalaman berjumlah 10 data ( kita juga bisa mengubah data sesuai dengan keinginan kita dengan cara mengganti angka 10 dengan angka yang kita kehendaki ) dan kode pager ($data['pager'] = $model->pager;)sebagai method yang digunakan untuk menampilkan link pagination, jika tidak ada kode tersebut maka pagination tidak jalan.
Membuat file View
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PAGINATION DENGAN CODEIGNITER 4</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">
</head>
<body style="width: 70%; margin: 0 auto; padding-top: 30px;">
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>PAGINATION DENGAN CODEIGNITER 4 </h2>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-12 margin-tb">
<table class="table table-bordered">
<tr>
<th>No</th>
<th>Nama Siswa</th>
<th>Kelas</th>
</tr>
<?php $no=1+(10*($page-1));
foreach($siswa as $row):?>
<tr>
<td><?=$no;?></td>
<td><?=$row['NamaLengkap'];?></td>
<td><?=$row['Kelas'];?></td>
</tr>
<?php $no++; endforeach;?>
</table>
<?= $pager->Links() ?>
</div>
</div>
</body>
</html>
Haloo untuk paging kan ini hanya menggunakan 1 tabel, bagaimana kalau bisanya menggunankan 3 tabel dengan cara join ya.
ReplyDeleteKalau di CI 3 tidak ada masalah, kalau di CI 4 mentok saya. kalau berkenan bantu ya. terima kasih