ALGORITMA SElECTION SORT
Makalah Ini Disusun Untuk Memenuhi Tugas Mata kuliah
Komputer Dan Masyarakat Semester Ⅱ
Nama-Nama Anggota:
Muhammad Akmal 202443500327
Riszyono 202443500292
Muhammad Rizqi Hidayat 202443500289
Muchammad Arfan Syah 202443500346
Adam Bravia Suksma 202443500341
Rafi Yusran Zaki 202443500258
Dosen Pembimbing :
Heri Satria Setiawan S.E.,M.T.I
Universitas Indraprasta PGRI
Jakarta
T.A. 2024/2025
KATA PENGANTAR
Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena atas limpahan
rahmatnya penyusun dapat menyelesaikan makalah ini tepat waktu tanpa ada halangan yang
berarti dan sesuai dengan harapan. Ucapan terima kasih kami sampaikan kepada Pak Heri
Satria Setiawan S.E.,M.T.I sebagai dosen pengampu mata kuliah algoritma II yang telah
membantu memberikan arahan dan pemahaman dalam penyusunan makalah ini.
Penyusunan makalah ini bertujuan untuk memberikan pemahaman mengenai
Algoritma Selection Sort, serta membantu dalam kegiatan belajar dan mampu untuk menambah
wawasan serta pehaman untuk kita semua.
Penulis menyadari bahwa makalah ini masih jauh dari sempurna, baik dari segi isi
maupun penyajiannya. Oleh karena itu, kritik dan saran yang membangun sangat diharapkan
untuk menyempurnakan karya ini di masa yang akan datang. Semoga makalah ini dapat
memberikan manfaat dan wawasan tambahan bagi pembaca, khususnya dalam memahami dan
menghadapi tantangan di dunia digital.
Jakarta, 23 April 2025
i
DAFTAR ISI
KATA PENGANTAR .................................................................................... i
DAFTAR ISI ...................................................................................................................... ii
BAB Ⅰ: PENDAHULUAN ........................................................................... 1
1.1 Latar Belakang .................................................................................................. 1
1.2 Rumus Masalah................................................................................................. 1
1.3 Tujuan ............................................................................................................... 1
BAB Ⅱ : PEMBAHASAN............................................................................. 2
2.1 Pengertian Slection Sort .................................................................................... 2
2.2 Variasi dari Selection Sort ................................................................................. 2
2.3 Cara Kerja Selection Sort.................................................................................. 3
2.4 Contoh Pembuata Program Selection Short ...................................................... 5
BAB Ⅲ : PENUTUPAN .............................................................................. 9
A Kesimpulan .......................................................................................................... 9
Daftar Pustaka ........................................................................................................ 10
ii
BAB Ⅰ
PENDAHULUAN
1.1 Pendahuluan
Algoritma Selection Sort merupakan salah satu algoritma pengurutan (sorting) sederhana
yang bekerja dengan cara memilih elemen terkecil (atau terbesar) dari bagian array yang belum
terurut dan menukarnya dengan elemen pada posisi yang sesuai. Algoritma ini dikenal dengan
pendekatannya yang intuitif dan mudah dipahami, meskipun tidak seefisien algoritma lain
seperti Merge Sort atau Quick Sort untuk data dalam jumlah besar.
Konsep utama Selection Sort adalah membagi array menjadi dua bagian: bagian yang sudah
terurut dan bagian yang belum terurut. Pada setiap iterasi, algoritma akan mencari nilai
minimum (atau maksimum) dari bagian yang belum terurut dan menempatkannya di posisi
yang benar dalam bagian terurut. Proses ini dilakukan berulang hingga seluruh elemen array
terurut.
Meskipun memiliki kompleksitas waktu O(n²) untuk semua kasus (terbaik, rata-rata, dan
terburuk), Selection Sort tetap berguna dalam situasi tertentu, seperti ketika pertukaran elemen
(swapping) memerlukan biaya komputasi yang tinggi, karena algoritma ini hanya
melakukan O(n) pertukaran. Selain itu, Selection Sort sering digunakan sebagai pengantar
dalam pembelajaran algoritma karena kesederhanaannya.
Dalam makalah ini, akan dibahas lebih lanjut mengenai prinsip kerja, kelebihan, kekurangan,
serta implementasi Selection Sort dalam berbagai bahasa pemrograman.
1.2 RUMUSAN MASALAH
1. Pengertian Slection Sort
2. Variasi dari Selection Sort
3. Cara Kerja Selection Sort
4. Contoh Pembuatan Program Selection Short
1.3 TUJUAN
1. Mengetahui pengertian tentang selection sort
2. Mengetahui tentang variasi selection sort
3. Mengetahui tentang cara kerja selection sort
4. Mengetahui tentang pembuatan program selection sort
1
BAB Ⅱ
PEMBAHASAN
2.1 Pengertian Slection Sort
Selection sort adalah algoritma pengurutan berbasis perbandingan sederhana yang
membagi daftar masukan menjadi bagian yang diurutkan di awal dan bagian yang tidak
diurutkan di akhir. Algoritma tersebut berulang kali memilih elemen terkecil (atau terbesar,
tergantung pada urutannya) dari bagian yang tidak diurutkan dan menukarnya dengan elemen
pertama yang tidak diurutkan, secara bertahap mengembangkan bagian yang diurutkan hingga
seluruh daftar diurutkan.
1. Selection sort adalah algoritma pengurutan berbasis perbandingan yang mudah
dan efisien, ideal untuk kumpulan data kecil.
2. Tiap iterasi secara bertahap membangun bagian yang diurutkan dengan
menambahkan satu elemen pada satu waktu.
3. Algoritmanya bekerja dengan mengidentifikasi elemen terkecil di bagian array
yang belum diurutkan dan menukarnya dengan elemen pertama yang belum
diurutkan, sehingga secara efektif memindahkannya ke depan .
4. Atau, bergantung pada urutan penyortiran yang diinginkan, elemen terbesar
dapat dipilih dan ditempatkan di akhir susunan.
5. Selama tiap iterasi, pemilihan sortir mengidentifikasi elemen yang benar dan
memposisikannya dengan tepat di dalam bagian array yang diurutkan.
2.2 Variasi dari Selection Sort
Selection sort memiliki beberapa variasi, salah satunya adalah "selection sort
descending" yang berfungsi untuk mengurutkan data dari terbesar ke terkecil, bukan dari
terkecil ke terbesar (ascending). Selain itu, ada juga variasi yang fokus pada penggunaan
memori yang lebih efisien atau variasi yang dioptimalkan untuk jenis data tertentu.
2
Variasi-variasi Selection Sort:
1. Selection Sort Ascending (Terkecil ke Terbesar):
Algoritma standar yang mencari elemen terkecil dan menukarnya dengan elemen
pertama, lalu mengulang proses ini untuk elemen selanjutnya.
Contoh: {5, 2, 8, 1, 9} menjadi {1, 2, 5, 8, 9}.
2. Selection Sort Descending (Terbesar ke Terkecil):
Variasi ini mencari elemen terbesar dan menukarnya dengan elemen pertama, lalu
mengulang proses ini untuk elemen selanjutnya.
Contoh: {5, 2, 8, 1, 9} menjadi {9, 8, 5, 2, 1}.
3. Selection Sort In-Place:
Variasi yang menggunakan memori yang minimal, dengan melakukan pertukaran
elemen langsung di dalam array yang diurutkan, tanpa membutuhkan array tambahan.
4. Selection Sort untuk Data Khusus:
Beberapa variasi dioptimalkan untuk jenis data tertentu, seperti data numerik atau
data yang mengandung string, dengan menyesuaikan algoritma perbandingan.
Penting untuk dicatat: Selection sort umumnya tidak seefisien algoritma pengurutan
lain seperti Quick Sort atau Merge Sort untuk data yang besar. Namun, ia mudah
diimplementasikan dan memiliki kompleksitas waktu yang konsisten (O(n²)) dalam kasus
terbaik, rata-rata, dan terburuk.
2.3 Cara Kerja Selection Sort
Urutan pilihan mengambil elemen terkecil dalam larik yang tidak diurutkan dan
membawanya ke depan. Anda akan meninjau setiap item (dari kiri ke kanan) hingga
menemukan yang terkecil. Item pertama dalam larik sekarang diurutkan, sedangkan sisa larik
tidak diurutkan. Berikut proses langkah demi langkahnya:
3
1. Inisialisasi
Mulailah dengan array atau daftar yang tidak diurutkan. Susunan tersebut secara
konseptual dibagi menjadi dua bagian: bagian yang diurutkan, yang awalnya kosong,
dan bagian yang tidak diurutkan, yang berisi semua elemen.
2. Iterasi Atas Array
Algoritma mengulangi susunan tersebut, satu elemen pada satu waktu, mencari
elemen terkecil pada bagian yang tidak diurutkan selama setiap iterasi.
3. Menemukan Elemen Minimum
Dalam tiap iterasi, asumsikan bahwa elemen pertama dari bagian yang tidak
diurutkan adalah yang terkecil. Bandingkan elemen ini dengan elemen lainnya pada
bagian yang tidak diurutkan. Jika elemen yang lebih kecil ditemukan, perbarui elemen
terkecil ke nilai baru ini.
4. Menukar Elemen
Setelah elemen terkecil di bagian yang tidak diurutkan ditemukan, tukar dengan
elemen pertama di bagian yang tidak diurutkan. Ini secara efektif memindahkan
elemen terkecil ke posisi yang benar di bagian yang diurutkan.
5. Kurangi Bagian yang Tidak Diurutkan
Setelah setiap pertukaran, batas antara bagian yang diurutkan dan yang tidak
diurutkan akan berpindah satu elemen ke kanan. Bagian yang diurutkan akan
bertambah satu elemen, dan bagian yang tidak diurutkan akan berkurang satu elemen.
6. Ulangi Prosesnya
Proses ini diulang untuk elemen-elemen yang belum diurutkan. Setiap kali, elemen
terkecil berikutnya dipilih dan dipindahkan ke bagian akhir bagian yang diurutkan.
7. Penyelesaian
Algoritme berlanjut hingga seluruh array terurut. Array terurut sepenuhnya saat
bagian yang tidak terurut direduksi menjadi satu elemen.
4
2.4 contoh program selection sort
Berdasarkan variasi di atas berikut adalah contoh program selection sort :
1. Selectiob sort ascending
program SelectionSortAscending;
var
arr: array[1..5] of integer = (5, 2, 8, 1, 9);
i, j, n, min_idx, temp: integer;
begin
n := 5; // Panjang array
for i := 1 to n-1 do
begin
min_idx := i;
// Cari elemen terkecil
for j := i+1 to n do
if arr[j] < arr[min_idx] then
min_idx := j;
// Tukar elemen
temp := arr[i];
arr[i] := arr[min_idx];
arr[min_idx] := temp;
end;
// Cetak hasil
writeln('Hasil Ascending:');
for i := 1 to n do
write(arr[i], ' ');
readln;
end.
Outputnya :
Hasil Ascending:
12589
5
2. Selection sort descending
program SelectionSortDescending;
var
arr: array[1..5] of integer = (5, 2, 8, 1, 9);
i, j, n, max_idx, temp: integer;
begin
n := 5; // Panjang array
for i := 1 to n-1 do
begin
max_idx := i;
// Cari elemen terbesar
for j := i+1 to n do
if arr[j] > arr[max_idx] then
max_idx := j;
// Tukar elemen
temp := arr[i];
arr[i] := arr[max_idx];
arr[max_idx] := temp;
end;
// Cetak hasil
writeln('Hasil Descending:');
for i := 1 to n do
write(arr[i], ' ');
readln;
end.
Outputnya :
Hasil Descending:
98521
6
3. Selection sort in-place
program SelectionSortInPlace;
var
arr: array[1..5] of integer = (5, 2, 8, 1, 9);
i, j, n, min_idx, temp: integer;
begin
n := 5; // Panjang array
for i := 1 to n-1 do
begin
min_idx := i;
// Cari elemen terkecil
for j := i+1 to n do
if arr[j] < arr[min_idx] then
min_idx := j;
// Tukar elemen secara manual (in-place)
if min_idx <> i then
begin
temp := arr[i];
arr[i] := arr[min_idx];
arr[min_idx] := temp;
end;
end;
// Cetak hasil
writeln('Hasil In-Place:');
for i := 1 to n do
write(arr[i], ' ');
readln;
end.
Ouputnya :
Hasil In-Place:
12589
7
4. Selection sort untuk data khusus
program SelectionSortString;
var
arr: array[1..5] of string = ('John', 'Alice', 'Bob', 'Mike');
i, j, n, min_idx: integer;
temp: string;
begin
n := 5; // Panjang array
for i := 1 to n-1 do
begin
min_idx := i;
// Cari elemen terkecil (berdasarkan urutan leksikografis)
for j := i+1 to n do
if arr[j] < arr[min_idx] then
min_idx := j;
// Tukar elemen
if min_idx <> i then
begin
temp := arr[i];
arr[i] := arr[min_idx];
arr[min_idx] := temp;
end;
end;
// Cetak hasil
writeln('Hasil Sorting String:');
for i := 1 to n do
writeln(arr[i]);
readln;
end.
Outputnya :Hasil Sorting String:
Alice
Bob
John
Mike
8
BAB Ⅲ
PENUTUP
[Link]
Selection Sort merupakan salah satu algoritma pengurutan (sorting) sederhana yang
bekerja dengan memilih elemen terkecil (atau terbesar) dari bagian array yang belum terurut
dan menukarnya dengan elemen pada posisi yang sesuai. Algoritma ini memiliki beberapa
karakteristik utama, yaitu:
1. Sederhana dan Mudah Dipahami
1. Selection Sort menggunakan konsep yang intuitif, yaitu membagi array
menjadi bagian terurut dan belum terurut, lalu memindahkan elemen
terkecil/terbesar ke posisi yang benar secara bertahap.
2. Algoritma ini sering digunakan sebagai materi pengantar dalam pembelajaran
algoritma karena logikanya yang mudah diikuti.
2. Kompleksitas Waktu Konsisten (O(n²))
1. Selection Sort memiliki kompleksitas waktu O(n²) untuk semua kasus (terbaik,
rata-rata, dan terburuk), sehingga kurang efisien untuk data dalam jumlah
besar dibandingkan algoritma seperti Merge Sort atau Quick Sort.
2. Namun, keunggulannya terletak pada jumlah pertukaran (swaps) yang
minimal (hanya O(n)), sehingga berguna jika operasi pertukaran memerlukan
biaya tinggi.
3. Beberapa Variasi yang Fleksibel
1. Algoritma ini dapat dimodifikasi untuk pengurutan ascending (terkecil ke
terbesar) maupun descending (terbesar ke terkecil).
2. Terdapat juga variasi seperti In-Place Selection Sort (tanpa memori tambahan)
dan adaptasi untuk jenis data tertentu (numerik, string, dll.).
9
DAFTAR PUSTAKA
1. simplilearn. (2023 ,14 November) . What Is Selection Sort Algorithm In Data
Structures?.[Link]
sort-algorithm
2. sitepoin . (2024 , 12 Februari) 10 Best Sorting Algorithms Explained .
[Link]
algorithms/?_x_tr_sl=en&_x_tr_tl=id&_x_tr_hl=id&_x_tr_pto=sge#:~:text=(%20ite
ms%20)%20)%20;-,Urutkan%20pilihan,berlanjut%20hingga%20seluruh%20daftar%
20diurutkan
3. StudySmarter. (2024 , 12 Desember) . Selection Sort.
[Link]
computer-science/selection-sort/
4. Kirupa (…………………) . Selection Sort.
[Link]
[Link]/sorts/[Link]?_x_tr_sl=en&_x_tr_tl=id&_x_tr_hl=id&_
x_tr_pto=sge#:~:text=Dua%20Variasi%20Koleksi,akan%20menjadi%20output%20ya
ng%20disortir
10