Puji dan syukur kami panjatkan kehadirat ALLAH SWT yang selalu memberikan taufik
dan hidayah-Nya, makalah ini yang berjudul “ Selection Sort Algorithm “ dapat diselesaikan
tepat waktu. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada semua pihak
yang telah membantu.
Dalam penulisan ini, penulis memohon maaf jika masih banyak kekurangan baik dari
segi materi maupun penggunaan tata Bahasa. Untuk itu segala kritikan dan saran sangat
dihargai untuk menyempurnakan makalah ini. Semoga makalah ini dapat bermanfaat
khususnya bagi penyusun dan para pembaca pada umumnya.
1
DAFTAR ISI
KATA PENGANTAR...........................................................................................................................1
BAB I....................................................................................................................................................3
PENDAHULUAN.................................................................................................................................3
1.1 Pengertian Selection Sort.............................................................................................................3
1.2. Algoritma Selection Sort............................................................................................................3
BAB II...................................................................................................................................................6
PEMBAHASAN...................................................................................................................................6
2.1. Selection Sort..............................................................................................................................6
2.2 Simulasi Selection Sort................................................................................................................6
2.3 Notasi Algoritmik Selection Sort.................................................................................................7
2.4 Kompleksitas Selection Sort........................................................................................................7
2.5 Stabilitas Selection Sort...............................................................................................................8
BAB III................................................................................................................................................10
ANALISIS ALGORITMA..................................................................................................................10
BAB IV...............................................................................................................................................11
Penerapan Algoritma...........................................................................................................................11
BAB VI...............................................................................................................................................15
DAFTAR PUSTAKA..........................................................................................................................15
2
BAB I
PENDAHULUAN
Makalah ini dibuat untuk membahas tentang algoritma pengurutan. Pengurutan atau Sorting
merupakan proses yang mengatur susunan data menurut urutan tertentu. Suatu pengolahan
data akan menjadi lebih efisien jika datanya sudah diurut, maka kita harus perlu mengetahui
algoritma mana yang paling efektif untuk dipakai. Dan meskipun di setiap algoritma
pengurutan masing-masing mempunyai kelebihan dan keterbatasan kompleksitas dan
efektifitas nya harus tetap dipertimbangkan.
1. Mencari nilai kecil dan besar dalam sebuah list atau urutan.
3. Mengulangi langkah pada urutan atas untuk sisa liat dengan dimulai pada posisi kedua.
4. Selection Sort merupakan metode pengurutan dengan mencari nilai data terkecil dan
terbesar yang dimulai dari posisi data 0 hingga diposisi N-1.
3
Secara tidak langsung kita sudah membagi list menjadi dua bagian yaitu yang sudah
diurutkan dan yang didapat dengan membangun dari kiri ke kanan yang dilakukan pada awal,
dan bagian list yang elemennya akan diurutkan.
Pengurutan data (sorting) merupakan satu proses untuk menyusun himpunan obyek yang
menggunakan aturan tertentu, algoritma pengurutan meeupakan algoritma yang digunakan
untuk meletakkan kumpulan suatu elemen data ke dalam urutan tertentu berdasarkan satu atau
beberapa kunci dalam tiap elemen. Ada dua macam urutan yang biasa digunakan dalam proses
pengurutan yaitu:
urut naik (ascending) yaitu dari data yang mempunyai nilai paling kecil sampai besar .
urut turun (descending) yaitu dari data yang mempunyai nilai paling besar ke kecil
Contoh : data bilangan 5, 2, 6 dan 4 dapat diurutkan naik menjadi 2, 4, 5, 6 atau turun menjadi
6, 5, 4, 2.
Keuntungan dari data yang sudah dalam keadaan terurutkan antara lain :
data mudah dicari (misalnya dalam buku telepon atau kamus bahasa), diperbaiki,
dihapus, digabungkan. Dalam keadaan terurut, kita mudah melakukan pengecekan
apakah ada data yang hilang
mempercepat proses pencarian data yang harus dilakukan berulang kali.
Data yang diurutkan sangat bervariasi, dalam jumlah data maupun jenis data yang
diurutkan.
Tidak ada algoritma terbaik pada setiap situasi yang dihadapi, sulit untuk menentukan
algoritma.
Beberapa faktor yang berpengaruh pada efektifitas suatu algoritma pengurutan antara lain:
jumlah data yang diurut tersebut banyak.
kapasitas pengingatan data tersebut apakah mampu atau tidak untuk menyimpan
semua data.
tempat penyimpanan data, piringan, pita atau kartu, atau media penyimpanan yang
lain.
B. Metode Pengurutan Data
Untuk dapat melakukan proses pengurutan tersebut, kita dapat menggunakan beberapa
metode, yaitu :
Buble / Exchange Sort
Selection Sort
4
Insertion Sort
Quick Sort
C. Selection Sort
Metode seleksi (selection) melakukan pengurutan dengan cara mencari data yang
terkecil dan kemudian menukarnya dengan data yang digunakan sebagai acuan. Proses
pengurutan dengan metode seleksi :
Langkah pertama mencari data terkecil dari data pertama sampai terakhir. Data terkecil
ditukar dengan data pertama. Dengan demikian data pertama mempunyai nilai paling
kecil dibanding data lain.
Langkah kedua data terkecil kita cari mulai dari data kedua sampai terkecil yang kita
peroleh ditukar dengan data kedua dan demikian seterusnya sampai semua elemen
dalam keadaan terurutkan.
Untuk menguji seberapa efektifitas pada suatu algoritma dapat memakai teori kompleksitas
algoritma sebagai dasar utama. Kompleksitas tersebut dibagi menjadi dua, yaitu kompleksitas
waktu dan ruang. Kompleksitas ini cenderung tidak Akan dibahas karena tidak akan
berkenaan dengan struktur yang digunakan untuk mengimplementasi kan sebuah algoritma.
Pada sementara itu topik nya diluar tafsiran Matematika Distrik. Kompleksitas Waktu, T(n)
merupakan berapa jumlah operasi principle dilakukan untuk dapat melaksanakan algoritma
sebagai fungsi utama ukuran masukan n. Maka, dalam mengukur kompleksitas waktu dihitung
banyaknya operasi yang dilakukan oleh algoritma. Dan kita harus menghitung semua operasi
dalam suatu algoritma. Namun, untuk menghitung nya harus menggunakan jumlah operasi
abstrak yang mendasari suatu algoritma. Operasi abstrak ini disebut Operasi Dasar. Pada
algoritma pengurutan, terutama pada pengurutan dengan perbandingan, operasi dasar adalah
operasi-operasi perbandingan elemen-elemen suatu larik dan operasi pertukaran elemen.
Kedua hal itu dihitung secara terpisah, karena jumlah keduanya tidaklah sama.
5
BAB II
PEMBAHASAN
Dengan tidak langsung kita sudah dapat membagi list menjadi dua bagian yaitu bagian yang
sudah diurutkan dan yang sudah di bangun dari urutan kiri ke kanan yang dilakukan pada
urutan awal pada bagian list element yang sudah diurutkan dari awal tersebut.
Untuk lebih jelasnya, perhatikanlah simulasi Selection Sort Ascending berikut dengan
menggunakan larik
5 1 43 27 6 18 33
Dalam satu kali pass, ditentukan elemen yang paling kecil di dalam bagian list yang belum
urut. Elemen yang paling kecil ini, diwarnai merah . Untuk bagian larik yang telah diurutkan
diberi warna biru.
6
2.3 Notasi Algoritmik Selection Sort
Algoritma:
Pass traversal [1..N-1]
Min ← Pass
i traversal [Pass+1..N]
if (Ti < Tmin) then
min ← i
Temp ← TPass
TPass ← Tmin
Tmin ← Temp
{T[1..Pass] terurut}
7
Berarti kompleksitasnya secara simptotik adalah O(n²). Adapun grafik efisiensi selection sort
dapat dilihat pada tabel dibawah ini:
Pengurutan model ini merupakan termasuk golongan buruk dan lebih baik dihindari
penggunaannya, terutama untuk penanganan tabel dengan lebih dari 1000 elemen. Karena
masih ada algoritma lain yang implementasinya sama mudahnya, namun performansinya jauh
lebih baik. Algoritma yang dimaksud adalah insertion sort.
8
tersebut. Bagaimanapun algoritma yang stabil tetap bisa diubah menjadi tidak stabil dengan
membandingkan kunci yang dimilikki tiap-tiap recordnya.
Sesudah di-insert:
9
BAB III
ANALISIS ALGORITMA
Sorting adalah operasi yang biasa dilakukan pada komputer. Kita sering menggunakan fitur
penyortiran dan kita gunakan untuk memudahkan mendapatkan informasi data yang akurat,
misalnya ketika kita mencari nama di buku telepon dan kita yakin akan melihat huruf pertama
dari nama itu terlebih dahulu, maka kita bisa membuka halaman buku. Kita bisa melakukan
ini karena buku telepon disortir menurut abjad.
Sorting adalah operasi penting dalam pemrograman dan pemilihan, kita juga harus bisa
memilih teknik sorting yang tepat, ini adalah hal yang sangat penting dalam pemrograman.
Pengurutan seleksi adalah teknik pengurutan yang paling sederhana, hal pertama yang akan
dilakukan oleh algoritma pengurutan seleksi adalah menemukan elemen terkecil dalam array
kita dan menukarnya dengan elemen di posisi pertama, kemudian algoritma akan mengulangi
hal yang sama, yaitu menemukan elemen terkecil. dalam array dan kemudian menukarnya
dengan elemen di posisi kedua (dengan asumsi kita telah berhasil mengurutkan elemen di
posisi pertama). Proses ini akan berlanjut hingga semua elemen array berhasil diurutkan.
10
BAB IV
Penerapan Algoritma
Beberapa contoh penerapan algoritma selection sort dalam kehidupan sehari-hari antara lain :
Sorting ini pada umum nya dilakukan pada pencarian sebuah harga pada produk yang dijual.
Harga yang diurutkan adalah harga terkecil dan harga tertinggi. Fungsi sortingan ini untuk
mempermudah dalam mencari produk mana yang memiliki harga terkecil dan tertinggi pada
saat penginputan harga.
Sorting ini pada umum nya dilakukan pada pencarian sisa stock pada produk yang dijual.
Produk yang diurutkan adalah produk sedikit dan terbanyak. Fungsi sortingan ini untuk
mempermudah dalam pengisian produk yang sudah habis dengan cara mencari produk mana
yang memiliki stock terbanyak dan sedikit pada saat penginputan stock dan juga berfungsi
untuk untuk mengisi produk yang habis.
11
Pada gambar diatas memiliki penjelasan :
- Pada langkah pertama kita membuat function selectionSort dengan sebuah parameter
selanjutnya di dalam function tersebut kita membuat perulangan for untuk proses pembacaan
data yang dilakukan sepanjang data yang ada di kurang 1 lalu dilakukan deklarasi variabel
mins yaitu sebagai nilai minimum sementara dari perulangan for i.
- Langkah kedua data dibuat kembali perulangan for untuk mencari nilai minimum
sebenarnya dimana i+1 kemudian akan dibandingkan dengan seluruh data lalu dibuat kondisi
jika data minimum sementara lebih besar daripada data pembanding maka status nilai
minimum akan terganti dengan indeks pembanding
- Langkah ketiga data kemudian dibuat deklarasi pada indeks awal kemudian data yang ada
pada indeks minimum sementara akan ditukar posisinya lalu kita deklarasi variabel params
yang berisi nominal harga
- Langkah terakhir kita melakukan pemanggilan function dengan parameter yang disi dengan
variabel params lalu kita melakukan print untuk melihat hasil sort yang telah dilakukan
Penerapan Selectionsort dapat digunakan untuk melakukan filtering nominal harga yang
terkecil hingga yang terbesar dan sebaliknya.
12
13
Algoritma Pengurutan atau Sorting mempunyai berbagai macam jenis. Tiap-tiap algoritma
pengurutan mempunyai kekurangan dan kelebihannya sendiri. Pada makalah ini telah dibahas
algoritma selection sort dan insertion sort. Khusus untuk selection sort dapat disimpulkan
bahwa : a. Kompleksitas selection sort relatif lebih kecil.
b. Kompleksitas algoritma selection sort adalah O(n2).
c. Tidak ada Best Case dan Worst Case karena O(n2) berlaku sama.
d. Pada dasarnya Selection Sort merupakan algoritma yang tidak stabil.
Untuk Insertion Sort, mempunyai beberapa keuntungan: Implementasi yang sederhana
a. Paling efisien untuk data berukuran kecil
b. Merupakan online algorithmic, yang berarti bisa langsung melakukan sort setiap ada data
baru
c.. Proses di tempat (memerlukan O(1) memori tambahan)
d. Stabil.
Insertion Sort juga mempunyai O(n2). Insertion Sort dan Selection Sort adalah metode
pengurutan yang paling sederhana. Meskipun Insertion dan Selection Sort mempunyai
Kompleksitas sama dengan O(n2), namun Insertion Sort lebih efisien jika kita melihat grafik
pada pembahasan. Insertion Sort juga sudah memiliki alternatif algoritma yang ber-O(n
logn).
14
BAB VI
DAFTAR PUSTAKA
[1] Munir, Rinaldi. 2003. Diktat Kuliah IF2153 Matematika Diskrit. Program Studi Teknik
Informatika, Institut Teknologi Bandung.
[2] Liem, Inggriani. 2007. Draft Diktat Kuliah Dasar Pemrograman (Bagian Pemrograman
Prosedural). Program Studi Teknik Informatika, Institut Teknologi Bandung. hlm. 141-142
[3] Setyo, Danang dkk. 2008. Analisis Algoritma Selection Sort. Institut Teknologi Telkom.
Bandung.
15