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
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 :
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)
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
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
Posting Komentar