1. Metode Sorting dan Aplikasinya
Tugas Kuliah Algoritma dan Struktur Data
Siti Rohmatul Khoiriah
14753060
Manajemen Informatika
Politeknik Negeri Lampung
Bandar Lampung, Lampung
Rohmatulkhoiriah@gmail.com
Abstract— Makalah ini menjelaskan Tentang Sorting dan
Aplikasinya. Sorting adalah proses menyusun kembali
data yang sebelumnya telah disusun dengan suatu pola
tertentu ataupun secara acak, sehingga menjadi tersusun
secara teratur menurut aturan tertentu.
Kata kunci—Algoritma, SortingAscending,Descending
sort,insertion sort. (key words)
I. PENDAHULUAN
1.Latar Belakang
Sorting adalah salah satu bagian penting dari struktur
data adalah proses pengurutan data,itu sendiri.data akan
terkadang akan berada dalam bentuk yang tidak berpola
ataupun dengan pola tertentu yang tidak kita
inginkan ,namun dalam penggunanya ,kita akan selalu
ingin menggunakan data data tersebut dalam bentuk yang
rapi ataupun berpola sesuai dengan yang kita
inginkan .maka dari itu proses sorting adalah proses yang
sangat penting dalam struktur data ,terlebih untuk
pengurutan data yang bertipe numerik ataupun karakter.
Dan Algoritma untuk melakukan sorting juga ada
berbagai macam, antara lain:
1. Teoretis : Computational complexity theory, Big O
notation, Total order, Stability, Comparison sort.
2. Exchange sorts : Exchange sort, Bubble sort, Cocktail
sort, Comb sort, Gnome sort, Quick sort.
3. Selection sorts : Selection sort, Heap sort, Smooth sort.
4. Insertion sorts : Insertion sort, Shell sort, Tree sort,
Library sort, Patience sorting.
5. Merge sorts : Merge sort.
6. Non-comparison : Radix sort, Bucket sort, Counting
sort, Pigeonhole sort.
7. Others : Topological sorting, Sorting network.
Algoritma-algoritma ini tentu saja akan mempunyai efek
yang berbeda dalam setiap prosesnya, ada yang mudah
digunakan, ada yang mempunyai proses yang sangat cepat,
dansebagainya.
Pemilihan algoritma untuk sorting ini tidak hanya asal
saja dipilih. Pemilihian ini semestinya berdasarkan
kebutuhan yang diperlukan. Tidak semua algortima yang
pendek itu buruk dan tidak semua algoritma yang super
cepat juga akan baik dalam semua kondisi. Misal:
algoritma Quick Sort adalah algoritma sorting yang
tercepat dalam proses pencariannya, namun jika data
yang akan diurutkan ternyata sudah hampir terurut atau
tidak terlalu banyak, maka algoritma ini malah akan
memperlama proses pengurutan itu sendiri, karena akan
banyak perulangan tidak perlu yang dilakukan dalam
proses sorting ini.
Hal yang umum dilakukan dalam proses sorting adalah
proses pertukaran antara 2 elemen atau lebih (analogi
memindah air dalam gelas). Untuk melakukan proses
pertukaran akan diperlukan adanya variable baru yang
digunakan sebagai variable penampung.Permasalahan
pengurutan (sorting problem) secara formal
didefinisikansebagai berikut[7]
:Input: Suatu urutan dari n bilangan,Output: Suatu
permutasi atau penyusunan kembali dari input
sedemikian rupa sehingga pada tata urutan
ascending (dari nilai kecilkebesar)atau padatata urutan
descending(dari nilai besar ke kecil).Sebagai contoh
jika diberikan masukanlima bilangan acak maka
keluarannya adalahsebagaimana berikut ini
:Input: 2 5 4 1 6 3(n=6)
Output: 1 2 3 4 5 6 (ascending ) 6 5 4 3 21 (descending )Data
yang diurutkan tidak harus berupa angka, namun bisa
saja
string
misalnya:Input: Saptadi Windisari DesiHendra Arief(n=
5)Output: Arief Desi HendraSaptadi Windisari (
ascending
2. )Windisari Saptadi HendraDesi Arief(
descending
)Pengurutan juga bisa diterapkan secaratidak langsung
pada sekelompok data.Misalkan untuk kelimadata nama di
atas,hendak diurutkan dari nama dengan jumlahkarakter
terkecilhingganama dengan jumlahkarakter terbanyak.Sehingga
keluarannya diperoleh:Output: Desi Arief Hendra(4) (5)
(6)Saptadi Windisari(7) (9) (ascending )
Jadi dapat disimpulkan bahwa dalam pengurutan harus
terdapat:
data yang akan diurutkan dalam tipe yangsama atau
setidaknya memperoleh perlakuan data yang sama
aturan pengurutan yang jelas Ada banyak metode pengurutan
antaralain: bubble sort, bi-directional bubble sort,selection
sort, shaker sort, insertion sort, in- place merge sort,
double storage merge sort,comb sort 11, shell sort, heap
sort, exchangesort, merge sort, quick sort, quick sort
with bubblesort, enhange quick sort, fast quick sort. radix
sort algorithm, swap sort, dan lainsebagainya
[4]
.Untuk membatasi luasnya pembahasan,maka dalam makalah ini
hanya akan dibahas 2metode, yaitu Insertion Sort dan Merge
Sort.Pembahasan untuk tiap metode akandifokuskan pada cara
kerja pengurutan besertacontohnya, analisa algoritma untuk
kondisiterburuk ( worst case ), rata-rata (average case),terbaik
(bestcase),implementasinya dalam bahasa C++ serta pengujian
waktu eksekusiuntuk kedua metode tersebut.
11.Buble Sort
Metode Buble sort
Metodw pengurutan buble sort /gelembung ,prosedur atau
algoritmanya adalah sebagai berikut :
Pengecekanya dimulai dari 1 sampai dengan data ke-n.
Bandingkan data ke-n dengan data sebelumnya (n-1),jika
lebih kecil maka tukar bilangan tersebut dengan data
yang ada didepanya satu persatu (n-1,n-2,n-3,n-3…dst)
Lakukan langkah ke 2 sampai mendapatkan urutan
maksimal .berikut ini kita akan mencoba membuat sebuah
program pengurutan data atau sorting dengan metode
buble sort.kita akan memasukan 15 data yang int data
[15]={8,1,45,2,5,2,9,6,12,8,6,10,11,44}yang tidak
berurutan .programnyanya serta kita akan menghintung
berapa banyak proses pertukaran posisi data ,dan
beberapa banyak proses perbandingan data.
3. 111.Insertion Sort
Salah satu algoritma sorting yang paling sederhana
adalah insertion sort. Insertion Sort disebut-sebut
sebagai metode pertengahan. Artinya, metode ini
memiliki kecepatan rata-rata antara metode primitif
(bubble danselection) dan modern (merge dan quick)
[10] .Metode ini, didasarkan pada sebuah kunciyang
diambil padaelemen ke-2 pada sebuahlarik, lalu menyisipkan
elemen tersebut jikakondisi percabangan terpenuhi.
Metode penyisipan (insertion) bertujuan
untuk menjadikan bagian sisi kiri larik
terurutkansampai dengan seluruh larik berhasil
diurutkan.
Algoritma dan Pseudocode
Ide dari algoritma ini dapat dianalogikan
sepertimengurutkan kartu.
Penjelasan berikut ini menerangkan bagaimanaalgoritma
insertion sort bekerja dalam pengurutan kartu
[7]
Gambar 1. Analogi Metode Insertion Sort Anggaplah
bahwa terdapat sebuah meja yang berisi setumpuk kartu.
Meja ini melambangkan kondisi larik sebelum diurutkan.
Langkah-langkah pengurutan adalah sebagai berikut:
-Ambil kartu pertama dari meja, letakkan ditangan kiri.
-Ambil kartu kedua dari meja, bandingkandengan kartu
yang berada di tangan kiri,kemudian letakkan pada
urutan yang sesuaisetelah perbandingan.
-Ulangi proses hingga seluruh kartu padameja telah
diletakkan berurutan pada tangankiri.Kartu-kartu pada
tangan kiri tersebut menunjukkan kondisi larik sesudah
diurutkan.
Pseudocode
untuk algoritma insertion sort adalah sebagai berikut
[6]
1V.MERGE SORT
Merge sort adalah metode pengurutan yang menggunakan
pola divide and conquer[10]Strateginya adalah dengan membagi
sekelompok data yang akan diurutkan menjadi beberapa
kelompok kecil terdiri dari maksimal dua nilai untuk
dibandingkan dan digabungkan lagi secara keseluruhan .
Langkah kerja dari merge sort [9]:
1. Divide
Memilih Elemen –elemen dari rangkain data menjadi
dua bagian mengulangi pemilihan hingga satu elemen
terdiri maksimal dua nilai .
2. Conquer
Mengurutkan masing- masing Elemen .
3. Kombinasu
Mengkombinasi 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 tempat satu elemen .sisa pengurutan satu
elemen tersebut menandakan bahwabagian tersebut
telah terurut sesuairangkain .
Algoritma dan pseudocode
Algoritma merge sort sebenernya sederhana [9] :bagi
larik menjadi dua sama besar ,urutkan bagian
pertama,urutkan bagian kedua ,lalu gabungkan
Sebagai contoh ,jika terdapat data berupa
38,27,43,3,9,82 dan 10 maka ilusrasi pengurutnya
adalah sebagaiberikut :
Gambar .ilustrasi merge sort
4. V.SHELL SORT
metode pertambahan menurun Metode ini dikembangkan
oleh donal elshell Pada tahun 1959 sehinggasering disebut
metode shell sort metode ini mengurutkan data dengan
cara membandingkan suatu data dengan data lain yang
memiliki jarak tertentu.
V. DAFTAR PUSTAKA
http://itx.web.id/php/fungsi-sorting-pengurutan-instan-
dengan-php/
http://www.academia.edu/4618083/Jurnal_Infotel_2_Akate
l_SP
http://www.academia.edu/6023555/STMIK_and_AMIK_L
OGIKA_MEDAN_MAKALAH_STRUKTUR_DATA