Dosen Pengampu :
Dr. LASER NARINDRO, ST, MMSI
ALGORITMA DAN PEMROGRAMAN
ITB STIKOM BALI
Pengurutan (Sorting) merupakan sebuah algoritma yang
digunakan untuk mengurutkan data dari yang terendah
atau sebaliknya. Untuk tingkat pemula, biasanya jenis
sorting yang digunakan adalah bubble sort karena
penggunaannya sangat sederhana dan mudah namun
memakan waktu yang lama jika data yang ingin di
urutkan banyak.
Jenis jenis algoritma Pengurutan (Sorting):
a. Bubble Sort
b. Insertion Sort
c. Selection Sort
Bubble sort atau pengurutan secara gelembung ini
merupakan algoritma yang sangat sederhana. Algoritma
ini dilakukan dengan cara membandingkan masing
masing data dalam suatu array secara berpasangan, lalu
menukar data tersebut jika di perlukan, dan diulangi
hingga data tersebut sudah tidak bisa ditukar lagi.
Berikut adalah gambaran bubble sort :
<?php
// function for bubble sort
function bubblesort(&$Array, $n) {
$temp;
for($i=0; $i<$n; $i++) {
for($j=0; $j<$n-$i-1; $j++) {
if($Array[$j]>$Array[$j+1]) {
$temp = $Array[$j];
$Array[$j] = $Array[$j+1];
$Array[$j+1] = $temp;
}
}
}
}
// function to print array
function PrintArray($Array, $n) {
for ($i = 0; $i < $n; $i++)
echo $Array[$i]." ";
echo "\n";
}
// test the code
$MyArray = array(1, 10, 23, 50, 4, 9, -4);
$n = sizeof($MyArray);
echo "sebelum diurutkan\n";
PrintArray($MyArray, $n);
bubblesort($MyArray, $n);
echo "\nSetelah diurutkan\n";
PrintArray($MyArray, $n);
?>
Insertion sort merupakan algoritma yang
membagi elemen menjadi 2, satu elemen untuk
yang sudah diurutkan dan satu lagi untuk data
yang belum di urutkan kemudian diletakkan
pada tempat yang seharusnya. Cara ini
dilakukan berulang kali hingga semua data
telah terurut. Berikut gambaran insertion sort:
<?php
//Display Array
function display_array($array){
$message = "";
$len = count($array);
for($i=0;$i<$len;$i++){
$val = $array[$i];
$message .= $val;
$message .= ($i==$len-1)? ".":",";
}
return $message;
}
//Insertion Sort
function insertionSort($array) {
$size = count($array);
for ($step = 1; $step < $size; $step++) {
$key = $array[$step];
$j = $step-1;
// Compare key with each element on the left of it until an element smaller than
// it is found.
// For descending order, change key<array[j] to key>array[j].
while ($j >= 0 && $key < $array[$j]) {
$array[$j + 1] = $array[$j];
--$j;
}
$array[$j + 1] = $key;
}
return $array;
}
$array = [20,3,22,4,5,11,43,42,24,54];
echo "angka awal:\n".display_array($array)."\n";
$display_array = insertionSort($array);
echo "setelah diurutkan:\n".display_array($display_array)."\n";
?>
Selection sort dilakukan
dengan cara memilih
data/elemen yang paling
rendah, lalu ditukar dengan
elemen/data ke-i. Nilai i
dimulai dari 1 ke n dan n
adalah jumlah panjang data
dikurang 1. Berikut gambaran
selection sort :
<?php
// function for selection sort
function selectionsort(&$Array, $n) {
for($i=0; $i<$n; $i++) {
$min_idx = $i;
for($j=$i+1; $j<$n; $j++) {
if($Array[$j] < $Array[$min_idx])
{$min_idx = $j;}
}
$temp = $Array[$min_idx];
$Array[$min_idx] = $Array[$i];
$Array[$i] = $temp;
}
}
// function to print array
function PrintArray($Array, $n) {
for ($i = 0; $i < $n; $i++)
echo $Array[$i]." ";
echo "\n";
}
// test the code
$MyArray = array(1, 10, 23, 50, 4, 9, -4);
$n = sizeof($MyArray);
echo "Angka Awal\n";
PrintArray($MyArray, $n);
selectionsort($MyArray, $n);
echo "\nSetelah Diurutkan\n";
PrintArray($MyArray, $n);
?>