Anda di halaman 1dari 6

ALGORITMA DAN PEMROGRAMAN

Sorting - Selection Sort

Ada beberapa metode pengurutan data dalam algoritma dan pemrograman diantaranya
adalah :
1. Selection Sort
2. Insertion Sort
3. Buble Sort
Namun yang akan dibahas pada materi kali ini adalah Selection Sort.
Selection sort merupakan salah satu metode pengurutan data dengan cara mencari nilai
tertinggi atau terendah dalam suatu deretan data dalam array kemudian menempatkan
nilai tersebut ke tempat semestinya.
Pengurutan data ini dapat berupa pengurutan dari nilai terkecil ke nilai terbesar
(Asscending) atau dari nilai terbesar ke nilai terkecil (Descending).

Langkah-langkah pengurutan :

Misalkan ada sebuah Array A[1:5] seperti di bawah ini. Kemudian datanya kita akan
urutkan dari nilai terkecil ke nilai terbesar (Asscending).

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 12 8 4 7 10 5 3 9 11 6

1. Cari elemen terkecil dari A[1] sampai dengan A[10], maka ditemukan A[7] = 3,
merupakan elemen terkecil.
2. Tukar posisi A[1] dengan A[7],

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 12 8 4 7 10 5 3 9 11 6

sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 8 4 7 10 5 12 9 11 6

3. Lanjutkan pencarian elemen terkecil mulai dari A[2] sampai dengan A[10], maka
ditemukan A[3] = 4, merupakan elemen terkecil.
4. Tukar posisi A[2] dengan A[3],

Halaman - 1
Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 8 4 7 10 5 121 9 11 6

sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 8 7 10 5 12 9 11 6

5. Cari elemen terkecil dari A[3] sampai dengan A[10], maka ditemukan A[6] = 5,
merupakan elemen terkecil.
6. Tukar posisi A[3] dengan A[6],

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 8 7 10 5 12 9 11 6

sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 7 10 8 12 9 11 6

7. Cari elemen terkecil dari A[4] sampai dengan A[10], maka ditemukan A[10] = 6,
merupakan elemen terkecil.
8. Tukar posisi A[4] dengan A[10],

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 7 10 8 12 9 11 6

sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 10 8 12 9 11 7

9. Cari elemen terkecil dari A[5] sampai dengan A[10], maka ditemukan A[10] = 7,
merupakan elemen terkecil.
10.Tukar posisi A[5] dengan A[10],

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 10 8 12 9 11 7

Halaman - 2
sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 12 9 11 10

11.Cari elemen terkecil dari A[6] sampai dengan A[10], maka ditemukan A[6] = 8,
merupakan elemen terkecil.
12.Tukar posisi A[6] dengan A[6], dalam arti tidak ada perubahan urutan sehingga
urutannya tetap.

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 12 9 11 10

13. Cari elemen terkecil dari A[7] sampai dengan A[10], maka ditemukan A[8] = 9,
merupakan elemen terkecil.
14.Tukar posisi A[7] dengan A[8],

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 12 9 11 10

sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 9 12 11 10

15.Cari elemen terkecil dari A[8] sampai dengan A[10], maka ditemukan A[10] = 10,
merupakan elemen terkecil.
16.Tukar posisi A[8] dengan A[10],

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 9 12 11 10

sehingga urutannya menjadi :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 9 10 11 12

Halaman - 3
17.Cari elemen terkecil dari A[9] sampai dengan A[10], maka ditemukan A[9] = 11,
merupakan elemen terkecil.
18.Tukar posisi A[9] dengan A[9], dalam arti tidak ada perubahan urutan sehingga
urutannya tetap.

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 9 10 11 12

19.Proses pencarian nilai terkecil berhenti sampai disini (N-1). Kita lihat hasilnya adalah
sebagai berikut :

Index : 1 2 3 4 5 6 7 8 9 10
A[i] : 3 4 5 6 7 8 9 10 11 12

Sudah terurut dari nilai terkecil sampai nilai terbesar.

Jadi kalau kita susun urutan proses pengurutannya adalah sebagai berikut :

Index(i) : 1 2 3 4 5 6 7 8 9 10 Nilai Terkecil (min)


A[i] : 12 8 4 7 10 5 3 9 11 6 A[1] sd A[10] A[7] = 3
A[i] : 3 8 4 7 10 5 12 9 11 6 A[2] sd A[10] A[3] = 4
A[i] : 3 4 8 7 10 5 12 9 11 6 A[3] sd A[10] A[6] = 5
A[i] : 3 4 5 7 10 8 12 9 11 6 A[4] sd A[10] A[10] = 6
A[i] : 3 4 5 6 10 8 12 9 11 7 A[5] sd A[10] A[10] = 7
A[i] : 3 4 5 6 7 8 12 9 11 10 A[6] sd A[10] A[6] = 8
A[i] : 3 4 5 6 7 8 12 9 11 10 A[7] sd A[10] A[8] = 9
A[i] : 3 4 5 6 7 8 9 12 11 10 A[8] sd A[10] A[10] = 10
A[i] : 3 4 5 6 7 8 9 10 11 12 A[9] sd A[10] A[9] = 11
A[i] : 3 4 5 6 7 8 9 10 11 12 Stop

