Membuat Tampilan Data Terurut Berdasarkan Kolom Tabel
January 13th, 2010 | by rosihanari |
Cetak Artikel Ini
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.

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)

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

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.
Beberapa artikel terkait
- Membuat Script PHP untuk Rekap Data dari Data Mentah
- Script PHP untuk Menghapus Data Via Panel di Tabel
- Script PHP untuk Menampilkan Data dalam Tabel dengan Warna Baris Selang-seling
- Cara Cepat Merestrukturisasi Tabel dan Data
- Script PHP untuk Arsip Artikel Berdasarkan Bulan dan Tahun
- Editing Data Tanggal via Form dengan PHP
- Membuat Script PHP Untuk Report atau Rekap Data (2)
- Script PHP untuk Mengedit Data Via Form
- Script INSERT Data Dengan PHP dan MS. Access
- Script Cari Data File Yang Terupload Ke MySQL
Share this article on:
Kata kunci: pengurutan data - php mysql script - script php - script sorting data - sorting script -
Pertama di Indonesia: "Murottal Al Qur'an + Terjemahan" dalam bentuk CD MP3 Original (
Rosihan Ari adalah seorang programmer, penulis buku, trainer, peneliti dan berusaha menjadi seorang blogger sejati dengan memberikan yang terbaik buat negeri ini. Berfokus pada computer programming serta computer aided learning for mathematics, ia ingin berbagi ilmu yang dimilikinya. 


Salam kenal mas
terima kasih mas atas infonya.saya baru punya blog nich tolong di bimbing donk caranya biar menarik kaya punya mas.
Selamat pagi Pak..
senang bisa baca update baru web Pak Rosihanary, jangan bosen update meski cuma 4-5 alinea.
Akhirnya… ada ilmu lagi yg dishare, hehehe
Terimakasih banyak pa Ari, insyaAlloh sangat bermanfaat.
btw, kl di samping judul kolom bisa ada tanda panah ke atas/bawah (sbg tanda sdg dlm keadaan sort ascending/descending) itu bagaimana yah Pa?
salam
kok gak kepikiran gitu ya ….
makasih pak, kudu sinau mempeng ki ben pinter….
@sahl: itu buat sendiri mas tanda panahnya. Nanti konsepnya hampir sama, yaitu pake IF juga seperti di atas.
saya ngelihatnya masih bingung nih pake
Harus dibaca berulang
Pak Klu bikin store procedure gimana ya?
makasih sharing nya pak. menambah pemahaman saya
Thank’s for tips nya