Selection Sort 
Algoritma dan 
Struktur Data 
Georgius Rinaldo 
dodo@kuliahkita.com
Pendahuluan 
Selection sort adalah cara pengurutan dengan menelusuri 
dan mencari elemen yang terkecil / terbesar dari seluruh 
elemen yang ada dan menempatkannya di posisi pertama 
sampai semua elemen terurut dengan pengulangan.
Contoh: Proses Pengurutan Menaik 
Langkah: (untuk posisi pertama) 
● Delapan dipilih sebagai elemen terkecil 
● Bandingkan dengan elemen-elemen 
berikutnya (8 dengan 1) 
8 
1 
4 
2 
6 
3 
7 
0 
5 
9
Contoh: Proses Pengurutan Menaik 
Langkah: (untuk posisi pertama) 
● 1 < 8, 1 dijadikan elemen terkecil 
● Bandingkan dengan elemen-elemen 
berikutnya (1 dengan 4) 
● Karena 1 < 4 , elemen terkecil tetap 1 dan 
lanjutkan perbandingan 
8 
1 
4 
2 
6 
3 
7 
0 
5 
9
Contoh: Proses Pengurutan Menaik 
Langkah: (untuk posisi pertama) 
● 1 < 2, 1 tetap sebagai elemen terkecil 
● Bandingkan dengan elemen-elemen 
berikutnya (1 dengan 2) 
● Karena 1 < 2, lanjutkan perbandingan 
8 
1 
4 
2 
6 
3 
7 
0 
5 
9
Contoh: Proses Pengurutan Menaik 
Langkah: (untuk posisi pertama) 
● Sampai bertemu dengan 0, Elemen terkecil 
menjadi 0 untuk iterasi pertama dan iterasi 
akan selesai karena tidak ada elemen yang 
< 0 
8 
1 
4 
2 
6 
3 
7 
0 
5 
9
Contoh: Proses Pengurutan Menaik 
Langkah: (untuk posisi pertama) 
● Tempatkan 0 di posisi pertama dan tukar 
posisi elemen pertama dengan posisi 
elemen 0 
0 
1 
4 
2 
6 
3 
7 
8 
5 
9
Contoh: Proses Pengurutan Menaik 
Langkah: (untuk posisi kedua) 
● Mulai kembali dari posisi kedua yaitu 1 
sebagai elemen terkecil dan pembanding 
● Bandingkan 1 dengan elemen berikutnya 
(4) 
... 
● Setelah iterasi kedua selesai, dan elemen 
posisi kedua didapat, mulai dengan elemen 
ke-3, dst ... 
0 
1 
4 
2 
6 
3 
7 
8 
5 
9
Pseudocode 
procedure selectionSort( Output/Input A : list of sortable items ) 
/* A - array berisi kumpulan angka */ 
/* numItems - jumlah elemen dalam list */ 
for i = 0 to numItems - 1 do 
begin 
for j = i+1 to numItems do 
begin 
if A[i] > A[j] 
// Tukar posisi 
Temp = A[i] 
A[i] = A[j] 
A[j] = Temp 
end 
end
Kode dalam C++ 
void selectionSort(int arr[], int n) { 
int pos_min,temp; // pos_min adalah posisi dari minimum 
for (int i=0; i < n-1; i++) { 
pos_min = i; // set pos_min sebagai index pertama di array 
for (int j=i+1; j < n; j++) { 
if (arr[j] < arr[pos_min]) 
pos_min=j; // jika ditemukan yang lebih kecil, set posisi min-nya 
} 
// tukar posisi karena pos_min tidak sama dengan i (ada nilai yang lebih kecil) 
if (pos_min != i) { 
temp = arr[i]; 
arr[i] = arr[pos_min]; 
arr[pos_min] = temp; 
} 
} 
} 
}
Kode dalam C++ - (main) 
#include <iostream> 
using namespace std; 
int main() 
{ 
int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; 
selectionSort(numbers, 10); 
for (int i=0; i<10; i++) { 
cout << numbers[i]; 
cout << " | "; 
} 
}
Kompleksitas 
Worst Case O(n²) 
Best Case O(n²) 
Average Case O(n²)

