2.4. Kegiatan Belajar 4. Pengurutan Data Dengan Algoritma Selection Sort Alokasi Waktu : 2x45 Menit
2.4.1. Tujuan Pembelajaran
1. Peserta didik mampu memahami algoritma pengurutan seleksi. 2. Peserta didik mampu memahami algoritma seleksi-maksimum.
3. Peserta didik mampu memahami algoritma seleksi-minimum.
2.4.2. Aktivitas Belajar Siswa 2.4.2.1. Mengamati
Algoritma pengurutan ini disebut pengurutan seleksi selection sort karena gagasan dasarnya adalah memilih elemen maksimum atau minimum dari array, lalu menempatkan elemen
maksimum atau minimum itu pada awal atau akhir array elemen terujung lihat gambar 6.4. selanjutnya elemen terujung disebut “diisolasi” dan tidak disertakan pada proses selanjutnya.
Proses yang sama diulang untuk elemen array yang tersisa, yaitu memilih elemen maksimum atau
minimum berikutnya dan mempertukarkannya dengan elemen terujung array tersisa. Semagaimna dengan algoritma pengurutan gelembung, proses memilh nilai maksimum atau minimum dilakukan
pada setiap pass langkah. Jika array berukuran n, maka jumlah pass adalah n – 1.
Sebelum: 1
n Belum terurut
Sesudah: 1
n Belum terurut
terurut Gambar 6.4 bagian array yang terurut dan belum terurut pada algoritma pengurutan seleksi
Ada dua varian algoritma pengurutan seleksi ditinjau dari pemilihan elemen maksimum atau minimum, yaitu:
1. Algoritma pengurutan seleksi-maksimum, yaitu memilih elemen maksimum sebagai basis pengurutan.
2. Algoritma pengurutan seleksi-minimum, yaitu memilih elemen minimum sebagai basis pengurutan.
Algoritma pengurutan selesksi-maksimum
Untuk mendapatkan array yang terurut menaik, algoritma pengurutan seleksi-maksimum secara garis besar ditulis sebagai berikut:
1. Jumlah pass = n – 1
2. Untuk setiap pass = 1, 2, ..., n-1, lakukan: a. Cari elemen terbesar maks mulai dari elemen ke-1 sampai elemen ke-n.
b. Pertukarkan maks dengan elemen ke-n. c. Kurangi n satu karena emelen ke-n sudah terurut
Rincian aksi setiap pass adalah sebagai berikut: Pass 1 : cari elemen maksimum di dalam A[1..n].
Pertukarkan elemen maksimum dengan elemen L[n]. Ukuran array yang belum terurut = n
– 1. Pass 2 : cari elemen maksimum di dalam A[1..n - 1]
Pertukarkan elemen maksimum dengan elemen L[n - 1] Ukuran array yang belum terurut = n
– 2 Pass 3 : cari elemen maksimum di dalam A[1..n - 2].
Pertukarkan elemen maksimum dengan elemen L[n - 2]. Ukuran array yang belum terurut = n
– 3. .
. .
Pass n-1 : cari elemen maksimum di dalam A[1..2] Pertukarkan elemen maksimum dengan elemen L[2]
Ukuran array yang belum terurut = 2 Setelah pas n
– 1, elemen yang tersisa adalah A[1], tidak perlu diurutkan lagi karena hanya satu-satunya. Perhatikan array n = 6 buah elemen berikut yang belum terurut. Array ini akan
diurutkan menaik dengan metode pengurutan seleksi-maksimum: 77
37 58
5 35
10 1
2 3
4 5
6
Pass 1:
Carilah elemen maksimum di dalam array A[1..6] → hasilnya: maks = A[2] = 77, pertukarkan maks dengan A[n] dalam hal ini A[6], diperoleh:
Hasil akhir pass 1: