Beli Modem Wavecom Untuk SMS Gateway. FREE E-book Gammu + FREE Ongkos kirim !!
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[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.

VN:F [1.9.4_1102]
Rating: 4.0/10 (1 vote cast)
Membuat Tampilan Data Terurut Berdasarkan Kolom Tabel, 4.0 out of 10 based on 1 rating
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?



Beberapa artikel terkait


Share this article on:

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


Ada 21 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

  10. Budhi says:

    Pak, koq ada error seperti ini:
    ———————————————-
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\kolomon.php on line 32
    ———————————————-

  11. rosihanari says:

    @budhi: sepertinya ada yang salah di mysql_fetch_array(). Di dalam kurungnya itu gak boleh kosong atau NULL variabel mas..

  12. Budhi says:

    Terima kasih atas tanggapannya, ternyata tadi ada script yg saya salah ketik.

    nanya lagi, boleh dong..
    bagaimana membuat interface :
    “dbhost”, “dbuser”, “dbpass”,”dbname” pada beberapa textbox yang diisi user, jadi bukan pada file.php nya..
    maaf, saya benar-benar pemula di php programming.

  13. rosihanari says:

    @budhi: itu nanti pakai operasi file mas.. Konsepnya sama seperti yang pernah saya bahas di http://blog.rosihanari.net/edit-file-css-berbasis-file-teks-dengan-php cuman di situ tampilan demonya hilang :-)

  14. Tri Laniri says:

    Mas, Bagaimana klu pengurutannya berdasarkan nama hari??
    Gimana codingnya??
    Aq tunggu blsannya d email aq ya..thx

  15. rosihanari says:

    @tri laniri: nama hari kan terurut bukan karena struktur stringnya mbak? seperti halnya Ani, Budi, Cici, Dodi, dst… tapi urutan hari itu sudah fixed: senin, selasa, rabu dst… sehingga untuk sorting nama hari ini, Anda mesti buat field satu lagi yang isinya bilangan bulat. Jika hari pada data tsb senin, maka kasih saja angka 0, selasa angka 1, rabu angka 2, dst… lalu baru anda bisa sort berdasarkan field tsb.

  16. amir says:

    assalamualaikum…saya dari malaysia..jiran kita pak guru … blog ni mmg menarik..dan isinya mantap … terima kasih di atas kesudian dalam sharing ilmu pak guru…:-)…harap bisa udpdate lagi..

  17. andika sanjaya says:

    kalau trigger/bolak-balik bisa ga pak???
    maksudnya kalau judul table itu diklik sekali maka data akan terurut secara ascending, lalu diklik lagi sekali maka data akan terurut secara descending, itu kira2 scripting-nya bagaimana…

  18. rosihanari says:

    @andika sanjaya: wah belum ada ide nih mas… kalo dah ada idenya, judul yang tepat untuk artikel tsb apa yah? :-)

  19. asep yudi says:

    mas, sy mu tanya…
    gmn ya caranya mengurutkan tabel, tapi berdasarkan hasil perhitungan yang masih dalam program, jadi tidak mengubah database??
    mohon bantuannya..
    makasih sebelumnya..

  20. rosihanari says:

    @asep yudi: anda bisa simpan data hasil perhitungannya ke dalam variabel array, lalu lakukan sorting pada data array tersebut. http://blog.rosihanari.net/beberapa-function-sorting-di-php



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.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word