Tutorial Codeigniter 4 – Part 11 – Membuat Pagination di Codeigniter 4

  • Bagikan
Tutorial Codeigniter 4 – Part 11 – Membuat Pagination di Codeigniter 4

Selamat Datang di panduan warung belajar, dalam panduan kali ini kita akan melanjutkan seri panduan codeigniter 4, pada part 11 kita akan membahas mengenai cara membuat fitur pagination di codeigniter 4.

Fitur Pagination adalah fitur yang membuat aplikasi dapat menampilkan data dengan lebih cepat, karena kita melakukan pembatasan terhadap berapa jumlah data yang ditampilkan, sehingga aplikasi tidak perlu load seluruh data saat halaman halaman ditampilkan.

Sebagai contoh anda memiliki 1000 data pegawai, kalau tidak menggunakan fitur pagination maka setiap kali kita mengakses menu tampil pegawai akan menampilkan 1000 data pegawai, berbeda halnya saat kita menggunakan fitur pagination, kita bisa mengatur berapa jumlah data yang ditampilkan dalam sebuah halaman, semisal kita set hanya ada 10 data perhalaman, jadi ketika kita mengakses menu data pegawai hanya 10 data tersebut yang ditampilkan, ketika kita klik halaman berikutnya, baru akan menampilkan 10 data berikutnya, hal ini dapat mempercepat proses akses menu karena data yang ditampilkan kita batasi dengan fitur pagination.

 

Dalam Codeigniter 4 kita akan dipermudah saat proses pagination ini, dalam study kasus ini kita akan membuat tabel didatabase dengan nama pegawai, dimana kita akan generate 100 data dummy dengan library faker, lalu berikutnya kita akan gunakan fitur pagination untuk menampilkan datanya.

Baik langsung saja kita mulai ya, pembahasan terkait pagination di codeigniter 4, beberapa hal yang akan kita bahas adalah sebagai berikut :

  1. Instalasi Codeigniter 4
  2. Membuat Tabel pegawai dengan migration
  3. Koneksi Codeigniter 4 dengan Database
  4. Membuat Model
  5. Menampilkan data tanpa menggunakan pagination
  6. Setting Pagination
  7. Setting Custom Pagination
  8. Betulkan Penomeran di Pagination

Baik kita mulai ya, dari mulai proses Instalasi Codeigniter 4.


 

 

Video Tutorial Codeigniter 4 – Part 11 – Membuat Pagination di Codeigniter 4

Buat teman – teman yang biasanya belajar menggunakan Video, kita juga ada video panduan membuat pagination di Codeigniter 4, bisa diakses melalui video dibawah




 

 

Instalasi Codeigniter 4

Untuk langkah awal kita perlu menginstall codeigniter 4 terlebih dahulu, dalam contoh ini kita install codeigniter 4 dalam folder dengan nama pegawai.

karena dalam contoh ini kita gunakan xampp, dan secara default untuk web direktori xampp berada di C:/xampp/htdocs, jadi silahkan masuk kedalam folder tersebut, melalui terminal, lalu berikutnya ketikkan perintah seperti gambar dibawah ini :

Sehingga gambar berikut ini :

lalu tekan enter, tunggu hingga proses instalasi selesai.. untuk mempelajari lebih lanjut terkait dengan cara menginstall Codeigniter 4 silahkan buka panduan kita sebelumnya : Cara Menginstall Codeigniter 4


 

 

Membuat Migration

Berikutnya kita akan membuat bagian migration, karena nantinya kita akan buat tabel di database untuk menyimpan data pegawai, kita akan buat tabel didatabase dengan nama pegawai, baik langkah – langkah untuk proses pembuatan migration adalah sebagai berikut :

Silahkan buka terminal dan masuk kedalam direktori : C:Xampphtdocspegawai, lalu tuliskan perintah :

Lalu tekan enter, akan terbuat sebuah file didalam folder app/Database/Migrations, nama file tersebut akan diakhiri dengan nama Pegawai

buka file tersebut, dan isi dengan code seperti berikut ini :

Keterangan :

Dalam kode diatas digunakan untuk generate tabel dengan nama pegawai, dengan kolom sebagai berikut :


 

 

Buat database di PHPMYADMIN

Berikutnya kita buat database dengan menggunakan PHPMYADMIN, silahkan buka alamat localhost/phpmyadmin

Lalu buat database baru, semisal kita beri nama dbpegawai, lalu klik tombol create..


 

 

Konfigurasi File Env

Berikutnya kita akan koneksikan codeigniter 4 dengan database, silahkan rename file dengan nama env menjadi .env

berikutnya buka file .env tersebut dan edit code didalamnya, untuk konfigurasi database berada pada line 52 – 56, hilangkan tanda # untuk mengaktifkan konfigurasi tersebut

Keterangan :

  • hostname isi dengan alamat server database
  • database isi dengan nama database, dalam contoh ini adalah dbpegawai
  • username isi dengan user database, dalam contoh ini gunakan root sebagai user database
  • password biarkan kosong karena, default password xampp adalah kosong

 

Berikutnya silahkan jalankan file migration untuk generate tabel di database, dengan menggunakan perintah :

Tuliskan perintah php spark migrate, lalu tekan enter

Lalu coba buka database akan terbuat 2 tabel baru :

  1. Migrations
  2. Pegawai


 

 

Generate Dummy data dengan menggunakan Library Faker

Berikutnya kita akan insert dummy data kedalam tabel pegawai menggunakan library Faker, langkah – langkahnya adalah sebagai berikut :

Silahkan buat file seeder dengan nama Pegawai, dengan mengetikkan perintah berikut ini di terminal :

Akan terbuat file baru dengan nama PegawaiSeeder didalam folder AppDatabaseSeeds

Lalu silahkan buka file PegawaiSeeder.php, lalu tambahkan kode seperti berikut ini :

untuk penjelasan kode diatas terkait pembuatan dummy data dengan library faker, tidak akan saya jelas lebih detail disini, teman – teman bisa melihat pembahasan sebelumnya pada panduan : Mengenal Migration, Seeding, dan Library Faker di Codeigniter 4

 

Setelah itu berikutnya kita akan jalankan file PegawaiSeeder itu agar generate data di dalam tabel pegawai di database.

Tuliskan perintah :

Jika perintah itu dijalankan, akan generate 100 data pegawai, ke dalam tabel pegawai, anda bisa cek di database dbpegawai yang sebelumnya telah kita buat.


 

 

Membuat Model untuk berkomunikasi dengan tabel Pegawai

Berikutnya kita akan membuat model, agar dapat berkomunikasi dengan tabel pegawai, silahkan buat model dengan nama PegawaiModel.php dan simpan dalam folder app/Models, dan untuk isi codenya adalah sebagai berikut ini :

Keterangan :

  • Protected $table = ‘pegawai’ kita buat agar model ini dapat terkoneksi dengan tabel pegawai
  • Protected $primaryKey = ‘id_pegawai’ kita buat agar primary key adalah id_pegawai
  • Protected $returnType = ‘object’ kita buat agar return tersebut adalah object
  • Protected $allowedFields adalah kolom yang bisa diinsert dan update datanya
  • Protected $useTimestamps memungkin kita menyimpan kapan data itu diinsert dan diupdate

Pembahasan ini bisa dilihat di panduan kita sebelumnya yang membahas : Cara Membuat Model di Codeigniter 4


 

 

Membuat Controller Pegawai

Berikutnya kita akan membuat controller dengan nama pegawai, yang nantinya kita gunakan sebagai controller untuk menampilkan data pegawai, silahkan buat file dengan nama Pegawai.php dan simpan didalam folder app/Controllers

Keterangan :

  • Kita load model dengan nama PegawaiModel (Line 5)
  • Kita buat class dengan nama Pegawai sesuai dengan nama controller (Line 7)
  • Didalam class pegawai kita buat method dengan nama index, di dalam method index kita buat object dengan nama pegawai dengan menggunakan class PegawaiModel,berikutnya kita akses seluruh data pegawai dengan menggunakan method findAll, dan simpan dalam array $data dengan key ‘pegawai’ (Line 12)
  • Berikutnya kita akses view dengan vw_pegawai, dan kita passing variabel $data merupakan array yang berisi data pegawai (Line 13)

 

 

