Pagination atau yang lebih dikenal dengan istilah “Paging” adalah salah satu cara untuk menampilkan data yang sangat banyak dengan cara membagi-baginya menjadi beberapa halaman. Bingung? saya kasih contoh kasus saja. Misalkan saya mempunyai 1000 data di database. Kalau kita tidak menggunakan yang namanya “Pagination”, berarti 1000 data tersebut akan kita tampilkan semuanya dalam 1 halaman website benar? dan saya jamin akan memakan waktu untuk men-load semua data tersebut. Disinilah “Pagination” akan benar-benar bermanfaat, karena kalau kita menggunakan pagination terhadap 1000 data tadi. Kita bisa membagi-baginya ke dalam beberapa halaman. Misalkan kita bagi per halamannya 100 data, berarti jumlah halamannya ada 10 halaman benar?. Otomatis waktu untuk men-load data pun akan berkurang, karena data yang diload hanya 100 data, tidak semuanya. Kurang lebih begitu mengenai pagination. Dibawah ini saya kasih gambar contoh pagination itu seperti apa.
Langkah selanjutnya adalah membuat modelnya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class SiswaModel extends CI_Model { public function view(){ $this->load->library('pagination'); // Load librari paginationnya $query = "SELECT * FROM siswa"; // Query untuk menampilkan semua data siswa $config['base_url'] = base_url('index.php/siswa/lists'); $config['total_rows'] = $this->db->query($query)->num_rows(); $config['per_page'] = 5; $config['uri_segment'] = 3; $config['num_links'] = 3; // Style Pagination // Agar bisa mengganti stylenya sesuai class2 yg ada di bootstrap $config['full_tag_open'] = '<ul class="pagination pagination-sm m-t-xs m-b-xs">'; $config['full_tag_close'] = '</ul>'; $config['first_link'] = 'First'; $config['first_tag_open'] = '<li>'; $config['first_tag_close'] = '</li>'; $config['last_link'] = 'Last'; $config['last_tag_open'] = '<li>'; $config['last_tag_close'] = '</li>'; $config['next_link'] = ' <i class="glyphicon glyphicon-menu-right"></i> '; $config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>'; $config['prev_link'] = ' <i class="glyphicon glyphicon-menu-left"></i> '; $config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active"><a href="#">'; $config['cur_tag_close'] = '</a></li>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; // End style pagination $this->pagination->initialize($config); // Set konfigurasi paginationnya $page = ($this->uri->segment($config['uri_segment'])) ? $this->uri->segment($config['uri_segment']) : 0; $query .= " LIMIT ".$page.", ".$config['per_page']; $data['limit'] = $config['per_page']; $data['total_rows'] = $config['total_rows']; $data['pagination'] = $this->pagination->create_links(); // Generate link pagination nya sesuai config diatas $data['siswa'] = $this->db->query($query)->result(); return $data; } } |