Monday, June 2, 2014

Memahami Algoritma Insertion Sort

Algoritma insertion sort adalah salah satu algoritma pengurutan dengan cara menyisipkan (insert) jika menemukan nilai yang lebih kecil, sehingga algoritma ini menyelesaikan pengurutan secara bertahap dairi kiri ke kanan atau sebaliknya. Proses pengurutan dimulai dari data ke 2. Ilustrasinya mirip seperti saat menyisipkan kartu di permainan kartu. Agar lebih mudah dalam memahaminya silahkan perhatikan ilustrasi gambar berikut ini: 
algoritma, pengurutan, insertion sort, pemrograman, stuktur data

Agar lebih memahami cara pengurutan dengan algoritma insert sort, silahkan liat gambar di bawah :

insertion sort, algoritma, pemrograman, struktur data

insertion sort, algoritma, pemrograman, struktur data

insertion sort, algoritma, pemrograman, struktur data

insertion sort, algoritma, pemrograman, struktur data

insertion sort, algoritma, pengurutan, struktur data

Contoh Program Insertion Sort pada PHP
<html>
<head>
 <title>Sorting2</title>
</head>
<body>
 <h3 style="text-decoration:underline";>Insertion Sort</h3>
<?php
 $size=6;
 $data=array(0,1,2,3,4,5);
 $data[0]=6; 
 $data[1]=10; 
 $data[2]=3; 
 $data[3]=2;
 $data[4]=9; 
 $data[5]=4;
  echo("<b>Jumlah Data : 6</b><br/>");
  echo("<b>Data Awal :</b> ");
   tampildata();
   insert_sort();
  echo "<font color='red'><b>Hasil Akhir : ";
   tampildata();
  echo "<b></font><br/>";
 function tampildata() {
 global $data;
  for($i=0;$i<=5;$i++) {
   echo "$data[$i] ";
   }
   echo "<br/>";
  }
 function insert_sort() {
 global $data,$size;
  for($i=0;$i<=$size-1;$i++) {
  $value=$data[$i];
  $j=$i-1; $NoIterasi=$i+1;
  echo " <font color='blue'>";
  echo " Iterasi Ke-$NoIterasi : ";
 tampildata(); 
 echo "</font>";
  while(($j>=0)&&($data[$j]>$value)) {
   $data[$j+1]=$data[$j];
   $j=$j-1;
   $data[$j+1]=$value;
   tampildata();
  }
 }
}
?>
</body>
</html> 

Gambar diatas dipahami aja satu satu proses jalannya, sekarang lita lihat source code dari fungsi insertion sort .
for (i = 1 ; i <= n - 1; i++) 
{
 j = i;
 while ( j > 0 && data[j] < data[j-1]) 
 {
  temp      = data[j];
  data[j]   = data[j-1];
  data[j-1] = temp;
  j--;
 }
}

Sekian. Semoga Bermanfaat
Afandi Nat
Afandi Nat

Seorang pemuda yang sedang belajar memanfaatkan dunia maya ke hal yang positif. Bukan anak Baperan dan senang bila diajak jalan2 menikmati pemandangan Alam (Apalagi diajaknya sama kamu...,,iya kamu :) )

3 comments:

Arfian Hidayat said...

Terimakasih referensinya, sudah sy coba dalam bahasa PHP
https://arfianhidayat.com/algoritma-insertion-sort

Afdal said...

Ok sip

Shikamaru Nara said...

thanks gan sudah share
Lampu servis hp