Membuat File view untuk menampilkan data pegawai

Berikutnya kita akan buat file view dengan nama vw_pegawai.php dan kita simpan didalam folder app/Views, untuk codenya adalah sebagai berikut :

Keterangan :

  • Ini adalah tampilan dari bootstrap 5, saya sudah set sesederhana mungkin, dan karena library CSS dan javascript ini mengakses server langsung, sehingga untuk dapat tampilan maksimal pastikan teman – teman terkoneksi dengan internet.
  • Skripnya memang agak panjang, tapi yang teman – teman fokuskan hanya di line 39 – 69.
  • Kita buat tabel dengan menggunakan tag table html biasanya, kita set kolom dibagian tabel header pada line 40 – 50
  • Untuk extract data dari tabel pegawai, perhatikan line 54 kita gunakan method foreach kita extract data untuk setiap perulangan akan diwakili dengan variabel $row, kita akan tampilkan datanya dengan menyebutkan nama kolom di tabel pegawai, perhatikan line 57 – 63

 

Lalu kita coba untuk mengaksesnya… silahkan buka terminal pada folder project dan jalankan local development server dengan perintah :

Lalu silahkan akses URL :


 

 

Menambahkan Pagination dihalaman tampil pegawai

Berikutnya kita akan menambahkan bagian pagination dibagian pegawai, silahkan buka controller Pegawai.php didalam folder app/Controllers, lalu ubah codenya menjadi sebagai berikut :

Keterangan :

  • Kita akan ubah method untuk mendapatkan data pegawai, yang sebelumnya findAll menjadi paginate, kita tuliskan angka 5 sebagai parameter method paginate, yang artinya setiap halaman akan menampilkan 5 data
  • Berikutnya kita menambahkan key pager dalam array $data, dengan value menggunakan variabel $pegawai->pager;

 

Langkah berikutnya silahkan buka file dengan nama view dengan nama vw_pegawai.php, tambahkan code untuk menampilkan pagination dibagian view setelah tag </table>, tuliskan code dibawah ini :

 

Berikutnya kita coba mengakses halaman pegawainya, maka tampilannya adalah sebagai berikut :

Maka hasilnya akan ada pagination dibagian bawah tabel …, dan data yang ditampilkan adalah 5 data perhalaman..


Menampilkan Simple Pagination

Jika anda ingin menampilkan pagination dengan tampilan yang simple, dengan hanya ada tombol Newer, dan Older.

buka file view dengan nama vw_pegawai.php, silahkan ubah codenya :

Menjadi

Maka untuk hasil tampilannya adalah sebagai berikut :


 

 

Membuat Custom Pagination di Codeigniter 4

Berikutnya kita akan belajar bagaimana cara untuk membuat tampilan custom dari Pagination, dalam contoh ini kita akan membuat custom pagination dengan tampilan pagination dari bootstrap.

Untuk Dokumentasi dari Bootstrap, terkait pagination bisa dilihat di URL :

https://getbootstrap.com/docs/5.0/components/pagination/

 

Untuk tampilan pagination yang akan kita buat dengan bootstrap 5, kurang lebih seperti berikut ini :

 

Untuk langkah – langkah pembuatannya adalah sebagai berikut :

Buat folder baru dengan nama pagers didalam folder app/Views, dan didalam folder tersebut kita buat file dengan nama bootstrap_pagination.php

Dan isi code didalam file bootstrap_pagination.php dengan code sebagai berikut :

Keterangan :

Code diatas adalah hasil implementasi code dari dokumentasi resmi codeigniter 4 terkait pagination, yang saya sesuaikan dengan tampilan pagination pada bootstrap 5, untuk penjelasan lebih detail bisa dilihat di panduan versi video yang kita upload youtube ya, karena penjelasannya lumayan rumit jika harus saya tulis disini juga..

 

Langkah berikutnya kita harus daftarkan custom pagination ini agar bisa digunakan, silahkan buka file dengan nama Pager.php di folder app/Config, dibagian variabel $templates silahkan tambahkan custom pagination tersebut.

 

Lalu berikutnya kita sudah bisa implementasikan ke bagian tampilan aplikasi, kita buka dulu controller dengan nama Pegawai.php dan silahkan ubah bagian method index menjadi sebagai berikut :

