Selection sort merupakan algoritma pengurutan dalam pemrograman yang memiliki kompleksitas O(n^2). Algoritma sorting tersebut biasanya digunakan untuk berlatih maupun mengerjakan pemecahan masalah, di era modern seperti sekarang algoritma-algoritma pengurutan bahkan pencarian sudah tidak terlalu digunakan sejak adanya mesin database yang lebih cepat. Bayangkan saja jika sebuah bank menggunakan algoritma-algoritma pengurutan yang ada dengan data nasabah yang banyak, pasti tidak efektif. Tetapi dengan adanya selection sort ini kita bisa berlatih bagaimana cara dasar kerja komputer untuk melakukan pengurutan data. Ilustrasi dari algoritma selection sort:
Dari gambar diatas, bisa diketahui bahwa algoritma selection sort menggunakan cara mengurutkan data dengan mengecek satu per satu elemen setelahnya sesuai kondisi misal lebih besar/kecil sehingga elemen pertama sudah pasti terbesar/terkecil dari semua elemen. Pengaplikasiannya dalam ilustasi juga panjang dan kurang efektif, di dalam contoh terdapat 6 buah data dan harus melakukan perulangan sebanyak 5 kali dan perulangan pengurutan sebanyak 6-n sehingga bisa dikatakan masih tidak efektif tetapi masih lebih efektif daripada bubble sort. Kemudian algoritma dari selection sort sendiri dan juga pseudocodenya seperti berikut :
ALGORITMA SELECTION SORT
Langkah 0 Mulai pivot = 0 ; selama pivot < N - 1; kerjakan Langkah 1 hingga 8
Langkah 1 min <-- pivot
Langkah 2 Mulai cari = pivot+1; selama cari < N; kerjakan Langkah 3 hingga 4
Langkah 3 Jika data[cari] < data[min] maka min <-- cari
Langkah 4 cari <-- cari + 1
Langkah 5 titip <-- data[pivot]
Langkah 6 data[pivot] <-- data[min]
Langkah 7 data[min] <-- titip
Langkah 8 pivot <-- pivot + 1
Langkah 9 Selesai
PSEUDOCODE SELECTION SORTBonus pula saya berikan flowchart dari selection sort sendiri agar mempermudah memahami daripada melalui bahasa pemrograman secara langsung , untuk gambar flowchartnya seperti ini :
Program Pengurutan Data Integer memakai Selection Sort
Deklarasi Variabel :
pivot, min, cari, titip, N bertipe int
data bertipe array of int pada variabel data
{
FOR(pivot=0; pivot<N-1; pivot++)
{
min = pivot
FOR(cari=pivot+1; cari<N; cari++)
{
IF(data[cari] < data[min])
min = cari
}
titip = data[pivot]
data[pivot] = data[min]
data[min] = titip
}
}
Sekian postingan dari saya mengenai pembahasan selection sort beserta algoritma,pseudocode dan flowchartnya, selemat belajar !
EmoticonEmoticon