Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Algoritma dan Struktur Data
Algoritma Pengurutan (Sorting)
2
Tujuan Pembelajaran Mahasiswa dapat memahami proses pengurutan data
Mahasiswa dapat mengetahui berbagai algoritma pengurutan data Mahasiswa mampu menyelesaikan masalah yang membutuhkan pengurutan data.
3
Topik Algoritma pengurutan Review Bubble sort Selection sort
Insertion sort
4
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).
5
Contoh : Misal suatu kumpulan DATA berisi 8 elemen :
Setelah diurutkan : Ascending : Descending :
6
Algoritma Pengurutan Ada banyak metode yang digunakan untuk melakukan pengurutan. Algoritma yang dapat digunakan antara lain : Bubble Sort Selection Sort Insertion Sort Merge Sort
7
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.
8
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.
9
Ilustrasi Bubble Sort (1)
10
Ilustrasi Bubble Sort (2)
11
Ilustrasi Bubble Sort (3)
12
Ilustrasi Bubble Sort (4)
13
Implementasi Bubble Sort (tanpa flag)
for(int langkah=1;langkah<panjangArray;langkah++){ for(int banding=0;banding<panjangArray-langkah;banding++){ if (numlist[banding] > numlist[banding+1]){ swap = numlist[banding]; numlist[banding] = numlist[banding+1]; numlist[banding+1] = swap; }
14
Implementasi Bubble Sort (dengan flag)
for(int langkah=1;langkah<panjangArray;langkah++){ isSwap = 0; for(int banding=0;banding<panjangArray-langkah;banding++){ if (numlist[banding] > numlist[banding+1]){ swap = numlist[banding]; numlist[banding] = numlist[banding+1]; numlist[banding+1] = swap; isSwap = 1; } if(isSwap==0) break;
15
Latihan Urutkan data berikut dengan bubble sort :
2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!
16
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.
17
Ilustrasi Selection Sort (1)
18
Ilustrasi Selection Sort (2)
19
Ilustrasi Selection Sort (3)
20
Ilustrasi Selection Sort (4)
21
Algoritma Selection Sort (Ascending)
Tampung data ke-i Seleksi data terkecil Cek apakah data yang ditampung lebih besar dari data hasil seleksi (data terkecil). Jika pengecekan langkah 3 bernilai “true” : lakukan pertukaran posisi antara data yang ditampung dengan data terkecil. Ulangi langkah 1 sampai 4, hingga nilai i sama dengan n.
22
Selection Sort (Ascending)
Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = M = data terkecil sementara, K = data terkecil (hasil seleksi) Hasil : (data telah terurut secara ascending) Proses Swap 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 m=A[0], k = 1 m=A[1], k = 2 M=A[2], k = 3 m=A[3], k = 4 m=A[4], k = 5 m=A[5], k = 6 m=A[6], k = 7 1 2 3 4 5 6 7
23
Pseudocode Selection Sort (ascending)
Cari elemen terkecil dari unsorted list. 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; } SWAP
24
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) { t = X[min]; X[min] = X[i]; X[i] = t; } Pengecekkan min untuk memaksimalkan proses swap
25
Latihan Urutkan data berikut dengan selection sort :
2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!
26
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.
27
Algoritma Insertion Sort (Ascending)
Ambil satu data ke-i simpan di temp Bandingkan data temp dengan data yang ada disebelah kiri satu per-satu Cek apakah data temp lebih kecil dari data sebelah kiri. Jika langkah nomor 3 bernilai “true” : lakukan pergeseran data satu-persatu kemudian pada posisi yang tepat sisipkan data temp. Ulangi langkah 1 sampai 4, hingga i sama dengan n
28
Ilustrasi Insertion Sort (1)
29
Ilustrasi Insertion Sort (2)
30
Ilustrasi Insertion Sort (3)
31
Insertion Sort (Ascending)
Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = temp = variabel penampung Hasil : (data telah terurut secara ascending) Proses 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 temp = A[1] temp = A[2] temp = A[3] temp = A[4] temp = A[5] temp = A[6] temp = A[7]
32
Algoritma Insertion Sort
Pergeseran data 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; Ambil data pertama
33
Latihan Urutkan data berikut dengan insertion sort :
2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!
34
Buatlah program dengan output sebagai berikut:
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 output sebagai berikut:
35
TUGAS KELOMPOK
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.