Salah satu bagian penting dari
struktur data adalah sorting atau
pengurutan data. Ada banyak sekali Algoritma pengurutan data di dunia komputer,
yatu : bubble sort, selection sort,
insertion sort, exchange sort, quick
sort, merge sort, dll.
Setiap algoritma memiliki
kelebihan dan kekurangan masing – masing, kita akan mempelajari cukup 4
algoritma saja, yaitu bubble sort, selection sort, insertion sort, dan exchange
sort. Bila ingin mempelajari algoritma yang lain silakan berkunjung ke www.wikipedia.org .
Bubble Sort
Perhatikan kode berikut :
Task 1
1. Apa
yang dilakukan program diatas ?
2. Lakukan
untuk pengurutan sebaliknya!
3. Pengurutan
diatas dilakukan dari depan atau belakang? Buat program untuk sebaliknya!
4. Buat
program agar user bisa inputkan data
secara dinamis, baik untuk ascending,
maupun descending!
5. Tambahkan
kode agar user dapat melihat proses
pengurutan data!
Note : Ascending adalah
pengurutan data dari terkecil menuju terbesar, sedangkan descending adalah
pengurutan dari data terbesar menuju terkecil.
Exchange Sort
Perhatikan kode berikut :
Task 2
1. Apa
yang dilakukan program diatas ?
2. Lakukan
untuk pengurutan sebaliknya!
3. Buat
program agar user bisa inputkan data
secara dinamis, baik untuk ascending,
maupun descending!
4. Tambahkan
kode agar user dapat melihat proses
pengurutan data!
5. Apa
perbedaan antara exchange sort dan bubble sort!
Selection Sort
Perhatikan kode berikut :
Task 3
1. Apa
yang dilakukan program diatas ?
2. Lakukan
untuk pengurutan sebaliknya!
3. Apa
fungsi pos?
4. Buat
program agar user bisa inputkan data
secara dinamis, baik untuk ascending,
maupun descending!
5. Tambahkan
kode agar user dapat melihat proses
pengurutan data!
Insertion Sort
Perhatikan kode berikut :
Task 4
1. Apa
yang dilakukan program diatas ?
2. Lakukan
untuk pengurutan sebaliknya!
3. Apa
fungsi tampung?
4. Buat
program agar user bisa inputkan data
secara dinamis, baik untuk ascending,
maupun descending!
5. Tambahkan
kode agar user dapat melihat proses
pengurutan data!
Task 5
1. Apa
yang menjadi kesalahan pada program diatas?
2. Coba
anda perbaiki!
Task 6
1. Gabungkan
4 sorting diatas menjadi 1 program menu pilihan untuk mengurutkan data kode
pos.
2. User
pertama kali harus memasukkan data terlebih dahulu, apabila tidak ada data,
maka pengurutan data tidak bisa berjalan.
3. Data
yang masuk hanya bisa berupa angka.
4. Semua
metode mengurutkan secara ascending.
5. Pada
tiap metode, user dapat melihat proses pengurutan data.
TAMBAHAN
Quick Sort
Quick sort merupakan algoritma
kedua tercepat setelah merge sort. Quick sort disebut juga divide and conquer algorithm. Quick sort memiliki average case nLogn
Langkah-langkah quick sort :
1.
SELECT
Pilih sebuah element , elemen
ini kita sebut pivot
2.
DIVIDE
Kemudian pisahkan data
menjadi 2 bagian, bagian yang lebih
kecil dari pivot dan bagian yang lebih
besar dari pivot
3.
RECUR
and CONQUER
Kemudian 2 bagian tersebut
diurutkan secara rekursif dengan memanggil fungsi itu sendiri, misal quicksort()
Perhatikan kode dibawah ini dan silakan di coba deprogram
anda masing-masing: