Algoritma Sort: Pengertian, Jenis, Cara Kerja, dan Contoh Lengkap
Apa Itu Algoritma Sort?
Algoritma sort adalah metode atau langkah-langkah logis untuk mengurutkan sejumlah data. Data yang diurutkan dapat berupa angka, huruf, nama siswa, nilai barang, dan lain-lain.
Pengurutan dilakukan untuk:
-
memudahkan proses pencarian (searching),
-
mempercepat pengolahan data,
-
menghindari duplikasi,
-
meningkatkan performa aplikasi atau sistem.
Mengapa Algoritma Sort Penting?
Beberapa alasan utama pentingnya algoritma sort:
-
Mempercepat akses data – data yang sudah terurut lebih mudah dicari.
-
Digunakan dalam hampir semua aplikasi modern – mulai dari marketplace, game, hingga machine learning.
-
Membantu memahami struktur data dan algoritma lanjutan.
-
Menjadi dasar materi untuk kuliah Pemrograman dan Struktur Data.
Jenis-Jenis Algoritma Sort dan Cara Kerjanya
Berikut beberapa algoritma pengurutan paling populer, lengkap dengan cara kerja dan kompleksitasnya.
🔹 1. Bubble Sort
Bubble Sort adalah algoritma pengurutan sederhana yang bekerja dengan cara membandingkan elemen secara berpasangan, lalu menukarnya jika urutannya salah.
Cara Kerja Bubble Sort
-
Bandingkan dua elemen yang berdekatan.
-
Jika elemen kiri lebih besar, lakukan pertukaran.
-
Ulangi hingga tidak ada pertukaran.
Bandingkan dua elemen yang berdekatan.
Jika elemen kiri lebih besar, lakukan pertukaran.
Ulangi hingga tidak ada pertukaran.
Kelebihan
-
Mudah dipahami dan diimplementasikan.
Mudah dipahami dan diimplementasikan.
Kekurangan
-
Lambat untuk data besar (O(n²)).
Lambat untuk data besar (O(n²)).
🔹 2. Selection Sort
Selection Sort mencari elemen terkecil dalam array, kemudian menempatkannya di posisi awal.
Cara Kerja Selection Sort
-
Cari elemen terkecil dari seluruh list.
-
Tukar dengan elemen indeks pertama.
-
Ulangi untuk indeks berikutnya.
Cari elemen terkecil dari seluruh list.
Tukar dengan elemen indeks pertama.
Ulangi untuk indeks berikutnya.
Kelebihan
-
Lebih sedikit pertukaran data.
Lebih sedikit pertukaran data.
Kekurangan
-
Masih memiliki kompleksitas O(n²).
Masih memiliki kompleksitas O(n²).
🔹 3. Insertion Sort
Insertion Sort bekerja dengan cara menyisipkan elemen ke posisi yang benar pada bagian list yang sudah terurut.
Cara Kerja Insertion Sort
-
Mulai dari elemen kedua.
-
Pindahkan elemen ke posisi yang tepat di subarray terurut.
-
Ulangi hingga akhir array.
Mulai dari elemen kedua.
Pindahkan elemen ke posisi yang tepat di subarray terurut.
Ulangi hingga akhir array.
Kelebihan
-
Sangat efisien untuk data kecil atau hampir terurut.
Sangat efisien untuk data kecil atau hampir terurut.
Kekurangan
-
Kurang efisien untuk data besar (O(n²)).
Kurang efisien untuk data besar (O(n²)).
🔹 4. Merge Sort
Merge Sort menggunakan teknik divide and conquer dengan membagi list menjadi dua bagian, mengurutkan masing-masing, lalu menggabungkannya.
Cara Kerja Merge Sort
-
Bagi array menjadi dua bagian.
-
Urutkan kedua bagian secara rekursif.
-
Gabungkan dengan proses merge.
Bagi array menjadi dua bagian.
Urutkan kedua bagian secara rekursif.
Gabungkan dengan proses merge.
Kelebihan
-
Stabil dan sangat cepat untuk data besar.
Stabil dan sangat cepat untuk data besar.
Kekurangan
-
Membutuhkan memori tambahan.
Membutuhkan memori tambahan.
Kompleksitas
-
O(n log n)
O(n log n)
🔹 5. Quick Sort
Quick Sort memilih satu elemen sebagai pivot, kemudian mempartisi array menjadi dua bagian berdasarkan pivot tersebut.
Cara Kerja Quick Sort
-
Pilih pivot.
-
Bagi data menjadi lebih kecil dan lebih besar dari pivot.
-
Rekursif ke dua bagian tersebut.
Pilih pivot.
Bagi data menjadi lebih kecil dan lebih besar dari pivot.
Rekursif ke dua bagian tersebut.
Kelebihan
-
Sangat cepat untuk data besar.
Sangat cepat untuk data besar.
Kekurangan
-
Bisa O(n²) jika pivot buruk.
Bisa O(n²) jika pivot buruk.
🔹 6. Heap Sort
Heap Sort menggunakan struktur data heap untuk mengurutkan data.
Cara Kerja Heap Sort
-
Bangun struktur heap dari array.
-
Ambil elemen terbesar/terkecil.
-
Rekonstruksi heap hingga semua elemen terurut.
Bangun struktur heap dari array.
Ambil elemen terbesar/terkecil.
Rekonstruksi heap hingga semua elemen terurut.