Algoritma Selection Sort :

A[1:N]
Start := 1
While (Start < N) Do
/* Mencari nilai terkecil */
min := A[Start]
Pos := Start
i := Start + 1
While (i <= N) Do
If (A[i] <= min) Then
min := A[i]
Pos := i
Endif
i := i + 1
EndWhile

Halaman - 4
/* Tukar posisi nilai terkecil dengan posisi awal pencarian */
A[Pos] := A[Start]
A[Star] := Min
Start := Start + 1
EndWhile

Pembuktian untuk kasus Array A[1:10] di atas :

Start min Pos i A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
1 12 1 2 12 8 4 7 10 5 3 9 11 6
8 2 3 12 8 4 7 10 5 3 9 11 6
4 3 4 12 8 4 7 10 5 3 9 11 6
4 3 5 12 8 4 7 10 5 3 9 11 6
4 3 6 12 8 4 7 10 5 3 9 11 6
4 3 7 12 8 4 7 10 5 3 9 11 6
3 7 8 12 8 4 7 10 5 3 9 11 6
3 7 9 12 8 4 7 10 5 3 9 11 6
3 7 10 12 8 4 7 10 5 3 9 11 6
2 3 7 11 3 8 4 7 10 5 12 9 11 6
2 8 2 3 3 8 4 7 10 5 12 9 11 6
4 3 4 3 8 4 7 10 5 12 9 11 6
4 3 5 3 8 4 7 10 5 12 9 11 6
4 3 6 3 8 4 7 10 5 12 9 11 6
4 3 7 3 8 4 7 10 5 12 9 11 6
4 3 8 3 8 4 7 10 5 12 9 11 6
4 3 9 3 8 4 7 10 5 12 9 11 6
4 3 10 3 8 4 7 10 5 12 9 11 6
3 4 3 11 3 4 8 7 10 5 12 9 11 6
3 8 3 4 3 4 8 7 10 5 12 9 11 6
7 4 5 3 4 8 7 10 5 12 9 11 6
7 4 6 3 4 8 7 10 5 12 9 11 6
5 6 7 3 4 8 7 10 5 12 9 11 6
5 6 8 3 4 8 7 10 5 12 9 11 6
5 6 9 3 4 8 7 10 5 12 9 11 6
5 6 10 3 4 8 7 10 5 12 9 11 6
4 5 6 11 3 4 5 7 10 8 12 9 11 6
4 7 4 5 3 4 5 7 10 8 12 9 11 6
7 4 6 3 4 5 7 10 8 12 9 11 6
7 4 7 3 4 5 7 10 8 12 9 11 6
7 4 8 3 4 5 7 10 8 12 9 11 6
7 4 9 3 4 5 7 10 8 12 9 11 6
7 4 10 3 4 5 7 10 8 12 9 11 6
5 6 10 11 3 4 5 6 10 8 12 9 11 7
5 10 5 6 3 4 5 6 10 8 12 9 11 7
8 6 7 3 4 5 6 10 8 12 9 11 7
8 6 8 3 4 5 6 10 8 12 9 11 7
8 6 9 3 4 5 6 10 8 12 9 11 7
8 6 10 3 4 5 6 10 8 12 9 11 7
6 7 10 11 3 4 5 6 7 8 12 9 11 10

Halaman - 5
6 8 6 7 3 4 5 6 7 8 12 9 11 10
8 6 8 3 4 5 6 7 8 12 9 11 10
8 6 9 3 4 5 6 7 8 12 9 11 10
8 6 10 3 4 5 6 7 8 12 9 11 10
7 8 6 11 3 4 5 6 7 8 12 9 11 10
7 12 7 8 3 4 5 6 7 8 12 9 11 10
9 8 9 3 4 5 6 7 8 12 9 11 10
9 8 10 3 4 5 6 7 8 12 9 11 10
8 9 8 11 3 4 5 6 7 8 9 12 11 10
8 12 8 9 3 4 5 6 7 8 9 12 11 10
11 9 10 3 4 5 6 7 8 9 12 11 10
9 10 10 11 3 4 5 6 7 8 9 10 11 12
9 11 9 10 3 4 5 6 7 8 9 10 11 12
10 11 9 11 3 4 5 6 7 8 9 10 11 12
10 11 9 11 3 4 5 6 7 8 9 10 11 12

Demikian materi untuk pertemuan kali ini. Mudah-mudahan bisa dipahami.

---oOo---

Halaman - 6

Anda mungkin juga menyukai