Analisis Algoritma Quick Sort

Embed Size (px)

Citation preview

  • 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.