Anda di halaman 1dari 9

Cara Membuat Pagination Pada CodeIgniter

Cara Membuat Pagination Pada CodeIgniter


Masih di tutorial codeigniter. codeigniter telah menyediakan fasilitas untuk membuat
pagination dengan sangat mudah. jadi dengan menggunakan codeigniter kita tidak perlu lagi
capek-capek membuat pagination, kita hanya perlu membuka library pagination codeigniter
dan melakukan beberapa settingan dan pagination pun siap. hehe. oke langsung saja ya kita
masuk ke tutorial cara membuat pagination dengan codeigniter.
Cara Membuat Pagination Pada CodeIgniter
Tahap pertama yang harus di lakukan adalah setting base_url
application/config/config.php . sesuaikan dengan nama project ci kamu sendiri.

dulu

di

1 $config['base_url'] = 'http://localhost/malasngoding_paging/';

karena data yang kita gunakan atau yang akan kita tampilka adalah data dari database oleh
karena itu kita setting dulu database nya. untuk cara menghubungkan codeigniter dengan
database mysql teman-teman bisa membaca tutorial sebelumnya tentang cara menghubungkan
codeigniter dan database mysql dengan klik di sini.
application/config/database.php
1 $db['default'] = array(
2

'dsn'

=> '',

'hostname' => 'localhost',

'username' => 'root',

'password' => 'xxx',

'database' => 'malasngoding',

'dbdriver' => 'mysqli',

'dbprefix' => '',

'pconnect' => FALSE,

10

'db_debug' => (ENVIRONMENT !== 'production'),

11

'cache_on' => FALSE,

12

'cachedir' => '',

13

'char_set' => 'utf8',

14

'dbcollat' => 'utf8_general_ci',

15

'swap_pre' => '',

16

'encrypt' => FALSE,

17

'compress' => FALSE,

18

'stricton' => FALSE,

19

'failover' => array(),

20

'save_queries' => TRUE

21 );

silahkan setting username, password dan nama database anda. pada tutorial ini saya
menggunakan database malasngoding.

dan berikut ini saya sertakan juga file sql malasngoding untuk contoh cara membuat
pagination dengan codeigniter. silahkan anda import
malasngoding.sql
1

-- phpMyAdmin SQL Dump

-- version 3.5.2.2

-- http://www.phpmyadmin.net

--

-- Host: 127.0.0.1

-- Generation Time: Jan 22, 2016 at 02:33 PM

-- Server version: 5.5.27

-- PHP Version: 5.4.7

9
10 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
11 SET time_zone = "+00:00";
12
13
14 /*!40101
15 @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

SET

16 /*!40101
SET
@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
17
/*!40101
SET
18
@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
19
/*!40101 SET NAMES utf8 */;
20
21
22
23

--- Database: `malasngoding`


--

24
25

-- --------------------------------------------------------

26
27
28
29

--- Table structure for table `user`


--

30
31
32
33
34
35
36
37

