PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara menaik (ascending) maupun menurun (descending)
Mengapa Data Diurutkan? Data yang sudah diurut mempunyai beberapa keuntungan [Rinaldi 2000]. Data yang telah tersusun urut mempercepat proses pencarian. Selain itu, data yang sudah terurut dapat langsung diketahui harga maksimum dan minimumnya
Contoh Data yang diurutkan Buku Telepon Kamus
Metode Pengurutan Maximum sort Insertion Sort Buble Sort Heap Sort Shell Sort Quick Sort Merge Sort, dll
Yang akan kita bahas Buble Sort dan Quick Sort
Metode Bubble Buble bekerja dengan meniru prilaku balon, yaitu balon dengan berat lebih kecil akan mengambil posisi lebih atas dibandingkan dengan balon yang mempunyai berat lebih besar (Pengurutan lebih kecil ke besar juga bisa untuk pengurutan dengan arah turun).
Contoh Sekumpulan Data Acak 9 5 8 3
Tahap Pertama Membandingkan bilangan pertama dengan bilangan-bilangan lain, bila bilangan lain lebih kecil dari bilangan pertama maka akan dilakukan pertukaran tempat antara kedua bilangan.
Pengurutan Tahap Pertama 9 5 5 3 5 9 9 9 8 8 8 8 3 3 3 5
Tahap Dua Hasil urutan pada tahap pertama menjadi acuan bagi tahap kedua, di mana bilangan pertama telah menempati posisi yang benar, sehingga pada tahap kedua bilangan pertama tidak lagi dibandingkan dengan bilangan lain.
Pengurutan Tahap Kedua 3 3 3 9 8 5 8 9 9 5 5 8
Tahap Tiga Membandingkan bilangan ketiga dengan bilangan ke empat. Pada akhir tahap ini menempatkan bilangan ketiga pada posisi yang benar yaitu bilangan terkecil ketiga
Pengurutan Tahap Ketiga 3 3 5 5 9 8 8 9 DATA TELAH SELESAI DIURUTKAN
Metode Quick
Metode Quick Langkah Pertama Langkah pertama yaitu menentukan elemen acuan pembandingan (elemen pivot). Elemen pivot dapat dipilih secara acak dari ke tujuh bilangan. Dalam hal ini diambil bilangan ke empat sebagai elemen pivot.
Metode Quick Sekumpulan Data Acak 1 6 5 4 3 2 7
Langkah ke-2 Langkah selanjutnya adalah membandingkan antara pivot untuk untuk semua bilangan yang ada tujuannya adalah untuk meletakkan bilangan-bilangan yang bernilai lebih kecil ke sebelah kiri pivot dan bilangan-bilangan yang lebih besar ke sebelah kanan.
1 6 5 4 3 2 7 Pembandingan dilakukan dua arah kiri pencacah i dan kanan penjajah j i=1 j=7 1 6 5 4 3 2 7 Bilangan ke-j dan ke-j terhadap pivot sudah ok tidak perlu pertukaran
Pada tahap ini bilangan ke-2 dan bilangan ke-6 tidak pada tempatnya perlu pertukaran seperti slide berikutnya i=2 j=6 1 6 5 4 3 2 7
Langkah ini dilakukan sampai nilai i lebih besar dari j (seperti slide berikutnya i lebih besar dari j) 1 6 3 4 5 2 7
Selanjutnya bil ke-1 s/d ke-3 dan ke-3 dan bil ke-4 s/d bil ke-7 kita perlakukan seperti sebelumnya 6 4 2 5 7 1 3 6 4 2 5 7 1 3 6 4 2 5 7