Selection Sort: Pengertian, Cara Kerja, dan Implementasinya
Siti Khadijah Azzukhruf Firdausi
•
28 February 2024
•
6410
Memahami berbagai algoritma pengurutan adalah kunci dalam pemrograman dan pengolahan data. Selection sort adalah salah satu algoritma yang perlu dipelajari.
Selection sort adalah salah satu algoritma yang memiliki pendekatan unik dalam mengurutkan elemen-elemen di array. Tertarik untuk mempelajarinya? Baca artikel ini sampai habis ya!
Apa yang Dimaksud dengan Selection Sort?
Selection sort adalah teknik pengurutan yang beroperasi dengan memisahkan array menjadi dua bagian. Pemisahan tersebut membagi subarray menjadi yang telah diurutkan dan tidak diurutkan.
Lebih detailnya, algoritma pengurutan ini bekerja dengan memilih elemen terkecil atau terbesar dari subarray yang belum diurutkan. Lalu, elemen terpilih ini dipindahkan ke akhir subarray yang sudah diurutkan.
Pendekatan tersebut bisa secara bertahap membangun bagian akhir array yang diurutkan hingga semua elemen terurut.
Cara Kerja Selection Sort
Cara kerja selection sort melibatkan beberapa langkah iteratif yang sistematis. Proses ini dimulai dengan asumsi bahwa array yang akan diurutkan terbagi menjadi dua bagian terurut dan tidak terurut. Beberapa langkah-langkah detail dari cara kerja selection sort adalah:
1. Inisialisasi
Tahap pertama dalam selection sort adalah inisialisasi. Ini dimulai dengan menganggap seluruh array sebagai subarray yang belum diurutkan. Subarray terurut masih kosong karena belum ada elemen yang diproses.
2. Pencarian Elemen Minimum
Tahap kedua dalam selection sort adalah pencarian elemen minimum. Ini bisa dimulai dengan memilih elemen minimum dari subarray yang belum diurutkan.
Prosesnya dilakukan dengan membandingkan setiap elemen dalam subarray tersebut untuk menemukan nilai terkecil. Pada variasi terurut secara menurun, kamu bisa menemukan elemen maksimum.
3. Pertukaran
Tahapan berikutnya dalam selection sort adalah pertukaran. Apabila elemen minimum atau maksimum ditemukan, penukaran bisa dilakukan.
Hal tersebut dilakukan dengan menukar elemen minimum/maksimum dengan komponen pertama dari subarray yang belum diurutkan. Akan tetapi, pertukaran ini tidak perlu dilakukan jika elemen minimum/maksimum sudah ada di posisi pertama.
Baca Juga: Contoh Program Array C++ Seperti Apa?
4. Perubahan Subarray
Tahapan selanjutnya dalam selection sort adalah perubahan subarray. Hal ini bisa dilakukan setelah pertukaran. Elemen yang telah ditemukan posisinya dalam urutan sesuai dipindahkan ke subarray terurut.
Artinya, tiap iterasi memiliki batas antara subarray yang sudah dan belum diurutkan bergeser satu elemen ke kanan.
5. Iterasi
Terakhir adalah iterasi. Proses ini merupakan pengulangan tahapan 2 hingga 4 untuk setiap elemen subarray yang belum diurutkan.
Tiap iterasi, elemen pertama dari subarray yang belum diurutkan dianggap sudah berada di posisi sesuai dalam subarray terurut.
Kekurangan dan Kelebihan Selection Sort
Selection sort adalah algoritma pengurutan yang sederhana dan mudah dipahami. Meski begitu, selection sort juga memiliki kelebihan dan kekurangan. Berikut adalah beberapa kelebihan dan kekurangan dari algoritma selection sort:
Kelebihan Selection Sort
Berikut adalah beberapa kelebihan selection sort yang menjadikannya unggul: Sederhana dan Mudah Dipahami: Hal ini membuat selection sort mudah dipahami dan digunakan oleh semua orang, termasuk pemula. Penggunaan Memori yang Efisien: Selection sort adalah algoritma pengurutan in-place. Artinya, ini tidak memerlukan ruang tambahan signifikan. Sebab, algoritma ini hanya memerlukan ruang untuk penyimpanan sementara. Tidak Sensitif Terhadap Urutan Awal: Performa algoritma tidak dipengaruhi oleh urutan awal elemen dalam array. Mulai dari array yang sudah diurutkan, terurut terbalik, atau acak. Waktu eksekusinya akan tetap konsisten. Performa yang Dapat Diprediksi: Setiap elemen memerlukan pencarian melalui seluruh bagian yang belum diurutkan untuk menemukan elemen minimum/maksimum. Jumlah perbandingan yang dibutuhkan selalu tetap, menjadikan performanya dapat diprediksi.
Kekurangan Selection Sort
Beberapa kekurangan selection sort yang perlu dipertimbangkan adalah:
Efisiensi Waktu yang Rendah: Kompleksitas waktunya menjadikan ini kurang efisien untuk mengurutkan data set yang besar.
Tidak Stabil: Algoritma ini dapat mengubah urutan elemen yang nilainya sama. Artinya, jika ada dua elemen dengan nilai yang sama, posisi relatif mereka dalam array mungkin berubah setelah pengurutan.
Tidak Adapatif: Selection sort melakukan jumlah operasi yang sama terlepas dari seberapa terurutnya array awal. Artinya, tidak ada peningkatan efisiensi waktu untuk array yang sudah sebagian atau sepenuhnya diurutkan.
Tidak Skalabel untuk Data Set Besar: Performanya yang menurun secara signifikan dengan peningkatan ukuran data set, selection sort tidak disarankan untuk aplikasi pengurutan data skala besar.
Baca Juga: 10 Fungsi yang Mungkin Diperlukan dalam Proyek Typescript Kamu
Implementasi Selection Sort
Untuk memberikanmu pemahaman mendalam, MinDi akan siapkan contoh implementasinya. Algoritma selection sort akan digunakan pada urutan angka [64, 25, 12, 22, 11] untuk mengurutkan array menjadi [11, 12, 22, 25, 64].
Berikut adalah contoh kode implementasi dengan Python:
Itulah pembahasan lengkap mengenai selection sort yang meliputi pengertian hingga implementasinya. Dari penjelasan di atas, dapat disimpulkan selection sort adalah salah satu algoritma pengurutan yang relatif sederhana untuk digunakan.
Dengan algoritma ini, pengurutan data bisa menjadi lebih mudah. Berbicara tentang data, MinDi punya rekomendasi program buat kamu yang ingin terjun ke industri ini.
Bagi Sobat MinDi yang suka dengan data, MinDi rekomendasikan kamu untuk ikut Bootcamp Data Science Dibimbing.id. Program ini cocok banget buat kamu yang mau belajar data science dari nol sampai mahir.
Kamu bisa belajar konsep dasar, berbagai aplikasi data, tools, scope of work, hingga praktik dengan real-case project. Terlebih lagi, pembelajarannya dilengkapi dengan silabus beginner-friendly dan panduan praktisi ahli.
Menarik kan? Yuk, segera daftar dan mulai karirmu di data science bareng Dibimbing.id!
Tags
Siti Khadijah Azzukhruf Firdausi
Khadijah adalah SEO Content Writer di Dibimbing dengan pengalaman menulis konten selama kurang lebih setahun. Sebagai lulusan Bahasa dan Sastra Inggris yang berminat tinggi di digital marketing, Khadijah aktif berbagi pandangan tentang industri ini. Berbagai topik yang dieksplorasinya mencakup digital marketing, project management, data science, web development, dan career preparation.