Cara Sederhana Membuat Paging Dengan PHP dan Mysql


Cara Membuat Paging Sederhana Dengan PHP dan Mysql : Dalam pembuatan aplikasi web, informasi yang akurat dan struktur table yang dinamis adalah salah satu pendukung hal positif bagi pengguna..

Menciptakan design yang user friendly dan tidak ribet merupakan hal yang harus di utamakan..
Misalkan sobat membuat aplikasi web perpustakaan, untuk mencari data buku tidak mempunyai filter atau ingin melihat data buku bentuknya vertical dan tidak ada batas data…

Seandainya ada 1000 buku spertinya kelihatan tidak enak ya, masak user harus scroll kebawah trus jika ingin melihat  buku atau jumlahnya..

Pada kesempatan kali ini saya akan sedikit share cara membuat paging halaman atau yang biasa di sebut pagination…

Apa itu pagination ?

Di dalam pemrograman PHP pagination atau paging halam itu bisa di artikan suatu teknik untuk membatasi data yang tampil perhalaman…

Atau teknik yang memberi batasan beberapa saja yang tampil dalam satu halaman, dan sisa selanjutnya di beri isyarat dengan nivigasi angka atau next di bawah data yang sudah di tampilkan…
Jika sobat masih belum tau tampilannya coba saja buka google dan coba search apa saja..
Dan liat bagian paling bawah halaman pasti akan ada beberapa nomor untuk menampilkan pencarian selanjutnya..kalau masih belum jelas liat gambar di bawah….

Dari pada terlalu banyak teori..mari kita langsung peraktek yaa…


Cara membuat pagination dengan php dan mysql

Dalam tutorial percobaan ini saya mencoba untuk menampilkan data sederhana dari table sebuah pegawai yang saya simpan menggunakan Mysql dan akan ditampilkan menggunakan PHP…

Dalam tutorial ini kita nantinya akan membuat sebuah fungsi sederhana yang akan memanggil sebuah data dengan di batasi nilai, dari nilai tersebut maka data yang di tampilkan akan sesuai…

Jika nantinya sobat mempunyai konsep yang lebih sederhana dan ringan, sobat bisa mencoba eksperimen untuk mengembangkan ke yang lebih baik..
Oke kalau gitu…kebetulan database sudah saya sediakan, silahkan buat dulu database nya..

-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Mar 31, 2017 at 03:42 PM
-- Server version: 10.1.9-MariaDB
-- PHP Version: 5.6.15

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `pmb`
--

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

--
-- Table structure for table `pegawai`
--

