analisis algoritma quick sort
TRANSCRIPT
-
7/26/2019 Analisis Algoritma Quick Sort
1/30
ANALISIS ALGORITMA QUICK SORT , MERGE SORT DAN IMPLEMENTASINYA
DALAM BAHASA PEMROGRAMAN PYTHON
Disusun Oleh :
Nou!l R!!"i A#l$ %&'&&())*+-
He."in! %&'&&())*//-
0!h$u H!.i Sen1os! %&'&&()))+&-
PROGRAM STUDI MAGISTER KOMPUTER
UNI2ERSITAS BUDI LUHUR
3AKARTA
*)&'
D!"1!. Isi
Daftar Isi..........................................................................................................................................2
-
7/26/2019 Analisis Algoritma Quick Sort
2/30
Daftar Gambar.................................................................................................................................3
Daftar Tabel.....................................................................................................................................3
BAB I...............................................................................................................................................4
PENDAHULUAN...........................................................................................................................4
1.1. Latar Belakang......................................................................................................................4
1.2. T!an Penelitian.................................................................................................................."
1.3. Batasan #asala$..................................................................................................................."
BAB II.............................................................................................................................................%
LANDA&AN TE'(I.......................................................................................................................%
2.1. Alg)ritma..............................................................................................................................%
2.4.1. Definisi..........................................................................................................................%
2.4.2. Pen*a!ian Alg)ritma......................................................................................................%
2.2. +i,k &)rt...........................................................................................................................1-
2.4.1. Alg)ritma +i,k &)rt..................................................................................................11
2.4.2. )m/leksitas Alg)ritma +i,k &)rt...........................................................................11
2.4.3. elebi$an 0an elema$an Alg)ritma +i,k &)rt.......................................................12
2.3. #erge &)rt..........................................................................................................................12
2.4.1. Alg)ritma 0an Pse0),)0e..........................................................................................13
2.4.2. )m/leksitas Alg)ritma..............................................................................................1"
2.4. Pemr)graman P*t$)n..........................................................................................................1
2.4.1. itr P*t$)n.................................................................................................................1
2.4.2. elebi$an 0an ekrangan P*t$)n.............................................................................1
BAB III..........................................................................................................................................21
PE#BAHA&AN............................................................................................................................21
3.1. +i,k &)rt...........................................................................................................................21
3.2. #erge &)rt..........................................................................................................................21
3.3. Peng!ian............................................................................................................................21
BAB I..........................................................................................................................................2"
PENUTUP.....................................................................................................................................2"
4.1. esim/lan.........................................................................................................................2"
4.2. &aran...................................................................................................................................2"
LA#PI(AN..................................................................................................................................25
2
-
7/26/2019 Analisis Algoritma Quick Sort
3/30
1. 6i,k7s)rt./*......................................................................................................................25
2. #erge7s)rt2./*...................................................................................................................2%
DATA( PU&TAA.....................................................................................................................3-
D!"1!. G!45!.
Gambar 2. 1Simbol Flow Chart......................................................................................................
Gambar 2. 2 l)8 9$art Alg)ritma E,li0ean................................................................................
Gambar 2. 3 Ilstrasi #erge &)rt...................................................................................................14
Gambar 2. 4 )n0isi Worst Case/a0a #erge &)rt.......................................................................15
Gambar 2. " )n0isiBest Case/a0a #erge &)rt.........................................................................1%
Gambar 2. 5 Hasil +i,k &)rt........................................................................................................21
Gambar 2. % Hasil #erge &)rt.......................................................................................................21
D!"1!. T!5el
Table 1 Peng!ian +i,k &)rt 0an #erge &)rt..............................................................................22
Table 2 Grafik Peng!ian #erge &)rt 0an +i,k &)rt...................................................................23
Table 3 Perban0ingan 8akt 0engan !mla$ 0ata #erge &)rt 0an +i,k &)rt.............................23
Table 4 Perban0ingan :mla$ Data 0engan ;akt #erge &)rt 0an +i,k &)rt...........................24
3
-
7/26/2019 Analisis Algoritma Quick Sort
4/30
BAB I
PENDAHULUAN
&6&6 L!1!. Bel!7!n8
&)rting ata /engrtan a0ala$ /r)ses men*sn elemen < elemen 0ari maskan a8al
a,ak men!a0i kelaran ak$ir tertata 0engan rtan tertent .=1> Pr)ses &)rting ban*ak
0iim/lementasikan 0alam berbagai a/likasi? ,)nt)$ m0a$n*a iala$ /enera/an /a0a
absensi 0aftar $a0ir *ang 0irtkan ber0asarkan n)m)r in0k ata nama ? rin,ian !al beli
0alam sesai rtan tanggal 0an !am? rtan nilai terbesar ntk menentkan !ara kelas ?
ata/n 0aftar /staka *ang 0irtkan sesai 0engan nama /engarang ata katal)g bk it
sen0iri. ngsi@fngsi statistik se/erti me0ian 0an /embatan kartil 0ata 6arter? 0esil
0an /er,entil /er,entile mens*aratkan 0ata ntk 0irtkan terlebi$ 0a$l. Bebera/a
ma,am alg)ritma s)rting tela$ 0ibat karena /r)ses tersebt sangat men0asar 0an sering
0ignakan.=2> 'le$ karena it? /ema$aman atas alg)ritma < alg)ritma *ang a0a
sangatla$ bergna.
Permasala$an /engrtan s)rting /r)blem se,ara f)rmal 0i0efinisikan
sebagai berikt=3>C
In/tC &at rtan 0ari n bilangan?
't/tC &at /ermtasi ata /en*snan kembali 0ari in/t se0emikian r/a
se$ingga /a0a tata rtan as,en0ing 0ari nilai ke,il ke besar ata /a0a tata rtan
0es,en0ing 0ari nilai besar ke ke,il.
&ebagai ,)nt)$ !ika 0iberikan maskan lima bilangan a,ak maka kelarann*a a0ala$
sebagaimana berikt iniC
In/t C 2 " 4 1 5 3 n 5
't/t C 1 2 3 4 " 5 as,en0ing
5 " 4 3 2 1 0es,en0ing
4
-
7/26/2019 Analisis Algoritma Quick Sort
5/30
Data *ang 0irtkan ti0ak $ars ber/a angka? namn bisa sa!a string? misaln*aC
In/tC &a/ta0i ;in0isari Desi Hen0ra Arief n "
't/tC Arief Desi Hen0ra &a/ta0i ;in0isari
as,en0ing
;in0isari &a/ta0i Hen0ra Desi Arief 0es,en0ing
:a0i 0a/at 0isim/lkan ba$8a 0alam /engrtan $ars ter0a/atC
0ata *ang akan 0irtkan 0alam ti/e *ang sama ata seti0akn*a mem/er)le$
/erlakan 0ata *ang sama atran /engrtan *ang !elas
A0a ban*ak met)0e /engrtan antara lainC bbble s)rt? bi@0ire,ti)nal bbble
s)rt? sele,ti)n s)rt? s$aker s)rt? inserti)n s)rt? in@ /la,e merge s)rt? 0)ble st)rage merge
s)rt? ,)mb s)rt 11? s$ell s)rt? $ea/ s)rt? e,$ange s)rt? merge s)rt? 6i,k s)rt? 6i,k s)rt
8it$ bbbles)rt? en$ange 6i,k s)rt? fast 6i,k s)rt? ra0i s)rt alg)rit$m? s8a/ s)rt? 0an
lain sebagain*a=4>.
Untk membatasi lasn*a /emba$asan? maka 0alam makala$ ini $an*a akan
0iba$as 2 met)0e? *ait 6i,k s)rt 0an merge s)rt .Pemba$asan ntk tia/ met)0e akan
0if)kskan /a0a ,ara ker!a /engrtan beserta ,)nt)$n*a? im/lementasin*a 0alam
ba$asa /$*t)n serta /eng!ian 8akt ekseksi ntk ke0a met)0e tersebt.
&6*6 Tu9u!n Peneli1i!n
Dari Pen!elasan 0iatas t!an /enelitian *ang ingin 0i,a/ai a0ala$ C
1. #enera/kan Alg)ritma 6i,k s)rt 0an merge s)rtke0alam ba$asa /emr)graman /$*t)n2. #eng!i 0an memban0ingkan /erf)rma alg)ritma 6i,k s)rt 0an merge s)rt 0alam
/r)ses /engrtan
3. &ebagai tgas #atriklasi &trktr Data 0i Pr)gram &t0i #agister )m/ter Pas,a
&ar!ana UniFersitas B0i L$r
&6+6 B!1!s!n M!s!l!h
A0a/n batasan masala$ 0alam /enelitian ini a0ala$ sebagai berikt C
1. Alg)ritma *ang 0ika!i $an*a 6i,k s)rt 0an merge s)rt
2. Im/lementasi Alg)ritma menggnakan ba$asa /emr)graman /$*t)n
"
-
7/26/2019 Analisis Algoritma Quick Sort
6/30
3. Peng!ian /erf)rma 0ilakkan 0engan memban0ingkan 8akt ekseksi /engrtan
ntk tia/ alg)ritma4. Peng!ian 0ibatasi 0an $an*a 0ilakkan sesai 0engan s/esifikasi /erangkat keras 0an
/erangkat lnak *ang 0isebtkan
BAB II
LANDASAN TEORI
5
-
7/26/2019 Analisis Algoritma Quick Sort
7/30
*6&6 Al8o.i14!
*66&6 De"inisi
Alg)ritma mer/akan rtan langka$@langka$ ntk men*elesaikan masala$
*ang 0issn se,ara sistematis. Alg)ritma 0ibat 0engan tan/a mem/er$atikan
bentk *ang akan 0ignakan sebagai im/lementasin*a? se$ingga sat Alg)ritma
0a/at men!elaskan bagaimana ,ara melaksanakan fngsi *ang 0a/at
0ieks/resikan 0engan sat /r)gram ata sat k)m/)nen fisik.=">
Untk men*elesaikan /ers)alan /r)grammer $arsla$C
1. Da/at men0esain alg)ritma *ang men!elaskan bagaimana /ers)alan tersebt
0iselesaikan.2. #enlis merba$ alg)ritma men!a0i sat /r)gram 0engan menggnakn
sat Ba$asa /emr)graman *ang sesai.
3. #enggnakan ,)m/ter ntk men!alankan /r)gram.
*66*6 Pen$!9i!n Al8o.i14!
Alg)ritma biasan*a 0isa!ikan 0alam 0a bentk? *ait C
1. #enggnakanFlow Chart0iagram alir
l)8,$art #enggambarkan se,ara keselr$an rtan /r)ses l)gika?
0imana /ers)alan *ang a0a akan 0iselesaikan? 0an menn!kkan tingkat 0ari
0etail /en*elesaian /ers)alan. l)8,$art mer/akan ,ara *ang klasik 0alam
men*a!ikan alg)ritma? 0ignakan simb)l@simb)l sebagai beriktC=">
%
-
7/26/2019 Analisis Algoritma Quick Sort
8/30
Gambar 2. 1Simbol Flow Chart
2. #enggnakanPseudo-Code
Stepwise Refinement Of Algorithms 0isebt !ga sebagai top-down 0esain.
I0e 0ari stepwise refinementa0ala$ membagi sat /r)ses *ang akan
0iselesaikan men!a0i se!mla$ langka$@langka$? *ang masing@masing
0i!elaskan 0engan alg)ritma *ang lebi$ ke,il 0an lebi$ se0er$ana 0ari /a0a
/r)ses se,ara keselr$an.=">
9)nt)$ CAlgoritma Euclidean
Jait /r)ses ntk menentkan /embagi bersama terbesar 0ari 0a bilangan blat.
A0a 0a bilangan blat 4 0an n 4 K n. 9arila$ /embagi terbesar /bt 0ari
ke0a bilangan tersebt ? *ait bilangan /)sitif terbesar *ang $abis 0ibagi m 0an
n.
Den8!n ;lo< Ch!.1
-
7/26/2019 Analisis Algoritma Quick Sort
9/30
Gambar 2. 2 l)8 9$art Alg)ritma E,li0ean
Den8!n Pseu#o = Co#e
Deskri/si
1. Bagila$ m 0engan n? misalkan r a0ala$ sisan*a
2. :ika r - ? maka n a0ala$ !a8aban*a. S1o>:ika r -? maka lakkan langka$ 3
3. Gantila$ nilai m 0engan nilai n? 0an nilai n 0iganti 0engan nilai r? langi
langka$ 1
9)nt)$ 0engan angka
m 3- n 12
1.1 Hitng r sisa mn Mr sisa 3-12 5
2.1 9ek r? r - ? lakkan langka$ 3
3.1 m n n r Mm 12 n 5
1.2 Hitng r sisa mn Mr sisa 125 -
2.2 9ek r? r - selesai MPbt n 5
-
7/26/2019 Analisis Algoritma Quick Sort
10/30
:a0i Pbt 3-12 5
*6*6 Qui?7 So.1
Alg)ritma 6i,k s)rt 0i/erkenalkan /ertama kali )le$ 9.A.(. H)are /a0a ta$n
15-? 0an 0imat sebagai artikel 0i 9)m/ter :)rnal " /a0a A/ril 152. +i,k s)rt
a0ala$ alg)ritma s)rting *ang ber0asarkan /emban0ingan 0engan met)0a 0iFi0e@an0@
,)n6er)r. Disebt +i,k &)rt? karena Alg)ritma 6i,k s)rt mengrtkan 0engan sangat
,e/at. +i,k s)rt 0isebt !ga 0engan /artiti)n e,$ange s)rt? karena k)nse/n*a membat
/artisi@/artisi? 0an s)rt 0ilakkan /er /artisi.=5>
Teknik mem/artisi tabelC=5>
i /ili$ Oa1? a2? ? anQ sebagai elemen /iF)t.
ii /in0ai s,an tabel 0ari kiri sam/ai 0itemkan elemen a/ R .
iii /in0ai tabel 0ari kanan sam/ai 0itemkan elemen a6 S
iF /ertkarkan a/ @K a6
F langi ii 0ari /)sisi / 1? 0an iii 0ari /)sisi 6 < 1? sam/ai ke0a /emin0aian
bertem 0i tenga$ tabel.
Alg)ritma 6i,k s)rt mengrtkan 0engan sangat ,e/at? namn alg)ritma ini sangat
k)m/le 0an 0i/r)ses se,ara rekrsif. &angat memngkinkan ntk menlis alg)ritma
*ang lebi$ ,e/at ntk bebera/a kass k$ss? namn ntk kass mm? sam/ai saat ini
ti0ak a0a *ang lebi$ ,e/at 0iban0ingkan alg)ritma 6i,k s)rt.=5>
;ala/n begit alg)ritma 6i,k s)rt ti0ak selal mer/akan /ili$an *ang terbaik. &e/erti
*ang tela$ 0isebtkan sebelmn*a? alg)ritma ini 0ilakkan se,ara rekrsif *ang berarti !ika
0ilakkan ntk tabel *ang berkran sangat besar? 8ala/n ,e/at? 0a/at meng$abiskan
mem)ri *ang besar /la. &elain it? alg)ritma ini a0ala$ alg)ritma *ang terlal k)m/le
ntk mengrtkan tabel *ang berkran ke,il $an*a /l$an elemen misaln*a. &elain
it alg)ritma 6i,k s)rt mem/n*ai tingkat efisiensi *ang brk ketika 0i)/erasikan /a0a
tabel *ang $am/ir terrt ata /a0a tabel *ang terrt menrn.=5>
1-
-
7/26/2019 Analisis Algoritma Quick Sort
11/30
*66&6 Al8o.i14! Qui?7 So.1
Dalam alg)ritma 6i,k s)rt? /emili$an /iF)t a0ala$ $al *ang menentkan a/aka$
alg)ritma 6i,k s)rt tersebt akan memberikan /erf)rma terbaik ata terbrk.
Berikt bebera/a ,ara /emili$an /iF)t C=5>
1. PiF)t a0ala$ elemen /ertama? elemen terak$ir? ata elemen tenga$ tabel. 9ara
ini $an*a bags !ika elemen tabel terssn se,ara a,ak? teta/i ti0ak bags !ika
elemen tabel semla s0a$ terrt. #isaln*a? !ika elemen tabel semla
menrn? maka sema elemen tabel akan terkm/l 0i /atabel kanan.
2. PiF)t 0i/ili$ se,ara a,ak 0ari sala$ sat elemen tabel. 9ara ini baik? teta/i
ma$al? sebab memerlkan bia*a ,)st ntk /embangkitan /r)se0r a,ak.
Lagi /la? it ti0ak mengrangi k)m/leksitas 8akt alg)ritma.
3. PiF)t a0ala$ elemen me0ian tabel. 9ara ini /aling bags? karena $asil /artisimeng$asilkan 0a bagian tabel *ang berkran seimbang masing masing V
n2 elemen. 9ara ini memberikan k)m/leksitas 8akt *ang minimm.
#asala$n*a? men,ari me0ian 0ari elemen tabel *ang belm terrt a0ala$
/ers)alan tersen0iri.
*66*6 Ko4>le7si1!s Al8o.i14! Qui?7 So.1
ebt$an 8akt 0ari 6i,ks)rt bergantng /a0a /embatan /artisi? seimbang
ata ti0ak? *ang bergantng !ga /a0a elemen *ang 0ignakan sebagai /iF)t.Dalam meng$itng k)m/leksitas ini? /erl 0ili$at /la /er$itngan re,rren,e?
karena ter0a/at fngsi rekrsif ntk /en*elesaian sb@masala$.
Ter0a/at 3 !enis k)m/leksitas 8akt 0ari 6i,ks)rtC=5>
1. ass terbrk 8)rst ,ase? *ait ter!a0i bila terbentk /artisi 0engan
k)m/)sisi sb@masala$ antara n < 1 elemen 0an - elemen. Dengan 0emikian
/emanggilan fngsi se,ara rekrsif 0engan arra* berkran - akan langsng
kembali? T- W1? se$ingga berlakC Tn Tn < 1 ,n 'n2.2. ass terbaik best ,ase? *ait ter!a0i bila terbentk /artisi 0engan
0engan k)m/)sisi seimbang? 0engan kran masing@masing ti0ak lebi$ 0ari
n2. &e$ingga 0i0a/atC Tn 2Tn2 ,n na ,n l)g n 'n l)g n.
11
-
7/26/2019 Analisis Algoritma Quick Sort
12/30
3. ass rata@rata aFerage ,ase? *ait ter!a0i 0ari /erimbangan /iF)t antara
terbaik 0an terbrk? *ang 0alam /raktekn*a lebi$ men0ekati kass terbaik
ketimbang terbrk. &e$ingga 0i0a/atC TaFgn 'n l)g n.
*66+6 Kele5ih!n #!n Kele4!h!n Al8o.i14! Qui?7 So.1Bebera/a $al *ang membat 6i,k s)rt ngglC
&e,ara mm memiliki k)m/leksitas 'n l)g n.
Alg)ritman*a se0er$ana 0an m0a$ 0itera/kan /a0a berbagai ba$asa
/emr)graman 0an arsitektr mesin se,ara efisien.
Dalam /raktekn*a a0ala$ *ang ter,e/at 0ari berbagai alg)ritma
/engrtan 0engan /erban0ingan? se/erti merge s)rt 0an $ea/ s)rt.
#elakkan /r)ses langsng /a0a in/t in@/la,e 0engan se0ikit tamba$an
mem)ri.
Beker!a 0engan baik /a0a berbagai !enis in/t 0ata se/erti angka 0an
karakter.
Namn ter0a/at /la kelema$an 6i,k s)rtC
&e0ikit kesala$an 0alam /enlisan /r)gram membatn*a beker!a ti0ak
beratran $asiln*a ti0ak benar ata ti0ak /erna$ selesai.
#emiliki ketergantngan ter$a0a/ 0ata *ang 0imaskkan? *ang 0alam
kass terbrk memiliki k)m/leksitas 'n2.
&e,ara mm bersifat ti0ak stable? *ait mengba$ rtan in/t 0alam
$asil ak$irn*a 0alam $al in/tn*a bernilai sama.
Pa0a /enera/an se,ara rekrsif memanggil 0irin*a sen0iri bila ter!a0i
kass terbrk 0a/at meng$abiskan sta,k 0an mema,etkan /r)gram.
*6+6 Me.8e So.1
#erge s)rt a0ala$ met)0e /engrtan *ang menggnakan /)la 0iFi0e an0
,)n6er=%>
. &trategin*a a0ala$ 0engan membagi sekel)m/)k 0ata *ang akan 0irtkan
men!a0i bebera/a kel)m/)k ke,il ter0iri 0ari maksimal 0a nilai ntk 0iban0ingkan 0an
0igabngkan lagi se,ara keselr$an.
Langka$ ker!a 0ari #erge s)rt=>C
1. DiFi0e
12
-
7/26/2019 Analisis Algoritma Quick Sort
13/30
#emila$ elemen < elemen 0ari rangkaian 0ata men!a0i 0a bagian 0an menglangi
/emila$an $ingga sat elemen ter0iri maksimal
0a nilai.
2. 9)n6er
#engrtkan masing@masing elemen.
3. )mbinasi
#engk)mbinasikan 0a bagian tersebt se,ara rekrsif ntk men0a/atkan rangkaian
0ata berrtan. Pr)ses rekrsi ber$enti !ika men,a/ai elemen0asar. Hal ini ter!a0i
bilamana bagian *ang akan 0irtkan men*isakan te/at sat elemen. &isa /engrtan
sat elemen tersebt menan0akanba$8a bagian tersebt tela$ terrt sesai
rangkaian.
*66&6 Al8o.i14! #!n Pseu#o?o#e
Alg)ritma #erge s)rt sebenarn*a se0er$ana=>C bagi larik men!a0i 0a sama besar?
rtkan bagian /ertama? rtkan bagian ke0a? lal gabngkan. &ebagai ,)nt)$?
!ika ter0a/at 0ata ber/a 3? 2%? 43? 3? ?2? 0an 1- maka ilstrasi /engrtann*a
a0ala$ sebagai beriktC
13
-
7/26/2019 Analisis Algoritma Quick Sort
14/30
Gambar 2. 3 Ilstrasi #erge &)rt
Pse0),)0e ntk merge s)rt=>a0ala$ sebagai beriktC
mergesort(data)
if data memiliki setidaknya dua elemen
mergesort (separuh kiri dari data);
mergesort (separuh kanan dari data ;
merge (kedua bagian ke dalam suatu urutan);
&e0angkanpseudocode ntk merge it sen0iri a0ala$C
Merge (array1, pertama, terakhir)
Tengah = (pertama + terakhir) / 2;
i1 = ;
i2 = pertama;
i! = tengah + 1;
"hile kedua sub larik dari array1 memiliki elemn
#f array1$i2% & array1$i!%
temp$i1++% = array1 $i2++%;
else
temp$i1++% = array1$i!++%;
masukkan ke dalam temp sisa elemen dari array1;
masukkan ke array1 isi dari temp;
14
-
7/26/2019 Analisis Algoritma Quick Sort
15/30
*66*6 Ko4>le7si1!s Al8o.i14!
)m/leksitas alg)ritma ntk larik 0engan n elemen 0an !mla$ /ergeseranT
0i$itng melali relasi rekrsif berikt ini=1->C
A0a/n #n 0i$itng le8at ,ara berikt=1->C
#emili$ i l)g n se0emikian se$ingga n 2i? maka 0i/er)le$ =1->C
ass terbrk worst case ter!a0i bila selama /emanggilan fngsi rekrsif
merge? nilai terbesar 0ari setia/ elemen terletak 0i larik *ang berbe0a =1>? Hal ini
memaksa fngsi merge ntk melakkan /engrtan se,ara ber/in0a$@/in0a$
antar larik? sebagaimana 0igambarakan beriktC
1"
-
7/26/2019 Analisis Algoritma Quick Sort
16/30
Gambar 2. 4 )n0isi Worst Case/a0a #erge &)rt
Pa0a k)n0isi ini=1>C
e0a /ersamaan tersebt ntk selan!tn*a 0i/erlas se/erti berikt =1>C
Dengan mengenali /)la *ang a0a? maka 0a/at 0itliskan /ersamaanC
15
-
7/26/2019 Analisis Algoritma Quick Sort
17/30
Dengan 2i n 0an I n l)g n 0an memaskkan nilai a8al /ersamaanC
#aka k)m/leksitas /a0a k)n0isi worst casea0ala$ ' n l)g n =1>.
ass terbaik best case ntk met)0e ini 0i!m/ai /a0a k)n0isi 0imana elemen
memiliki nilai terbesar *ang lebi$ ke,il 0iban0ingkan 0engan selr$ nilai /a0a
elemen *ang lain =3>? sebagaimana berikt ini C
Gambar 2. " )n0isiBest Case/a0a #erge &)rt
Pa0a s,enari) ini $an*a n2 /erban0ingan 0ari elemen *ang 0i/erlkan.
#enggnakan /r)ses /er$itngan *ang sama sebagaimana 0alam kass terbrk?
0i/er)le$=3>C
Dengan kata lain? 0i/er)le$ !ga k)m/leksitas *ang sama? ' n l)g n=3>.
1%
-
7/26/2019 Analisis Algoritma Quick Sort
18/30
*66 Pe4.o8.!4!n P$1hon
P*t$)n 0ikembangkan )le$ Gi0) Fan ()ssm /a0a ta$n 1- 0i 9;I? Amster0am
sebagai kelan!tan 0ari ba$asa /emr)graman AB9. ersi terak$ir *ang 0ikelarkan 9;I
a0ala$ 1.2. Ta$n 1"? Gi0) /in0a$ ke 9N(I sambil ters melan!tkan /engembangan
P*t$)n. ersi terak$ir *ang 0ikelarkan a0ala$ 1.5. Ta$n 2---? Gi0) 0an /ara
/engembang inti P*t$)n /in0a$ ke Be'/en.,)m *ang mer/akan seba$ /ersa$aan
k)mersial 0an membentk Be'/en P*t$)nLabs. P*t$)n 2.- 0ikelarkan )le$ Be'/en.
&etela$ mengelarkan P*t$)n 2.-? Gi0) 0an bebera/a angg)ta tim P*t$)nLabs /in0a$ ke
Digital9reati)ns. &aat ini /engembangan P*t$)n ters 0ilakkan )le$ sekm/lan
/emr)gram *ang 0ik))r0inir Gi0) 0an P*t$)n &)ft8are )n0ati)n. P*t$)n &)ft8are
)n0ati)n a0ala$ seba$ )rganisasi n)n@/r)fit *ang 0ibentk sebagai /emegang $ak ,i/ta
intelektal P*t$)n se!ak Fersi 2.1 0an 0engan 0emikian men,ega$ P*t$)n dimilii )le$
/ersa$aan k)mersial. &aat ini 0istribsi P*t$)n s0a$ men,a/ai Fersi 2.5.1 0an Fersi 3.-.
Nama P*t$)n 0i/ili$ )le$ Gi0) sebagai nama ba$asa ,i/taann*a karena ke,intaan gi0)
/a0a a,ara teleFisi #)nt* P*t$)nXs l*ing 9ir,s. 'le$ karena it seringkali ngka/an@
ngka/an k$as 0ari a,ara tersebt seringkali mn,l 0alam k)res/)n0ensi antar /enggna
P*t$)n.=11>
*66&6 ;i1u. P$1hon
&isi tama *ang membe0akan P*t$)n 0engan ba$asa lain a0ala$ 0alam $al atran/enlisan k)0e /r)gram. Bagi /ara /r)grammer 0i lar /*t$)n sia/@sia/
0ibingngkan 0engan atran in0entasi? ti/e 0ata? t/le? 0an 0i,ti)nar*. P*t$)n
memiliki kelebi$an tersen0iri 0iban0ingkan 0engan ba$asa lain tertama 0alam
$al /enanganan m)0l? ini *ang membat bebera/a /r)grammer men*kai
/*t$)n. &elain it /*t$)n mer/akan sala$ sat /r)0k *ang )/ens)r,e? free?
0an mlti/latf)rm. Bebera/a "i1u. *ang 0imiliki P*t$)n a0ala$ C =11>
memiliki ke/stakaan *ang las 0alam 0istribsi P*t$)n tela$ 0ise0iakanm)0lm)0l sia/ /akai ntk berbagai ke/erlan.
memiliki tata ba$asa *ang !erni$ 0an m0a$ 0i/ela!ari.
memiliki atran la!out k)0e smber *ang mem0a$kan /enge,ekan?
/emba,aan kembali 0an /enlisan lang k)0e smber. ber)rientasi )b*ek.
1
-
7/26/2019 Analisis Algoritma Quick Sort
19/30
memiliki sistem /engel)laan mem)ri )t)matis garbage ,)lle,ti)n? se/erti
!aFa
m)0lar? m0a$ 0ikembangkan 0engan men,i/takan m)0l@m)0l bar
m)0l m)0l tersebt 0a/at 0ibangn 0engan ba$asa P*t$)n ma/n 99.
memiliki fasilitas /engm/lan sam/a$ )t)matis? se/erti $aln*a /a0a ba$asa
/emr)graman :aFa? /*t$)n memiliki fasilitas /engatran /enggnaan ingatan
k)m/ter se$ingga /ara /emr)gram ti0ak /erl melakkan /engatran
ingatan k)m/ter se,ara langsng.
*66*6 Kele5ih!n #!n Ke7u.!n8!n P$1hon
Bebera/a kelebi$an ba$asa P*t$)n antara lain C =11>
Ti0ak a0a ta$a/an k)m/ilasi 0an /en*ambngan link se$ingga
ke,e/atan /erba$an /a0a masa /embatan s*stem a/likasi meningkat.
Ti0ak a0a 0eklarasi ti/e se$ingga /r)gram men!a0i lebi$ se0er$ana?
singkat? 0an fleksible.
#ana!emen mem)ri )t)matis *ait km/lan sam/a$ mem)ri se$ingga
0a/at meng$in0ari /en,atatan k)0e
Ti/e 0ata 0an )/erasi tingkat tinggi *ait ke,e/atan /embatan s*stem
a/likasi menggnakan ti/e )b!ek *ang tela$ a0a
Pemr)graman ber)rientasi )b!ek
Pelekatan 0an /erlasan 0alam 9
Ter0a/at kelas? m)0l? ekse/si se$ingga ter0a/at 0kngan /emr)graman
skala besar se,ara m)0lar
Pematan 0inamis m)0l 9 se$ingga ekstensi men!a0i se0er$ana 0an
berkas biner *ang ke,il
Pematan kembali se,ara 0inamis m)0l /$*t)n se/erti mem)0ifikasi
a/likasi tan/a meng$entikann*a
#)0el )b!ek niFersal kelas &at
)nstrksi /a0a saat a/likasi ber!alan
Interaktif? 0inamis 0an alamia$ Akses $ingga inf)rmasi inter/reter
P)rtabilitas se,ara las se/erti /emr)graman antar /latf)rm tan/a /)rts
)m/ilasi ntk /)rtable k)0e b*te se$ingga ke,e/atan ekseksi
bertamba$ 0an meliin0ngi k)0e smber
1
-
7/26/2019 Analisis Algoritma Quick Sort
20/30
Antarmka ter/asang ntk /ela*anan kelar se/erti /erangkat Bant
s*stem? GUI? /ersisten,e? 0atabase? 0ll
Bebera/a kekrangan ba$asa P*t$)n antara lain C =11>
Bebera/a /engasan ter0a/at 0ilar 0ari !angkaan /*t$)n? se/erti ba$asa
/emr)graman 0inamis lainn*a? /*t$)n ti0ak se,e/at ata efisien sebagai
statis? ti0ak se/erti ba$asa /emr)graman k)m/ilasi se/erti ba$asa 9.
Disebabkan /*t$)n mer/akan inter/reter? /*t$)n bkan mer/akan
/erangkat bant terbaik ntk /engantar k)m/)nen /erf)rma kritis.
P*t$)n ti0ak 0a/at 0ignakan sebagai 0asar ba$asa /emr)graman
im/lementasi ntk bebera/a k)m/)nen? teta/i 0a/at beker!a 0engan baik
sebagai bagian 0e/an skri/ antarmka ntk mereka.
P*t$)n memberikan efisiensi 0an fleksibilitas tra0e)ff b* 0engan ti0ak
memberikann*a se,ara men*elr$.
P*t$)n men*e0iakan ba$asa /emr)graman )/timasi ntk kegnaan?
bersama 0engan /erangkat bant *ang 0ibt$kan ntk 0iintegrasikan
0engan ba$asa /emr)graman lainn*a.
BAB III
PEMBAHASAN
2-
-
7/26/2019 Analisis Algoritma Quick Sort
21/30
Berikt ini im/lementasi menggnakan ba$asa /emr)graman /*t$)n ntk ke0a
alg)ritma tersebt 0an tam/ilan ketika 0i!alankan.
+6&6 Qui?7 So.1
Berikt a0ala$ tam/ilan ketika 6i,k s)rt 0i!alankan menggnakan 12 0ata *ang 0iambil
0ari file #!1!61@1 ? s)r,e ,)0e terlam/ir C
Gambar 2. 5 Hasil +i,k &)rt
+6*6 Me.8e So.1
Berikt a0ala$ tam/ilan ketika 6i,k s)rt 0i!alankan menggnakan 12 0ata *ang 0iambil
0ari file #!1!61@1 ? s)r,e ,)0e terlam/ir C
Gambar 2. % Hasil #erge &)rt
+6+6 Pen8u9i!n
Peng!ian 0ilaksanakan 0engan menggnakan P*t$)n 2.5. *ang 0i!alankan 0i /latf)rm
&se Lin Entre/rise &erFer 11.3 54 0an ,)m/ter n)teb))k . /eng!ian 0ilakkan
0engan inf)rmasi sebagai beriktC
1. &LE& 11.3 54 0i!alankan 0iatas # ;)rkstati)n 11 0engan &/esifikasi 1 F9PU ? 2
GB F(A#? 2- GB FHDD2. Intel Pr),ess)r 9)re i"@243-# 2.4-GHY 49PUs? GB DD(3 (A#? 0i!alankan
0iatas ;in0)8s .1 Enter/rise E0iti)n 54? 5-- GB HDD
3. Peng!ian 0ilakkan ter$a0a/ 1.---.--- 0ata berti/e 0ata nmber antara 1- < 1---4. Jang 0i!i a0ala$ 8akt /enger!aan ntk /r)ses s)rting ntk 1.---.--- 0ata tersebt
". Peng!ian 0itest 1- tia/ alg)ritma ntk menentkan nilai rata@rata /r)ses s)rting.
5. Test Peng!ian ke0a a0ala$ test 8akt /enger!aan ntk 1-.--- 0ata? 1--.--- 0ata?
"--.--- 0ata 0an 1.---.--- 0ata.
21
-
7/26/2019 Analisis Algoritma Quick Sort
22/30
%. Untk testing? a0a /erba$an se0ikit ,)0e? se$ingga $an*a akan 0itam/ilkan 8akt
s)rting? ti0ak men,etak $asil sebelm 0an ses0a$ s)rting 0ikarenakan efisiensi 8akt?
0an file 0isim/an 0engan nama h!silui?7so.161@1ata h!sil4e.8eso.161@1.
. Hasil 0isim/an 0alam bentk table 0an 0iban0ingkan 0engan alg)ritma *ang a0a.
Berikt ini a0ala$ $asil 0ari 1- /eng!ian 0alam bentk table 0an grafikC
'enguian e *
"aktu (detik)
uik-ort
Merge-ort
1 .!!0 ..0
2 .3!3 .!
! .20! ..1
. ..4 ..1
.!10 .2.
.2300 .!
3 .2 .1!
0 .2.1 .
4 .120 .201
1 ..21 .200
56erage.!2!.
..2..2
Table 1 Peng!ian +i,k &)rt 0an #erge &)rt
22
-
7/26/2019 Analisis Algoritma Quick Sort
23/30
1 2 ! . 3 0 4 1 56erage
1
1
2
2
!
!
.
.
.!!0.3!3
.20!
..4 .!10.2300 .2 .2.1.120..21.!2!.
..0 .! ..1 ..1 .2. .! .1! . .201 .200 .2..
'enguian Merge -ort dan uik -ort 1 7ata
"aktu (detik) uik -ort "aktu (detik) Merge -ort
'enguian ke*
7etik
Table 2 Grafik Peng!ian #erge &)rt 0an +i,k &)rt
Berikt ini a0ala$ $asil 0ari /erban0ingan /r)ses s)rting antara 8akt 0an !mla$ 0ata tia/
alg)ritma 0alam bentk table 0an grafikC
8umlah7ata
"aktu (detik)uik-ort
Merge-ort
1 . !
1 02 !!2
1214 140
1.!2!.
..2..2
Table 3 Perban0ingan 8akt 0engan !mla$ 0ata #erge &)rt 0an +i,k &)rt
23
-
7/26/2019 Analisis Algoritma Quick Sort
24/30
2 . 0 1 12
1
2
!
.
/! !/!2 14/0.2/..
/. 0/2
121/4
.!2/!.
'erbandingan 8umlah 7ata dengan "aktu Merge -ort dan +ui,k -ort
"aktu (detik) +ui,k -ort "aktu (detik) Merge -ort
8umlah 7ata
7etik
Table 4 Perban0ingan :mla$ Data 0engan ;akt #erge &)rt 0an +i,k &)rt
24
-
7/26/2019 Analisis Algoritma Quick Sort
25/30
BAB I2
PENUTUP
6&6 Kesi4>ul!n
Dari $asil im/lementasi ma/n /eng!ian *ang tela$ 0ilakkan 0a/at 0itarik
bebera/a kesim/lan sebagaimana berikt iniC
1. Dari $asil 0iatas 0a/at 0isim/lkan ba$8a alg)ritma merge s)rt memiliki /erf)rma
lebi$ baik 0iban0ingkan alg)ritma 6i,k s)rt
2. Alg)ritma +i,k &)rt baik 0i/akai ntk 0ata 0iba8a$ "--.---3. e0a alg)ritma memiliki /)la *ang sama saat aFerage ,ase *ait 'n l)g n.
6*6 S!.!n
A0a/n saran ntk makala$ ini a0ala$ sebagai berikt C
1. Peng!ian 0ilakkan 0engan menamba$kan bebera/a alg)ritma s)rting *ang lain
2. Peng!ian 0a/at 0ilakkan 0engan menggnakan bebera/a Ba$asa /emr)graman 0an
0ili$at /erf)rma tia/ Ba$asa /emr)graman3. Peng!ian ti0ak $an*a menggnakan 8akt? teta/i 0engan $ar08are 0an k)m/leksitas
/emr)graman
2"
-
7/26/2019 Analisis Algoritma Quick Sort
26/30
LAMPIRAN
&6 ui?7so.16>$
9 5:#? -
-
7/26/2019 Analisis Algoritma Quick Sort
27/30
if right & leftH
done= True
elseH
9 sBap plaes
temp=my:ist$left%
my:ist$left%=my:ist$right%
my:ist$right%=temp
9 sBap start Bith my:ist$right%
temp=my:ist$start%
my:ist$start%=my:ist$right%
my:ist$right%=temp
return right
def Kuiksort(my:ist, start, end)H
if start & endH
9 partition the list
split = partition(my:ist, start, end)
9 sort both hal6es
Kuiksort(my:ist, start, split*1)
Kuiksort(my:ist, split+1, end)
return my:ist
sorted:ist = Kuiksort(my:ist,,len(my:ist)*1)
9print F-esudah 7iurutkan GsF G (sorted:ist) 9Menetak >rutanIile
print(F"aktu -orting Gs detikF G (timetime() * startAtime)) 9Menetak "aktu-orting
numpysa6etEt(DhasilKuiksorttEtD, sorted:ist, delimiter=D,D, fmt=DGiD ) 9-a6e Iile
*6 Me.8eso.1*6>$
95:
-
7/26/2019 Analisis Algoritma Quick Sort
28/30
9#mport :ibrary
import numpy
import sys
import time
9-et @ariable
startAtime = timetime() 9Menalankan Baktu proses
syssetreursionlimit(11) 9-et Maksimum :imit load Cle up to
11 data
numpysetAprintoptions(threshold=DnanD) 9-et Maksimum yang akanditampilkan saat print
teEtACle = open (FtestF,FrF) 9:oad TeEt
alist = $int(E) for E in teEtACleread()splitlines()%
print Fumlah data GsF G len(alist)
print F-ebelum 7iurutkan GsF G alist
97eskripsi 5lgoritma Merge -ort
def merge-ort(alist)H
9 print(F-plitting F,alist) if len(alist)J1H
mid = len(alist)//2
lefthalf = alist$Hmid%
righthalf = alist$midH%
merge-ort(lefthalf)
merge-ort(righthalf)
i=
=
k=
2
-
7/26/2019 Analisis Algoritma Quick Sort
29/30
Bhile i & len(lefthalf) and & len(righthalf)H
if lefthalf$i% & righthalf$%H
alist$k%=lefthalf$i%
i=i+1; k=k+1
elseH
alist$k%=righthalf$%
=+1; k= k+1
Bhile i & len(lefthalf)H
alist$k%=lefthalf$i%
i=i+1
k=k+1
Bhile & len(righthalf)H
alist$k%=righthalf$%
=+1
k=k+1
merge-ort(alist)
print F-esudah 7iurutkan GsF G alist 9'rint setelah diurutkan
print(F"aktu -orting Gs detikF G (timetime() * startAtime)) 9'rint "aktu -ort
numpysa6etEt(DhasilmergesorttEtD, alist, delimiter=D,D, fmt=DGiD ) 9-a6e Iile
2
-
7/26/2019 Analisis Algoritma Quick Sort
30/30
DA;TAR PUSTAKA
=1> An)nim? 9 Alg)rit$ms &am/le &)r,e 9)0es K #erge &)rt.?
http"##www$cplusplus$happ!codings$com#Algorithms#code%&$html.
=2> Arief Hen0ra &a/ta0i an0 D. ;. &ari? Analisis alg)ritma inserti)n s)rt? merge s)rt 0an
im/lementasin*a 0alam ba$asa /emr)graman ,? //. 1 (. Hibbler? #erge &)rt? l)ri0a? U&A? 2--.
=4> L. H. Atrina8ati? Analisis )m/leksitas Alg)ritma ntk Berbagai #a,am #et)0ePen,arian Nilai &ear,$ing 0an Pengrtan Nilai &)rting /a0a Tabel.
="> T. H. Bagi)?Algoritma dan Pemrograman. 2--%.
=5> riYarl$am? Alg)ritma +i,k &)rt? 2--. ='nline>. AFailableC
$tt/sCriYarl$am.8)r0/ress.,)m2--1--%alg)ritma@6i,k@s)rt.
=%> &. arFe? Inserti)n s)rt? Spring? 2-12. ='nline>. AFailableC
$tt/C888.0reamin,)0e.net,)0esni// et2%.$tm.
=> H. 9? C'' for ()er!one. &an :)se ? U&AC ;ile* Pblis$ing? 2--.
=> A. Dr)Y0ek?*ata Structures and Algorithms in C''. 9alif)rnia. U&AC Br))ks9)le
T$)ms)n Learning? 2--1.
=1-> ;. Bing$eng?+erge Sort. l)ri0a? U&AC l)ri0a Institte )f Te,$n)l)g*? 2--.
=11> (. Ags? D$arma*anti? J. D. Arimbi? N. Pr8an0ari? an0 &. P. Pratama?Algoritma dan
Pemrograman ,. 2-12.