Pada seri Belajar Laravel bagian ke 7-10, kita telah belajar bagaimana cara membuat CRUD Laravel. Dalam seri belajar Laravel bagian 11 ini, kita akan belajar bagaimana cara membuat pagination di Laravel. Ingin tahu prosesnya seperti apa? Yuk simak artikel berikut ini sampai akhir.
Apa itu Pagination?
Pagination adalah teknik untuk membagi konten berukuran besar menjadi beberapa halaman yang lebih kecil dan mudah dikelola. Teknik ini sangat berguna dalam aplikasi web, terutama saat menampilkan data dalam jumlah besar, seperti daftar produk, postingan blog, atau komentar.
Dengan pagination, Anda dapat menavigasi konten dengan lebih mudah dan cepat tanpa harus memuat semua data sekaligus.
Cara Membuat Pagination Pada Laravel
Berikut adalah cara membuat pagination di Laravel:
Step 1. Membuat Model serta Migration
Buatlah model dan migration terlebih dahulu untuk entitas yang akan menggunakan pagination. Misalnya, kita akan membuat model untuk entitas Berita dengan menjalankan perintah berikut:
php artisan make:model Berita -m
Setelah menjalankan perintah tersebut, kita dapat membuka file migration yang terletak di:
database/migrations/tanggal-pembuatan_create_beritas_table.php
Selanjutnya, tambahkan kolom yang diperlukan dalam file migration tersebut. Sebagai contoh:
Selanjutnya, tambahkan mass assignment di dalam model yang terletak pada file app/Models/Berita.php menggunakan properti protected $fillable untuk field yang telah dibuat pada migration sebelumnya.
Setelah selesai mengisi kebutuhan migration dan juga model, kemudian kita jalankan perintah php artisan migrate untuk memasukan data kita ke database.

Step 2. Membuat Factory untuk data Faker
Factory dan Faker adalah dua fitur di Laravel yang sangat berguna untuk membuat data dummy dengan cepat dan efisien. Fitur ini sering digunakan dalam berbagai kasus, seperti:
- Mengisi database dengan data awal, misalnya saat membuat aplikasi baru yang memerlukan data pengguna atau produk untuk pengujian.
- Keperluan uji coba lainnya yang membutuhkan data sementara.
Untuk membuat Factory, jalankan perintah berikut:
php artisan make:factory PostFactory --model=Berita
Setelah menjalankan perintah tersebut, buka file PostFactory.php yang terletak di:
database/factories/PostFactory.php
Di dalam file ini, Anda dapat mendefinisikan struktur data menggunakan Faker. Berikut adalah contoh struktur data yang telah dibuat sebelumnya (lihat gambar di bawah).
Step 3. Mengisi database dengan menggunakan data Faker
Untuk mengisi data faker ke dalam database, kita perlu membuat dahulu seeder datanya dengan menjalankan perintah berikut:
php artisan make:seeder PostSeeder
Setelah menjalankan perintah tersebut, silahkan dapat membuka filenya di path database/seeders/PostSeeder.php dan isikan seperti berikut.

Setelah menambahkan isi pada seeder, langkah selanjutnya kita dapat menjalankan perintah berikut untuk mengirimkan data faker ke database:
php artisan db:seed --class=PostSeeder
Jika data berhasil dikirimkan, maka ada muncul seperti berikut.
Step 4. Membuat pagination pada controller
Selanjutnya, kita membuat controller untuk mengambil data dan menampilkannya dengan menggunakan pagination. Silahkan dapat menjalankan perintah berikut :
php artisan make:controller PostController
Setelah menjalankan perintah tersebut, kita dapat melihat filenya pada app/Http/Controller/PostController.
Di dalam controller ini, kita akan mengambil data dengan menggunakan pagination menggunakan metode paginate()
. Kita coba untuk mengambil data dengan 5 data pada satu halaman.
Step 5. Membuat Route untuk menampilkan data
Kita dapat menentukan route untuk mengakses data. Misalnya, jika kita ingin mengakses data melalui /berita, kita dapat menambahkan script berikut di dalam file routes/web.php:

Step 6. Membuat View untuk menampilkan data berita
Silahkan dapat membuat file di resource/view dengan menambahkan folder berita, kemudian menambahkan file index.blade.php dan isikan code seperti berikut:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contoh Pagination Berita</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
.pagination {
margin-top: 10px;
}
</style>
</head>
<body>
<h1>Berita</h1>
<!-- Tabel Berita -->
<table>
<thead>
<tr>
<th>Judul</th>
<th>Isi</th>
<th>Tanggal Berita</th>
</tr>
</thead>
<tbody>
@foreach($beritas as $berita)
<tr>
<td>{{ $berita->judul }}</td>
<td>{{ $berita->isi }}</td>
<td>{{ $berita->tanggal_berita }}</td>
</tr>
@endforeach
</tbody>
</table>
<!-- Pagination Links -->
<div class="pagination">
{{ $beritas->links() }}
</div>
</body>
</html>
Langkah terakhir, anda dapat menjalankan laravel dengan perintah berikut dan coba akses kembali link website Anda untuk pengujian.
php artisan serve

Kesimpulan
Dengan mengikuti langkah-langkah di atas, kita telah berhasil menerapkan fitur pagination di Laravel menggunakan data dummy dari Faker. Dalam proses ini, kita memanfaatkan factory untuk menghasilkan data, seeder untuk mengisi database, controller untuk mengambil data dengan pagination, serta view untuk menampilkan data dan menambahkan pagination link.
Demikian sesi belajar Laravel bagian 11 tentang cara membuat pagination di Laravel. Dalam sesi belajar laravel selanjutnya, kita akan belajar tentang cara membuat fitur pencarian di laravel. Semoga bermanfaat.