Free Ebook Tutorial from Rosihan Ari's Blog

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




Beberapa Function Sorting di PHP


November 25th, 2008 | by rosihanari |


Jual kaos

Dalam artikel sebelumnya, saya telah tuliskan salah satu algoritma sorting yang dapat digunakan. Anda dapat membuat program sendiri untuk mengimplementasikan algoritma tersebut. Bagi Anda yang tidak ingin repot dalam membuat program sorting, telah tersedia suatu function yang dapat digunakan secara instan untuk melakukan sorting. Salah satu bahasa pemrograman yang menyediakan function instan ini adalah PHP.

Setelah saya browse dalam manual PHP, ada beberapa function yang dapat digunakan untuk melakukan sorting data. Data yang akan disort ini haruslah dalam bentuk array. Berikut ini beberapa function yang dapat digunakan untuk sorting:

sort()

Function ini akan mensorting data array mulai dari terkecil sampai terbesar (ASCENDING). Berikut ini contoh penggunaanya:

<?php

$angka = array("34", "12", "14", "20");
sort($angka);
for ($i=0; $i<=3; $i++)
{
   echo $angka[$i]."<br />";
}
?>

Hasil output script di atas adalah

12
14
20
34

Anda dapat pula menggunakan sort() untuk mengurutkan data array yang elemennya berupa string.

<?php

$nama = array("agus", "amir", "dedi", "budi");
sort($nama);
for ($i=0; $i<=3; $i++)
{
   echo $nama[$i]."<br />";
}
?>

Hasil script di atas adalah

agus
amir
budi
dedi

Untuk data string, hasil sorting akan diurutkan secara alfabetis.

Selanjutnya… bagaimana jika kita ingin melakukan sorting secara descending alias dari nilai terbesar sampai terkecil? Ya… Anda dapat menggunakan function rsort() atau reverse sort.

rsort()

Function ini merupakan kebalikan dari sort(). Berikut ini contoh penggunaannya:

<?php

$angka = array("34", "12", "14", "20");
rsort($angka);
for ($i=0; $i<=count($angka)-1; $i++)
{
   echo $angka[$i]."<br />";
}
?>

Output dari script di atas adalah

34
20
14
12

Keterangan: function count() digunakan untuk menghitung jumlah elemen data dari array. Pada contoh di atas count($angka) akan menghasilkan 4.

Sedangkan contoh penggunaan rsort() untuk array dengan data string adalah

<?php

$nama = array("agus", "amir", "dedi", "budi");
rsort($nama);
for ($i=0; $i<=3; $i++)
{
   echo $nama[$i]."<br />";
}
?>
dedi
budi
amir
agus

Sekarang ada kasus lagi seperti ini. Misalkan kita punya 3 buah array. Array pertama berisi data NIM mahasiswa, array kedua berisi Nama Mahasiswa dan array ketiga berisi alamat mahasiswa.

$nim = array("M01", "M03", "M02", "M05");
$nama = array("agus", "budi", "amir", "asep");
$alamat = array("solo", "boyolali", "solo", "klaten");

Ketiga array memiliki keterkaitan data. Misalnya M01 adalah NIM dari mahasiswa bernama AGUS yang beralamat di Solo, M02 miliknya AMIR yang beralamat di Solo, dst. Sekarang misalkan kita ingin mensorting ketiga data array berdasarkan nama mahasiswa secara ascending. Kita mengharapkan output sbb:

M01 agus solo
M02 amir solo
M05 asep klaten
M03 budi boyolali

Bagaimana cara melakukannya? Ya… untuk kasus seperti ini, kita gunakan function array_multisort()

array_multisort()

Function ini dapat digunakan untuk mensorting beberapa array sekaligus (multi array). Sintaks dari function ini adalah

array_multisort(array1, tipe sort, array2, array3, ...);

Parameter array1 adalah array yang dijadikan dasar sorting. Pada contoh di atas (tentang nim, nama mahasiswa dan alamat), yang dipilih sebagai array1 adalah nama mahasiswa karena kita ingin mengurutkan data berdasarkan nama mahasiswa. Parameter kedua, tipe sort, kita tentukan tipe sorting apakah descending atau ascending. Bila descending, kita tuliskan SORT_DESC sedangkan ascending SORT_ASC. Sedangkan parameter ketiga, keempat dst diisi dengan array yang lain. Susunan array dalam parameter ketiga, keempat dst ini dapat dibolak-balik karena tidak mempengaruhi hasil sorting.

Sehingga untuk kasus di atas, perintah array_multisort nya adalah sbb:

array_multisort($nama, SORT_ASC, $nim, $alamat);

atau

array_multisort($nama, SORT_ASC, $alamat, $nim);

Secara lengkap, script PHP untuk melakukan sorting kasus di atas adalah sbb:

<?php

$nim = array("M01", "M03", "M02", "M05");
$nama = array("agus", "budi", "amir", "asep");
$alamat = array("solo", "boyolali", "solo", "klaten");

array_multisort($nama, SORT_ASC, $nim, $alamat);

for ($i=0; $i<=count($nim)-1; $i++)
{
   echo $nim[$i]." ".$nama[$i]." ".$alamat[$i]."<br />";
}
?>

Apabila script di atas dijalankan, maka akan diperoleh hasil seperti yang diharapkan di atas.

OK… mudah-mudahan artikel ini ada manfaatnya. Oleh karena itu selalu stay tune di blog ini, karena selalu ada ilmu yang baru buat Anda.


Kata kunci: PHP - sorting -


 

Komentar Anda ...