Anda di halaman 1dari 16

KATA PENGANTAR

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.1 Pengertian Selection Sort

Selection Sort merupakan kegiatan algoritma pengurutan yang sederhana. Penggunaan


dasarnya dengan cara melakukan beberapa kali pass untuk dapat penyeleksian elemen
struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil diantara elemen
yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan
indeks yang disimpan tersebut dengan elemen paling depan belum urut. Sebaliknya, untuk
sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian
di tukar.

1.2. Algoritma Selection Sort

Selection Sort merupakan suatu kesederhanaan dalam algoritmanya dan performanya


lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini
bekerja sebagai berikut :

1. Mencari nilai kecil dan besar dalam sebuah list atau urutan.

2. Menukar nilai dengan elemen pertama pada 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

2.1. Selection Sort


Algoritma pengurutan sederhana atau yang kita dengan istilah Selection Sort. Yang tugas nya
hanya melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik)
merupakan urutan element terkecil yang terdapat di antara elemen yang sudah diurutka dan
indeks nya audah tersimpan, dari indeks tersebut kemudian dilakukan pertukaran nilai pada
indeks yang audah disimpan pada element pertama yang belum diurutkan sama sekali.
Sebaliknya, untuk sorting descending (menurun), elemen paling besar yang disimpan
indeksnya kemudian ditukar. Selection Sort diakui karena kesederhanaan algoritmanya dan
performanya lebih efektif dan bagus daripada algoritma lain yang lebih rumit dalam situasi
tertentu. Algoritma ini bekerja sebagai berikut:
1. Mencari nilai kecil atau maksimum dalam antrian list.
2. Menukar nilai dengan element pertama yang dilist
3. Mengulangi langkah setiap atas nya untuk sisa list dapat dimulai pada posisi kedua.

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.

2.2 Simulasi Selection Sort

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

Procedure SelectionSort (Input/Output T: TabInt, Input N:integer)


{mengurut tabel integer [1 .. N] dengan Selection Sort secara ascending}
Kamus:
i: integer
Pass: integer
min: integer
Temp: integer

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}

2.4 Kompleksitas Selection Sort

Algoritma di dalam Selection Sort terdiri dari pengelompokan masing-masing. Dimana


pengelompokan pertama merupakan tingkat pertama (disebut pass) berlangsung N-1 kali. Di
dalam pengelompokan kedua tersebut dicari elemen dengan nilai terkecil. Jika indeks yang
didapat ditumpuk ke dalam variabel min kemudian dilakukan proses penukaran. Begitu
seterusnya untuk setiap Pass. Pass sendiri makin berkurang hingga nilainya menjadi semakin
kecil. Berdasarkan operasi perbandingan elemennya:

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.

2.5 Stabilitas Selection Sort


Selection Sort merupakan algoritma sorting yang tidak stabil karena pengurutan nya yang
tidak berurutan namun dapat diubah menjadi stabil pada hal tertentu. Algoritma sorting yang
stabil akan mampu memanfaatkan kestabilitas antar record melalui defisini suatu kunci yang
dimiliki oleh record tersebut. Misalkan ada dua penyimpanan file T dan U dengan kunci yang
sama dan dengan pengurutan harus T duluan yang muncul sebelum U, maka pada hasil
keluaran yang di minta akan muncul T sebelum U. Tapi ketika kita mendapatkan elemen yang
sama (tidak dapat dibedakan) dan terdapat tipe data integer, stabilitas akan kembali di
utamakan. Misal terdapat pasangan data berikut yang akan diurutkan berdasarkan komponen
pertama:
(4, 1) (3, 7) (3, 1) (5, 6)
Pada kasus ini, akan menghasilkan dua output yang berbeda, dimana salah satunya akan
memperhatikan kunci dari data dalam pengurutan dan solusi yang lain tidak.
(3, 7) (3, 1) (4, 1) (5, 6) (order maintained/ stable).
(3, 1) (3, 7) (4, 1) (5, 6) (order changed/ unstable)
Algoritma sorting yang tidak stabil akan mengubah hubungan antara penyimpanan dengan
berdasarkan kunci yang dimiliki, namun algoritma yang stabil akan mengabaikan kunci

8
tersebut. Bagaimanapun algoritma yang stabil tetap bisa diubah menjadi tidak stabil dengan
membandingkan kunci yang dimilikki tiap-tiap recordnya.

2.2. Insertion Sort


Algoritma insertion sort merupakan algoritma penyerdehanaan yang efisien untuk
mengurutkan sebuah list yang sudah hampir berurutan dengan sempurna atau yang sudah
berurutan dengan baik. Algorima ini digunakan sebagai bagian pengurutan yang baik dan
lebih canggih. Cara kerja algoritma ini adalah dengan mengambil elemen list secara satu per
satu dan diletak kan pada posisi yang benar sesuai urutan nama nya. Pada array, list yang baru
dan elemen sisanya dapat berbagi tempat di array, meskipun cukup rumit. Untuk menghemat
memori, mengimplementasi kan nya harus menggunakan pengurutan di tempat yang harus
membandingkan elemen saat itu dengan elemen sebelumnya yang sudah diurut, lalu
menukarnya terus sampai posisinya tepat. Hal ini terus dilakukan sampai tidak ada elemen
yang tersisa untuk di input. Variasi pada umunya yang dilakukan terhadap array pada insertion
sort adalah sebagai berikut :
• Elemen pada awal di masukkan acak, lalu elemen berikutnya dimasukkan di bagian paling
akhir.
• Elemen tersebut dibandingkan dengan elemen ke (x-1). Bila belum terurut posisi elemen
sebelumnya digeser sekali ke kanan terus sampai elemen yang sedang diproses menemukan
posisi yang tepat atau sampai elemen pertama.
• Setiap pergeseran akan mengganti nilai elemen
berikutnya, namun hal ini tidak menjadi persoalan sebab elemen berikutnya sudah diproses
lebih dahulu.
Ilustrasi:
Sebelum di-insert:

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 nominal harga terendah dan tertinggi pada E-commerce

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 produk yang terbanyak stok atau tersedikit stok

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.

[4] Wikipedia, http://wikipedia.org/selection%sort. Diakses tanggal 20 Desember 2009

15

Anda mungkin juga menyukai