Algoritma dan Struktur Data Algoritma Pengurutan Sorting Tujuan





















![Selection Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = � Selection Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = �](https://slidetodoc.com/presentation_image_h2/507502edefa7123015c5c1e81889e1da/image-22.jpg)








![Insertion Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = � Insertion Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = �](https://slidetodoc.com/presentation_image_h2/507502edefa7123015c5c1e81889e1da/image-31.jpg)
![Algoritma Insertion Sort Ambil data pertama for(i=1; i<n; i++){ temp=X[i]; for (j =i-1; j Algoritma Insertion Sort Ambil data pertama for(i=1; i<n; i++){ temp=X[i]; for (j =i-1; j](https://slidetodoc.com/presentation_image_h2/507502edefa7123015c5c1e81889e1da/image-32.jpg)



- Slides: 35
Algoritma dan Struktur Data Algoritma Pengurutan (Sorting)
Tujuan Pembelajaran �Mahasiswa dapat memahami proses pengurutan data �Mahasiswa dapat mengetahui berbagai algoritma pengurutan data �Mahasiswa mampu menyelesaikan masalah yang membutuhkan pengurutan data.
Topik �Algoritma pengurutan �Review Bubble sort �Selection sort �Insertion sort
Sorting (Pengurutan) �Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang dikehendaki. �Pengurutan dapat dilakukan secara ascending (urut naik) maupun descending (urut turun).
Contoh : �Misal suatu kumpulan DATA berisi 8 elemen : DATA : 77, 33, 44, 11, 88, 22, 66, 55 Setelah diurutkan : Ascending : 11 22 33 44 55 66 77 88 Descending : 88 77 66 55 44 33 22 11
Algoritma Pengurutan �Ada banyak metode yang digunakan untuk melakukan pengurutan. �Algoritma yang dapat digunakan antara lain : Bubble Sort 2. Selection Sort 3. Insertion Sort 4. Merge Sort 1.
Bubble Sort �Metode sorting termudah �Cara pengurutannya : bandingkan dua data kemudian swap. �Diberi nama “Bubble” karena 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. �Ascending : Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar/swap. �Descending : Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar/swap.
Ilustrasi Bubble Sort (1)
Ilustrasi Bubble Sort (2)
Ilustrasi Bubble Sort (3)
Ilustrasi Bubble Sort (4)
Implementasi Bubble Sort (tanpa flag) for(int langkah=1; langkah<panjang. Array; langkah++){ for(int banding=0; banding<panjang. Arraylangkah; banding++){ if (numlist[banding] > numlist[banding+1]){ swap = numlist[banding]; numlist[banding] = numlist[banding+1]; numlist[banding+1] = swap; } } }
Implementasi Bubble Sort (dengan flag) for(int langkah=1; langkah<panjang. Array; langkah++){ is. Swap = 0; for(int banding=0; banding<panjang. Array-langkah; banding++){ if (numlist[banding] > numlist[banding+1]){ swap = numlist[banding]; numlist[banding] = numlist[banding+1]; numlist[banding+1] = swap; is. Swap = 1; } if(is. Swap==0) break; }
Latihan �Urutkan data berikut dengan bubble sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 �Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!
Selection Sort �Cara pengurutannya : seleksi data yang ada kemudian dilakukan swap (pertukaran posisi). �Pada Ascending : seleksi data terkecil kemudian swap. �Pada descending : seleksi data terbesar kemudian swap.
Ilustrasi Selection Sort (1)
Ilustrasi Selection Sort (2)
Ilustrasi Selection Sort (3)
Ilustrasi Selection Sort (4)
Algoritma Selection Sort (Ascending) 1. Tampung data ke-i 2. Seleksi data terkecil 3. Cek apakah data yang ditampung lebih besar dari data hasil seleksi (data terkecil). 4. Jika pengecekan langkah 3 bernilai “true” : lakukan pertukaran posisi antara data yang ditampung dengan data terkecil. 5. Ulangi langkah 1 sampai 4, hingga nilai i sama dengan n.
Selection Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = � 73418265 � M = data terkecil sementara, Prose s Swap K = data terkecil (hasil seleksi) A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] Data awal 7 3 4 1 8 2 6 5 1 m=A[0], k = 1 7 3 4 1 8 2 6 5 2 m=A[1], k = 2 1 3 4 7 8 32 6 5 1 2 4 3 M=A[2], k = 1 2 4 7 8 3 6 5 5 � Hasil : 1 2 3 43 5 6 7 8 (data telah terurut secara ascending) 4 2 3 7 8 4 6 6 m=A[3], k = 4 1 5 5 m=A[4], k = 5 1 2 3 4 8 7 6 5 6 m=A[5], k = 1 2 3 4 5 7 6 8 7
Pseudocode Selection Sort (ascending) for (i=0; i < n-1; i++) { min = i; for (j = i+1; j < n; j++) { if (X[min] > X[j]) min = j; } t = X[min]; X[min] = X[i]; X[i] = t; } } Cari elemen terkecil dari unsorted list. SWAP
Effisiensi Selection Sort for (i=0; i < n-1; i++) { min = i; for (j = i+1; j < n; j++) { if (X[min] > X[j]) min = j; } if (min != i) { Pengecekkan min t = X[min]; untuk memaksimalkan X[min] = X[i]; proses swap X[i] = t; } }
Latihan �Urutkan data berikut dengan selection sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 �Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!
Insertion Sort �Cara pengurutannya : dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. �Ascending : ketika perbandingan ambil data yang paling kecil. �Descending : ketika perbandingan ambil data yang paling besar.
Algoritma Insertion Sort (Ascending) 1. Ambil satu data ke-i simpan di temp 2. Bandingkan data temp dengan data yang ada disebelah kiri satu per-satu 3. Cek apakah data temp lebih kecil dari data sebelah kiri. 4. Jika langkah nomor 3 bernilai “true” : lakukan pergeseran data satu-persatu kemudian pada posisi yang tepat sisipkan data temp. 5. Ulangi langkah 1 sampai 4, hingga i sama dengan n
Ilustrasi Insertion Sort (1)
Ilustrasi Insertion Sort (2)
Ilustrasi Insertion Sort (3)
Insertion Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = � 73418265 � temp = variabel penampung Prose s Tampung A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] Data awal 7 3 4 1 8 2 6 5 1 temp = A[1] 3 7 4 1 8 2 6 5 2 temp = A[2] 3 4 7 1 8 2 6 5 3 temp = A[3] 1 3 4 7 8 2 6 5 4 temp = A[4] 1 3 4 7 8 2 6 5 � Hasil 2 3 4=5 A[5] 6 7 8 (data ascending) 5 : 1 temp 1 2 telah 3 terurut 4 secara 7 8 6 5 6 temp = A[6] 1 2 3 4 6 7 8 5 7 temp = A[7] 1 2 3 4 5 6 7 8
Algoritma Insertion Sort Ambil data pertama for(i=1; i<n; i++){ temp=X[i]; for (j =i-1; j >= 0; j--) { if (temp < X[j]){ X[j+1] = X[j]; X[j]=temp; } else { X[j+1] = t; break; } } } Pergeseran data
Latihan �Urutkan data berikut dengan insertion sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 �Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!
Tugas Kelompok �Buatlah makalah tentang algoritma sorting (tiga metode: bubble sort, selection sort, dan insertion sort). Buatlah flowchart untuk masing-masing metode tersebut. �Buatlah program dengan
TUGAS KELOMPOK