Pengertian Algoritma Pengurutan (sorting)

SORTING

Pengertian Algoritm a Pengurutan
(sorting)


Dalam ilm u kom puter, algoritm a pengurutan adalah








algoritm a yang m eletakkan elem en-elem en suatu kum pulan
data dalam urutan tertentu. Atau
proses pengurutan data yg sebelum nya disusun secara acak
sehingga m enjadi tersusun secara teratur m enurut suatu aturan
tertentu.


Yang pada kenyataannya ‘urutan
urutan tertentu
tertentu’ yang um um
digunakan adalah secara terurut secara num erikal ataupun
secara leksikografi (urutan secara abjad sesuai kam us).
Ad 2 jjenis
Ada
i sorting
i : A
Ascending
di ((naik)
ik) & D
Descending
di
(turun)

Klasifikasi Algoritm aPengurutan (sorting)
y Exch a n g e So r t

m elakukan pem bandingan antar data, dan

m elakukan pertukaran apabila urutan yang
didapat belum sesuai.
Contohnya : Bubble sort, Cocktail sort, Com b sort, Gnom e
sort, Quicksort.

y Se le ct io n So r t

m encarii elem
l en yang tepat
t
t untuk
t k diletakkan
dil t kk di
posisi yang telah diketahui, dan m eletakkannya
di posisi tersebut setelah data tersebut
ditem ukan.
Contohnya :Selection sort, Heapsort, Sm oothsort, Strand sort

y In s e r t io n So r t


m encari tem pat yang tepat untuk suatu elem en data yang telah
diketahui ke dalam subkum pulan data yang telah terurut,
kem udian m elakukan penyisipan (insertion) data di tem pat yang
tepat tersebut.
tersebut
Contohnya adalah : Insertion sor, Shell sort, Tree sort, Library sort, Patience sorting.

y M e r g e So r t

ddata
t dib
dibagii m enjadi
j di subkum
bk pulan-subkum
l
bk pulan
l yang kkem udian
di
subkum pulan tersebut diurutkan secara terpisah, dan kem udian
digabungkan kem bali dengan m etode m erging. algoritm a ini

m elakukan m etode pengurutan m erge sort juga untuk
m engurutkan
k subkum
bk pulandata
l d
tersebut,
b atau dengan
d
kkata lain,
l i
pengurutan dilakukan secara rekursif.
Contohnya adalah : Merge sort.

y N o n -Co m p a r is o n So r t

proses pengurutan data yang dilakukan
algoritm a ini tidak terdapat pem bandingan
antardata, data diurutkan sesuai dengan
pigeon hole principle.
Contohnya adalah : Radix sort, Bucket sort, Counting sort,

Pigeonhole sort
sort, Tally sort
sort.

1. R AD I X S OR T

METODE SORTING

Id e D as ar
y Ide dasar dari m etode Radix sort ini adalah

m engkategorikan data-data m enjadi sub kum pulan
subkum pulan data sesuai dengan nilai radix-nya,
m engkonkatenasinya,
k k t
i
kem
k udian
di
m engkategorikannya kem bali berdasar nilai radix

lainnya.
lainnya

Im p le m e n tas i Rad ix So rt
• Contoh im p
plem entasi yyang
g akan dilakukan adalah

im plem entasi pada bilangan bulat positif
m enggunakan salah satu algoritm a pengurutan
radix
di sort.
t
• Contohnya adalah pengurutan sebuah kum pulan
data bilangan bulat dengan jum lah digit m aksim al 3

Pertam a kali, data dibagi-bagi sesuai dengan digit
terkanan :

y Hasil pengkategorian tersebut lalu digabung


kem bali dengan m etode konkatenasi m enjadi :

y Kem udian pengkategorian dilakukan

kem bali,nam un kali ini berdasar digit kedua atau
digit tengah, dan jangan lupa bahwa urutan pada
tiap subkum pulan data harus sesuai dengan urutan
kem unculan pada kum pulan data

Yang kem udian dikonkatenasi kem bali m enjadi

Kem udian langkah
g
ketiga,
g , atau langkah
g
terakhir
pada contoh ini adalah pengkategorian kem bali
berdasar digit yang terkiri, atau yang paling

signifikan
i ifik

y Yang kem udian dikonkatenasi lagi m enjadi

y Yang m erupakan hasil akhir dari m etode

pengurutan ini. Di m ana data telah terurut dengan
m etode radix sort.

Algo ritm a d an Ko m p le ks itas W aktu
R a d ix So r t
y Im p
plem entasi dari algoritm
g
a tersebut dibuat

m enggunakan bahasa Pascal, yang direalisasikan
dengan m enggunakan queue sebagai representasi
ti kkategori

tiap
t
i radix
di untuk
t k pengkategorian.
k t
i
y Array A adalah array input, dan array B adalah
array A yang sudah terurut.
terurut

Pro ce d u re RadixSort (A : TArray; var B : TArray; d : byte);
var
KatRadix : array [0 ..9 ] o f Queue;
i x, ctr
i,
t : iinteger;
t
pem bagi : longword;
be gin

