Cara menggunakan page php id

Pagination merupakan suatu metoda untuk menampilkan data ke dalam beberapa halaman. Pagination pada website, sama halnya seperti buku yang disajikan dalam bentuk halaman demi halaman. Isi seluruh buku tidak disajikan di dalam selembar kertas yang sangat panjang, melainkan dibagi-bagi ke dalam ratusan halaman sehingga mudah untuk dibaca. Pagination diperlukan pada suatu database yang memiliki jumlah data yang luar biasa banyak. Halaman website juga memiliki keterbatasan ruang sehingga tidak mungkin menampilkan seluruh ribuan data di dalam satu halaman saja. Namun data-data tersebut harus dipecah menjadi bagian-bagian kecil untuk ditampilkan pada halaman website.

Jika anda berusaha memaksakan untuk menampilkan data dengan jumlah yang sangat banyak hanya pada satu halaman, pengaruh yang langsung dirasakan adalah pada browser itu sendiri. Saat awal load, browser akan menampilkan data satu persatu dengan normal. Namun akhirnya akan melambat sampai akhirnya berhenti membeku karena sudah tidak mampu lagi menampilkan data pada layar (macet). Efek yang dirasakan pengguna adalah browser terasa lambat merespon saat menampilkan data, belum lagi data yang ditampikan begitu banyak sehingga hanya membingungkan pengguna. Dan ini adalah contoh buruk yang harus dihindari.

Pada tutorial kali ini saya akan menjelaskan bagimana cara membuat pagination pada kumpulan data dan membaginya ke dalam bagian-bagian yang lebih kecil. Kemudian menampilkannya menjadi beberapa buah halaman.

Membuat Database Mysql

Database sendiri adalah kumpulan dari tabel data. Database berfungsi sebagai induk (naungan) dari tabel yang akan dibuat. Untuk membuat database, silahkan aktifkan xampp ataupun wamp server. Kemudian untuk mengakses phpMyadmin silahkan ketik pada browser localhost/phpmyadmin → New. Lalu pada tab Databases ketik nama database (kali ini saya menggunakan nama 'sample') → kemudian tekan Create

Cara menggunakan page php id

Kemudian langkah berikutnya adalah membuat tablenya. Table kali ini berisi data tentang mahasiswa meliputi id, NIM, nama mahasiswa dan jenis kelamin.

Cara menggunakan page php id

Silahkan masuk pada database yang sudah dibuat lalu klik pada tab COMMAND SQL, kemudian salin kode berikut tanpa harus mengetikkan secara manual :

