Uji kompetensi Kegiatan Belajar 3. Pengurutan Data Dengan Algoritma Bubble Sort Alokasi Waktu : 2x45 Menit

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: