Karya ini Disusun untuk Memenuhi Tugas Mata Kuliah Struktur Data
Kuliah Semester 2
Dosen Pengampu : Endang Anggiratih, S.T., M.Cs
Kelompok 2:
Kelompok 2
ii
DAFTAR ISI
BAB I PENDAHULUAN
A. Latar Belakang ....................................................................................................... 1
B. Rumusan Masalah ................................................................................................... 2
C. Tujuan ..................................................................................................................... 2
BAB II PEMBAHASAN
A. Definisi Selection Sort ........................................................................................... 3
B. Algoritma ............................................................................................................... 3
1. Ascending ......................................................................................................... 3
2. Descending ........................................................................................................ 4
C. Ilustrasi Pengurutan .............................................................................................. 4
D. Efisiensi Waktu ....................................................................................................... 5
E. Kelebihan dan Kekurangan ..................................................................................... 7
A. Kesimpulan ............................................................................................................. 8
B. Saran ....................................................................................................................... 8
iii
BAB I
PENDAHULUAN
A. Latar Belakang
Struktur data dipakai untuk merepresentasikan sekumpulan data yang bertipe sama
(misal : integer, karakter) dan disimpan dengan urutan yang sesuai dengan definisi indeks
secara kontigu dalam memori komputer. Pemrosesan terhadap struktur data tabel dapat
dilakukan secara linear (sequential) ataupun rekursif.
Pemrosesan terurut terhadap suatu tabel adalah pemrosesan terurut tanpa mark.
Akses terhadap elemen-elemen yang ada dalam tabel dilakukan dengan memanfaatkan
keterurutan indeks. Elemen tabel dengan indeks terkecil adalah elemen pertama dari tabel.
Elemen selanjutnya dapat diakses melalui suksesor indeks. Kondisi berhenti adalah jika
indeks sudah mencapai harga indeks terbesar yang telah terdefinisi. Struktur data tabel
tidak mungkin kosong.
Pemrosesan yang paling sering dilakukan terhadap suatu tabel bertipe integer
adalah pencarian nilai (searching) dan pengurutan nilai (sorting). Untuk pencarian nilai,
ada beberapa jenis metode yaitu pencarian secara linear (sequential search) dan pencarian
biner (binary search) untuk table yang telah terurut nilainya (sorted tabel). Pencarian
secara linear mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Untuk
pengurutan nilai ada beberapa jenis algoritma yaitu count sort (pengurutan dengan
mencacah), selection sort (pengurutan dengan menyeleksi), insertion sort (pengurutan
dengan penyisipan), quick sort (pengurutan cepat), merge sort (pengurutan dengan
penggabungan), heap sort (pengurutan dengan tumpukan), shell sort (pengurutan
cangkang), dan bubble sort (pengurutan gelembung).
1
B. Rumusan Masalah
C. Tujuan
1. Untuk mememnuhi nilai tugas mata kuliah Struktur Data yang diampu oleh Ibu
Endang Anggiratih, S.T, M.Cs.
2. Untuk menambah pengetahuan penulis dan pembaca mengenai pengurutan data
selection sort.
2
BAB II
PEMBAHASAN
B. Algoritma
Algoritma pengurutan sederhana salah satunya adalah Selection Sort. Ide dasarnya
adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data.
Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang
belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan
indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut.
Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan
indeksnya kemudian ditukar.
Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih
bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini
bekerja sebagai berikut:
1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending)
dalam sebuah list
2. Menukarkan nilai ini dengan elemen pertama list
3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua.
Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah
diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat
awal, dan bagian list yang elemennya akan diurutkan.
1. Ascending
for (i=0; i < n-1; i++) {
min = i;
3
for (j = i+1; j < n; j++) {
If (X[min] > X[j]) min = j;}
t = X[min];
X[min] = X[i];
X[i] = t;
}
}
2. Descending
for(k=0;k<=(N-2);k++)
maks=k
for(j=(k+1);j<=(N-1);j++)
if (A[j] > A[maks])
maks=j
endif
endfor
temp=A[k]
A[k]=A[maks]
A[maks] = temp
endfor
4
Setelah 7 dan 1 ditukar, program akan mencari lagi nilai terkecil kedua dimulai dari
index kedua yaitu 4. Lalu ditemukan 2, karena 2 lebih kecil daripada 4, maka 2 dan 4
bertukar tempat.
Proses diatas diulangi sampai array terurut dengan benar dengan nilai data akhir { 1,
2, 4, 5, 7, 8, 9 }
D. Efisiensi Waktu
1. Kompleksitas Selection Sort
Algoritma di dalam Selection Sort terdiri dari kalang bersarang. Dimana kalang
tingkat pertama (disebut pass) berlangsung N-1 kali. Di dalam kalang kedua, dicari elemen
dengan nilai terkecil. Jika didapat, indeks yang didapat ditimpakan ke variabel min. Lalu
dilakukan proses penukaran. Begitu seterusnya untuk setiap Pass. Pass sendiri makin
berkurang hingga nilainya menjadi semakin kecil. Berdasarkan operasi perbandingan
elemennya:
5
Gambar Grafik Kompleksitas Selection Sort
6
E. Kelebihan dan Kekurangan
1. Kelebihan
a. Algoritma ini sangat rapat dan mudah untuk diimplementasikan.
b. Mempercepat pencarian
c. Mudah menentukan data maksimum /minimum.
d. Mudah menggabungkannya kembali.Kompleksitas selection sort relatif lebih
kecil.
2. Kekurangan
a. Membutuhkan method tambahan
b. Sulit untuk digabungkan kembali
c. Perlu dihindari untuk penggunaan data lebih dari 1000 tabel, karena akan
menyebabkan kompleksitas yang lebih tinggi dan kurang praktis
7
BAB III
PENUTUP
A. Kesimpulan
Berdasarkan uraian bahasan “selection sort” dapat disimpulkan bahwa :
1. Terdapat banyak algoritma sorting selection sort yang bisa programmer gunakan
sehingga dapat digunakan dalam situasi dan kondisi masalah tertentu.
2. Pembuat algoritma baru dirasakan sangat penting Karena setiap masalah akan
memerlukan teknik sorting dan searching yang baik dan sesuai.
B. Saran
Adapun saran-saran yang dapat penulis sampaikan dalam hal ini adalah sebagai
berikut :
1. Semoga pembaca dapat memahami dan mengerti tentang selection sort yang
dijelaskan.
2. Dengan adanya makalah ini, diharapkan pembaca mendapat informasi terbaru tentang
selection sort.
8
DAFTAR PUSTAKA
http://student.blog.dinus.ac.id/mansyurhidayat/2017/03/28/selection-sort/
http://www.g-excess.com/algoritma-sorting-bubble-sort-selection-sort-insertion-sort-
merge-sort-quick-sort.html
https://www.google.com/url?sa=t&source=web&rct=j&url=http://informatika.stei.itb.ac.i
d/~rinaldi.munir/Matdis/2007-2008/Makalah/MakalahIF2153-0708-
112.pdf&ved=2ahUKEwi8rr7s3Y3iAhWKMY8KHUR2AKYQFjAGegQIBBAB&usg=A
OvVaw3RKrMsA7l8eOEX-iuXkPiH&cshid=1557381521688
https://www.academia.edu/10422882/Algoritma_dan_Struktur_Data?auto=download
https://thenurulazizah.wordpress.com/artikel-2/13-metode-sorting/