BAB 3 METODOLOGI PENELITIAN
3.1. Algoritma Selection Sort
Algoritma pengurutan seleksi atau selection sort dibagi menjadi dua, yaitu : 1.
Algoritma pengurutan seleksi minimum atau minimum selection sort Yaitu dengan mencari nilai terkecil dari array dan digunakan sebagai pembanding.
2. Algoritma pengurutan seleksi maksimum atau maximum selection sort Yaitu
dengan mencari nilai terbesar dari array dan digunakan sebagai pembanding.
3.1.1. Pseudocode Minimum Selection Sort Procedure MinSelectionSortinputoutput A : Larik, input n : integer
DEKLARASI : i, j
: integer i min : integer
temp : integer ALGORITMA :
for I 1 to n-1 do i min i
for j i+1 to n do if A[j] A[i min]
then i min j endif
endfor temp A [i]
A[i] A[i min]
A[i min] temp endfor
end procedure
Universitas Sumatera Utara
3.1.2 Pseudocode Maximum Selection Sort Procedure MaxSelectionSortinputoutput L : Larik, input n : integer
DEKLARASI : i, j
: integer i maks : integer
temp : integer DEFINISI :
for i n downto 2 do i maks 1
for j 2 to i do if L[j] L[i maks]
then i maks j endif
endfor temp L[i]
L[i] L[i maks]
L[i maks] temp endfor
end procedure
Algoritma pengurutan seleksi selection sort adalah algoritma yang tidak stabil,karena urutan beberapa elemen yang sama berbeda antara sebelum dan sesudah
pengurutan. Algoritma ini juga termasuk algoritma pengurutan internal, karena melakukan sorting di dalam array itu sendiri, dan menyimpan datanya di dalam memori komputer.
Yang akan dibahas kali ini adalah menggunakan pengurutan seleksi minimumminimum selection sort secara menaik ascending, yaitu selection sort dengan menggunakan nilai
terkecil di dalam array sebagai pembanding.
Universitas Sumatera Utara
3.1.3 Loop Invariant Minimum Selection Sort Statement
Saat awal algoritma dijalankan, nilai imin berisi indeks elemen terkecil dari larik A[1...j - 1].
Initialization Sebelum iterasi atau pass pertama dilakukan, nilai j = i + 1, i min berisi indeks elemen
terkecil dari larik A[i...i] yang merupakan indeks elemen paling pertama larik A. Maintenance
Sebelum iterasi ke- j
th
, i min berisi indeks elemen terkecil dari larik A[i...j - 1]. Kemudian setelah dijalankan, jika A[j] A[i min] maka imin bernilai sama dengan j
dan menyimpan indeks terkecil larik A[i...j]. Termination
Sebelum iterasi ke- n + 1
th
, j = n + 1, i min berisi indeks terkecil dari elemen larik A[i...n].
3.2. Simulasi Algoritma Pengurutan Selection Sort
Contoh, kita memiliki sebuah larik array A yang memiliki 7 buah elemen. Lariktersebut akan diurutkan secara menaik ascending dengan mencari nilai minimum sebagai
pembanding. 26
19 38
3 9
13 21
1 2
3 4
5 6
7 1.
Pass 1 Cari nilai elemen terkecil dari array larik A[1...7] dengan membandingkan antar
nilai elemen array, didapatkan elemen terkecil A[4]= 3. Tukarkan dengan nilai elemen terujung awal yaitu A[1] Lalu elemen A[1] tersebut
sudah terurut. 3
19 38
26 9
13 21
1 2
3 4
5 6
7
Universitas Sumatera Utara
2. Pass 2
Cari nilai elemen terkecil dari array larik A[2...7] dengan membandingkan antar nilai lemen array, didapatkan elemen terkecil A[5] = 9.
Tukarkan dengan nilai elemen terujung awal yaitu A[2]. Lalu elemen A[2] tersebut udah terurut.
3 9
38 26
19 13
21 1
2 3
4 5
6 7
3. Pass 3
Cari nilai elemen terkecil dari array larik A[3...7] dengan membandingkan antar nilai lemen array, didapatkan elemen terkecil A[6] = 13.
Tukarkan dengan nilai elemen terujung awal yaitu A[3]. Lalu elemen A[3] tersebut udah terurut.
3 9
13 26
19 38
21 4.
Pass 4 Cari nilai elemen terkecil dari array larik A[4...7] dengan membandingkan antar
nilai lemen array, didapatkan elemen terkecil A[5] = 19. Tukarkan dengan nilai elemen terujung awal yaitu A[4]. Lalu elemen A[4]
tersebut udah terurut. 3
9 13
19 26
38 21
5. Pass 5
Cari nilai elemen terkecil dari array larik A[5...7] dengan membandingkan antar nilai lemen array, didapatkan elemen terkecil A[7] = 21.
Tukarkan dengan nilai elemen terujung awal yaitu A[5]. Lalu elemen A[5] tersebut udah terurut.
3 9
13 19
21 38
26 6.
Pass 6n-1 Cari nilai elemen terkecil dari array larik A[6...7] dengan membandingkan antar
nilai lemen array, didapatkan elemen terkecil A[7] = 26.
Universitas Sumatera Utara
Tukarkan dengan nilai elemen terujung awal yaitu A[6]. Lalu elemen A[6] tersebut udah terurut.
3 9
13 19
21 26
38
Elemen yang tersisa yaitu elemen terakhir A[7] = 38. Elemen tersebut tidak perlu diurutkan karena elemen tersebut berada pada posisi yang sudah terurut. Jadi array atau larik A sudah
terurut. Hasil array A yang sudah terurut yaitu : 3
9 13
19 21
26 38
3.3. Analisis dan Running Time Selection Sort