Pertama di Indonesia: "Murottal Al Qur'an + Terjemahan" dalam bentuk CD MP3 Original (Coba dulu FREE)
Dapatkan Script SMS Gateway PHP + MySQL

Seperti: software pengirim SMS massal, SMS survei, SMS polling, SMS quick count, SMS dakwah, Web2SMS dan masih banyak lagi... semuanya berbasis PHP & MySQL
[Info Lengkap...]



Membuat Tampilan Data Terurut Berdasarkan Kolom Tabel


January 13th, 2010 | by rosihanari | Cetak Artikel Ini 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.

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.


Beberapa artikel terkait


Share this article on:

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


Ada 9 komentar dalam artikel ini.

  1. syahrudin says:

    Salam kenal mas

    terima kasih mas atas infonya.saya baru punya blog nich tolong di bimbing donk caranya biar menarik kaya punya mas.

  2. trayono says:

    Selamat pagi Pak..
    senang bisa baca update baru web Pak Rosihanary, jangan bosen update meski cuma 4-5 alinea.

  3. sahL says:

    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

  4. mashardi says:

    kok gak kepikiran gitu ya …. :D

    makasih pak, kudu sinau mempeng ki ben pinter….

  5. rosihanari says:

    @sahl: itu buat sendiri mas tanda panahnya. Nanti konsepnya hampir sama, yaitu pake IF juga seperti di atas.

  6. saya ngelihatnya masih bingung nih pake
    Harus dibaca berulang :)

  7. Ivan says:

    Pak Klu bikin store procedure gimana ya?

  8. didtav says:

    makasih sharing nya pak. menambah pemahaman saya

  9. Thank’s for tips nya



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
Untuk membuktikan bahwa komentar Anda bukan spam, tulis kata yang muncul dalam gambar di bawah ini. Bila Anda tidak bisa membaca kata dalam gambar, klik pada gambar tersebut untuk mendengarkan suara dari kata tersebut
Click to hear an audio file of the anti-spam word