1
2
3
4
5
6
7
CREATE TABLE `data_mahasiswa`  (
`id_mahasiswa` int(11) NOT NULL AUTO_INCREMENT,
`NIM` varchar(50) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`nama` varchar(200) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`jenis_kelamin` varchar(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
PRIMARY KEY (`id_mahasiswa`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Compact;

Kemudian langkah terakhir adalah memasukkan datanya satu persatu. Anda boleh menyalin kode berikut dan jalankan pada COMMAND SQL tab tanpa harus mengetikkannya secara manual.

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
INSERT INTO `data_mahasiswa` VALUES (1, '001', 'Tommy', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (2, '002', 'Ridwan', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (3, '003', 'Bambang', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (4, '004', 'Beben', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (5, '005', 'Wati', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (6, '006', 'Paul', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (7, '007', 'Billy', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (8, '008', 'Eru', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (9, '009', 'Johnson', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (10, '010', 'Tutuku', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (11, '011', 'Barbara', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (12, '012', 'Joseph', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (13, '013', 'Robert', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (14, '014', 'Soleh', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (15, '015', 'Mollel', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (16, '016', 'Wendy', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (17, '017', 'Nails', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (18, '018', 'Aris', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (19, '019', 'Arian', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (20, '020', 'Rudy', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (21, '021', 'Kerri', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (22, '022', 'Wiji', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (23, '023', 'Arjun', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (24, '024', 'Ubaidillah', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (25, '025', 'Supriatna', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (26, '026', 'Carik', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (27, '028', 'April', 'Perempuan');
INSERT INTO `data_mahasiswa` VALUES (28, '028', 'Suharto', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (29, '029', 'Dedy', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (30, '030', 'Hari', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (31, '031', 'Bagas', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (32, '032', 'Bintang', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (33, '033', 'Mahlil', 'Laki-laki');
INSERT INTO `data_mahasiswa` VALUES (34, '034', 'Alul', 'Laki-laki');

Database beserta data tablenya sudah siap. Kemudian hal yang perlu dilakukan adalah mengakses data tersebut pada server. Untuk itu perlu disiapkan koneksi sebagai jembatan antara PHP dan Mysql.

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



Pagination PHP dan Mysql



/*get db connection*/
$koneksi=mysqli_connect("localhost","root","","sample") or die(); /*urutan : host/user/password/nama_database*/
$seq=mysqli_query($koneksi,"select * from data_mahasiswa order by id_mahasiswa asc");
$jml_data=mysqli_num_rows($seq);
/*view data*/
if($jml_data>0){
   echo "";
   echo "";
   while($data=mysqli_fetch_array($seq)){
     echo "";
   }
   echo "
NIMNamaJenis Kelamin
".$data['NIM']."".$data['nama']."".$data['jenis_kelamin']."
";
}
?>

Jika dijalankan akan menampilkan data secara keseluruhan dan tanpa pagination.

Cara menggunakan page php id

Pembagian seluruh data kemudian menampilkannya halaman demi halaman, maka data tersebut perlu dipecah. Caranya dengan menggunakan parameter posisi halaman dan batas (jumlah) data yang akan ditampilkan. Posisi halaman diperlukan sebagai acuan sebagai halaman aktif yang nantinya digunakan sebagai acuan untuk menuju halaman lain, halaman sebelumnya serta halaman sesudahnya.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101



Pagination PHP dan Mysql



/*get db connection*/
$koneksi=mysqli_connect("localhost","root","","sample") or die(); /*urutan : host/user/password/nama_database*/
/*init for pagination*/
$page=isset($_GET['page']) ? htmlspecialchars($_GET['page']) : 1;
$cari_semua=mysqli_query($koneksi,"select * from data_mahasiswa order by id_mahasiswa asc");
$jml_data=mysqli_num_rows($cari_semua);
$batas=5;
$jmlpage=ceil($jml_data/$batas);
if($page>$jmlpage) {$page=$jmlpage;}
if($page<1) {$page=1;}
$posisi=($page-1) * $batas ;
/*view data*/
if($jml_data>0){
   echo "";
   echo "";
   $cari_sebagian=mysqli_query($koneksi,"select * from data_mahasiswa order by id_mahasiswa asc limit $posisi, $batas");
   while($data=mysqli_fetch_array($cari_sebagian)){
     echo "";
   }
   echo "
NIMNamaJenis Kelamin
".$data['NIM']."".$data['nama']."".$data['jenis_kelamin']."
";
}
/*pagination*/
$sebelumnya = $page - 1;
$berikutnya = $page + 1;
echo "

";
echo "

    ";
    if($page > 2){
       $back=$page-1;
       echo "
  • back
  • ";
    }
    if($page==1){
       for($i=$page-1; $i<=$page+3; $i++){
       if($i<1){continue;}
       if($i>$jmlpage){break;}
       if($i == $page){
         echo "
  • $i
  • ";
       }else{
         echo "
  • $i
  • ";
       }
       }
    }else if($page==$jmlpage){
       for($i=$page-3; $i<=$page; $i++){
       if($i<1){continue;}
       if($i>$jmlpage){break;}
       if($i == $page){
         echo "
  • $i
  • ";
       }else{
         echo "
  • $i
  • ";
       }
       }
    }else if($page==$jmlpage-1){
       for($i=$page-2; $i<=$page+1; $i++){
       if($i<1){continue;}
       if($i>$jmlpage){break;}
       if($i == $page){
         echo "
  • $i
  • ";
       }else{
         echo "
  • $i
  • ";
       }
       }
    }else{
    for($i=$page-1; $i<=$page+2; $i++){
       if($i<1){continue;}
       if($i>$jmlpage){break;}
       if($i == $page){
         echo "
  • $i
  • ";
       }else{
         echo "
  • $i
  • ";
       }
       }
    }
    if($page < $jmlpage-1){
       $next=$page+1;
       echo "
  • next
  • ";
    }
    echo "
";
echo "

";
?>

Tampilan saat data pada halaman pertama :

Cara menggunakan page php id

Tampilan saat data pada halaman ke-3 :

Cara menggunakan page php id

Penjelasan :
Untuk menghubungkan server dengan database diperlukan koneksi ke mysql dengan 'mysqli_connect'. Beberapa parameter perlu disertakan, seperti nama host, user, password dan nama database (baris ke-23).

Metode menampilkan halaman, data perlu disaring terlebih dahulu. Jika datanya ada maka data dapat ditampilkan jika tak ada maka tidak ditampilkan (baris ke-34). Cara menampilkan data melalui mysql dengan memberikan pembatasan melalui limit $posisi, $batas (baris ke-37). Pembatasan cara menampilkan ini bertumpu pada halaman yang saat ini aktif dengan metode $_GET['page'].

Data kemudian diolah oleh beberapa perhitungan manual via PHP, seperti $jmlpage untuk mendapatkan jumlah total halaman, $posisi untuk mendapatkan titik awal data yang harus ditampilkan.

Metode tampilan pagination-nya sendiri menggunakan daftar list (

    ) dengan cara menampilkannya secara inline. Baris ke-47 sampai baris ke-97 merupakan rangkaian kode pagination yang sudah ditata untuk mengatur halaman sebelum dan sesudahnya dan juga halaman yang sedang aktif. Saat pengguna mengklik halaman tertentu maka halaman lain akan terpengaruh dan berubah tampilannya.

    Source Code

    Silahkan download source code beserta file pendukung pada tutorial ini.

    Download Source Code

    Demikian tutorial bagaimana cara membuat paginasi sederhna dengan database myswl pada PHP, semoga bermanfaat .