Wednesday 1 January 2014

Penerapan Metode Sorting dalam Bahasa Pemgrograman PHP

Sedikit saya berbagi bagi para teman-temang yang mungkin lagi mencari referensi tentang metode-metode sorting yang ada, seperti Bubble Sort, Selection Sort, Insertion Sort dan lain-lain. Namun sekarang saya akan berbagi sedikit tentang metode Bubble Sort, Insertion Sort, Counting Sort dan Selection Sort.

Kemarin saya mendapat tugas dari Dosen dengan Mata Kuliah DAA (Design & Analysis of Algorithms) dengan materi Sorting. Saya disuruh membuat algoritmanya dan contoh datanya sesuai dengan proses algoritmanya sendiri dari iterasi ke iterasi lainnya.

Karena waktu yang cukup terbatas untuk membuat tugas itu, saya membuatnya saja dalam sebuah program berbahasa PHP untuk dapat meng-outputkan langsung data yang telah diproses dalam iterasi-iterasi (Biar tugas cepet selesei :D). Saya berbagi dengan teman saya untuk metode-metodenya. saya dapat membuat metode Bubble Sort, Insertion Sort dan Selection Sort.

Berikut merupakan potongan kodingnya, bagi teman-temang yang sedang butuh atau dijadikan referensi bisa di copas atau di download code file nya langsung. SEMOGA BERMANFAAT :D


Bubble Sort
$data = array(1=>34, 2=>26, 3=>22, 4=>18, 5=>11);
 foreach($data as $indeks => $value){
  echo "$value, ";
 }
 
 echo '

';
 
 for($i=1; $i<=count($data)-1; $i++){
  echo 'Iterasi -'.$i.'
';
  for($k=1; $k<=count($data); $k++){
   echo $data[$k].', ';
  }
  echo '
';
  
  for($j=count($data); $j>=$i+1; $j--){
   if($data[$j]<$data[$j-1]){
    $temp       = $data[$j];
    $data[$j]   = $data[$j-1];
    $data[$j-1] = $temp;
   }
   for($l=1; $l<=count($data); $l++){
    echo $data[$l].', ';
   }
   echo '
';
  }
  echo '

';
 }
?>


Insertion Sort
$data = array(1=>34, 2=>29, 3=>18, 4=>11, 5=>3);

 echo 'Data Awal => ';
 foreach($data as $indeks => $value){
  echo $value.', '; 
 }
 echo '

';
 
    $length=count($data);
    for ($i=2;$i<=$length;$i++) {
  echo 'Iterasi -'.($i-1).'
';
  for($x=1; $x<=$length; $x++){
   echo $data[$x].', '; 
  }
  echo '
';
     $element=$data[$i];
  //echo '('.$i.')';
        $j=$i-1;
        while($j>0 && $data[$j]>$element) {
         //move value to right and key to previous smaller index
            $data[$j+1]=$data[$j];
            $j=$j-1;
   
   for($y=1; $y<=$length; $y++){
    echo $data[$y].', '; 
   }
   echo '
';
   //echo '['.$j.']';
   
        }
        //put the element at index $j
        $data[$j+1]=$element;
  for($y=1; $y<=$length; $y++){
    echo $data[$y].', '; 
   }
   echo '
';
  echo '
';
    }
 
 echo 'Hasil => ';
 foreach($data as $indeks => $value){
  echo $value.', '; 
 }
?>


Selection Sort
$data = array(1=>67, 2=>56, 3=>41, 4=>27, 5=>11);
 
 echo 'Data Awal => ';
 foreach($data as $value){
  echo $value.', '; 
 }
 echo '

';
 
 for($i=1; $i<=count($data)-1; $i++){
  $min = $i;
  echo '----- Iterras '.$i.' -----
';
  foreach($data as $value){
   echo $value.', '; 
  }
  echo '
';
  for($j=count($data); $j>=$i+1; $j--){
   if($data[$j] < $data[$min]){
    $min = $j; 
   } 
  }
  echo 'Alamat Min = '.$min.' | Nilai Min '.$data[$min].' | Alamat Sekarang '.$i.'
';
  if($i != $min){
   echo '(tukar)
';
   $temp       = $data[$i];
   $data[$i]   = $data[$min];
   $data[$min] = $temp;
  }else{
   echo '(tetap)
'; 
  }
  foreach($data as $value){
   echo $value.', '; 
  }
  echo '

';
 }
 
 echo 'Data Hasil => ';
 foreach($data as $value){
  echo $value.', '; 
 }
?>
/* Google Analytics */