Materi Kuliah : Struktur Data & Algoritma
Fakultas Teknik UPI – Y.A.I
# 05
PENGERTIAN SORTING
▪ Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.
▪ Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
▪ Pengurutan dapat dilakukan secara Ascending (urut naik) dan Descending (urut turun)
▪ Contoh:
▪ Data Acak : 5 6 8 1 3 25 10
▪ Ascending : 1 3 5 6 8 10 25
▪ Descending : 25 10 8 6 5 3 1
METODE SORTING
▪ Pengurutan berdasarkan perbandingan (Comparison-based sorting)
▪ Bubble sort, Exchange sort
▪ Pengurutan berdasarkan prioritas (Priority Queue sorting method)
▪ Selection sort, Heap sort (menggunakan tree)
▪ Pengurutan berdasarkan penyisipan dan penjagaan terurut (Insert and keep sorted method)
▪ Insertion sort, Tree sort
▪ Pengurutan berdasarkan pembagian dan penguasaan (Devide and Conquer method)
▪ Quick sort, Merge sort
▪ Pengurutan berkurang menurun (Diminishing increment sort method)
▪ Shell sort (pengembangan insertion)
Materi Kuliah Struktur Data & Algoritma - SORTING 3
ALGORITMA PERTUKARAN DATA
▪
Pertukaran merupakan bagian dari proses pengurutan
▪
Algoritma pertukaran sbb :
1. Salin nilai variabel_1 ke variabel_3
2. Salin nilai variabel_2 ke variabel_1
3. Salin nilai variabel_3 ke variabel_2
▪
Tukar (A,B)
Temp A
atau
A B
B Temp
Temp B B A
A Temp
BUBBLE SORT
▪ Metode sorting termudah
▪ Diberi nama “Bubble” karena proses pengurutan secara berangsur- angsur bergerak/berpindah ke posisinya yang tepat, seperti
gelembung yang keluar dari sebuah gelas bersoda.
▪ Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.
▪ Pengurutan Ascending :Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar.
▪ Pengurutan Descending: Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.
Materi Kuliah Struktur Data & Algoritma - SORTING 5
BUBBLE SORT
▪ Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, ascending atau descending.
▪ Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1.
▪ Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.
▪ “The bubble sort is an easy algorithm to program, but it is slower than many other sorts”
BUBBLE SORT
▪ Ilustrasi Bubble Sort, jika diberikan data acak sbb :
22 10 15 3 8 2, akan diurutkan secara Ascending
▪ Iterasi 1 :
▪ Mulai dari elemen terakhir, bandingkan 2 dengan 8, 2 < 8 maka 2 bertukar dengan 8. Perbandingkan ini terus dilakukan sampai elemen pertama
Materi Kuliah Struktur Data & Algoritma - SORTING 7
BUBBLE SORT
▪ Iterasi 2 :
▪ Mulai dari elemen terakhir, bandingkan 8 dengan 3, 8 > 3 maka tidak ada pertukaran. Kemudian bandingkan 3 dengan 15. Perbandingkan ini terus dilakukan sampai elemen kedua
BUBBLE SORT
▪ Iterasi 3 :
▪ Mulai dari elemen terakhir, bandingkan 8 dengan 15, 8 < 15 maka tukar 8 dengan 15. Kemudian bandingkan 8 dengan 10. Perbandingkan ini terus dilakukan
sampai elemen ketiga
Materi Kuliah Struktur Data & Algoritma - SORTING 9
BUBBLE SORT
▪ Iterasi 4 :
▪ Mulai dari elemen terakhir, bandingkan 15 dengan 10, 15 > 10 maka tidak ada pertukaran. Kemudian bandingkan 10 dengan 22. Perbandingkan ini terus
dilakukan sampai elemen keempat
BUBBLE SORT
▪ Iterasi 5 :
▪ Mulai dari elemen terakhir, bandingkan 15 dengan 22, 15 < 22 maka tukarkan 15 dengan 22.
Materi Kuliah Struktur Data & Algoritma - SORTING 11
BUBBLE SORT
▪ Jumlah data 6 jumlah iterasi 5
▪ Hasil sorting : 2 3 8 10 15 22
0 1 2 3 4 5
Data Acak : 22 10 15 3 8 2
0 1 2 3 4 5
Hasil Iterasi - 1 : 2 22 10 15 3 8
0 1 2 3 4 5
Hasil Iterasi - 2 : 2 3 22 10 15 8
0 1 2 3 4 5
Hasil Iterasi - 3 : 2 3 8 22 10 15
0 1 2 3 4 5
Hasil Iterasi - 4 : 2 3 8 10 22 15
0 1 2 3 4 5
Hasil Iterasi - 5 : 2 3 8 10 15 22
BUBBLE SORT
▪ Algoritma Bubble Sort secara Ascending :
Materi Kuliah Struktur Data & Algoritma - SORTING 13
SELECTION SORT
▪ Merupakan kombinasi antara sorting dan searching
▪ Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan
dipertukarkan ke posisi yang tepat di dalam array.
▪ Misalnya jika diurutkan secara Ascending, untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data
kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]).
▪ Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.
SELECTION SORT
▪ Data Awal : 32 75 69 58 21 40 (diurutkan Ascending)
▪ Iterasi – 1 → cari posisi nilai terkecil dari elemen ke-0 s.d ke-5 lalu tukarkan elemen ke-0 dgn elemen terkecil tsb
▪ Hasil iterasi-1 : 21 75 69 58 32 40
Materi Kuliah Struktur Data & Algoritma - SORTING 15
SELECTION SORT
▪ Hasil iterasi-1 : 21 75 69 58 32 40
▪ Iterasi – 2 → cari posisi nilai terkecil dari elemen ke-1 s.d ke-5 lalu tukarkan elemen ke-1 dgn elemen terkecil tsb
▪ Hasil iterasi-2 : 21 32 69 58 75 40
SELECTION SORT
▪ Hasil iterasi-2 : 21 32 69 58 75 40
▪ Iterasi – 3 → cari posisi nilai terkecil dari elemen ke-2 s.d ke-5 lalu tukarkan elemen ke-2 dgn elemen terkecil tsb
▪ Hasil iterasi-3 : 21 32 40 58 75 69
Materi Kuliah Struktur Data & Algoritma - SORTING 17
SELECTION SORT
▪ Hasil iterasi-3 : 21 32 40 58 75 69
▪ Iterasi – 4 → cari posisi nilai terkecil dari elemen ke-3 s.d ke-5 lalu tukarkan elemen ke-3 dgn elemen terkecil tsb
▪ Hasil iterasi-4 : 21 32 40 58 75 69
SELECTION SORT
▪ Hasil iterasi-4 : 21 32 40 58 75 69
▪ Iterasi – 5 → cari posisi nilai terkecil dari elemen ke-4 s.d ke-5 lalu tukarkan elemen ke-4 dgn elemen terkecil tsb
▪ Hasil iterasi-5 : 21 32 40 58 69 75
Materi Kuliah Struktur Data & Algoritma - SORTING 19
SELECTION SORT
▪ Jumlah data 6 jumlah iterasi 5
▪ Hasil sorting : 21 32 40 58 69 75
0 1 2 3 4 5
Data Acak : 32 75 69 58 21 40
0 1 2 3 4 5
Hasil Iterasi - 1 : 21 75 69 58 32 40
0 1 2 3 4 5
Hasil Iterasi - 2 : 21 32 69 58 75 40
0 1 2 3 4 5
Hasil Iterasi - 3 : 21 32 40 58 75 69
0 1 2 3 4 5
Hasil Iterasi - 4 : 21 32 40 58 75 69
0 1 2 3 4 5
Hasil Iterasi - 5 : 21 32 40 58 69 75
SELECTION SORT
▪ Algoritma Selection Sort secara Ascending
Materi Kuliah Struktur Data & Algoritma - SORTING 21
INSERTION SORT
▪ Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya.
▪ Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya.
▪ Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang
INSERTION SORT
▪ Data Awal : 22 10 15 3 8 2 (Diurutkan Ascending)
▪ Iterasi – 1 → Elemen ke-1 dianggap sebagai kartu yang masuk. Urutkan elemen ke-0 s.d ke-1
▪ Hasil iterasi-1 : 10 22 15 3 8 2
Materi Kuliah Struktur Data & Algoritma - SORTING 23
INSERTION SORT
▪ Hasil Iterasi-1 : 10 22 15 3 8 2
▪ Iterasi – 2 → Elemen ke-2 dianggap sebagai kartu yang masuk.
Urutkan elemen ke-0 s.d ke-2
▪ Hasil iterasi-2 : 10 15 2
INSERTION SORT
▪ Hasil Iterasi-2 : 10 15 22 3 8 2
▪ Iterasi – 3 → Elemen ke-3 dianggap sebagai kartu yang masuk.
Urutkan elemen ke-0 s.d ke-3
▪ Hasil iterasi-3 : 3 10 15 22 8 2
Materi Kuliah Struktur Data & Algoritma - SORTING 25
INSERTION SORT
▪ Hasil Iterasi-3 : 3 10 15 22 8 2
▪ Iterasi – 4 → Elemen ke-4 dianggap sebagai kartu yang masuk.
Urutkan elemen ke-0 s.d ke-4
▪ Hasil iterasi-4 : 3 8 10 15 22 2
INSERTION SORT
▪ Hasil Iterasi-4 : 3 8 10 15 22 2
▪ Iterasi – 5 → Elemen ke-5 dianggap sebagai kartu yang masuk.
Urutkan elemen ke-0 s.d ke-5
▪ Hasil iterasi-5 : 2 3 8 10 15 22
Materi Kuliah Struktur Data & Algoritma - SORTING 27
INSERTION SORT
▪ Hasil Iterasi-4 : 3 8 10 15 22 2
▪ Iterasi – 5 → Elemen ke-5 dianggap sebagai kartu yang masuk.
Urutkan elemen ke-0 s.d ke-5
▪ Hasil iterasi-5 : 2 3 8 10 15 22
INSERTION SORT
▪ Jumlah data 6 jumlah iterasi 5
▪ Hasil sorting : 2 3 8 10 15 22
Materi Kuliah Struktur Data & Algoritma - SORTING 29
0 1 2 3 4 5
Data Acak : 22 10 15 3 8 2
0 1 2 3 4 5
Hasil Iterasi - 1 : 10 22 15 3 8 2
0 1 2 3 4 5
Hasil Iterasi - 2 : 10 15 22 3 8 2
0 1 2 3 4 5
Hasil Iterasi - 3 : 3 10 15 22 8 2
0 1 2 3 4 5
Hasil Iterasi - 4 : 3 8 10 15 22 2
0 1 2 3 4 5
Hasil Iterasi - 5 : 2 3 8 10 15 22
INSERTION SORT
▪ Algoritma Insertion Sort secara Ascending
LATIHAN #1
Diberikan data acak sebanyak 9 buah sbb :
Tuliskan hasil masing-masing iterasi yang terjadi, jika data tsb diurutkan menggunakan metode / algoritma :
1. Bubble Sort secara Ascending
2. Bubble Sort secara Descending
3. Selection Sort secara Ascending
4. Selection Sort secara Descending
5. Insertion Sort secara Ascending
6. Insertion Sort secara Descending
Materi Kuliah Struktur Data & Algoritma - SORTING 31
0 1 2 3 4 5 6 7 8
Data Acak : 5 4 9 3 8 2 1 6 7
LATIHAN #2
Tuliskan algoritma pengurutan :
1. Bubble Sort secara Descending
2. Selection Sort secara Descending
3. Insertion Sort secara Descending