SORTING

Hasil gambar untuk sorting

Penyortiran adalah proses penempatan elemen dari koleksi dalam beberapa jenis pesanan. Misalnya, daftar kata dapat diurutkan berdasarkan abjad atau panjang. Daftar kota dapat diurutkan berdasarkan populasi, berdasarkan area, atau dengan kode pos. Kami telah melihat sejumlah algoritme yang dapat mengambil manfaat dari daftar yang disortir (ingat contoh anagram akhir dan pencarian biner).

Sorting dibedakan menjadi 3 yaitu :


Bubble Sort

Bubble sort adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. 

Cara kerja dari algoritma ini adalah membandingkan elemen yang sekarang dengan eleman berikutnya. Jika elemen yang sekarang lebih besar dari elemen berikutnya, maka tukar nilai kedua elemen.

berikut contoh bubble short

Iterasi 1 : 
10    5    2    15    1    → (10 bandingkan dengan 5)
5    10    2    15    1    → (10 tukar dengan 5. Bandingkan 10 dengan 2)
5    2    10    15    1    → (2 tukar dengan 10. Bandingkan 10 dengan 15)
5    2    10    15    1    → (Tidak ada pertukaran. Bandingkan 15 dengan 1)
5    2    10    1    15    → (15 tukar dengan 1)

Iterasi 2 :
5    2    10    1    15    → (5 bandingkan dengan 2)
2    5    10    1    15    → (5 tukar dengan 2. Bandingkan 5 dengan 10)
2    5    10    1    15    → (Tidak ada pertukaran. Bandingkan 10 dengan 1)
2    5    1    10    15    → (10 tukar dengan 1)

Iterasi 3 :
2    5    1    10    15    → (2 bandingkan dengan 5)
2    5    1    10    15    → (Tidak ada pertukaran. Bandingkan 5 dengan 1)
2    1    5    10    15    → (5 tukar dengan 1)

Iterasi 4 :
2    1    5    10    15    → (2 bandingkan dengan 1)
1    2    5    10    15    → (2 tukar dengan 1)

Iterasi 5 :
1    2    5    10    15    → (1 bandingkan dengan 2)


Maka, Data diatas setelah di sorting ialah sebagai berikut :
1    2    5    10    15


Selection Sort
Selection Sort merupakan salah satu metode pengurutan yang memiliki algoritma yang cukup gampang dalam penulisan coding-nya. Dibanding Bubble Sort, Selection Sort jelas lebih baik dari segi kecepatan proses pengurutannya. Karena, Inti dari algoritma Selection Sort ialah mencari nilai yang paling kecil(Jika Ascending) atau nilai yang paling besar(Jika Descending) di urutan Data berikutnya. Untuk lebih jelasnya saya beri contoh kasus seperti berikut ini.

Data :    13    9    15    2    3    1

Proses Selection Sort (Ascending)
Iterasi 1 :
13    9    15    2    3    1      → (Apakah 13 nilai yang paling kecil?)
1    9    15    2    3    13    → (Tidak. 13 ditukar dengan 1)

Iterasi 2 :
1    9    15    2    3    13    → (Apakah 9 nilai yang paling kecil?)
1    2    15    9    3    13    → (Tidak. 9 ditukar dengan 2)

Iterasi 3 :
1    2    15    9    3    13    → (Apakah 15 nilai yang paling kecil?)
1    2    3    9    15    13    → (Tidak. 15 ditukar dengan 3)

Iterasi 4 :
1    2    3    9    15    13    → (Apakah 9 nilai yang paling kecil?)
1    2    3    9    15    13    → (Iya)


Iterasi 5 :
1    2    3    9    15    13    → (Apakah 15 nilai yang paling kecil?)
1    2    3    9    13    15    → (Tidak. 15 ditukar dengan 13)

Data Setelah di sorting ialah sebagai berikut :
Data : 1    2    3    9    13    15

