Pertama kita akan membuat database dummy (contoh), buat database baru dengan nama Tutorial, import data di bawah ini, bisa lewat phpMyAdmin atau Adminer

CREATE TABLE IF NOT EXISTS `dborang` (
  `id` mediumint(8) unsigned NOT NULL,
  `Name` varchar(255) DEFAULT NULL,
  `Country` varchar(100) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `dborang`
--
 
INSERT INTO `dborang` (`id`, `Name`, `Country`) VALUES
(1, 'Aubrey', 'Cambodia'),
(2, 'Gloria', 'Saint Pierre and Miquelon'),
(3, 'Amery', 'Turkmenistan'),
(4, 'Robert', 'Zimbabwe'),
(5, 'Ifeoma', 'Namibia'),
(6, 'Hoyt', 'Chile'),
(7, 'Yeo', 'Brunei'),
(8, 'Erich', 'Marshall Islands'),
(9, 'Amber', 'Finland'),
(10, 'Ifeoma', 'Curaçao'),
(11, 'Sybill', 'Antigua and Barbuda'),
(12, 'Alice', 'Saint Lucia'),
(13, 'Edan', 'Bermuda'),
(14, 'Keely', 'Nicaragua'),
(15, 'Lee', 'Antigua and Barbuda'),
(16, 'Brenda', 'Tanzania'),
(17, 'Nell', 'Romania'),
(18, 'Meghan', 'Serbia'),
(19, 'Lisandra', 'Japan'),
(20, 'Aimee', 'Korea, South'),
(21, 'Cassidy', 'Egypt'),
(22, 'Reagan', 'Mayotte'),
(23, 'Medge', 'Mauritius'),
(24, 'Leo', 'Guam'),
(25, 'Aidan', 'Rwanda'),
(26, 'Eugenia', 'El Salvador'),
(27, 'Grace', 'Burkina Faso'),
(28, 'Vernon', 'Nicaragua'),
(29, 'Barry', 'Sierra Leone'),
(30, 'Amber', 'Liberia'),
(31, 'Renee', 'Togo'),
(32, 'Ivan', 'Azerbaijan'),
(33, 'Brynne', 'Cambodia'),
(34, 'Shaeleigh', 'Oman'),
(35, 'Patrick', 'Tuvalu'),
(36, 'Avram', 'Macedonia'),
(37, 'Uma', 'Georgia'),
(38, 'Valentine', 'El Salvador'),
(39, 'Susan', 'Cape Verde'),
(40, 'Hanna', 'Malawi');
 
ALTER TABLE `dborang`
  ADD PRIMARY KEY (`id`);

Edit file app/Http/routes.php tambahkan di baris paling bawah

Route::get('orang', 'OrangController@index');

Buat Model (app), contoh kita beri nama Orang.php

<?php namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Orang extends Model {
 
	protected $table = 'dborang';
	protected $primaryKeys = 'id';
 
}

Buat Controller (app/Http/Controllers), contoh kita beri nama OrangController.php

	public function index()
	{
		$orang = \App\Orang::paginate(10);
		return view('orang', compact('orang'));
	}

Buat View (resources/views), contoh kita beri nama Orang.blade.php

<!DOCTYPE html>
<html lang="">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>Membuat Pagination di Laravel 5</title>
		<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
	</head>
 
	<body>
 
<div class="container">
	<h4>Table Data</h4>
	<table class="table table-hover table-bordered">
	<thead>
		<tr>
			<th>#</th>
			<th>Name</th>
			<th>Country</th>
		</tr>
	</thead>
	<tbody>
	<?php $no = $orang->firstItem() - 1 ; ?>
	@foreach ($orang as $data)
	<?php $no++ ;?>
		<tr>
			<td>{{ $no }}</td>
			<td>{{ $data->Name}}</td>
			<td>{{ $data->Country}}</td>
		</tr>
	@endforeach
	</tbody>
</table>
<?php echo str_replace('/?', '?', $orang->render()); ?>
</div>
 
	</body>
 
</html>

Setelah semua selesai akses URL http://[IP.SERVER]/[Folder Laravel]/public/orang contoh di tempat saya http://localhost/laravel/public/orang

Tampilan script Pagination

table data
hasil rendering table

Join the Conversation

5 Comments

Your email address will not be published. Required fields are marked *

  1. saya udah coba, tapi kok ada error
    “Cannot redeclare class App\Orang”
    solusinya gan

  2. Ternyata di Laravel udah disiapin library buat pagination ya mas, simple pulak, beda banget sama yang php native yang njelimet.
    Menurut pendapat saya, untuk kasus data yang hingga ratusan atau ribuan jumlahnya mungkin bisa sedikit dihandle dengan fitur “Pencarian” ya mas.
    Boleh dong sekalian mas share tutorial penggabungan antara fitur pagination dan searching :D

  3. Bagaimana jika data ada ratusan ribu, bukankah link page akan kebanyakkan? bagaimana jika ingin membuat batas limit link page? misalnya hanya 5 di show

    <>

    ketika di posisi 5
    <>

    1. Ngga bakalan :) ini contohnya
      Laravel udah tau solusi masalah tersebut.

      Untuk membuat batas, contoh maksimal per page ada 5 data, di Controller yang diubah ada dibagian
      $orang = \App\Orang::paginate(5);
      kalo perpage ada 20 jadi
      $orang = \App\Orang::paginate(20);