Metode - Metode Algoritma Sorting Dalam Pemrograman
Kali ini kita akan membahas metode - metode Algoritma Sorting yang digunakan pada Bahasa Pemrograman pada umumnya termasuk Python.
1. Bubble Sort
Bubble Sort merupakan metode sorting yang paling sederhana namun paling tidak efisien. Cara kerja Bubble Sort meliputi membandingkan dan menukar pasangan elemen yang berdekatan berulang kali hingga seluruh array terurut. Metode ini seringkali digunakan pada data yang berjumlah kecil dan akan memakan waktu yang sangat lama jika digunakan pada data yang berjumlah besar.
2. Selection Sort
Cara kerja Selection Sort meliputi mencari elemen terkecil/terbesar dari bagian yang belum diurutkan berulang kali dan menukarnya ke posisi yang benar di awal/akhir array. Metode ini melakukan sedikit pertukaran dibandingkan Bubble Sort.
3. Insertion Sort
Metode Insertion Sort mirip dengan cara orang bermain kartu. Caranya menyisipkan kartu lembar demi selembar kartu dan menyisipkannya ke tempat atau urutan yang seharusnya. Insertion Sort menganggap elemen pertama sudah terurut, kemudian menyisipkan elemen berikutnya ke posisi yang tepat di bagian yang sudah terurut. Sangat efisien untuk data yang berjumlah kecil dan hampir terurut.
4. Merged Sort
Merged Sort menggonakan metode Divide and Conquer (Bagi dan Taklukan). Cara kerjanya ialah memecah list menjadi dua dari titik tengah list hingga sublist hanya berisikan satu elemen kemudian menggabungkan sublist secara terurut.
5. Quick Sort
Quick Sort adalah metode yang paling efisien dan paling sering digunakan pada saat ini. Cara kerjanya kurang lebih sama seperti Merged Sort tetapi memilih sebuah elemen sebagai pivot dan mempartisi array menjadi dua sub-array yakni elemen yang lebih kecil dari pivot dan elemen yang lebih besar dari pivot. Kemudian mengurutkan sub-array secara rekursif.
Contoh Program Python beserta outputnya
Output:
Data: [6, 2, 9, 1, 3, 5, 7, 2] Menu 1. Bubble Sort 2. Selection Sort 3. Insertion Sort 4. Merge Sort 5. Quick Sort 6. Exit Silahhkan pilih operasi: 1 Bubble Sort --- Visualisasi Proses Data awal: [6, 2, 9, 1, 3, 5, 7, 2] Step 1 [6, 2, 9, 1, 3, 5, 7, 2] ^ ^ (bandingkan) Swap > [2, 6, 9, 1, 3, 5, 7, 2] Step 2 [2, 6, 9, 1, 3, 5, 7, 2] ^ ^ (bandingkan) Tidak swap Step 3 [2, 6, 9, 1, 3, 5, 7, 2] ^ ^ (bandingkan) Swap > [2, 6, 1, 9, 3, 5, 7, 2] Step 4 [2, 6, 1, 9, 3, 5, 7, 2] ^ ^ (bandingkan) Swap > [2, 6, 1, 3, 9, 5, 7, 2] Step 5 [2, 6, 1, 3, 9, 5, 7, 2] ^ ^ (bandingkan) Swap > [2, 6, 1, 3, 5, 9, 7, 2] Step 6 [2, 6, 1, 3, 5, 9, 7, 2] ^ ^ (bandingkan) Swap > [2, 6, 1, 3, 5, 7, 9, 2] Step 7 [2, 6, 1, 3, 5, 7, 9, 2] ^ ^ (bandingkan) Swap > [2, 6, 1, 3, 5, 7, 2, 9] Hasil akhir: [2, 6, 1, 3, 5, 7, 2, 9] Step 8 [2, 6, 1, 3, 5, 7, 2, 9] ^ ^ (bandingkan) Tidak swap Step 9 [2, 6, 1, 3, 5, 7, 2, 9] ^ ^ (bandingkan) Swap > [2, 1, 6, 3, 5, 7, 2, 9] Step 10 [2, 1, 6, 3, 5, 7, 2, 9] ^ ^ (bandingkan) Swap > [2, 1, 3, 6, 5, 7, 2, 9] Step 11 [2, 1, 3, 6, 5, 7, 2, 9] ^ ^ (bandingkan) Swap > [2, 1, 3, 5, 6, 7, 2, 9] Step 12 [2, 1, 3, 5, 6, 7, 2, 9] ^ ^ (bandingkan) Tidak swap Step 13 [2, 1, 3, 5, 6, 7, 2, 9] ^ ^ (bandingkan) Swap > [2, 1, 3, 5, 6, 2, 7, 9] Hasil akhir: [2, 1, 3, 5, 6, 2, 7, 9] Step 14 [2, 1, 3, 5, 6, 2, 7, 9] ^ ^ (bandingkan) Swap > [1, 2, 3, 5, 6, 2, 7, 9] Step 15 [1, 2, 3, 5, 6, 2, 7, 9] ^ ^ (bandingkan) Tidak swap Step 16 [1, 2, 3, 5, 6, 2, 7, 9] ^ ^ (bandingkan) Tidak swap Step 17 [1, 2, 3, 5, 6, 2, 7, 9] ^ ^ (bandingkan) Tidak swap Step 18 [1, 2, 3, 5, 6, 2, 7, 9] ^ ^ (bandingkan) Swap > [1, 2, 3, 5, 2, 6, 7, 9] Hasil akhir: [1, 2, 3, 5, 2, 6, 7, 9] Step 19 [1, 2, 3, 5, 2, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Step 20 [1, 2, 3, 5, 2, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Step 21 [1, 2, 3, 5, 2, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Step 22 [1, 2, 3, 5, 2, 6, 7, 9] ^ ^ (bandingkan) Swap > [1, 2, 3, 2, 5, 6, 7, 9] Hasil akhir: [1, 2, 3, 2, 5, 6, 7, 9] Step 23 [1, 2, 3, 2, 5, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Step 24 [1, 2, 3, 2, 5, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Step 25 [1, 2, 3, 2, 5, 6, 7, 9] ^ ^ (bandingkan) Swap > [1, 2, 2, 3, 5, 6, 7, 9] Hasil akhir: [1, 2, 2, 3, 5, 6, 7, 9] Step 26 [1, 2, 2, 3, 5, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Step 27 [1, 2, 2, 3, 5, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Hasil akhir: [1, 2, 2, 3, 5, 6, 7, 9] Step 28 [1, 2, 2, 3, 5, 6, 7, 9] ^ ^ (bandingkan) Tidak swap Hasil akhir: [1, 2, 2, 3, 5, 6, 7, 9] Hasil akhir: [1, 2, 2, 3, 5, 6, 7, 9]
Komentar
Posting Komentar