Insertion Sort
Insertion sort adalah metode pengurutan yang menggunakan 2 buah list dalam proses pengurutannya yaitu sorted list dan unsorted list, dimana pada awalnya semua angka yang kan di urutkan berada di unsorted list setelah itu index 0 dari unsorted list dipindahkan ke sorted list begitu juga index 1. Lalu index 0 dan 1 yang sudah dipindahkan ke sorted list akan dikomparasi mana yang memiliki nilai terkecil. Dan yang memiliki terkecil itu akan menjadi index 0, begitulah seterusnya dimana tiap index yang baru masuk dari unsorted list ke sorted list akan dikomparasi dengan semua index yang sudah lebih dahulu masuk ke sorted list. Proses ini akan terus berulang sampai semua index yang ada di unsorted list pindah ke sorted list dan dikomparasi, maka hasil pengurutan akan terlihat. Berikut contoh dari Insertion Sort :

Langkah 1
Asumsikan kita memiliki array dengan 5 elemen, seperti berikut :
Selanjutnya angka pada index 0 dan 1 akan dipindahkan ke sorting list, setelah itu di sorted list angka pada index 0 dan 1 akan dikomparasi untuk mencari index yang memiliki nilai terkecil dan dikarenakan nilai pada index 0 lebih kecil dari nilai index 1 maka tidak terjadi perubahan posisi. Dan hasilnya dapat dilihat seperti gambar dibawah ini :

Langkah 2
Pada langkah ini pindahkan angka pada index 2 ke sorted list, dimana ketika angka pada index 2 memasuki sorted list angka tersebut akan dikomparasi dengan angka pada index 0 dan 1 dan dimana hasilnya angka pada index 2 diposisikan di index 1. Hasil komparasinya dapat dilihat pada gambar berikut :

Langkah 3
Masukkan angka pada index 3 ke sorted list, dan karena nilai pada index 3 lebih kecil dari nilai pada index 0, 1, dan 2 maka nilai pada index 3 diposisikan di index 0.

Langkah 4
Dan langkah terakhir adalah memasukkan nilai pada index 4 kedalam sorted list, dan ternyat nilai pada index 4 lebih kecil jika dibandingkan dengan nilai pada index 1, 2, dan 3 maka nilai pada index 4 diposisikan pada index 2.

Dengan hasil yang mucul maka proses pengurutan dengan metode insertion sort sudah selesai.

berikut contoh HTML insertion sort

<html>
<head>

</head>
<body>
<center>
 <h1>insert sort</h1>
 <div>
  <label>Masukkan Data:</label>
  <br>
  <input type="button" value="Proses" onclick="TambahData()">
  <input type="text"id="txtData">
  <br></br>
  <input type="button" value="Tampilkan" onclick="TampilData('lblData')">
  <br>
  <label id="lblData"></label>
  <br></br>
  <input type="button" value="Hasil Data"onclick="SelectionSort()">
  <br>
  <br>
  <label id="lblSort"></label>
 </div>
 </center>
 <script>
 var data=new Array;
 var i=0;

 function TambahData()
{
data[i]= parseInt(document.getElementById("txtData").value);
i++;
document.getElementById("txtData").value="";
}

 function TampilData(sd)
{
for(var a=0;a<data.length;a++)
document.getElementById(sd).innerHTML+=data[a]+",";
document.getElementById(sd).innerHTML+="<br>";
}

 function SelectionSort()
{
var temp;
var upper = data.length;
var min;
   
for(var outer =0;outer<upper;outer++)
{
min = outer;
for(var inner = outer  + 1; inner<upper;inner++)
{
if(data[inner]<data[min])
    {
min = inner;
    }
   }
temp = data[outer];
data[outer]=data[min];
data[min]=temp;
TampilData("lblSort");
  }
 } 
 </script>
 </body>

</html>

dan hasilnya 











Komentar

Postingan populer dari blog ini

ARRAY