SORTING (PENGURUTAN)
Disusun oleh:
1. Achya Ansori
2. Bagus Pribadi
3. Ibnu Faisal
4. Nopriandi Saputra
5. Riska Hidayanti
6. Siti Mutmainah
7. Zalfa
Puji dan syukur penulis panjatkan kehadirat Allah SWT karena dengan rahmat dan hidayah-
Nya sehingga penulis dapat membuat makalah dengan judul ”SORTING”.
Makalah ini bertujuan untuk memenuhi tugas mata kuliah STRUKTUR DATA yang
diberikan oleh Dosen mata kuliah yang bersangkutan.
Pada kesempatan ini penulis tak lupa mengucapkan terima kasih kepada semua pihak dan
rekan-rekan yang telah membantu dalam proses penyelesaian makalah ini.
Akhirnya, dengan segala kerendahan hati penulis sampaikan bahwa setiap manusia tidak
luput dari kesalahan dan kekhilafan. Oleh karena itu, penulis senantiasa mengharapkan kritik dan
saran yang konstruktif sehingga penulis dapat berkarya yang lebih baik lagi pada masa yang akan
datang.
Semoga bermanfaat
i
DAFTAR ISI
KATA PENGANTAR ............................................................................................ i
DAFTAR ISI ........................................................................................................... ii
BAB I PENDAHULUAN
1.1 Latar Belakang .................................................................................................. 1
1.2 Rumusan Masalah ............................................................................................. 2
1.3 Tujuan .............................................................................................................. 3
BAB II PEMBAHASAN
2.1 Pengertian dan contoh .................................................................................... ..4
2.2 Macam-macam Sorting .................................................................................. ..5
2.3 Penerapan Sorting dalam kehidupan nyata. .................................................... ..7
2.4 Manfaat Sorting yang diperoleh. ..................................................................... ..8
BAB IV PENUTUP .............................................................................................. 12
4.1 Kesimpulan ..................................................................................................... 12
4.2 Saran ............................................................................................................... 12
DAFTAR PUSTAKA ........................................................................................... 13
ii
BAB I
PENDAHULUAN
1
1.2 Rumusan Masalah
Timbulnya masalah akibat sulitnya pekerjaan yang dilaksanakan secara manual pada
masyarakat menyebabkan adanya pemborosan waktu, tenaga, dan pikiran. Pemborosan –
pemborosan ini menyebabkan kerugian pada masyarakat itu sendiri bahkan secara akumulatif jika
kerugian pada tiap individu dijumlahkan, maka dampaknya akan menjadi kerugian sebuah negara,
bahkan secara lebih luas dapat berdampak pada kerugian global. Sebagai alternatif, suatu sistem
algoritma mengatasi permasalahan tersebut dengan searching dan sorting array.
2
BAB II
PEMBAHASAN
3
b. 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.
Merupakan kombinasi antara sorting dan searching
• Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil
atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array.
• Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan
ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan
akan ditempatkan di indeks kedua (data[1]).
• Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja,
pertukaran data secara fisik terjadi pada akhir proses.
c. Insertion Sort
Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data
pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan
membandingkannya dengan elemen data yang telah diurutkan.
• Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan
(insert) ke tempat yang seharusnya.
• Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih
kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya.
• Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang
d. Marge Sort
Merge Sort Beberapa algoritma mengimplementasikan konsep rekursi untuk menyelesaikan
permasalahan. Permasalahan utama kemudian dipecah menjadi sub-masalah, kemudian solusi dari
sub-masalah akan membimbing menuju solusi permasalahan utama. Pada setiap tingkatan rekursi,
pola tersebut terdiri atas 3 langkah.
1. Divide Memilah masalah menjadi sub masalah.
2. Conquer Selesaikan sub masalah tersebut secara rekursif. Jika sub-masalah tersebut cukup
ringkas dan sederhana, pendekatan penyelesaian secara langsung akan lebih efektif.
3. Kombinasi Mengkombinasikan solusi dari sub-masalah, yang akan membimbing menuju
penyelesaian atas permasalahan utama.
4
Seperti yang telah dijelaskan sebelumnya, Merge sort menggunakan pola divide and conquer.
Dengan hal ini deskripsi dari algoritma dirumuskan dalam 3 langkah berpola divide-andconquer.
Berikut menjelaskan langkah kerja dari Merge sort.
1. Divide
Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
2. Conquer
Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif.
3. Kombinasi
Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data
berurutan.
Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan
diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa
bagian tersebut telah terurut sesuai rangkaian. Algoritmanya :
void mergeSort(Object array[], int startIdx, int endIdx) { if (array.length != 1) { //Membagi
rangkaian data, rightArr dan leftArr mergeSort(leftArr, startIdx, midIdx); mergeSort(rightArr,
midIdx+1, endIdx); combine(leftArr, rightArr); } }
5
e. Quick Sort
Quicksort ditemukan oleh C.A.R Hoare. Seperti pada merge sort, algoritma ini juga berdasar
pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah –
langkah sebagai berikut:
1. Divide
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana setiap
elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r]
adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot.
Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif Pada algoritma quicksort, langkah
“kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen pada sub-array
Algoritmanya :
void quickSort(Object array[], int leftIdx, int rightIdx) { int pivotIdx; /* Kondisi Terminasi */ if
(rightIdx > leftIdx) { pivotIdx = partition(array, leftIdx, rightIdx); quickSort(array, leftIdx,
pivotIdx-1); quickSort(array, pivotIdx+1, rightIdx);
6
2.3 Penerapan di dunia nyata
Metode Selection Sort Untuk Menentukan Barang Yang Harus Di Stok Ulang Dalam Sistem
Informasi Penjualan
Teknologi pada zaman sekarang semakin canggih dan hampir semua dalam kehidupan sehari-
hari pasti tidak akan lumput dengan adanya teknologi. Teknologi yang semakin canggih dapat
mempermudah semua orang dalam melakukan berbagai aktivitas.
Pada proses jual beli manual sering kali lupa mencatat stok barang, barang masuk dan barang
keluar terkadang tidak sama dengan catatan. Kemudian pada proses jual beli manual terkadang
ada orang mencari suatu barang ternyata barang tersebut sudah habis dan penjual lupa untuk
merestok ulang barang.
Hal-hal demikian yang dapat dipermudah untuk mengingatkan barang apa saja yang perlu distok
ulang. Dengan adanya sistem informasi berbasis web namun dapat dijalankan secara offline
dapat membantu user dalam proses jual beli. Dalam sistem penjualan ini terdapat pengolahan
data barang, data suplier, data customer, data penjualan dan data pembelian. Pada data barang
juga akan memberi tahukan kepada user apabila stok barang tinggal sedikit agar user dapat
mempersiapkan barang apa saja yang harus di beli kembali dari suplier. Terdapat laporan dalam
bentuk pdf yang nantinya dapat dicetak. Metode t yang digunakan yaitu ascending atau
mengurutkan dari nilai terkecil ke terbesar dari stok barang. Pada sistem ini data barang dapat
urut agar mempemudah user untuk mengecek barang yang perlu distok kembali. Penerapan
metode Selection Sort pada sistem informasi penjualan menggunakan PHP dengan database
PostgreSQL. Output yang dihasilkan dari sistem informasi penjualan ini adalah laporan data
barang yang telah terurut dari stok paling sedikit dan stok paling banyak.
7
2.4 Manfaat yang diperoleh
a. Sorting
Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun)
Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun
dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
Biasanya suatu bank memiliki komputasi sorting array yang sudah biasa digunakan dalam
aplikasinya sehari-hari. Bahkan telephone juga mengurutkan suatu list yang terdiri dari
nama akhir , nama awal agar bisa memudahkan dalam perhitungan dalam mencari nomor
telephone.
Jadi bisa disimpulkan adalah lebih memudahkan dalam mengurutkan angka terkecil hingga
terbesar dan bisa memudahkan untuk mencari daftar nama yang diinginkan.
8
BAB IV
PENUTUP
3.1 Kesimpulan
1. Terdapat banyak algoritma sorting yang bias 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 yang baik dan sesuai.
3.2 Saran
Adapun saran-saran yang dapat penulis sampaikan dalam hal ini adalah sebagai berikut :
1. Semoga pembaca dapat memahami dan mengerti tentang algoritma sorting yang dijelaskan
2. Dengan adanya makalah ini, diharapkan pembaca mendapat informasi terbaru tentang algoritma-
algoritma sorting.
3. Semoga dengan membaca makalah ini, pembaca mendapat inspirasi-inspirasi terbaru yang berguna
dalam pembuatan algoritma-algoritma lainnya
4. Dalam kesempatan-kesempatan berikutnya sebaiknya ditambahkan kemungkinan algoritma-
algoritma baru sehingga ke depannya akan didapt lebih banyak algoritma yang lebih efisien dan
efektif
9
DAFTAR PUSTAKA
http://en.wikipedia.org/wiki/Sorting_algorithm
http://www.informatika.org/~rinaldi/Stmik/2006/Makalah2006/MakalahStmik2006-27.pdf
http://lecturer.ukdw.ac.id/anton/strukdat.php
http://blog.binadarma.ac.id/andri/?p=65#
http://acieee.wordpress.com/2010/03/10/algoritma-sorting/
http://id.wikipedia.org/wiki/Algoritma_sorting
https://pinksulistyo.wordpress.com/2011/03/13/_sequential-sort-dan-binary-search_-pada-
pemrograman-java/
http://roofhie.blogspot.co.id/2013/01/struktur-data-selection-sort.html
https://ikkholis27.wordpress.com/2013/02/01/sorting-dan-searching-array/
https://intanwblog.wordpress.com/2016/03/01/pencarian-dan-pegurutan-data/
https://journal.unesa.ac.id/index.php/jieet/article/view/668
13