Baca Artikel Belajar Pemrograman Framework Codeigniter 4

Belajar Pemrograman Framework Codeigniter 4

Artikel seputar pemrgoraman framework Codeigniter 4

Codeigniter 4 Cara Mudah Membuat Pagination dengan Bootstrap

Codeigniter 4 Cara Mudah Membuat Pagination dengan Bootstrap

Sobatcoding.com - Cara Mudah Membuat Pagination menggunakan Bootstrap

Artikel kali ini kita akan belajar membuat pagination menggunakan library CodeIgniter 4. Pada contoh kali ini admin membuat pagination data artikel.

Membuat Controller

Buatlah sebuah controller bernama ArtikelController.php dan masukkan kode berikut:

<?php

namespace App\Controllers;

use App\Controllers\BaseController;
use App\Models\Artikel;

class ArtikelController extends BaseController
{
    public function index()
    {
    
        $artikel = new Artikel();
        $data = [
            'artikel' => $artikel->paginate(10), //10 data per halaman
            'pager'   => $artikel->pager,
        ];

        return view('artikel', $data);
    }
}

Kode di atas digunakan untuk membuat pagination dengan tiap page atau halaman berisi 10 row data. Kalian bisa ubah sendiri sesuai dengan kebutuhan kalian.

 

Membuat View

Kita buat sebuah view bernama artikel.php, kemudian masukkan kode seperti berikut:

 <!DOCTYPE html>
 <html lang="id">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>List Artikel</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" integrity="sha512-YWzhKL2whUzgiheMoBFwW8CKV4qpHQAEuvilg9FAn5VJUDwKZZxkJNuGM4XkWuk94WCrrwslk8yWNGmY1EduTA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
        
        <style>
            body {
                margin: 0;
                padding: 0;
                height: 100%;
            }
            section {
                width:100%;
                height:100%;
                display: block;
            }
        </style>
    </head>
    <body>
        <section>
            <div class="container">
                <h1 class="mt-5">Data Artikel</h1>
                <hr />
                <table class="table table-hover table-bordered">
                    <thead>
                        <tr class="bg-primary">
                            <th class="text-white">No</th>
                            <th class="text-white">Judul</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                            foreach ($artikel as $index=>$row) {
                        ?>
                            <tr>
                                <td><?= $index+1; ?></td>
                                <td><?= $row['title']; ?></td>
                            </tr>
                        <?php
                            }
                        ?>
                    </tbody>
                </table>
                <?= $pager->links() ?>
                
            </div>
        </section>
    </body>
 </html>

 

Untuk melihat output tampilan kita bisa akses url http://localhost:8080/artikel. Output dari tampilan di atas kurang lebih seperti berikut ini:

sobatcoding.com

 

Menghilangkan index.php di Link Pagination

Jika kita klik Next otomatis akan mengarah ke link selanjutnya yaitu http://localhost:8080/index.php/artikel?page=2, kemudian kita akan hilangkan index.php dari url agar url terlihat lebih cantik. Bagaimana caranya?

Caranya gampang. Kita buka file app/Config/App.php. Hilangkan index.php pada line 39 seperti berikut.

	 * Index File
	 * --------------------------------------------------------------------------
	 *
	 * Typically this will be your index.php file, unless you've renamed it to
	 * something else. If you are using mod_rewrite to remove the page set this
	 * variable so that it is blank.
	 *
	 * @var string
	 */
	public $indexPage = '';

 

Custom Pagination Menggunakan Bootstrap Pagination

Buatlah sebuah template pagination bernama bootstrap_template.php dan simpan di folder app/Views/Pagers. Masukkan kode seperti berikut:

<?php $pager->setSurroundCount(2) ?>

<nav aria-label="Page navigation">
    <ul class="pagination">
    <?php if ($pager->hasPrevious()) : ?>
        <li class="page-item">
            <a class="page-link" href="<?= $pager->getFirst() ?>" aria-label="<?= lang('Pager.first') ?>">
                <span aria-hidden="true"><?= lang('Pager.first') ?></span>
            </a>
        </li>
        <li class="page-item">
            <a class="page-link" href="<?= $pager->getPrevious() ?>" aria-label="<?= lang('Pager.previous') ?>">
                <span aria-hidden="true"><?= lang('Pager.previous') ?></span>
            </a>
        </li>
    <?php endif ?>

    <?php foreach ($pager->links() as $link): ?>
        <li class="page-item <?= $link['active'] ? 'active' : '' ?>" >
            <a class="page-link" href="<?= $link['uri'] ?>">
                <?= $link['title'] ?>
            </a>
        </li>
    <?php endforeach ?>

    <?php if ($pager->hasNext()) : ?>
        <li class="page-item">
            <a class="page-link" href="<?= $pager->getNext() ?>" aria-label="<?= lang('Pager.next') ?>">
                <span aria-hidden="true"><?= lang('Pager.next') ?></span>
            </a>
        </li>
        <li class="page-item">
            <a class="page-link" href="<?= $pager->getLast() ?>" aria-label="<?= lang('Pager.last') ?>">
                <span aria-hidden="true"><?= lang('Pager.last') ?></span>
            </a>
        </li>
    <?php endif ?>
    </ul>
</nav>

Untuk dapat menggunakan template di atas kita registrasi dulu dengan cara mendaftarkan template di app/Config/Pager.php. Kemudian tambahkan kode di line berikut:

