Cara Membuat Pagination dengan Laravel

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 Tutorial Menambah Data dan Menampilkan Data dari Database di Laravel. 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.

				
					<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Buku extends Model
{
    use HasFactory;

    protected $table = 'buku';
    protected $fillable = [
        'id',
        'judul',
        'penulis',
        'tahun_terbit',
        'penerbit'
    ];
}

				
			

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.

				
					<?php

namespace App\Http\Controllers;

use App\Models\Buku;
use Illuminate\Http\Request;

class PaginateController extends Controller
{
    public function index()
    {
        // Ambil data buku dengan pagination
        $buku = Buku::paginate(5); // 5 item per halaman

        // Kirim data ke view
        return view('buku.index', compact('buku'));
    }
}

				
			

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.

cara-buat-pagination-dengan-laravel

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!

Related Posts
Tutorial Upload Aplikasi Laravel ke Hosting Melalui cPanel

Pengantar Hai, Sob! Buat kamu semua para developer yang lagi kepo gimana sih cara Upload Aplikasi Laravel ke Hosting? Nah, Read more

Tutorial Install Laravel di cPanel Jagoan Hosting

Hai Sob! Buat kamu semua para developer yang lagi kepo gimana sih cara Upload Aplikasi Laravel ke Hosting? Nah, tutorial Read more

Cara Install Laravel Dari Clone Git di cPanel

Halo Sob! Bagi developer handal seperti kamu, mendengar istilah laravel dan clone git adalah sesuatu yang familiar bukan? Nah, kali Read more

Cara Membuat Storage Link pada Laravel

Hai Sob! Sebagai seorang developer yang menggunakan laravel, kamu pasti tahu dong bahwa salah satu keuntungan menggunakan framework laravel adalah Read more