Metode Pengurutan (Sorting) Algoritma dan Struktur Data Pendahuluan • Di dalam konsep Algoritma dan Struktur Data, dikenal istilah pengurutan (sorting). • Sorting merupakan suatu metode untuk mengurutkan sekumpulan data secara ascending atau descending. • Kenapa harus belajar algoritma pengurutan? o Karena dalam pembuatan program komputer, adakalanya kita harus melakukan pengurutan data, misalnya menampilkan nama mahasiswa secara berurutan berdasarkan NIM. Algoritma Pengurutan • Ada banyak macam Algoritma Pengurutan, di antaranya: 1. 2. 3. 4. 5. 6. Bubble Sort Selection Sort Insertion Sort Merge Sort Quick Sort Heap Sort Bubble Sort • Bubble Sort merupakan jenis algoritma pengurutan yang paling sederhana. • Cara kerja dari algoritma ini adalah membandingkan elemen yang sekarang dengan eleman berikutnya. Jika elemen yang sekarang > elemen berikutnya, maka tukar nilai kedua elemen. Contoh Bubble Sort ascending: 6 4 64 18 081 580 85 0 1 2 3 4 5 Selesai untuk tahap ke-1 Angka 8 akan berhenti pada indeks ke-5 (terakhir) Contoh Bubble Sort ascending: 4 16 061 560 65 8 0 1 2 3 4 5 Selesai untuk tahap ke-2 Angka 8 akan berhenti pada indeks ke-4 Contoh Bubble Sort ascending: Begitu seterusnya, hingga semua terurut dari kecil ke besar. Tahap ke-1 4 6 1 0 5 8 Tahap ke-2 4 1 0 5 6 8 Tahap ke-3 1 0 4 5 6 8 Tahap ke-4 0 1 4 5 6 8 Tahap ke-5 0 1 4 5 6 8 Tahap ke-6 0 1 4 5 6 8 Algoritma Bubble Sorting (ascending) for (i=0; i<=max-2; i++) { for (j=i+1; j<=max-1; j++) { if (deret[i] > deret[j]) { temp = deret[i]; deret[i] = deret[j]; deret[j] = temp; } } } Selection Sort • Selection Sort adalah mekanisme pengurutan yang dilakukan dengan membandingkan elemen yang sekarang dengan elemen berikutnya sampai dengan elemen yang terakhir. Jika ditemukan eleman lain yang nilainya lebih kecil dari elemen sekarang, maka dicatat posisi/ indeksnya, lalu ditukar kemudian. Algoritma Selection Sort (ascending) for (i=0; i<=max-2; i++) { idxTerkecil = i; for (j=i+1; j<=max-1; j++) { if (deret[idxTerkecil] > deret[j]) { idxTerkecil = j; } } //setelah didapatkan nilai terkecil, maka tukar dengan nilai ke-i temp = deret[i]; deret[i] = deret[idxTerkecil]; deret[idxTerkecil] = temp; }