{--- m engkopi A ke B ---}
fo r i:=1 to n d o
B[i] := A[i];
pem bagi := 1;
fo r x:=1 to d d o be gin
{ inisialisasi
{--i i i li i K
KatRadix
R di ---}}
fo r i:=0 to 9 d o
InitQueue (KatRadix[i]);
{--- dikategorikan ---}
fo r i:
i:=11 to n d o
Enqueue (KatRadix [(B[i] d iv pem bagi) m o d 10 ], B[i]);
B[i] := 0 ;
{--- dikonkat ---}
ctr := 0 ;
fo r i:=0 to 9 d o be gin
w h ile (N OT IsQueueEm pty (KatRadix[i])) d o be gin ctr := ctr + 1;

B[ctr]:=DeQueue (KatRadix [i]);
end;
end;
pem bagi := pem bagi * 10 ;
end;
end;

2 . B U B LE S OR T

METODE SORTING

Id e Bu bble So rt
o Algoritm a dim ulai dari elem en paling awal.
o 2 buah elem en pertam a dari list dibandingkan.
o J ika elem en pertam a lebih besar dari elem en

kedua,dilakukan
kedua
dilakukan pertukaran
pertukaran.
o Langkah 2 dan 3 dilakukan lagi terhadap elem en
g , seterusnya
y sam pai
p ke ujung
j g
kedua dan ketiga,
elem en
o Bila sudah sam pai ke ujung dilakukan lagi ke awal
sam paii tidak
tid k ada
d terjadi
t j di lagi
l i pertukaran
t k
elem
l en.
o Bila tidak ada pertukaran elem en lagi, m aka list
elem en sudah terurut.

Algo ritm a Bu b b le So r t
y Setiap pasangan data: x[j] dengan x[j-1], untuk

sem ua i=1,...,n-1 harus m em enuhi keterurutan,
yaitu x[j] > x[j-1].
y Apabila
b l tidak
d k m em enuhi
h m aka
k posisi kedua
k d data
d
harus ditukar.
y Untuk
U t k pem rogram an kkonvensional
i
l m aka
k
pem eriksaan-pem eriksaan pasangan tersebut
harus dilakukan satu dem i satu, m isalnya oleh
bubble-sort dilakukan dari kanan ke kiri serta di
dalam sejum lah iterasi.

y Pada iterasi ke-i, pem eriksaan tsb. dilakukan pula dalam loop-for

sbb.
bb
d e s krip s i
adatukar
true
I
1
While (I
p
parent
Ù penam bahan kunci diletakkan pada posisi terakhir dari level dan
disebelah kanan child yg terakhir, kem udian diurutkan dengan cara
upheap
Ù Bila m enghapus heap dgn m engam bil kunci pada parent di level 1
kem udian digantikan posisi kunci terakhir, selanjutnya disort kem bali
m etode downheap
Ù

HEAP REPRESENTATION

y Array

y Left_
Left child(i) = 2i
y Right_ chilrd = 2i +1
y Parent

= j div 2

HEAP SORT
y Metode Upheap:
{

{

bandingkan kunci terakhir dengan parentnya apabila parent < kunci
m aka lakukan pertukaran.
ulangi
g langkah
g
1 dengan
g m em b
bandingkan
g
dengan
g p
parent selanjutnya
j
y
sam pai posisi parent di level 1 selesai dibandingkan

y Metode
M d Downheap:
D
h
{

{

bandingkan parent dengan leftchild dan rightchild apabila parent <
leftchild atau rightchild m aka lakukan pertukaran.
ulangi langkah 1 dengan m em bandingkan dengan leftchild dan
rightchild pada posisi level dibawahnya sam pai posisi di level
terakhir selesai dibandingkan.

D AFTAR PU STAKA
y DF Alfatwa, ER Syah P, FM Ahsan, “Im plem entasi Algoritm a

y
y

y

y

y

Radix Sort dalam Berbagai Kasus Bilangan Dibandingkan
Algoritm a Pengurutan yang lain
lain”. Bandung.
Bandung 20 0 55.
Thom as H. Corm en, Charles E. Leiserson, Ronald L. Rivest,
Introduction To Algorithm s, McGraw- Hill. 1990 .
Handbook
a dboo U
UI,, Algoritm
go
aa-algoritm
a go
a pe
pengurutan
gu u a internal
e a
http:/ / ranau.cs.ui.ac.id/ sda/ archive/ 1998/ handout/ handout24.h
tm l Tanggal akses : 29 Desem ber 20 0 7 pukul 0 4.0 0 GMT +7
Wikipedia, (20 0 7). Wikipedia, the free encyclopedia.
http:/ / en.wikipedia.org/
en wikipedia org/ wiki/ Counting_
Counting Sort Tanggal akses : 29
Desem ber 20 0 7 pukul 0 4.0 0 GMT +7
Wikipedia, (20 0 7). Wikipedia, the free encyclopedia.
http:/
p / / en.wikipedia.org/
p
g/ wiki// Sorting_
g Algorithm
g
Tanggal
gg akses :
29 Desem ber 20 0 7 pukul 0 4.0 0 GMT +7
Wikipedia, (20 0 7). Wikipedia, the free encyclopedia.
http:/ / en.wikipedia.org/ wiki/ Radix_ Sort Tanggal akses : 29
Desem ber 20 0 7 pukul 0 4.0
4 0 0 GMT +7