• Tidak ada hasil yang ditemukan

Pengertian Algoritma Pengurutan (sorting)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pengertian Algoritma Pengurutan (sorting)"

Copied!
46
0
0

Teks penuh

(1)

S

O

R

T

IN

(2)

Pen gertian Algoritm a Pen gurutan

(sortin g)

(sortin g)

• Dalam ilm u kom puter, algoritm a pen gurutan adalah Dalam ilm u kom puter, algoritm a pen gurutan adalah

• algoritm a yan g m eletakkan elem en -elem en suatu kum pulan

data dalam urutan terten tu. Atau

• proses pen gurutan data yg sebelum n ya disusun secara acak • proses pen gurutan data yg sebelum n ya disusun secara acak

sehin gga m en jadi tersusun secara teratur m en urut suatu aturan terten tu.

• Yan g pada ken yataan n ya ‘urutan terten tu’ yang um um • Yan g pada ken yataan n ya urutan terten tu yan g um um

digun akan adalah secara terurut secara n um erikal ataupun secara leksikografi (urutan secara abjad sesuai kam us).

Ad j i i A di ( ik) & D di

• Ada 2 jen is sortin g : Ascen din g (n aik) & Descen din g

(3)

Klasifikasi Algoritm aPen gurutan

(sortin g)

y Exc h a n g e S o r t

m elakukan pem ban din gan an tar data, dan m elakukan pem ban din gan an tar data, dan m elakukan pertukaran apabila urutan yan g didapat belum sesuai.

Con tohn ya : Bubble sort, Cocktail sort, Com b sort, Gn om e sort, Quicksort.

y S e le c t io n S o r t

i l t t t k dil t kk di

m en cari elem en yan g tepat untuk diletakkan di posisi yan g telah diketahui, dan m eletakkan n ya di posisi tersebut setelah data tersebut

ditem ukan . ditem ukan .

(4)

y In s e r t io n S o r t

m en cari tem pat yan g tepat un tuk suatu elem en data yan g telah diketahui ke dalam subkum pulan data yan g telah terurut,

kem udian m elakukan pen yisipan (in sertion) data di tem pat yan g tepat tersebut

tepat tersebut.

Con tohn ya adalah : In sertion sor, Shell sort, Tree sort, Library sort, Patien ce sortin g.

y M e r g e S o r t

d t dib i j di bk l bk l k di

data dibagi m en jadi subkum pulan -subkum pulan yan g kem udian subkum pulan tersebut diurutkan secara terpisah, dan kem udian digabun gkan kem bali den gan m etode m erging. algoritm a in i m elakukan m etode pen gurutan m erge sort juga untuk

k bk l d b d k l i

m engurutkan subkum pulan data tersebut, atau den gan kata lain , pengurutan dilakukan secara rekursif.

(5)

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

proses pen gurutan data yan g dilakukan proses pen gurutan data yan g dilakukan

algoritm a in i tidak terdapat pem ban din gan an tardata, data diurutkan sesuai den gan

pigeon hole prin ciple.

Con tohn ya adalah : R adix sort, Bucket sort, Coun tin g sort,

(6)
(7)

Id e D a s a r

y Ide dasar dari m etode R adix sort in i adalah

m en gkategorikan data-data m en jadi sub kum pulan

subkum pulan data sesuai den gan n ilai radix-n ya,

k k t i k di

m en gkon katen asin ya, kem udian

m en gkategorikan n ya kem bali berdasar n ilai radix

(8)

Im p le m e n ta s i Ra d ix S o rt

• Con toh im plem en tasi yan g akan dilakukan adalah p y g

im plem en tasi pada bilan gan bulat positif

m en ggun akan salah satu algoritm a pen gurutan

di t

radix sort.

• Con tohn ya adalah pen gurutan sebuah kum pulan

(9)

Pertam a kali, data dibagi-bagi sesuai den gan digit terkan an

(10)

y H asil pen gkategorian tersebut lalu digabun g

y H asil pen gkategorian tersebut lalu digabun g

kem bali den gan m etode kon katen asi m en jadi :

y Kem udian pen gkategorian dilakukan

y Kem udian pen gkategorian dilakukan

(11)
(12)

Kem udian lan gkah ketiga, atau lan gkah terakhir g g , g pada con toh in i adalah pen gkategorian kem bali berdasar digit yan g terkiri, atau yan g palin g

i ifik

(13)