public $templates = [
		...
		'bootstrap_template' => 'App\Views\Pagers\bootstrap_template'

 

Buka kembali file ArtikelController.php, kemudian kita akan menambahkan group di pagination artikel. Ubah kode pada bagian ini:

'artikel' => $artikel->paginate(10),
//ubah menjadi
'artikel' => $artikel->paginate(10, 'artikel'),

Kode di atas artinya kita menambahkan group artikel pada pagination artikel.

Selanjutnya kita akan mengakses pagination group artikel di view menggunakan template bootstrap yang telah kita buat sebelumnya. Caranya buka kembali file view artikel.php dan ubah bagian ini :

<?= $pager->links() ?>
//ubah menjadi

<?= $pager->links('artikel', 'bootstrap_template') ?>

 

Hasil dari tampilan kode di atas adalah sebagai berikut:

sobatcoding.com

 

Membuat Custom Helper

Pada list artikel di atas nomor urut masih menunjukkan angka 1 sampai 10 meskipun kita klik ke halaman ke 2 dst. Kita akan mebuat sebuah helper yang digunakan untuk mengurutkan nomor pada halaman selanjutnya.

Pertama kita buat sebuah helper bernama global_helper.php, simpan di dalam folder app/Helpers dan masukkan kode berikut :

<?php

if(!function_exists('order_page_number'))
{
    function order_page_number($currentPage, $perPage)
    {
        if (is_null($currentPage)) {
            $nomor = 1;
        } else {
            $nomor = 1 + ($perPage * ($currentPage - 1));
        }
        return $nomor;
    }
}

 

Kita daftarkan dulu helper di atas agar bisa digunakan dengan cara menuliskan kode berikut di dalam file app/Controllers/BaseController.php didalam function initController.

public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
	{
		//tambahkan kode berikut
		helper('global');
	}

 

Buka kembali file ArtikelController.php dan tambahkan kode berikut di dalam variable $data.

$data = [
           ..
            'nomor'   => order_page_number($this->request->getVar('page_artikel'), 10)
        ];

 

Didalam view artikel ubah line 41 menjadi berikut:

<td><?= $index+1; ?></td>

//ubah menjadi

<td><?= $nomor++; ?></td>

 

Sekian tutorial kali ini. Jika teman-teman memiliki pertanyaan atau saran mengenai artikel ini, jangan ragu untuk meninggalkan komentar pada form di bawah ini.

Semoga bermanfaat.


Daftar Artikel

01
CodeIgniter 4 : Cara Install Codeigniter 4 Melalui Composer atau Manual
Artikel membahasa cara install Codeigniter 4 melalui composer atau manual
02
CodeIgniter 4 : Cara Menjalankan CodeIgniter 4 di Xampp atau Laragon
Sobatcdoing.com - Cara menjalankan CodeIgniter 4 di Xampp atau Laragon
03
CodeIgniter 4 : Belajar Routing dan Memahami Controller di CodeIgniter 4
Sobatcoding.com - Belajar Routing dan Memahami Controller di CodeIgniter 4
04
Codeigniter 4 : Konfigurasi Database MYSQL
sobatcoding.com - cara konfigurasi / setting ke database mysql
05
CodeIgniter 4: Tentang Modeling Data dan Contoh Penggunaannya
Sobatcoding.com - Tutorial lengkap codeigniter 4 tentang modeling data
06
Belajar Query Builder pada Codeingiter 4
Sobatcoding.com - Tutorial lengkap belajar query builder pada codeigniter 4
07
Codeigniter 4 Cara Mudah Membuat Pagination dengan Bootstrap
sobatcoding.com - Membuat pagination dengan bootstrap Codeigniter 4
08
CodeIgnter 4 : Implementasi dan Integrasi Menggunakan Datatable
Sobatcoding.com - Tutorial implementasi Codeigniter 4 menggunakan Datatable
09
CodeIgniter 4: Kirim Email Menggunakan Email Hosting Via SMPT Protocol
Sobatcoding.com - Kirim email menggunakan email hosting via SMPT Protocol
10
CodeIgniter 4 Tutorial Sederhana Membuat Form Login dan Logout
Sobatcoding.com - Tutorial sederhana membuat form login dan logout
11
Membuat Fitur Middleware Menggunakan Filters Pada CodeIgniter 4
Sobatcoding.com - Tutorial Membuat Fitur Middleware Menggunakan Filters pada CodeIgniter 4
12
Codeigniter 4 : Cara Submit Form dan Upload File Dengan Ajax
Sobatcoding.com - Tutorial lengkap cara submit form dan upload file menggunakan ajax dan codeigniter 4
13
Cara Upload Codeigniter 4 Ke Hosting Cpanel Serta Menghilangkan Public dan Index.php
sobatcoding.com - Tutorial lengkap cara upload codeigniter 4 ke hosting cpanel serta menghilangkan pPublic dan index.php
14
CodeIgniter 4 : Membuat Barcode Sederhana Menggunakan PHP Barcode Generator
Sobatcoding.com - Tutorial Lengkap Membuat Barcode Sederhana Menggunakan PHP Barcode Generator di Codeigniter 4
15
Codeigniter 4 : Membuat QR Menggunakan Library QR Code
Sobatcoding.com - Tutorial lengkap cara membuat QR Code Sederhana dengan Codeigniter 4
16
REST API Codeigniter 4 Menggunakan JWT Auth
Sobatcoding.com - Tutorial membuat REST API menggunakan JWT Auth

Produk kami