Sorting

Assalamuaalaikum Wr. Wb.
Selamat datang di blog sederhana saya, setelah sebelumnya kita membahas tentang Search , nah sekarang kita akan membahas tentang SORT, apa itu sort? sort adalah proses untuk mengurutkan data dari yg terbesesar ke terkecil maupu sebaliknya. (ascending atau descending).

sebenarnya banyak macam-macam sort dalam konteks ini, namun saya akan membahas beberapa saja diantaranya seperti : bubble sort,insertion sort, dan selection sort. Pertama mari kita bahas tentang bubble sort terlebih dahulu.

bubble


1. BUBBLE SORT

bubble sort adalah metode mengurutkan data dari yg terkecil ke yg terbesar, prinsipnya mirip dengan gelembung air, mengapa? Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen. Saya akan memberi contoh kepada anda:

saya punya beberapa angka/elemen disini diantaranya adalah "4 2 3 5 6" proses yg akan terjadi jika kita menggunakan bubble sort adalah sebagai berikut :

Loop pertama
(4 2 5 3 6) menjadi (2 4 5 3 6)
(2 4 5 3 6) menjadi (2 4 5 3 6)
(2 4 5 3 6) menjadi (2 4 3 5 6)
(2 4 3 5 6) menjadi (2 4 3 5 6)
Loop kedua
(2 4 3 5 6) menjadi (2 4 3 5 6)
(2 4 3 5 6) menjadi (2 3 4 5 6)
(2 3 4 5 6) menjadi (2 3 4 5 6)
(2 3 4 5 6) menjadi (2 3 4 5 6)
Loop ketiga
(2 3 4 5 6) menjadi (2 3 4 5 6)
(2 3 4 5 6) menjadi (2 3 4 5 6)
(2 3 4 5 6) menjadi (2 3 4 5 6)
(2 3 4 5 6) menjadi (2 3 4 5 6)


Dilihat dari  proses diatas, sebenarnya pada loop kedua data sudah terurut namun, loop ketiga digunakan untuk memverifikasi apakah data sudah terurut atau tidak.



2. SELECTION SORT

selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan, Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Apabila ditemukan elemen lain yg nilainya lebih kecil dari elemen sekarang, maka posisi elemen tsb akan dicatat posisinya kemudian ditukar.
berikut adalah contohnya, data berikut adalah acak, kita akan menggunakan selection sort untuk mengurutkannya.
nah pertama kita ambil dulu data pertama lalu kita bandingkan dengan data sisanya seperti contoh berikut:
10 > 5
10 < 80
10 < 50
dari perbandingan tsb kita bisa ambil data terkecil lalu kita tukar dengan data pembandingnya
nah setelah kita tukar, maka kita bandingkan lagi data selanjutnya yaitu 10 dengan 80 dan juga 50, oh ya karna 10 lebih kecil dari 80 maka kita langsung skip dengan membandingkan 80 dan 50 maka terlihat hasilnya sbg berikut.



3. INSERTION SORT

Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada posisinya dengan cara melakukan perbandingan dengan data – data yang ada. Ide algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu, dimana jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. Dalam pengurutan data, metode ini dipakai bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array diurutkan.

Contoh :
saya mempunya data acak  sebagai berikut, dan akan diurutkan menggunakan insertion sort.

pertama kita bandingkan dulu index 0 dan index 1, jika nilai index 1 lebih kecil dari nilai 0 maka nilai indeks 1 menggeser nilai indeks 0 sedangkan data sebelumnya pada index 0 bergeser kekanan yaitu ke indeks 1. untuk langkah selanjutnya pun juga sama seperti sebelumnya cuma membandingkan dan menggeser posisi. untuk lebih detail kita bisa lihat ilustrasi berikut.

Proses 1.
langkah 1


Proses 2.
langkah 2
Proses 3.
langkah 3
Proses 4.
langkah 4
Proses 5.
langkah 5
Hasil.
langkah 6



kesimpulannya adalah saya kira, tata cara pengurutan paling cepat adalah selection sort namun, cara ini terbilang cukup rumit bagi orang tertentu termasuk saya sendiri. bagi yg ingin belajar, saya sarankan menggunakan bubble sort dulu lalu bisa pelajari insertion sort.

berikut adalah contoh skrip dari insertion sort

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
<title>tugas sorting</title>
<script>
var data = new Array;
var j = 0;
function InputData()
                {
                    
                    for(var j = 0 ; j < 20; j++)
                        {
                            data[j] = Math.floor(Math.random()*(50-1))+1;
                            document.getElementById("dataacak").innerHTML += data[j]+",";
                        }
                }
function OutputData(teks)
{
  for (var a = 0; a < data.length; a++)
document.getElementById(teks).innerHTML +=data[a] +",";
  document.getElementById(teks).innerHTML +="<br>";
}
function InsertSort()
{
var sementara;
var upper=data.length;
for (var outer=1; outer < upper; outer++)
{
sementara=data[outer];
inner=outer-1;
while(data[inner] >sementara && inner >= 0)
{
data[inner +1]=data[inner];
inner--;
}
data[inner +1]=sementara;
OutputData("hslsorting");
}
}
</script>
</head>
<body>
    <center>
    <marquee direction="left"><h1 align="center">Insertion Sort</h1></marquee>
<table>
<form>
<td><center><p><label>Masukkan Data:</label>
<label id="dataacak"></label>
<input type="button" value="Random Data" onClick="InputData()"><br></p>
<p><input type="button" value="Pencet Sini" onClick="OutputData('lblData')"><br>
<label>Data Awal:</label><label id="lblData"></label><br></p>
<p><label>Proses Sortingnya =</label>
<input type="button" value="Pencet Saya" onClick="InsertSort()"><br>
<label id="hslsorting"></label><br></p></center></td>
</form>
</table>
        </center>
</body>
</html>

berikut adalah hasilnya



demikianlah blog dari saya,apabila ada kesalahan kata mohon dimaafkan.
Wassalamualaikum Wr.Wb.



Komentar

Posting Komentar

Postingan populer dari blog ini

Nested Looping/perulangan bersarang

Stack Dan Queue