CREATE TABLE IF NOT EXISTS `user` (


`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`alamat` text NOT NULL,
`pekerjaan` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=63 ;

38
39
40
41

--- Dumping data for table `user`


--

42
43
44
45

INSERT INTO `user` (`id`, `nama`, `alamat`, `pekerjaan`) VALUES


(1, 'Andi', 'Surabaya', 'web programmer'),

46 (2, 'Santoso', 'Jakarta', 'Web Designer'),


47 (6, 'Samsul', 'Sumedang', 'Pegawai'),
48 (7, 'Bob', 'jakarta', 'penyanyi'),
49 (8, 'marley', 'afrika', 'penyanyi'),
50 (9, 'Bob', 'jakarta', 'penyanyi'),
51 (10, 'Bob', 'jakarta', 'penyanyi'),
52 (11, 'Bob', 'jakarta', 'penyanyi'),
53 (12, 'Bob', 'jakarta', 'penyanyi'),
54 (13, 'Bob', 'jakarta', 'penyanyi'),
55 (14, 'Bob', 'jakarta', 'penyanyi'),
56 (15, 'Bob', 'jakarta', 'penyanyi'),
57 (16, 'Bob', 'jakarta', 'penyanyi'),
58 (17, 'Bob', 'jakarta', 'penyanyi'),
59 (18, 'marley', 'afrika', 'penyanyi'),
60 (19, 'Bob', 'jakarta', 'penyanyi'),
61 (20, 'Bob', 'jakarta', 'penyanyi'),
62 (21, 'Bob', 'jakarta', 'penyanyi'),
63 (22, 'Bob', 'jakarta', 'penyanyi'),
64 (23, 'Bob', 'jakarta', 'penyanyi'),
65 (24, 'Bob', 'jakarta', 'penyanyi'),
66 (25, 'Bob', 'jakarta', 'penyanyi'),
67 (26, 'Bob', 'jakarta', 'penyanyi'),
68 (27, 'Bob', 'jakarta', 'penyanyi'),
69 (28, 'Bob', 'jakarta', 'penyanyi'),
70 (29, 'Bob', 'jakarta', 'penyanyi'),
71 (30, 'Bob', 'jakarta', 'penyanyi'),
72 (31, 'Bob', 'jakarta', 'penyanyi'),
73 (32, 'marley', 'afrika', 'penyanyi'),
74 (33, 'Bob', 'jakarta', 'penyanyi'),
75 (34, 'Bob', 'jakarta', 'penyanyi'),

76 (35, 'Bob', 'jakarta', 'penyanyi'),


77 (36, 'Bob', 'jakarta', 'penyanyi'),
78 (37, 'Bob', 'jakarta', 'penyanyi'),
79 (38, 'Bob', 'jakarta', 'penyanyi'),
80 (39, 'Bob', 'jakarta', 'penyanyi'),
81 (40, 'Bob', 'jakarta', 'penyanyi'),
82 (41, 'Bob', 'jakarta', 'penyanyi'),
83 (42, 'Bob', 'jakarta', 'penyanyi'),
84 (43, 'Bob', 'jakarta', 'penyanyi'),
85 (44, 'Bob', 'jakarta', 'penyanyi'),
86 (45, 'Bob', 'jakarta', 'penyanyi'),
87 (46, 'Bob', 'jakarta', 'penyanyi'),
88 (47, 'marley', 'afrika', 'penyanyi'),
89 (48, 'Bob', 'jakarta', 'penyanyi'),
90 (49, 'Bob', 'jakarta', 'penyanyi'),
91 (50, 'Bob', 'jakarta', 'penyanyi'),
92 (51, 'Bob', 'jakarta', 'penyanyi'),
93 (52, 'Bob', 'jakarta', 'penyanyi'),
94 (53, 'Bob', 'jakarta', 'penyanyi'),
95 (54, 'Bob', 'jakarta', 'penyanyi'),
96 (55, 'Bob', 'jakarta', 'penyanyi'),
97 (56, 'Bob', 'jakarta', 'penyanyi'),
98 (57, 'Bob', 'jakarta', 'penyanyi'),
99 (58, 'Bob', 'jakarta', 'penyanyi'),
100 (59, 'Bob', 'jakarta', 'penyanyi'),
101 (60, 'Bob', 'jakarta', 'penyanyi'),
102 (61, 'Bob', 'jakarta', 'penyanyi'),
103 (62, 'marley', 'afrika', 'penyanyi');
104

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT


*/;
/*!40101
CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

SET

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION


*/;

nah pada database malasngoding saya sudah menyertakan table user yang memiliki beberapa
record sebagai contoh membuat pagination dengan codeigniter ini.
application/controllers/welcome.php
1 <?php
2 defined('BASEPATH') OR exit('No direct script access allowed');
3
4 class Welcome extends CI_Controller {
5
6

function __construct(){

parent::__construct();

$this->load->helper(array('url'));

$this->load->model('m_data');

10

11
12

public function index(){

13

$this->load->database();

14

$jumlah_data = $this->m_data->jumlah_data();

15

$this->load->library('pagination');

16

$config['base_url'] = base_url().'index.php/welcome/index/';

17

$config['total_rows'] = $jumlah_data;

18

$config['per_page'] = 10;

19

$from = $this->uri->segment(3);

20

$this->pagination->initialize($config);

21

$data['user'] = $this->m_data->data($config['per_page'],$from);

22

$this->load->view('v_data',$data);

23

24 }
Pada method index ini lah kita akan membuat pagination codeigniter. dengan membuka library
pagination codeigniter. dan menentukan pengaturan pagination codeigniter
1 $config['base_url'] = base_url().'index.php/welcome/index/';
2 $config['total_rows'] = $jumlah_data;
3 $config['per_page'] = 10;

pada pengaturan per_page maksud nya jumlah record yang di tampilkan per halaman.
total_rows untuk pengaturan jumlah dari seluruh record. dan base_url adalah settingan url dari
link pagination. variabel $jumlah_data berisi data jumlah data(perhatikan method jumlah pada
model m_data berikut)
application/models/m_data.php
1

<?php

2
3

class M_data extends CI_Model{


function data($number,$offset){

return $query = $this->db->get('user',$number,$offset)->result();

5
6

7
8

function jumlah_data(){

return $this->db->get('user')->num_rows();

10
11

}
}

pada model m_data ini terdapat dua buah function yang saya buat, function data yang berguna
untuk mengambil data user dari record ke berapa sampai record ke berapa sesuai data yang di
kirim melalui parameter pada function. dan function jumlah_data bertujuan untuk mengambil
jumlah seluruh record.
application/views/v_data.php

1 <!DOCTYPE html>
2 <html>
3 <head>
4

<title>Membuat Pagination Pada CodeIgniter | MalasNgoding.com</title>

5 </head>
6 <body>
7 <h1>Membuat Pagination Pada CodeIgniter | MalasNgoding.com</h1>
8

<table border="1">

<tr>

10

<th>no</th>

11

<th>nama</th>

12

<th>alamat</th>

13

<th>pekerjaan</th>

14

</tr>

15

<?php

16

$no = $this->uri->segment('3') + 1;

17

foreach($user as $u){

18

?>

19

<tr>

20

<td><?php echo $no++; ?></td>

21

<td><?php echo $u->nama ?></td>

22

<td><?php echo $u->alamat ?></td>

23

<td><?php echo $u->pekerjaan ?></td>

24

</tr>

25

<?php } ?>

26

</table>

27

<br/>

28

<?php

29

echo $this->pagination->create_links();

30

?>

31 </body>
32 </html>

dan akan kita lihat hasil nya


localhost/malasngoding_paging/welcome

cara membuat pagination pada codeigniter