Algoritma dan Struktur Data - Selection Sort

  • 1.
    Selection Sort Algoritmadan Struktur Data Georgius Rinaldo dodo@kuliahkita.com
  • 2.
    Pendahuluan Selection sortadalah cara pengurutan dengan menelusuri dan mencari elemen yang terkecil / terbesar dari seluruh elemen yang ada dan menempatkannya di posisi pertama sampai semua elemen terurut dengan pengulangan.
  • 3.
    Contoh: Proses PengurutanMenaik Langkah: (untuk posisi pertama) ● Delapan dipilih sebagai elemen terkecil ● Bandingkan dengan elemen-elemen berikutnya (8 dengan 1) 8 1 4 2 6 3 7 0 5 9
  • 4.
    Contoh: Proses PengurutanMenaik Langkah: (untuk posisi pertama) ● 1 < 8, 1 dijadikan elemen terkecil ● Bandingkan dengan elemen-elemen berikutnya (1 dengan 4) ● Karena 1 < 4 , elemen terkecil tetap 1 dan lanjutkan perbandingan 8 1 4 2 6 3 7 0 5 9
  • 5.
    Contoh: Proses PengurutanMenaik Langkah: (untuk posisi pertama) ● 1 < 2, 1 tetap sebagai elemen terkecil ● Bandingkan dengan elemen-elemen berikutnya (1 dengan 2) ● Karena 1 < 2, lanjutkan perbandingan 8 1 4 2 6 3 7 0 5 9
  • 6.
    Contoh: Proses PengurutanMenaik Langkah: (untuk posisi pertama) ● Sampai bertemu dengan 0, Elemen terkecil menjadi 0 untuk iterasi pertama dan iterasi akan selesai karena tidak ada elemen yang < 0 8 1 4 2 6 3 7 0 5 9
  • 7.
    Contoh: Proses PengurutanMenaik Langkah: (untuk posisi pertama) ● Tempatkan 0 di posisi pertama dan tukar posisi elemen pertama dengan posisi elemen 0 0 1 4 2 6 3 7 8 5 9
  • 8.
    Contoh: Proses PengurutanMenaik Langkah: (untuk posisi kedua) ● Mulai kembali dari posisi kedua yaitu 1 sebagai elemen terkecil dan pembanding ● Bandingkan 1 dengan elemen berikutnya (4) ... ● Setelah iterasi kedua selesai, dan elemen posisi kedua didapat, mulai dengan elemen ke-3, dst ... 0 1 4 2 6 3 7 8 5 9
  • 9.
    Pseudocode procedure selectionSort(Output/Input A : list of sortable items ) /* A - array berisi kumpulan angka */ /* numItems - jumlah elemen dalam list */ for i = 0 to numItems - 1 do begin for j = i+1 to numItems do begin if A[i] > A[j] // Tukar posisi Temp = A[i] A[i] = A[j] A[j] = Temp end end
  • 10.
    Kode dalam C++ void selectionSort(int arr[], int n) { int pos_min,temp; // pos_min adalah posisi dari minimum for (int i=0; i < n-1; i++) { pos_min = i; // set pos_min sebagai index pertama di array for (int j=i+1; j < n; j++) { if (arr[j] < arr[pos_min]) pos_min=j; // jika ditemukan yang lebih kecil, set posisi min-nya } // tukar posisi karena pos_min tidak sama dengan i (ada nilai yang lebih kecil) if (pos_min != i) { temp = arr[i]; arr[i] = arr[pos_min]; arr[pos_min] = temp; } } } }
  • 11.
    Kode dalam C++- (main) #include <iostream> using namespace std; int main() { int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; selectionSort(numbers, 10); for (int i=0; i<10; i++) { cout << numbers[i]; cout << " | "; } }
  • 12.
    Kompleksitas Worst CaseO(n²) Best Case O(n²) Average Case O(n²)