Pada materi kali ini memang lebih membahas masalah sorting, apa itu sorting dan bermacam-macam sorting pada java. untuk itu kali ini mencoba sedikit bercuap-cuap dengan itu.
Macam-macam Sorting:
- Buble Sort :
Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing itemdalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.

- Selection Sort :
Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.

- Insertion Sort :
Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.

- Shell Sort :
Merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir

- Merge Sort :
Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort.
1. Divide
Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
2. Conquer
Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif
3. Kombinasi
Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan
Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

- Quick Sort :
Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah – langkah sebagai berikut :
1. Divide
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort, langkah ”kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen pada sub-array

- Heap Sort:
Heap sort adalah sorting yang menggunakan struktur data heap, dengan nilai parent selalu lebih besar dari pada nilai childnya.
Algoritma:
- Buat suatu heap.
- Ambil isi dari root masukkan kedalam sebuah array.
- Hapus element root dengan mempertahankan properti heap.
- Ulangi sampai tree menjadi kosong

- Bucket Sort :
Algoritma:
- Cari nilai maksimum dan minimum di array
- Inisialisasi array bucket Daftar <> unsur (ukuran maxValue – minValue + 1)
- Pindahkan elemen dalam array untuk bucket
- Write bucket keluar (dalam rangka) ke array yang asli
- Radix Sort:
Secara kompleksitas waktu, radix sort termasuk ke dalam Divide and Conquer.Namun dari segi algoritma untuk melakukan proses pengurutan, radix sort tidak termasuk dalam Divide and Conquer.
Radix sortmerupakan sebuah algoritma pengurutan yang mengatur pengurutan nilai tanpa melakukan beberapa perbandingan pada data yang dimasukkan.
Nah untuk itu jika ada pertanyaan perihal sorting seperti ini pasti bisa kan :
1. Apakah sorting harus menggunakan Array?
2. Bisakah tanpa menggunakan Array?
3. Menurut Anda dari teknik pengurutan yang ada pada Slide, teknik mana yang paling mudah dipahami?
Jawabannya :
- Terkait hal berikut Apakah sorting harus menggunakan array ? Menurut pemahaman saya, penggunaan sorting berkaitan dengan array untuk itu array dibutuhkan untuk penggunaan sorting, dalam case ini menurut saya berlaku pada Insertion sort. menurut pemahaman dan sumber, insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan.
Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan. - Bisakah tanpa menggunakan Array? menurut buku itu, sorting tidak harus menggunakan array namun bisa juga dengan menggunakan namanya binary search, yaitu penggunaan sorting dengan memanfaatkan suatu data yang sudah dalam keadaan terurut itu berlaku terutama data bersifat angka. barangkali ada kesalahan mungkin bisa ditambahkan atau dikoreksi. Terimakasih.
- Menurut Anda dari teknik pengurutan yang ada pada Slide, teknik mana yang paling mudah dipahami? Buble Sort, Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. dimana pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan eksekusi dilakukan berurutan dari nilai kekecil sampai terbesar ataupun sebaliknya dari besar kekecil. suatu list berpasangan pada buble sort menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.
berikut link refrensi video buble sort : https://www.youtube.com/watch?v=lyZQPjUT5B4
Sumber : https://lunarphue.wordpress.com/information-technology/asd/macam-macam-sorting/