CREATE TABLE `pegawai` (
  `nip` varchar(15) NOT NULL,
  `password` varchar(15) NOT NULL,
  `nama` varchar(20) NOT NULL,
  `tempat_lahir` varchar(20) NOT NULL,
  `tanggal_lahir` date NOT NULL,
  `kelamin` varchar(10) NOT NULL,
  `alamat` varchar(30) NOT NULL,
  `id_jabatan` int(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `pegawai`
--

INSERT INTO `pegawai` (`nip`, `password`, `nama`, `tempat_lahir`, `tanggal_lahir`, `kelamin`, `alamat`, `id_jabatan`) VALUES
('111', 'rijal', 'rijal', 'bali', '2017-03-07', 'pria', 'jalan g semeru', 1),
('112', 'boris', 'boris', 'NTT', '2017-03-30', 'Pria', 'Jalan wadoyo', 2),
('113', 'lia', 'lia', 'sumatra', '2017-03-01', 'Wanita', 'jalan suratman', 3),
('114', 'dina', 'dina', 'mulyodadi', '2017-03-03', 'wanita', 'jalan gatsu', 4),
('115', 'yuni', 'yuni', 'bali', '2017-02-19', 'wanita', 'loloan timur', 5),
('116', 'feri', 'feri', 'lateng', '2017-03-13', 'pria', 'lateng', 6),
('117', 'geri', 'geri', 'jember', '2017-03-08', 'pria', 'jember', 7),
('118', 'ambon', 'ambon', 'ambulu', '2017-01-17', 'pria', 'ambulu', 8),
('119', 'lina', 'lina', 'semarang', '2017-03-04', 'wanita', 'banten', 9),
('110', 'fira', 'fira', 'indramayu', '2017-03-30', 'wanita', 'indramayu', 10);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `pegawai`
--
ALTER TABLE `pegawai`
  ADD PRIMARY KEY (`nip`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

buka editor sobat dan buat file php dan beri nama index.php

<?php
mysql_connect("localhost","root","");
mysql_select_db("pmb");//koneksi DB
function getTableData($tableName, $page = 1, $limit = 20)
{
    $dataTable = array();
    $startRow = ($page - 1) * $limit;
    $query = mysql_query('SELECT * FROM `'.$tableName.'` LIMIT '.$startRow.', '.$limit);
 
    while ($data = mysql_fetch_assoc($query))
        array_push($dataTable, $data);
 
    return $dataTable;
}
//pagging 
function showPagination($tableName, $limit = 20)
{
    $countTotalRow = mysql_query('SELECT COUNT(*) AS total FROM `'.$tableName.'`');
    $queryResult = mysql_fetch_assoc($countTotalRow);
    $totalRow = $queryResult['total'];
 
    $totalPage = ceil($totalRow / $limit);
  echo"<p style='text-align:center; margin-top:20px'>Halaman :";
    $page = 1;
    while ($page <= $totalPage)
    {
        echo '<a href="index.php?page='.$page.'&perpage='.$limit.'" style="text-decoration:none;">'.$page.'</a>';
        if ($page < $totalPage)
            echo " | ";
 
        $page++;
    }
}

$ambil=mysql_query("SELECT * FROM pegawai ORDER by nip");
$cek=mysql_num_rows($ambil);
if($cek == 0){
 echo"Data Kosong";
}else{
 $page=1;
 if(isset($_GET['page']) && !empty($_GET['page']))
 $page=(int)$_GET['page'];
 
 $dataperpage=5;
 if(isset($_GET['perpage']) && !empty($_GET['perpage']))
 $dataperpage=(int)$_GET['perpage'];
 
 $tabel="pegawai";
 
 $datatabel=getTableData($tabel, $page,$dataperpage);
?> 
<h3 align="center">Cara Membuat Paging Di PHP dan Mysql</h3>
<h4 align="center">Data Pegawai</h4>
<table align='center'  border="1">
    <tr align='center'>
    <td><strong>No</strong></td>
    <td><strong>NIP</strong></td>
    <td><strong>Nama</strong></td>
    <td><strong>Tempat Lahir</strong></td>
    <td><strong>Tanggal Lahir</strong></td>
    <td><strong>Kelamin</strong></td>
    <td><strong>Alamat</strong></td>
    </tr>
    
    <?php 
    foreach($datatabel as $i => $data){
     extract($data);
     $no=($i + 1) + (($page-1) * $dataperpage);
    
    echo'    
    <tr align="center">  
    <td>'.$no.'</td> 
    <td>'.$nip.'</td>
    <td>'.htmlentities(ucwords($nama)).'</td>
    <td>'.htmlentities(ucwords($tempat_lahir)).'</td>
    <td>'.htmlentities(ucwords($tanggal_lahir)).'</td>
    <td>'.htmlentities(ucwords($kelamin)).'</td>
    <td>'.htmlentities(ucwords($alamat)).'</td>
    ';?> 
    </tr>
    
  <?php  
   }
   }
  ?>
 </table>
 <?php 
 showPagination($tabel,$dataperpage);
 ?>

Dari file index ini kita membuat fungsi getTableData() untuk mengload table yang akan di tampilkan sesuai yang kita ingin kan, sedangkan fungsi showPagination() kita gunakan untuk menampilkan angka-angka halaman…
Logikanya, jika kita mengset per halaman terdapat 5 data dan jumlah keseluruhan data ada 10 maka fungsi showPagination() akan menampilakan angka 1 dan 2…

Sedangkan jika data perhalaman kita set 2, maka fungsi showPagination() akan menampilkan 1,2,3,4,5,6,7,8,9,10 yang jika angkanya di klik maka akan menampilkan data selanjutnya…
Begitulah kira-kira program akan berjalan…

Hasil paging yang di buat

Jika sobat sudah mencobanya maka tampilan dari program yang saya buat seperti ini….
Diabawah data tersebut terdapat angkat yang berisi link untukmenamilkan angka selanjutnya…
Jika sobat berniat mengembangkan maka silahkan saja copy koda diatas dan coba-coba dengan memberi last-next pada paginationnya..

Demikian dulu tutorial sederhana saya tentang Cara Membuat Paging Sederhana Dengan PHP dan Mysql hari dan semoga tutorialnya berhasil..

jangan lupa juga saya baru update artikel tentang cara membuat running text keren di web, kali aja kan sobat bingung pengen nambahin design seperti apa lagi di web yang lagi di bangun...semoga bermanfaat

Selamat berkarya…!!!

keep calm and happy coding

Reaksi:
Share this with short URL:

Artikel Terkait Lainnya:

How to style text in Disqus comments:
  • To write a bold letter please use <strong></strong> or <b></b>.
  • To write a italic letter please use <em></em> or <i></i>.
  • To write a underline letter please use <u></u>.
  • To write a strikethrought letter please use <strike></strike>.
  • To write HTML code, please use <code></code> or <pre></pre> or <pre><code></code></pre>.
    And use parse tool below to easy get the style.
Show Parser Hide Parser