Algoritma Selection Sort METODOLOGI PENELITIAN

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