Halo, Sobat Jagoan! Kamu ingin membagi konten berukuran besar menjadi beberapa halaman kecil supaya lebih mudah dikelola? Kamu bisa menggunakan teknik pagination, lho! Pagination membantu menampilkan data dalam jumlah yang banyak, seperti daftar produk, postingan blog, atau lainnya dengan cara terpisah dalam beberapa halaman. Simak, yuk caranya, Sob!
Artikel ini akan menggunakan data pada aplikasi yang sudah dibuat pada seri artikel CRUD Laravel: Tambah Data dan Menampilkan Data dari Database. Jadi, pastikan kamu sudah menyiapkan aplikasi berbasis Laravel yang ingin diberi fitur pagination.
Step 1: Membuat Model
Karena di artikel sebelumnya sudah membuat tabel buku dan mengisinya dengan dummy data. Di sini hanya perlu membuat model tabel tersebut menggunakan perintah berikut:
php artisan make:model Buku
Setelah menjalankan perintah membuat model buku hasilnya berupa file model Buku.php di dalam folder app/Models/.
Edit file model Buku.php dan sesuaikan kolomnya dengan yang ada di database.
Step 2: Membuat Factory untuk Data Faker
Kalau tabel buku kamu masih belum terisi data, kamu bisa menggunakan teknik Seeder atau Faker untuk mengisi menggunakan data dummy. Silahkan ikuti cara membuat Seeder dan Faker pada artikel Database Seeder dan Faker pada Laravel.
Step 3: Membuat Pagination pada Controller
Untuk menangani proses mengambil data dan menampilkannya di browser menggunakan pagination, kamu perlu membuat controller terlebih dahulu.
php artisan make:controller PaginateController
Kemudian buka file PaginateController.php di folder app/Http/Controllers/ dan tambahkan baris kode di bawah ini untuk mengambil 5 data di satu halaman.
Step 4: Membuat Route untuk Menampilkan Data
Pada artikel ini ingin tetap mengakses data melalui route /buku. Jadi, perlu memodifikasi metode route /buku di routes/web.php yang menampilkan daftar buku menjadi:
use App\Http\Controllers\PaginateController;
Route::get('/buku', [PaginateController::class, 'index']);
Kamu bisa menentukan route lain untuk mengakses data sesuai kebutuhan.
Step 5: Mengedit View Buku untuk Menampilkan Data
Buka file view buku yang menampilkan data buku pada resources/views/buku/index.blade.php dan modifikasi menjadi seperti berikut:
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
<title>Data Buku</title>
<link href=”https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css” rel=”stylesheet”>
<style>
table {
border-collapse: collapse;
width: 80%;
margin: 20px auto;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
}
th {
background: #007BFF;
color: white;
}
a {
text-decoration: none;
color: #007BFF;
}
h2 {
text-align: center;
margin-top: 20px;
}
</style>
</head>
<body>
<h2>Daftar Buku</h2>
<p style=”text-align:center;”><a href=”/buku/tambah”>+ Tambah Buku Baru</a></p>
<table>
<thead>
<tr>
<th>No</th>
<th>Judul</th>
<th>Penulis</th>
<th>Tahun Terbit</th>
<th>Penerbit</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach($buku as $index => $b)
<tr>
<td>{{ $loop->iteration + ($buku->currentPage() – 1) * $buku->perPage() }}</td>
<td>{{ $b->judul }}</td>
<td>{{ $b->penulis }}</td>
<td>{{ $b->tahun_terbit }}</td>
<td>{{ $b->penerbit }}</td>
<td>
<a href=”/buku/edit/{{ $b->id }}”>Edit</a> |
<a href=”/buku/hapus/{{ $b->id }}” onclick=”return confirm(‘Yakin ingin menghapus?’)”>Hapus</a>
</td>
</tr>
@endforeach
</tbody>
</table>
<!– Pagination –>
<div class=”d-flex justify-content-center mt-4″>
{{ $buku->links(‘pagination::bootstrap-5’) }}
</div>
</body>
</html>
Step 6: Uji Coba di Browser
Kamu akses aplikasi Laravel kamu di browser melalui URL http://127.0.0.1:8000/buku dengan menjalankan perintah:
php artisan serve
Tampilan daftar buku setelah menggunakan fitur pagination yang menampilkan 5 data pada satu halaman.

Dengan pagination, kamu bisa menavigasi konten dengan lebih mudah, tampilan tetap bersih, dan cepat tanpa harus memuat data sekaligus.
Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting via Live Chat atau Open Ticket, Sob!
Pengantar Halo sobat Jagoan! di tutorial kali ini kita bakalan membahas permasalahan Error Undefined Index/Variable. Pasti sekarang kamu lagi main-main Read more
Hai Sob! Apa Sobat lagi bingung gimana caranya mempercepat load website dengan caching browser? Santai aja Sob, dibawah ini banyak Read more
Pernahkah kamu mengalami error yang berkaitan dengan phpinfo mysqli, gd, pdo, zip, mcrypt, mbstring? Nggak perlu panik, Sob, kamu hanya Read more
Halo Sob! Pernah nemuin peringatan kayak gini nggak? Apa yang kamu lakukan ketika mendapatkan peringatan "Google Attack Site" seperti ini?[caption Read more