Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:
1. Urut naik (ascending) Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar 2. Urut turun (descending) Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil. Mengapa harus melakukan sorting data? Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun melakukan penggabungan data. Metode-metode sorting meliputi: 1. Insertion Sort (Metode Penyisipan) 2. Selection Sort (Metode Seleksi) 3. Bubble sort(Metode Gelembung) 4. Shell Sort (Metode Shell) 5. Quick Sort (Metode Quick) 6. Merge Sort (Metode Penggabungan)
Pengertian/Konsep Buble Sort - Setelah sebelum nya kita telah mengulaspengurutan/soring dengan metode selection sort ,maka kali ini di lanjutkan dengan metode bubble short. Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.
Metode Buble Sort merupakan metode yang paling simpel Metode Buble Sort mudah dipahami algoritmanya
Kelemahan Bubble Sort Metode Bubble Sort merupakan metode pertama yang paling banyak dipelajari oleh programmer. Karena lebih sederhana. Akan tetapi Bubble Sort sendiri memiliki kelemahan/kekurangan. Seperti : 1. Bubble Sort tidak efisien dan menyita lebih banyak waktu prosessor dibandingkan dengan metode sorting yang lain. 2. Penggunaan Bubble Sort masih dapat terlihat baik jika jumlah data/elemen yang di inputkan tidak lebih dari 30 atau kurang dari 30 elemen. Algoritma Bubble Sort 1. Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data kei). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z). 2. Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 ; n-1 dgn n. 3. Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst. 4. Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi. Contoh Kasus Bubble Sort Misalkan kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini (ascending) dengan menggunakan bubble sort. Berikut ini adalah proses yang terjadi: Iterasi ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran) Iterasi ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran) Iterasi ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran) Iterasi ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses selesai Berikut ini contoh listing program atau kode program metode bubble sort dalam bahasa C/C++
Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung. Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak
ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat. Artinya Algoritma ini akan menggeser nilai yang terkecil atau terbesar (sesuai dengan jenis pengurutan, ascending atau descending) ke posisi ujung dari daftar. Demikian seterusnya hingga semua daftar dalam keadaan terurut. Proses dasar yang terjadi dalam algoritma ini adalah proses pertukaran nilai (swapping).
. PENGERTIAN Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Metode Insertion Sort adalah proses pengurutan yang dimulai dari data ke-2 sampai dengan data ke- N, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Algoritma Pemrograman Lanjut
Kelebihan Insertion Sort: Implementasi yang sederhana Merupakan online algorithmic, yang berarti bisa langsun melakukan sort setiap ada data baru Mangkus dalam pengelolahan data kecil Mangkus dalam data yang sudah sebagian terurut Stabil. Algoritma Pemrograman Lanjut
Proses Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai "pass"). Indeks dimulai dari 0. proses sorting dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan
Contoh Urutkan data di bawah ini secara ascending dengan metode insertion sort. Penyelesainanya: Pass 1 dimulai dari kolom L[1], X=L[1]=10. 15 >X(10), maka geser 15 ke kanan. Kemudian insert X menggantikan 15. Algoritma Pemrograman Lanjut
Lanjutan Pass 2 dimulai dari L[2], X=L[2]=7. 15 >7, maka geser 15 ke kanan. 10 >7,maka geser 10 ke kanan. Kemudian insert X menggantikan 10. Algoritma Pemrograman Lanjut
Lanjutan Pass 3 dimulai dari L[3], X = L[3] = 22. 15 < 22, maka proses selesai. Proses berlanjut sampai Pass 6. Algoritma Pemrograman Lanjut
Lanjutan Hasil tiap pass dabat di gambarkan sebagai berikut: Algoritma Pemrograman Lanjut