Cara Membuat Paging Sederhana Dengan PHP dan Mysql

Cara Membuat Paging Sederhana 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….
Cara Membuat Paging Sederhana Dengan PHP dan Mysql

Dari pada terlalu banyak teori..mari kita langsung peraktek yaa…
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…
Jika sobat sudah mencobanya maka tampilan dari program yang saya buat seperti ini….
Cara Membuat Paging Sederhana Dengan PHP dan Mysql

Diahawah 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..

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

Artikel Terkait

Previous
Next Post »

2 komentar

komentar
Minggu, 16 April 2017 11.54.00 WIB delete

Wah artikel yang sangat membantu bagi saya yang belajar PHP. Ijin praktek mas

Reply
avatar