Keterangan :

Yang kita ubah adalah dibagian method paginate, kita buat group paginate pada paremeter kedua dari method paginate, untuk memudahkan kita beri nama ‘pegawai’ sebagai parameter kedua paginate.

 

Berikutnya kita masuk ke file view dengan nama vw_pegawai.php dan kita ubah code yang digunakan untuk menampilkan bagian pagination, menjadi sebagai berikut ini :

Keterangan :

Jadi kita menuliskan method links, dimana method links memiliki 2 parameter yaitu :

  1. Parameter pertama adalah nama group data, dalam contoh ini adalah pegawai, sama seperti yang telah kita tulis dibagian controllers.
  2. Parameter kedua adalah nama tampilan pagination, dalam contoh ini adalah bootstrap_pagination sama seperti yang telah kita daftarkan

 

Maka hasilnya adalah sebagai berikut :

Maka tampilan paginationnya akan berganti seperti tampilan pagination di bootstrap


 

 

Memperbaiki urutan nomor dibagian pagination

Berikutnya kita akan perbaiki bagian penomeran dari hasil pagination, coba perhatikan saat kita mengakses halaman berikutnya, semisal kita mengakses halaman kedua dalam tampilan data pegawai

Terlihat pada gambar diatas, pada halaman 2 nomor dimulai angka dari angka 1, harusnya kan tidak seperti itu, harusnya kita memulai dari angka 6, karena setiap halaman ada 5 data yang ditampilkan. nah kita akan mengatasi hal ini, langkah – langkahnya adalah sebagai berikut :

 

Langkah awal kita buat helper agar mempermudahkan kita membuat method yang bisa diakses dari manapun, silahkan buat file dengan nama myhelper_helper.php didalam folder app/Helpers, dan isikan codenya sebagai berikut ini :

Keterangan :

Method diatas digunakan untuk membuat pengurutan nomor pada halaman saat pagination digunakan, dengan aturan :

  • Nomor akan dimulai dari angka 1 untuk halaman 1
  • Untuk halaman lebih dari 1 akan menggunakan rumus (1 + (jumlah data perhalaman *(posisi halaman – 1)))

 

Berikutnya kita daftarkan helper agar bisa digunakan dibagian controller, silahkan buka file dengan nama BaseController.php lalu tuliskan code berikut ini :

Dibagian function initController, jadi kurang lebih seperti ini :

 

Lalu berikutnya kita sudah bisa menggunakan helper tersebut dibagian controller, buka file controller dengan nama Pegawai.php dan ubah bagian method index menjadi seperti berikut ini :

Keterangan :

Kita buat key dengan nama nomor didalam array $data, dimana untuk nilainya kita ambil dari method nomor (method yang berasal dari helper) pada method ini karena membutuhkan 2 parameter sehingga kita tuliskan 2 value parameter sebagai berikut :

  • Parameter 1 merupakan posisi dari halamannya kita menggunakan perintah getVar untuk mendapatkan datanya pada variabel page_pegawai, kenapa kok page_pegawai karena kita set group pagination dengan nama pegawai, sehingga data halaman bisa kita akses melalui nama page_pegawai
  • Parameter 2 merupakan posisi jumlah data perhalaman, dalam contoh ini kita tuliskan 5

 

Berikutnya kita buka file view dengan nama vw_pegawai.php kita akan ubah variabel yang digunakan untuk menampilkan data nomor, sehingga kurang lebih menjadi seperti berikut ini :

 

Berikutnya kita akan coba menampilkan hasilnya, silahkan akses halaman tampil data pegawai, dan coba akses ke halaman kedua harusnya tampilannya adalah sebagai berikut ini :

Maka pada halaman kedua, nomor dimulai dari angka 6 bukan 1.

 

Jadi kurang lebih semacam itu ya teman – teman panduan kali ini kita sudah belajar bagaimana cara untuk mengatur tampilan pagination di codeigniter 4, jika teman – teman kesulitan bisa download source code di github :

Sekian dulu, jika ada yang ingin didiskusikan silahkan di kolom komentar… , sampai jumlah di panduan Codeigniter 4 selanjutnya

  • Bagikan

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *