Free Ebook Tutorial from Rosihan Ari's Blog

Ebook Javascript | Ebook PHP | Ebook AJAX | Ebook CSS | Ebook FPDF | Ebook Wordpress | Ebook Java SE




Membuat Tampilan Data Terurut Berdasarkan Kolom Tabel


January 13th, 2010 | by rosihanari |


Jual kaos

Waduh.. lama tidak menyapa pengunjung setia blog ini melalui sharing ilmunya ya? Maaf ya karena alasan kesibukan di kantor dan mengerjakan beberapa project pribadi, blog ini lama gak diupdate dengan artikel-artikel terbaru.

OK deh, saya kali ini akan membahas bagaimana cara membuat tampilan data terurut berdasarkan kolom tabel. Agak bingung juga nulis judul artikel ini. Tapi… secara garis besar maksudnya sebagaimana tampak pada gambar di bawah ini.

Mengurutkan Data Berdasarkan Kolom Tabel

Andaikan kita punya data dalam database, kemudian kita ingin menampilkan data-data tersebut ke dalam halaman web seperti di atas. Dalam studi kasus ini, saya gunakan data mahasiswa. Nah.. secara default data yang tampil dalam tabel di atas akan terurut berdasarkan NIM nya. Tidak hanya NIM saja yang bisa digunakan sebagai dasar pengurutan data, namun juga field yang lain misalnya NAMA, ALAMAT, JENIS KELAMIN atau bahkan TANGGAL LAHIR nya. Untuk mengurutkan data yang tampil berdasarkan field tertentu cukup dengan mengklik nama kolomnya saja.

Perhatikan gambar berikut ini yang menunjukkan tampilan data apabila diklik pada kolom NAMA MHS (diurutkan berdasarkan nama mahasiswa)

Mengurutkan Data Berdasarkan Kolom Tabel

Demikian pula gambar berikut ini yang menunjukkan tampilan data bila diklik pada kolom TANGGAL LAHIR (diurutkan berdasarkan tanggal lahir)

Mengurutkan Data Berdasarkan Kolom Tabel

OK… paham ya maksudnya membuat tampilan data terurut berdasarkan kolom tabel?

Now… akan saya jelaskan cara membuatnya. Pertama, tentu saja kita harus sudah memiliki data yang mau ditampilkan dahulu. Di sini saya menggunakan tabel ‘mahasiswa’ dengan struktur sbb:

CREATE TABLE `mahasiswa` (
  `nim` varchar(5),
  `nama` varchar(20),
  `alamat` text,
  `sex` varchar(1),
  `tgllahir` date,
  PRIMARY KEY  (`nim`)
);

serta beberapa buah data sebagai sampelnya.

INSERT INTO `mahasiswa` VALUES ('M0001', 'A', 'SOLO', 'L', '1979-10-20');
INSERT INTO `mahasiswa` VALUES ('M0003', 'B', 'BANDUNG', 'P', '1980-11-07');
INSERT INTO `mahasiswa` VALUES ('M0002', 'D', 'SOLO', 'L', '1981-10-12');
INSERT INTO `mahasiswa` VALUES ('M0004', 'C', 'JAKARTA', 'P', '1980-09-18');

OK sekarang kita masuk ke tahap berikutnya yaitu proses membuat scriptnya. Seperti biasa sebelum kita mulai membuat script, kita harus punya konsep atau ide penyelesaiannya dahulu. Konsepnya adalah kita gunakan statement IF atau kondisional. Why? ya… karena tampilan datanya juga kondisional atau bersyarat. Mengapa bersyarat? OK.. ini dia alasannya. Kapan tampilan data yang muncul terurut berdasarkan NAMA? ya… ketika kolom NAMA MHS nya diklik mas? OK.. benar.. trus, kapan tampilan data yang muncul terurut berdasarkan TANGGAL LAHIR nya? ketika kolom TANGGAL LAHIR nya diklik donk? that’s right!!

Nah.. secara umum, ketika kolom NIM diklik maka script akan menjalankan query berikut ini untuk menampilkan datanya

SELECT * FROM mahasiswa ORDER BY nim

Sedangkan bila kolom NAMA MHS diklik, maka query yang dijalankan adalah

SELECT * FROM mahasiswa ORDER BY nama

Bila kolom ALAMAT diklik, maka query yang dijalankan adalah

SELECT * FROM mahasiswa ORDER BY alamat

Begitu seterusnya..

OK.. konsep dan ide dah dapat, so… kita bisa action sekarang. Ini dia scriptnya.

<h1>Data Mahasiswa</h1>

<!-- membuat kolom tabel dan link pengurutan -->
<!-- perhatikan parameter by=... -->

<table border="1">
<tr><th><a href="<?php $_SERVER['PHP_SELF']?>?by=nim">NIM</a></th><th><a href="<?php $_SERVER['PHP_SELF']?>?by=nama">Nama Mhs</a></th><th><a href="<?php $_SERVER['PHP_SELF']?>?by=alamat">Alamat</a></th><th><a href="<?php $_SERVER['PHP_SELF']?>?by=sex">Jenis Kelamin</a></th><th><a href="<?php $_SERVER['PHP_SELF']?>?by=tgl">Tgl Lahir</a></th></tr>

<?php

// koneksi ke mysql
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// jika yang diklik kolom NIM
if ($_GET['by'] == "nim") $orderBy = "nim";
// jika yang diklik kolom NAMA MHS
else if ($_GET['by'] == "nama") $orderBy = "nama";
// jika yang diklik kolom ALAMAT
else if ($_GET['by'] == "alamat") $orderBy = "alamat";
// jika yang diklik kolom JENIS KELAMIN
else if ($_GET['by'] == "sex") $orderBy = "sex";
// jika yang diklik kolom TANGGAL LAHIR
else if ($_GET['by'] == "tgl") $orderBy = "tgllahir";
// jika tidak ada yang diklik (default)
else $orderBy = "nim";

// query untuk menampilkan data berdasarkan field yang terurut
// sesuai pilihan di atas
$query = "SELECT * FROM mahasiswa ORDER BY ".$orderBy;
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
  // tampilkan data
  echo "<tr><td>".$data['nim']."</td><td>".$data['nama']."</td><td>".$data['alamat']."</td><td>".$data['sex']."</td><td>".$data['tgllahir']."</td></tr>";
}

?>
</table>

Catatan:
Perhatikan script di atas, bahwa untuk mendeteksi bahwa kolom apa yang diklik digunakanlah $_GET['by'] untuk membaca nilai parameter yang ada di setiap link nama kolomnya.

Yes!! Mudah bukan membuat script PHP untuk tampilan data terurut berdasarkan kolom tabel? Nah… silakan bereksperiman dan mengembangkan scriptnya sendiri ya. Mungkin Anda bisa tambahkan beberapa fitur tambahan misalnya sortingnya secara ASCENDING atau DESCENDING. OK.. selamat mencoba.


Kata kunci: pengurutan data - php mysql script - script php - script sorting data - sorting script -


 

Komentar Anda ...