y Yan g kem udian dikon katen asi lagi m en jadi

y Yan g kem udian dikon katen asi lagi m en jadi

y Yan g m erupakan hasil akhir dari m etode

y Yan g m erupakan hasil akhir dari m etode

pen gurutan in i. Di m an a data telah terurut den gan

(14)

Algo ritm a d a n Ko m p le ks ita s W a ktu

R a d ix S o r t

R a d ix S o r t

y Im plem en tasi dari algoritm a tersebut dibuat p g

m en ggun akan bahasa Pascal, yan g direalisasikan

den gan m en ggun akan queue sebagai represen tasi

ti k t i di t k k t i

tiap kategori radix un tuk pen gkategorian .

y Array A adalah array in put, dan array B adalah

array A yan g sudah terurut

(15)

Pro ce d u re RadixSort (A : TArray; va r B : TArray; d : byte);

va r

KatRadix : a rra y [0..9] o f Queue; i t i t

i, x, ctr : integer; pem bagi : lon gword;

be gin

{--- m en gkopi 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

{ i i i li i K R di } {--- inisialisasi KatRadix ---}

fo r i:=0 to 9 d o

In itQueue (KatRadix[i]); {--- dikategorikan ---}

fo r i:=1 to n d o fo r i: 1 to n d o

En queue (KatRadix [(B[i] d iv pem bagi) m o d 10], B[i]); B[i] := 0 ;

{--- dikon kat ---} ctr := 0 ;

fo r i:=0 to 9 d o b e gin

w h ile (N OT IsQueueEm pty (KatRadix[i])) d o b e gin ctr := ctr + 1; B[ctr]:=DeQueue (KatRadix [i]);

e n d;

e n d;

e n d;

pem bagi := pem bagi * 10;

e n d;

(16)
(17)

Id e B u b b le S o rt

o Algoritm a dim ulai dari elem en palin g awal.

o 2 buah elem en pertam a dari list diban din gkan .

o J ika elem en pertam a lebih besar dari elem en

kedua dilakukan pertukaran kedua,dilakukan pertukaran .

o Lan gkah 2 dan 3 dilakukan lagi terhadap elem en

kedua dan ketiga, seterusn ya sam pai ke ujun g g , y p j g

elem en

o Bila sudah sam pai ke ujun g dilakukan lagi ke awal

i tid k d t j di l i t k l

sam pai tidak ada terjadi lagi pertukaran elem en .

o Bila tidak ada pertukaran elem en lagi, m aka list

(18)

Algo ritm a

B u b b le S o r t

y Setiap pasan gan data: x[j] den gan x[j-1], un tuk

sem ua i=1,...,n -1 harus m em en uhi keterurutan , yaitu x[j] > x[j-1].

b l d k h k k d d

y Apabila tidak m em en uhi m aka posisi kedua data

harus ditukar.

U t k k i l k

y Un tuk pem rogram an kon ven sion al m aka

pem eriksaan -pem eriksaan pasan gan tersebut harus dilakukan satu dem i satu, m isaln ya oleh harus dilakukan satu dem i satu, m isaln ya oleh

bubble-sort dilakukan dari kan an ke kiri serta di

(19)

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

sbb. d e s krip s i

adatukar true I 1

I 1

While (I<n ) an d (adatukar) do J 1

Adatukar false

While j <= (n -I) do While j < (n I) do If x[j] > x[j+1] then

Adatukar true tem p x[j] X[j] x[j+1][j] [j ] x[j+1] tem p endif

(20)

y Loop-for tersebut akan m en ggeser bilan gan p b gg b g terkecil ke posisi i.

y Loop-for dilakukan han ya sam pai ke i karen a pada

iterasi ke-i data dalam x[0 ], x[1], ..., x[I 1]

m erupakan yan g palin g kecil dan sudah terurut

h il dil k k ti l

hasil pen geseran yan g dilakukan setiap loop sebelum n ya.

y Oleh sebab itu iterasi han ya dilakukan un tuk harga

y Oleh sebab itu iterasi han ya dilakukan un tuk harga

(21)

Im p le m e n ta s i

B u b b le S o r t

Pada gam bar di bawah, pegecekan dim ulai dari data yan g Pada gam bar di bawah, pegecekan dim ulai dari data yan g palin g akhir, kem udian di ban din gkan den gan data di

depan n ya, jika data di depan n ya lebih besar m aka akan ditukar

(22)

Tidak ada pen ukaran k

karen a 3<8

Pen gurutan Berhen ti Di Sin i Pen gurutan Berhen ti Di Sin i

Pada proses kedua, pen gecekan dilakukan

i d

d t k

k

d t

t

(23)

Pen gurutan Berhen ti Di Sin i

Tidak ada pen ukaran p karen a 10 <15

(24)

Pen gurutan berhen ti di sin i

y Keuntun gan lain dari algoritm a in i adalah dapat dijalan kan den gan

k d f k k l d h

g g p j g

cukup cepat dan efisien untuk m engurutkan list yan g urutan n ya sudah ham pir ben ar.

y Selain kasus terbaik tersebut, kom leksitas un tuk algoritm a in i adalah

O(n² ).

y Karen an ya algoritm a in i term asuk san gat tidak efisien un tuk dilakukan ,

apalagi jika pen gurutan dilakukan terhadap elem en yan g ban yak jum lahnya.

y Biasan ya Biasan ya bubble sortbubble sort digun akan un tuk m en gen alkan kon sep dari sortin g digun akan un tuk m en gen alkan kon sep dari sortin g

(25)
(26)

PENDAH ULUAN

y Metode selection sort m erupakan perbaikan dari m etode bubble sort den gan m en guran gi jum lah perban din gan .

y Selection sort m erupakan m etode pen gurutan yan g

m en cari n ilai data terbesar atau terkecil dan kem udian m en cari n ilai data terbesar atau terkecil dan kem udian m en em patkan n ya pada posisi yan g seben arn ya, dim ulai dari data diposisi 0 hin gga data diposisi N-1.

y Sedan gkan m etode in sertion sort adalah m etode

pen gurutan yan g biasa dipakai oleh pem ain kartu dalam m en gurutkan kartun ya yaitu m en yisipkan kartu den gan m en gurutkan kartun ya, yaitu m en yisipkan kartu den gan n ilai yan g lebih kecil ke posisi sebelum kartu

(27)

y Selection Sort m erupakan kom bin asi an tara sortin g dan searchin g

searchin g.

y Un tuk setiap proses, akan dicari elem en -elem en yan g

belum diurutkan yan g m em iliki n ilai terkecil atau terbesar akan dipertukarkan ke posisi yan g tepat di dalam array akan dipertukarkan ke posisi yan g tepat di dalam array.

y Misaln ya un tuk putaran pertam a, akan dicari data den gan n ilai terkecil dan data in i akan ditem patkan di in deks

terkecil (data[0 ]) pada putaran kedua akan dicari data terkecil (data[0 ]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditem patkan di in deks kedua (data[1]).

y Selam a proses pem ban din gan dan pen gubahan han ya

y Selam a proses, pem ban din gan dan pen gubahan han ya

(28)

y Tehn ik pen gurutan dgn cara pem ilihan elem en atau proses kerja dgn m em ilih elem en data terkecil utk kem udian

dibe ja dgdi k e die ek e data tek d l ec utd de ud al d dibandingkan & ditukarkan dgn elem en pd data awal, dst s/ d seluruh elem en shg akan m en ghasilkan pola data yg telah disort.

y Ke le b ih a n d a n ke ku ra n ga n S e le ctio n S o rt:g

{ Kom pleksitas selection sort relatif lebih kecil.

{ Mudah m en ggabun gkan n ya kem bali, tetapi sulit m em bagi m asalah.

{ Mem butuhkan m ethod tam bahan .

y Kondisi awal:

{ Un sorted list = data

{ Sorted list koson g

{ Sorted list = koson g

y Am bil yan g terbaik (select) dari un sorted list, tam bahkan

di belakang sorted list.

L k k t i t d li t h bi

(29)

Selection sort con toh

40 2 1 43 3 65 0 -1 58 3 42 4

Selection sort con toh

40 2 1 43 3 4 0 1 58 3 42 65

40 2 1 43 3 65 0 1 58 3 42 4

40 2 1 43 3 4 0 1 42 3 58 65

40 2 1 43 3 4 0 -1 58 3 42 65

40 2 1 43 3 4 0 -1 42 3 58 65

42

(30)

Selection sort: Con toh (lan j.)

42

40 2 1 3 3 4 0 1 42 43 58 65

40 2 1 3 3 4 0 -1 43 58 65

42

-1 2 1 3 3 4 0 40 43 58 65

42

-1 2 1 3 3 0 4 40 43 58 65

42

(31)

Selection sort: Con toh (lan j.)

42

-1 2 1 0 3 3 4 40 43 58 65

1

42

-1 2 1 0 3 3 4 40 43 58 65

42

-1 0 2 3 3 4 40 43 58 65

1 42

-1 0 2 3 3 4 40 43 58 65

1 42

0 2 3 3 4 40 43 58 65

-1

1 42

0 2 3 3 4 40 43 58 65

(32)
(33)

In s e rtio n S o rt

In s e rtio n S o rt

y

Prin sip dasar In sertion adalah secara berulan

g-l

i i k

/

k

ti

l

k

ulan g m en yisipkan / m em asukan setiap elem en. ke

dlm posisin ya / tem patn ya yg ben ar.

y

Mirip den gan cara oran g

Mirip den gan cara oran g

m e n gu ru tka n

m e n gu ru tka n

kartu,

kartu,

selem bar dem i selem bar kartu diam bil dan

d is is ip ka n

(in sert) ke tem pat yan g seharusn ya.

y

Pen gurutan dim ulai dari data ke 2 sam pai den gan

y

Pen gurutan dim ulai dari data ke-2 sam pai den gan

data terakhir, jika ditem ukan data yan g

le bih

ke cil

, m aka akan ditem patkan (

d iin s e rt

) diposisi

h

P d

i i

l

k

(34)

In s e rtio n S o rt

y Kon disi awal:

{ Un sorted list = data

{ Sorted list = koson g

y Am bil sem baran g elem en dari un sorted list, sisipkan

(in sert) pada posisi yan g ben ar dalam sorted list.

L k k t i t d li t h bi

y Lakukan terus sam pai un sorted list habis.

(35)

In sertion sort: Con toh

40 2 1 43 3 65 0 -1 58 3 42 4

40

2 40 1 43 3 65 0 -1 58 3 42 4

(36)

In sertion sort: Con toh (lan j.)

1 2 40 43 3 65 0 -1 58 3 42 4

1 2 3 40 43 65 0 -1 58 3 42 4

(37)

In sertion sort: Con toh (lan j.)

1 2 3 40 43 65 0 -1 58 3 42 4

1 2 3 40 43 65

0 -1 58 3 42 4

1 2 3 40 43 65

0 0 1 2 3 40 43 65 58 3 42 4

(38)

In sertion sort: Con toh (lan j.)

1 2 3 40 43 65

0 0 1 2 3 40 43 58 65 3 42 4

-1

1 2 3 40 43 65

0 0 1 2 3 3 43 58 65 42 4

-1 40 43 58 65

1 2 3 40 43 65

0 0 1 2 3 3 43 42 65 4

-1 40 43 58 65

1 2 3 40 43 65

0 0 1 2 3 3 43 42 65

(39)
(40)

METODE QUICK SORT

y Qick sort ban yak digun akan utk proses sortin g,karen a:

k i di k

{ m erupakan proses sortin g yan g um um digun akan

{ m udah un tuk diim plem en tasikan

{ Prosesn ya san gat cepat

At Q i k S t

y Aturan Quick Sort:

{ S e le ct

Ù Pertam a kita pilih elem en yan g diten gah sebagai pivot, m isalkan X.

{ Pa rtitio n

{ Pa rtitio n

Ù kem udian sem ua elem en tersebut disusun den gan m en em patkan X

pada posisi j sedem ikian rupa sehin gga elem en disebelah kiri1 lebih <

X dan elem en sebelah kan an > X.

R k if

{ Re ku rs if

Ù Kem udian proses diulan g un tuk bagian kiri dan kan an elem en X

(41)

ALGORITMA QUICK SORT

a lgo ritm a quicksort

d e s krip s i d e s krip s i

x data[(L+R) div 2] I L

J R

while ( I < J ) do while ( I < = J ) do

while (data[I] < x ) do in c( I ) en dwhile while ( data[J ] > x ) do dec( J ) en dwhile If ( I < = J ) then

k (d [I] d [j]) tukar(data[I],data[j]) in c( I )

Dec( J ) en dif

en dwhile

(42)
(43)

METODE H EAP SORT

y Adalah bin ary tree den gan m en ggun akan kun ci, y g gg ,

dim an a m em pun yai aturan -aturan sebagai berikut :

Ù untuk m en gisikan heap dim ulai dari level 1 sam pai ke level

dibawahn ya bila dalam level yang sam a sem ua kun ci heap belum dibawahn ya, bila dalam level yang sam a sem ua kun ci heap belum terisi m aka tidak boleh m en gisi dibawahn ya.

Ù heap dlm kon disi terurut apabila left child < paren t dan right child >

paren t p

Ù pen am bahan kun ci diletakkan pada posisi terakhir dari level dan

disebelah kan an child yg terakhir, kem udian diurutkan den gan cara upheap

Ù Bila m enghapus heap dgn m engam bil kunci pada paren t di level 1

(44)

H EAP REPRESENTATION

y Array

y Left child(i) 2i

y Left_ child(i) = 2i

y Right_ chilrd = 2i +1

y Parent = j div 2

(45)

H EAP SORT

y Metode Upheap:

{ ban din gkan kun ci terakhir den gan paren tn ya apabila paren t < kun ci m aka lakukan pertukaran .

{ ulan gi lan gkah 1 den gan m em ban din gkan den gan paren t selan jutn yag g g b g g p j y

sam pai posisi paren t di level 1 selesai diban din gkan

M d D h

y Metode Downheap:

{ ban din gkan paren t den gan leftchild dan rightchild apabila paren t < leftchild atau rightchild m aka lakukan pertukaran .

(46)

D AFTAR P U S TAKA

y DF Alfatwa, ER Syah P, FM Ahsan , “Im plem en tasi Algoritm a Radix Sort dalam Berbagai Kasus Bilan gan Diban din gkan Algoritm a Pen gurutan yan g lain ” Ban dun g 20 0 5

Algoritm a Pen gurutan yan g lain . Ban dun g. 20 0 5.

y Thom as H . Corm en , Charles E. Leiserson , Ron ald L. Rivest,

In troduction To Algorithm s, McGraw- H ill. 1990 .

y H an dbook UI, Algoritm a-algoritm a pen gurutan in tern al a dboo U , go a a go a pe gu u a e a

http:/ / ran au.cs.ui.ac.id/ sda/ archive/ 1998 / han dout/ han dout24.h tm l Tan ggal akses : 29 Desem ber 20 0 7 pukul 0 4.0 0 GMT +7

y Wikipedia, (20 0 7). Wikipedia, the free en cyclopedia.

http:/ / en wikipedia org/ wiki/ Coun tin g Sort Tanggal akses : 29

http:/ / en .wikipedia.org/ wiki/ Coun tin g_ Sort Tanggal akses : 29 Desem ber 20 0 7 pukul 0 4.0 0 GMT +7

y Wikipedia, (20 0 7). Wikipedia, the free en cyclopedia.

http:/ / en .wikipedia.org/ wiki/ Sorting_ Algorithmp / / p g/ / g g Tan ggal akses : gg 29 Desem ber 20 0 7 pukul 0 4.0 0 GMT +7

y Wikipedia, (20 0 7). Wikipedia, the free en cyclopedia.

http:/ / en .wikipedia.org/ wiki/ Radix_ Sort Tanggal akses : 29 Desem ber 20 0 7 pukul 0 4 0 0 GMT +7

Referensi

Dokumen terkait

Dengan selalu mengambil hikmah dari setiap sesuatu yang pernah terjadi dalam diri kita, kita akan tahu apa seharusnya kita perbuat hari ini, untuk kepentingan masa depan kita3.

[r]

Pineapple is a chilling sensitive fruit and when the harvested fruit is exposed to low temperature 8–15°C during storage, transport or when the developing fruit is exposed to

Penerapan metode ini dimulai dengan mengajukan pertanyaan atau masalah atau dengan memperkenalkan tema.Kemudian siswa memberikan respon atau gagasan atau pendapat

(2003) Dinamika Pendidikan Islam (Studi krisis Tantangan dan Peran Pendidikan Islam dalam Kemajuan Ilmu Pengetahuan dan Teknologi)” dalam Jurnal Dinamika

Apabila kemudian terbukti bahwa saya ternyata melakukan tindakan menyalin atau meniru tulisan orang lain seolah-olah hasil pemikiran saya sendiri, saya bersedia menerima

[r]

Praktik Pengalaman Lapangan (PPL) 2 telah dilaksanakan praktikan di SMK Masehi PSAK Ambarawa yang terletak di Jalan Pemuda No. Banyak kegiatan yang telah dilakukan