Teknik Informatika - Universitas Muhammadiyah Malang (UMM) ALGORITMA PENGURUTAN Oleh : Nur Hayatin, S.ST Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Tahun Akademik 2010-2011
Sub Topik Algoritma Pengurutan Insertion Sort Selection Sort Bubble Sort
Algoritma Pengurutan
Sorting (Pengurutan) Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang diberikan. Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun)
Contoh : Misal suatu array DATA berisi 8 elemen sebagai berikut : Setelah diurutkan : DATA (ascending) : 11, 22, 33, 44, 55, 66, 77, 88 DATA (descending): 88, 77, 66, 55, 44, 33, 22, 11
Macam Algoritma Pengurutan Insertion Sort Selection Sort Bubble Sort
Insertion Sort
Insertion Sort Mirip dengan cara mengurutkan kartu. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (di-insert) diposisi yang seharusnya. Terjadi pergeseran data ke belakang.
Ilustrasi (1)
Ilustrasi (1)
Ilustrasi (1)
Ilustrasi (1)
Ilustrasi (1)
Ilustrasi (2)
Ilustrasi (2)
Ilustrasi (2)
Ilustrasi (3)
Algoritma for (i = 1; i < n; i++) { t = x[i]; for (j =i-1; j >= 0; j--) { if (t < x[j]) x[j+1] = x[j]; else { x[j+1] = t; break; } } }
Latihan (1) Data : 7, 19, 4, 8, 20, 1 Urutkan secara ascending dengan menggunakan algoritma insertion sort!
Selection Sort
Selection Sort Merupakan kombinasi antara sorting dan searching. Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil (ascending) atau terbesar (descending) kemudian akan dipertukarkan ke posisi yang tepat di dalam array.
Ilustrasi (1)
Ilustrasi (2)
Ilustrasi (2)
Ilustrasi (2)
Ilustrasi (2)
Algoritma Selection Sort for (i=0; i < n-2; i++) { m = i; for (j = m+1; j < n-1; j++) { if (X[m] > X[j]) m = j; } if (m != i) { t = X[m]; X[m] = X[i]; X[i] = t; }
Latihan (2) Data : 7, 19, 4, 8, 20, 1 Urutkan secara ascending dengan menggunakan algoritma selection sort!
Bubble Sort
Bubble Sort Merupakan algoritma sorting yang paling mudah. Proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung.
Bubble Sort Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar, jika pengurutan ascending. Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar, jika pengurutan descending
Bubble Sort Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya. Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya. Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.
Ilustrasi Bubble Sort (1)
Ilustrasi Bubble Sort (1)
Ilustrasi Bubble Sort (1)
Ilustrasi Bubble Sort (1)
Ilustrasi Bubble Sort (2) Pada gambar disamping, pegecekan dimulai dari data yang paling akhir, kemudian dibandingkan dengan data di depannya, jika data di depannya lebih besar maka akan ditukar.
Ilustrasi Bubble Sort (2)
Ilustrasi Bubble Sort (2)
Ilustrasi Bubble Sort (2)
Ilustrasi Bubble Sort (2)
Ilustrasi Bubble Sort (3) Data : 34,43,65,90,48,82,93,86,26,76,49,23,56,37
Ilustrasi Bubble Sort (3)
Ilustrasi Bubble Sort (3)
Algoritma Bubble Sort ch = true; for (i=0; i < n-2 && ch; i++) { ch = false; for (j=n-1; j > i; j--) { if (x[j] < x[j-1]) { tmp = x[j]; x[j] = x[j-1]; x[j-1] = tmp; ch = true; }
Latihan (3) Data : 7, 19, 4, 8, 20, 1 Urutkan secara ascending dengan menggunakan algoritma bubble sort!
Pustaka Mitchell Waite, “Data Structures & Algorithms in Java”, SAMS, 2001