Anda di halaman 1dari 12

Tugas Makalah

Pengurutan Data (Selection Sort)

Karya ini Disusun untuk Memenuhi Tugas Mata Kuliah Struktur Data
Kuliah Semester 2
Dosen Pengampu : Endang Anggiratih, S.T., M.Cs

Kelompok 2:

Galih Ronald 18.5.00060


Dwi Andriyana CN 18.5.00041
Riyan Rifki A 18.5.00019
Yusuf Afandi 18.5.00052

PROGRAM STUDI SARJANA TEKNIK INFORMATIKA


SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN
KOMPUTER SINAR NUSANTARA
SURAKARTA
2019
KATA PENGANTAR

Alhamdulillaahi Robbil ‘Aalamiin, puji syukur Penulis panjatkan kehadirat Allah


SWT yang telah melimpahkan rahmat dan hidayah – Nya, sehingga Kami dapat
menyelesaikan tugas membuat makalah selection sort. Sholawat serta Salam semoga
senantiasa tercurah limpahkan kepada uswah khasanah kita, Rasululloh Muhammad SAW
yang begitu banyak memberikan inspirasi kepada ummatnya khususnya pribadi Penulis
sendiri.
Tugas ini disusun untuk memenuhi syarat dalam mengikuti Mata Kuliah Struktur
Data semester II. Makalah ini berisi materi yang berkaitan dengan pengurutan data dengan
metode selection sort.
Dalam pengumpulan data, dikarenakan tidak ada buku modul dan buku panduan
untuk mata kuliah ini, Kami mencari banyak referensi di internet. Kami juga banyak
mendapat bantuan dari berbagai pihak, terutama kepada semua orang yang telah
mengupload materi di internet. Oleh sebab itu, dalam kesempatan ini Kami menyampaikan
terima kasih kepada semua pihak yang telah membantu hingga terselesaikannya makalah
ini.
Kami menyadari bahwa rangkuman ini masih jauh dari sempurna dan masih
terdapat banyak sekali kesalahan. Segala kritik dan saran yang bersifat membangun demi
perbaikan makalah ini sangat Kami harapkan.
Semoga makalah ini dapat bermanfaat bagi Kelompok kami pada khususnya dan
bagi para pembaca sekalian pada umumnya.

Surakarta, Mei 2019

Kelompok 2

ii
DAFTAR ISI

HALAMAN JUDUL ......................................................................................................... i


KATA PENGANTAR ....................................................................................................... ii
DAFTAR ISI...................................................................................................................... iii

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

BAB III PENUTUP

A. Kesimpulan ............................................................................................................. 8
B. Saran ....................................................................................................................... 8

DAFTAR PUSTAKA ....................................................................................................... 9

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).

Masing-masing metode mempunyai kelebihan dan kekurangan, dari panjang


pendeknya kode, kompleksitas kode, waktu pemrosesan, memori yang digunakan,
kompatibilitas, dan lain sebagainya. Pada kesempatan kali ini Kelompok kami hanya fokus
untuk membahas tentang pengurutan data dengan selection sort.

1
B. Rumusan Masalah

Berdasarkan uraian latar belakang di atas maka dapat ditentukan rumusan


masalah sebagai berikut::

1. Apa pengertian dari selection sort ?


2. Bagaimana algoritma dari pengurutan data selection sort ?
3. Bagaimana ilustrasi pengurutan data selection sort ?
4. Bagaimana efisiensi waktu yang digunakan dalam pengurutan data selection sort ?
5. Apa kelebihan dan kekurangan dari pengurutan data selectian sort ?

C. Tujuan

Tujuan dibuatnya makalah ini antara lain:

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

A. Definisi Selection Sort


Selection sort adalah algoritma pengurutan yang sederhana namun sangat efisien dalam
penggunaanya, juga memiliki penulisan code yang simpel. Algoritma ini menggabungkan
metode searching dan sorting. Dalam selection sort ada dua cara pengurutan yaitu
secara Ascending (mengurutkan dari kecil ke besar), index nilai paling kecil disimpan lalu
ditukar dengan index pertama. Sedangkan secara Descending (mengurutkan dari besar ke
kecil/kebalikan dari ascending), index dengan nilai paling besar disimpan lalu ditukar.

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

C. Ilustrasi Pengurutan Data


Contoh Pengurutan Secara Ascending
Disini kita mempunyai data awal { 7, 4, 5, 9, 8, 2, 1 }

Nilai 1 akan bertukar tempat dengan index pertama, 7.

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:

Berarti kompleksitasnya secara simptotik adalah O(n2). Adapun grafik efisiensi


selection sort dapat dilihat pada tabel dibawah ini:

5
Gambar Grafik Kompleksitas Selection Sort

Pengurutan model ini tergolong 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. Stabilitas Selection Sort


Selection Sort ini pada dasarnya merupakan algoritma sorting yang tidak stabil,
namun dapat diubah menjadi stabil pada kasus tertentu.
Algoritma sorting yang stabil akan mampu memanfaatkan relatifitas antar record
melalui definisi di tiap-tiap keys yang dimiliki oleh record tersebut. Misalkan ada dua
record R dan S dengan key yang sama dan dengan ketentuan R muncul sebelum S,
maka pada hasil output akan muncul R sebelum S.
Namun ketika terdapat elemen yang sama (tidak dapat dibedakan) pada
umumnya terdapat pada 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 key dari data dalam pengurutan dan solusi yang lain tidak.
(3, 7) (3, 1) (4, 1) (5, 6) (order maintained/ stable)

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/

Anda mungkin juga menyukai