Setelah sebelumnya membahas tentang bubble sort, artikel ini akan lanjut membahas algoritma sorting yang lain yaitu selection sort.
Sebenarnya ada sedikit persamaan di antara bubble sort dengan selection sort.
Mari kita lanjut ke pembahasan.
Pengertian Selection Sort
Sebelumnya kita sudah bahas tentang bubble sort yang memilih data dengan nilai terbesar dan memindahkannya ke indeks paling belakang.
Namun berbanding terbalik dengan bubble sort, algoritma ini akan memilih data dengan nilai terkecil dan memindahkannya ke indeks paling depan.
Perbedaan lebih jelas bisa kita lihat dari bagaimana bubble sort dan selection sort memindahkan data.
Bubble sort memindahkan data dengan cara membandingkan nilai suatu data dengan data yang berada di sebelahnya.
Jadi akan ada perpindahan posisi secara terus menerus di antara dua data yang bersebelahan.
Untuk lebih jelas mengenai bubble sort, silahkan kunjungi alamat berikut ini : Algoritma Bubble Sort – Antek Teknologi
Sedangkan selection sort memindahkan data dengan cara memeriksa data di dalam array secara berulang.
Jadi algoritma ini akan mengunjungi semua data di dalam array dan memilih data dengan nilai terkecil.
Jika satu pemeriksaan sudah selesai, maka data dengan nilai terkecil tadi akan dipindahkan ke indeks dengan status indeks minimum.
Indeks minimum akan terus bertambah satu seiring dengan berapa kali pemeriksaan telah dilakukan.
Silahkan lanjut ke bagian berikutnya untuk dapat memahami bagaimana selection sort bekerja.
Cara Kerja Selection Sort
Berikut ini adalah bagian di mana kita akan belajar bagaimana algoritma ini akan mengurutkan banyaknya data.
Untuk contoh, misalkan di sini sudah ada sebuah array yang berisikan beberapa data berupa angka.
Secara berurutan mereka adalah angka 53, 45, 83, 66 dan 33.
Pendahuluan
Dalam algoritma ini terdapat sebuah perulangan yang bercabang.
Perulangan yang di luar bertugas untuk mengunjungi semua indeks di dalam array.
Sedangkan yang di dalam bertugas untuk memilih data yang terkecil dan memindahkannya ke indeks tertentu.
Di sini ada beberapa indeks, yaitu i, j dan indeks dengan nama min.
Indeks i dan j digunakan untuk kedua perulangan yang ada.
Sedangkan indeks min atau minimum bertugas untuk menandai indeks dengan nilai terkecil di setiap perulangan.
Kemudian jumlah maksimal terjadinya perpindahan data adalah sebanyak n-1.
Karena variabel n sendiri adalah nilai dari ukuran array.
Ilustrasi
Iterasi pertama atau i = 0, di mana nilai awal dari j = i + 1 dan min = i.
Sedikit catatan, nilai awal dari j dan min pasti akan sama untuk setiap iterasi yang terjadi.
Kembali ke perulangan pertama yang akhirnya membuat nilai dari variabel min adalah 4, karena indeks ke-4 memiliki nilai terkecil.
Setelah itu terjadi pertukaran nilai antara indeks i dengan indeks min.
Kemudian lanjut ke iterasi kedua atau i = 1.
Karena nilai dari indeks i saat ini adalah nilai yang terkecil, maka indeks min tidak akan berpindah.
Dan akhirnya tidak ada nilai yang mengalami pertukaran tempat di iterasi kedua.
Lanjut lagi ke Iterasi ketiga atau i = 2.
Indeks min mengalami perpindahan karena menemukan nilai yang paling kecil di indeks ke 4.
Maka dari itu terjadi pertukaran nilai antara indeks ke 2 dan 4.
Dan terakhir, iterasi yang keempat atau nilai dar i = 3.
Karena nilai dari indeks i yaitu 3 tidak lebih besar dari nilai indeks ke 4, maka tidak ada pertukaran nilai yang terjadi.
Setelah itu semua perulangan telah selesai dan nilai di dalam array sudah terurut.
Jadi itu contoh ilustrasi bagaimana algoritma ini bekerja, semoga penjelasan yang diberikan tidak terlalu membingungkan
Pada bagian berikutnya sudah disediakan program sederhana yang mengimplementasikan algoritma ini.
Sintaks Program
Berikut ini adalah alamat yang di dalamnya ada program sederhana yang menerapkan algoritma ini, hanpalla/C-Selection-Sort (github.com).
Kalian bisa salin kode programnya, coba jalankan sendiri atau mungkin memodifikasinya.
Silahkan tambahkan hal yang perlu ditambahkan atau kurangi yang perlu dikurangi.
Rangkuman
Sekian pembahasan tentang selection sort pada kesempatan kali ini.
Sebuah algoritma yang mengurutkan data dengan cara menyeleksi data terkecil dan menyusunnya dari kecil sampai ke besar.
Penyeleksian dan penyusunan akan terus terjadi secara berulang sampai semua data sudah terurut dari yang terkecil sampai yang terbesar.
Artikel kali ini juga sudah menyediakan penjelasan lebih rinci terkait dengan cara kerja dari algoritma ini.
Untuk mendukung penjelasan tersebut, sudah disediakan pula sebuah program sederhana menggunakan bahasa pemrograman C.
Selamat belajar dan terima kasih.