Anda di halaman 1dari 13

MAKALAH

SORTING (PENGURUTAN)

Disusun oleh:

1. Achya Ansori
2. Bagus Pribadi
3. Ibnu Faisal
4. Nopriandi Saputra
5. Riska Hidayanti
6. Siti Mutmainah
7. Zalfa

PROGRAM STUDI S1 ILMU KOMPUTER


JURUSAN ILMU KOMPUTER
UNIVERSITAS BINA BANGSA
KATA PENGANTAR

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 Latar Belakang


Algoritma merupakan kumpulan perintah yang memiliki daya guna yang sangat besar bagi
masyarakat.Algoritma biasanya digunakan sebagai kumpulan perintah untuk menyelesaikan suatu
masalah.Algoritma ini memiliki aplikasi yang bermacam-macam dalam setiap masalah yang ada.
Contohnya saja adalah algoritma cara menyelesaikan suatu aritmatika yang rumit, algoritma untuk
menghitung luas penampang dari suatu kabel, atau bahkan untuk menghitung bayaran parkir di
setiap mal. Salah satu aplikasi bentuk pemrograman ini adalah dalam bahasa permrograman yang
disebut bahasa C. Dimana bahasa C ini memiliki suatu aturan-aturan tertentu yang sangat penting
sehingga dalam penggunaanya kita harus memperhatikan cara menggunakan aturan tersebut. Salah
satu cara penggunaannya adalah dengan array. Dimana array ini merupakan suatu data struktur yang
berkoneksi satu sama lain dengan tipe yang sama. Aplikasi array ini banyak sekali, contohnya saja
adalah menghitung golongan dari umur yang berjumlah 25 tahun hingga 55 tahun.Array ini juga
bisa digunakan untuk mencari suatu elemen nilai dalam suatu struktur data, selain itu array ini juga
bisa digunakan untuk mengurutkan data-data yang tidak berurutan.Hal –hal yang telah disebutkan
disebut sebagai searching array dan sorting array.
Sorting array merupakan salah satu aplikasi yang paling penting dalam suatu sistem aplikasi
perhitungan data.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.
Searching array juga memiliki tak kalah pentingnya dibandingkan dengan sorting array.Pada
searcing array kita biasa menggunakannya pada data yang sangat banyak.Sehingga sangat sulit bila
kita ingin mencari suatu data atau suatu angka didalamnya satu per satu. Aplikasi searching array
memudahkan kita dalam mencari suatu data atau angka yang kita inginkan dengan hanya
memasukkan nilai input pada suatu data yang disikan.

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.

1.3 Tujuan dan Manfaat


Makalah ini disusun untuk memaparkan tentang pengertian sorting dan searching array
dalam aplikasi di dunia kerja. Dengan membaca makalah ini, pembaca akan mengetahui lebih
dalam mengenai membuat algoritma dari searching dan sorting array yang bisa dijadikan sebagai
referensi dalam pembuatan algoritma. Selain itu, pembaca juga akan mengetahui manfaat dari
searching dan sorting array dalam aplikasinya didunia kerja.

2
BAB II
PEMBAHASAN

2.1 Pengertian Sorting


Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan
tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data
kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Data dalam
struktur data sangat penting untuk data yang bertipe data numerik ataupun karakter. 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.
Contoh:
Data Acak : 5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1

2.2 Macam- macam Sorting


a. Bubble Sort
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara
melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan
dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah
terurut.
Bubble Sort merupakan cara pengurutan yang sederhana. Konsep dari ide dasarnya adalah
seperti “gelembung air” untuk elemen struktur data yang semestinya berada pada posisi awal.
Cara kerjanya adalah dengan berulang-ulang melakukan traversal (proses looping) terhadap elemen-
elemen struktur datayang belum diurutkan.Di dalam traversal tersebut, nilai dari dua elemen
struktur data dibandingkan. Jikaternyata urutannya tidak sesuai dengan “pesanan”,maka dilakukan
pertukaran (swap).

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); } }

Diagram Merge Sort

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

Diagram Quick Sort

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

Berdasarkan uraian bahasan “jenis-jenis algoritma sorting” dapat disimpulkan bahwa :

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

Anda mungkin juga menyukai