Pencarian Data Pengurutan Data Tumpukan dan Antrean
B. Pengurutan Data
Secara garis besarnya, sorting (pengurutan) adalah suatu proses penyusunan kembali kumpulan objek menggunakan tata aturan tertentu. Beberapa algoritma Python yang cukup populer dalam
mengurutkan data, misalnya bubble sort, bucket sort, comb sort, counting sort, heap sort, insertion sort, merge sort, quick sort, radix sort, selection sort, dan shell sort. Misalnya insertion sort
merupakan metode pengurutan data dengan menempatkan setiap elemen data pada posisinya dengan cara melakukan perbandingan. Metode ini sama seperti mengurutkan kartu, dimana jika sebuah kartu dipindahtempatkan posisinya, maka kartu lainnya akan bergeser sesuai kondisi pemindahan kartu tersebut. Dengan demikian, penggunaan algoritma sorting sangat memudahkan pengguna dan efisien untuk melakukan pengurutan data. Terlebih jika sewaktu-waktu ada beberapa kesalahan dalam metode penyortingan sangat mudah untuk mengubah proses pengurutannya karena metode sorting ini hanya menggunakan satu rumus utama yang digunakan untuk semua data.
Pengurutan
https://www.yudana.id/wp-content/uploads/2017/03/sorting.png Tugas 1.8
Kerjakan tugas berikut secara mandiri!
Lakukan analisislah keterkaitan dengan pengaplikasian algoritma sorting. Tulislah hasil analisis di buku tugas dan kumpulkan kepada guru sebagai salah satu instrumen penilaian!
Guna menambah pengetahuan yang berkaitan dengan materi pengurutan (sorting), maka kunjungi QR code berikut!
https://www.scribd.com/document/565415309/Qrb2b-Sorting
Terdapat beberapa teknik (algoritma) untuk melakukan pengurutan seperti berikut.
1. Selection Sort
Bentuk kombinasi antara sorting dan searching adalah Selection Sort. Pengurutan (sorting) sebagai proses dasar yang ada dalam sebuah algoritma dan struktur data. Tujuan utama dari proses pengurutan (sorting) adalah untuk mengurutkan data berdasarkan keinginan baik itu dari yang terendah maupun yang tertinggi, sehingga data yang dihasilkan akan lebih terstruktur, teratur dan sesuai dengan kebutuhan.
a. Selection sort ascending
Proses pengurutan dengan menggunakan metode selection sort secara terurut naik diawali dengan mencari data terkecil dari data pertama sampai data terakhir, kemudian di tukar posisinya dengan data pertama. Ada dua macam urutan yang biasa digunakan dalam suatu proses sorting yaitu urut naik (ascending) dan urut turun (descending) dengan mengurutkan dari data yang memiliki nilai paling besar sampai paling kecil. Pengurutan ascending dilakukan dengan memilih elemen terbesar dan menempatkan pada posisinya, kemudian mencari element terbesar berikutnya dan menempatkan pada tempatnya, dan seterusnya. Apabila terdapat n buah data yang akan di urutkan, maka membutuhkan (x - 1) langkah pengurutan, dimana data terakhir yaitu data ke-x tidak perlu di urutkan karena hanya tinggal satu-satunya.
b. Selection sort descending
Proses pengurutan dengan metode seleksi diawali dengan mencari data terkecil dari data pertama sampai data terakhir. Kemudian data terkecil ditukar dengan data pertama. Dengan demikian, data pertama sekarang memiliki nilai paling kecil dibanding data yang lain. Pada tahap selanjutnya, data terkecil Anda cari mulai dari data kedua sampai terakhir. Data terkecil yang Anda peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua elemen dalam keadaan terurutkan.
Prosedur pengurutan menggunakan metode seleksi dapat dilihat pada kode program berikut.
Metode seleksi
Sumber : dokumen penerbit 2. Bubble Sort
Algoritma bubble sort (pengurutan gelembung) cukup populer dan sederhana. Algoritma bubble sort termasuk ke dalam kategori algoritma comparison sort, karena menggunakan perbandingan pada operasi antar elemennya. Proses pada bubble sort dilakukan dengan pertukaran data di sebelahnya secara terus menerus hingga dalam suatu iterasi tertentu tidak ada lagi perubahan atau pertukaran. Jika tidak ada perubahan berarti data sudah terurut. Analogi algoritma bubble sort adalah sebagai berikut.
1) Membandingkan nilai pada data ke satu dengan data ke dua.
2) Apabila nilai data ke satu lebih besar dari data ke dua maka tukar posisinya.
3) Selanjutnya data yang lebih besar tersebut dibandingkan lagi dengan data ketiga.
4) Apabila data ke tiga lebih kecil dari data ke dua maka tukar posisinya.
5) Begitu seterusnya hingga semua data yang ada menjadi terurut.
Metode gelembung (bubble sort) sering juga disebut dengan metode penukaran (exchange sort) yaitu sebagai metode yang mengurutkan data dengan cara membandingkan masing-masing elemen, kemudian melakukan penukaran bila perlu. Metode jenis ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lainnya, justru metode ini termasuk metode yang paling tidak efisien. Adapun langkah-langkah metode gelembung (bubble sort) diawali dengan membandingkan nilai pada data ke-1 dengan data ke-2. Jika nilai data ke-1 lebih besar dari data ke-2 maka tukar posisinya. Kemudian data yang lebih besar tersebut dibandingkan lagi dengan data ke-3. Jika data ke- 3 lebih kecil dari data ke-2 maka tukar posisinya, dan begitu seterusnya sampai semua data yang ada jadi terurut. Adapun Contoh script dengan Python adalah sebagai berikut.
Sumber : dokumen penerbit
Guna menambah pengetahuan yang berkaitan dengan materi pengurutan (sorting), maka kunjungi QR code berikut!
https://www.scribd.com/document/565417037/Qrb2b-Selection-Sort-Dan-Bubble-Sort Tugas 1.9
Kerjakan tugas berikut secara berkelompok!
Diskusikan bersama kelompok Anda terkait dengan perbedaan antara merge sort dengan quick sort.
Kemudian presentasikan hasil diskusi di depan kelas dan mintalah kelompok lain memberikan tanggapan!
3. Merge sort
Algoritma merge sort (metode penggabungan) biasanya digunakan pada pengurutan berkas. Prinsip dari metode penggabungan diawali dengan memberikan dua kumpulan data yang sudah dalam keadaan urut. Kedua kumpulan data tersebut harus dijadikan satu table sehingga dalam keadaan urut.
Algoritma merge sort dirumuskan dalam 3 langkah berpola divide and conquer. Adapun langkah kerja dari Merge sort diawali dengan Divide untuk memilah elemen–elemen dari rangkaian data menjadi dua bagian. Selanjutnya melakukan Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif. Setelah itu mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan. Proses rekursi berhenti jika mencapai elemen dasar. Penyebab hal ini terjadi adalah bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menAndakan bahwa bagian tersebut telah terurut sesuai rangkaian.
4. Quick sort (partition exchange sort)
Metode Quick diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1962. Untuk mempertinggi efektifitas dari metode quick sort, digunakan teknik menukarkan dua elemen dengan jarak yang cukup besar. Algoritma Quick sort berdasar pada pola divide and conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah–langkah divide dengan memilah rangkaian data menjadi dua sub-rangkaian yaitu sebagai berikut.
a. Setiap elemen adalah kurang dari atau sama dengan.
b. Setiap elemen adalah lebih besar atau sama dengan elemen.
Adapun pola conquer dilakukan dengan tujuan mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort, langkah kombinasi tidak dilakukan karena telah terjadi pengurutan elemen–elemen pada sub-array. Dalam hal ini, proses penukaran dengan metode quick diawali dengan memilih data tertentu (pivot). Metode quick sort dibedakan menjadi rekursif dan non rekursif.
Implementasi secara non rekursif memerlukan dua buah tumpukan (stack) yang digunakan yang digunakan untuk menyimpan batas-batas subbagian. Pada prosedur ini menggunakan tumpukan yang bertipe record (struktur) yang terdiri dari elemen kiri (untuk mencatat batas kiri) dan kanan (untuk mencatat batas kanan). Tumpukan dalam hal ini dideklarasikan sebagai array.
Tantangan
Ayo lengkapi tabel berikut ini.
Tabel 1.5 Soal Tantangan No. Teknik Algoritma untuk Melakukan
Pengurutan
Pengertian Langkah Kerja 1. Selection Sort
2. Bubble Sort 3. Merge sort
4. Quick sort (partition exchange sort)