Algoritma Pengurutan Dalam Pemrograman

dokumen-dokumen yang mirip
PROBLEM SOLVING TERKAIT DENGAN KELAS X SEMESTER 1 PADA STANDAR KOMPETENSI (SK) 1.

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

ANALISIS NUMERIK. Inter polasi. SPL simultan. Akar Persama. linear

BAB II LANDASAN TEORI

FISIKA BESARAN VEKTOR

Bab a. maka notasi determinan dari matriks A ditulis : det (A) atau. atau A.

Integral Tak Wajar. Ayundyah Kesumawati. March 25, Prodi Statistika FMIPA-UII

Skew- Semifield dan Beberapa Sifatnya 1

SISTEM BILANGAN REAL. 1. Sifat Aljabar Bilangan Real

CONTOH SOLUSI BEBERAPA SOAL OLIMPIADE MATEMATIKA Oleh: Wiworo, S.Si, M.M. 3. Untuk k 2 didefinisikan bahwa a

matematika PEMINATAN Kelas X FUNGSI LOGARITMA K-13 A. Definisi Fungsi Logaritma

Rumus Luas Daerah Segi Empat Sembarang? Oleh: Al Jupri Dosen Jurusan Pendidikan Matematika Universitas Pendidikan Indonesia

LAPORAN PRAKTIKUM TEKNIK DASAR : PIPET, TIMBANGAN, PEMBUATAN LARUTAN

2. Paman mempunyai sebidang tanah yang luasnya 5 hektar. Tanah itu dibagikan kepada 3. Luas tanah yang diterima oleh mereka masing-masing = 5 :3 1

BABAK PENYISIHAN AMSO JENJANG SMA PEMBAHASAN BABAK PENYISIHAN AMSO

NFA. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah

Teknik secret sharing yang efektif pada berkas yang terkompresi dengan menggunakan Algoritma Huffman

BAB II PANGKAT, AKAR DAN LOGARITMA

IAH IAAH I H HAAH xaah I A b x2ah x23h I A 3 x23b H 2

matematika WAJIB Kelas X RASIO TRIGONOMETRI Kurikulum 2013 A. Definisi Trigonometri

15. INTEGRAL SEBAGAI LIMIT

MODUL 6. Materi Kuliah New_S1

STRATEGI PENGAJARAN MATEMATIKA UNTUK MENENTUKAN AKAR-AKAR PERSAMAAN KUADRAT

AUTOMATA SEBAGAI MODEL PENGENAL BAHASA

PEMBAHASAN SOAL OSN MATEMATIKA SMP 2013 TINGKAT KABUPATEN

BAB 4 IMPLEMENTASI HASIL PENELITIAN. Rancangan ini dibuat dan dites pada konfigurasi hardware sebagai berikut :

DETERMINAN. Misalkan A adalah suatu matriks persegi. a) Jika A memiliki satu baris atau satu kolom bilangan nol, maka det(a) = 0.

Kerjakan di buku tugas. Tentukan hasil operasi berikut. a. A 2 d. (A B) (A + B) b. B 2 e. A (B + B t ) c. A B f. A t (A t + B t ) Tes Mandiri

6. Himpunan Fungsi Ortogonal

7. Ruang L 2 (a, b) f(x) 2 dx < }.

LIMIT FUNGSI DAN KEKONTINUAN

INTEGRAL. Bogor, Departemen Matematika FMIPA IPB. (Departemen Matematika FMIPA IPB) Kalkulus I Bogor, / 45

Sistem Persamaan Linear

Aljabar Linear Elementer

tema 1 diri sendiri liburan ke kota

BAB IV HASIL PENELITIAN DAN ANALISIS

MA3231 Analisis Real

Materi V. Determianan dinotasikan berupa pembatas dua gris lurus,

DETERMINAN DAN INVERS MATRIKS BLOK 2 2

matematika K-13 TEOREMA FAKTOR DAN OPERASI AKAR K e l a s

1) BENTUK UMUM DAN BAGIAN-BAGIAN PERSAMAAN KUADRAT Bentuk umum persamaan kuadrat adalah seperti di bawah ini:

VEKTOR. 1. Pengertian Vektor adalah besaran yang memiliki besar (nilai) dan arah. Vektor merupakan sebuah ruas garis yang

BAB VIII PENDIMENSIAN JARINGAN. Data yang diperlukan untuk pendimensian jaringan adalah : 1. matriks trafik (trafik yang ditawarkan)

APLIKASI ALGORITMA PRIME DALAM MENENTUKAN POHON PEMBANKIT MINIMUM SUATU GRAF (Study Kasus)

Modul 9. PENELITIAN OPERASIONAL PEMROGRAMAN DINAMIS. Oleh : Eliyani PROGRAM KELAS KARYAWAN PROGRAM STUDI TEKNIK INDUSTRI FAKULTAS TEKNOLOGI INDUSTRI

Hendra Gunawan. 30 Oktober 2013

MODEL POTENSIAL 1 DIMENSI

BAB 10. MATRIKS DAN DETERMINAN

METODE PENELITIAN. Penelitian dilaksanakan pada bulan Oktober sampai dengan November 2011

Aljabar Linear Elementer

BAB IV TESTING DAN IMPLEMENTASI


r x = 0. Koefisien-koefisien persamaan yang dihasilkan adalah analitik pada x = 0. Jadi dapat kita gunakan metode deret pangkat.

BAB III METODE METODE DEFUZZYFIKASI

17. PROGRAM LINEAR. A. Persamaan Garis Lurus. (x 2, y 2 ) (0, a) y 2. y 1. (x 1, y 1 ) (b, 0) X. x 1

KALKULUS I Dr. Wuryansari Muharini Kusumawinahyu Program Sarjana Matematika Universitas Brawijaya

11. PROGRAM LINEAR. A. Persamaan Garis Lurus. (x 2, y 2 ) (0, a) y 2. y 1. (x 1, y 1 ) (b, 0) X. x 1

PERSAMAAN DAN PERTIDAKSAMAAN LOGARITMA

RUMUS HERON DAN RUMUS BRAHMAGUPTA

12. LUAS DAERAH DAN INTEGRAL

Gambar 1.1. Contoh Produk-Produk Dekorasi dan Saniter yang Dihasilkan oleh Perusahaan tersebut

Teorema Dasar Integral Garis

Metoda Penyelesaian Pendekatan

TEORI BAHASA DAN AUTOMATA

BAB 3 SOLUSI NUMERIK SISTEM PERSAMAAN LINEAR

TIM OLIMPIADE MATEMATIKA INDONESIA TAHUN 2009

Two-Stage Nested Design

Materi IX A. Pendahuluan

didefinisikan sebagai bilangan yang dapat ditulis dengan b

Matematika SMA (Program Studi IPA)

14. SIFAT-SIFAT INTEGRAL RIEMANN

BAB II LANDASAN TEORI

PERTEMUAN 4 Metode Simpleks Kasus Maksimum

PERTEMUAN 4 TEORI BAHASA DAN OTOMATA [TBO]

POSET ( Partially Ordered Set ) Himpunan Terurut Parsial

Sistem Persamaan Linear Bagian 1

MEMBUKA PROGRAM EMCO DRAFT (MENGGAMBAR BENDA KERJA)

BAB 7. LIMIT DAN LAJU PERUBAHAN

Aljabar Linier & Matriks. Tatap Muka 3

MA3231 Analisis Real

LIMIT FUNGSI. DEFINISI Notasi. dibaca. limit f(x) bila x mendekati a sama dengan L. atau. f(x) mendekati L bila x mendekati a.

MA1201 MATEMATIKA 2A Hendra Gunawan

STRUKTUR BETON BERTULANG I. Tulangan Rangkap. Oleh Resmi Bestari Muin

Konstruksi Super Matriks Simetris Persegi Latin

PENYELESAIAN SOAL UJIAN TENGAH SEMESTER 2010

REGULAR EXPRESSION ADE CHANDRA SAPUTRA S.KOM.,M.CS

SIFAT-SIFAT LOGARITMA

Integral Kompleks (Bagian Kesatu)

,, % ,, % -0: 0 -0: 0! 2 % 26, &

TINGKAT SMA KOMET 2018 SE-JAWA TIMUR

Bab. Vektor. A. Vektor B. Perkalian Vektor. Hasil yang harus Anda capai: menerapkan konsep besaran Fisika dan pengukurannya.

PROSIDING ISBN : RUANG LINEAR BERNORMA CESS. Muslim Ansori

Relasi Ekuivalensi dan Automata Minimal

BAB IV METODE ANALISIS RANGKAIAN

APLIKASI INTEGRAL PENERAPAN INTEGRAL. Luas daerah kelengkungan

(c) lim. (d) lim. (f) lim

PEMERINTAH KABUPATEN TANAH DATAR DINAS PENDIDIKAN SMA NEGERI 1 SUNGAI TARAB

1. Pengertian Matriks

BAB: PENERAPAN INTEGRAL Topik: Volume Benda Putar (Khusus Kalkulus 1)

Hubungan Antara Bilangan Kromatik dengan Nilai Karakteristik Euler pada Proses Pewarnaan Peta

Transkripsi:

Generted by Foxit PDF Cretor Foxit Softwre http://www.foxitsoftwre.com For evlution only. Algoritm Pengurutn Dlm Pemrogrmn Muhmmd Oky Erzndi - 13507098 Jurusn Teknik Informtik Institut Teknologi Bndung Emil : if17098@students.if.itb.c.id Abstrct Mklh ini menjbrkn tentng lgoritm pengurutn yng umum digunkn di dlm duni informtik. Muli dri yng sederhn hingg yng kompleks. Algoritm pengurutn member mnft yng sngt bnyk di duni informtik. Algoritm pengurutn dlh lgoritm untuk menyimpn sebuh list tertentu pd sutu urutn tertentu, bisny membesr tu mengecil. Umumny digunkn untuk mengurutkn huruf tu ngk. Pd mklh ini kn diuls mengeni pengurutn, lgoritm, teknik, dn efisiensiny. Dlm sutu lgoritm perlu diperhtikn efisiensiny. Kren efisiensi mmpu mengoptimlkn lgoritm-lgoritm yng lin yng kn digunkn. Semkin efisien sutu lgoritm, mk pd st dieksekusi dn dijlnkn kn menghbiskn wktu yng lebih cept. Kren itu efisiensi lgoritm termsuk hl yng penting pd pemrogrmn. Pd lgoritm pengurutn ini, msukn yng diterim dlh list tertentu yng belum psti terurut dn kelurnny berup list yng sudh terurut. Algoritm pengurutn yng kn dibhs pd mklh ini yitu bubble sort, insertion sort, merge sort, dn quick sort. Algoritm di ts menrik untuk dibhs kren d kelebihn dn kekurngn msing-msing sesui tingktn msing-msing. Mklh ini dihrpkn memberi pembc pemhmn cr-cr menggunkn lgoritm sorting yng efisien. Dihrpkn pembc mmpu meliht kelebihn dn kekurngn tip lgoritm secr menyeluruh. Kt kunci : lgoritm, urut, efisiensi 1. PENDAHULUAN Pd st kit membut sebuh progrm sering kli kit menghdpi permslhn yng memerlukn pengrutn sutu nili integer bik secr lngsung tu pun tidk. Mislny kit melkukn mencri sebuh nili pd sutu list, permslhn knlebih mudh diselesikn jik kit mengurutkn terlebih dhulu list tersebut dri kecil ke besr, kit tinggl melkukn pencrin nili tersebut selm nili tersebut lebih kecil tu sm dengn nili yng ditelusuri pd list. Jik nili dri dlm list sudh lebih besr dri nili yng kit cri berrti sudh psti nili yng dicri tersebut tidk d. Ini juh lebih efektif dibndingkn mengecek semu nili pd list tersebut dri wl smpi khir jik nili itu tidk d, ini sngt tidk efektif/ byngkn jik kit hrus mencri stu nili dlm dt yng jumlhny mencpi jutn tu milyrn, bhkn triliunn. Sdr tu tidk mnusi sering melkukn pengurutn dengn teknik-teknik tertentu dlm kehidupn sehri-hri. Mislny st kit bermin krtu remi, kit kn mengmbil krtu tersebut dn mengurutknny dengn cr-cr tertentu. Bil kit mengmbil krtu tersebut stu-per-stu dri tumpuknny dn setip mengmbil kit lngsung mengurutknny dlm lgoritm pengurutn, cr tersebut dlh implementsi dri insertion sort. Nmun bil krtu dibgikn semuny terlebih dhulu kemudin bru kit kelompokn menurut jenisny. Kemdin brulh kit urutkn dri pling kecil ke pling besr mk itulh yng disebut selection sort. Algoritm-lgoritm pengurutn ini bisny dibedkn berdsrkn: Kompleksits perbndingn ntr elemen (terkit dengn ksus terbik dn terburuk ) dinotsikn dengn O(n log n) untuk pencrin yng bik, dn Ώ(n²) sebgi ksus yng buruk. Kompleksits pertukrn elemen, terkit dengn cr yng digunkn elemen setelh dibndingkn. Penggunn memori. Ad beberp jenis lgoritm yng memerlukn memori sementr untuk menyimpn list Rekursif. Metode-metode penggunny, seperti exchnge, insertion, prtition, merging, dn selection. 2. ALGORITMA PENGURUTAN 2.1. Bubble Sort Bubble sort dlh slh stu metodepengurutn exchnging yng bersift lngsung dn termsuk jenis pengurutn yng pling sederhn. Nm bubble sort sendiri bersl dri sift nili elemen terbesr yng sellu nik ke ts (ke khir dri list) seperti gelembung udr(bubble). Ide dri bubble sort dlh sebgi berikut : 1. pengecekn dimuli dri elemen pling wl. 2. Elemen ke-1 dn ke-2 dri list

Generted by Foxit PDF Cretor Foxit Softwre http://www.foxitsoftwre.com For evlution only. dibndingkn. 3. Jik elemen pertm lebih besr dri elemen kedu, dilkukn pertukrn. 4. Lngkh 2 dn 3 dilkukn lgi terhdp elemen kedu dn ketig, seterusny smpi elemen terkhir. 5. Bil sudh smpi di elemen terkhir dilkukn pengulngn lgi dri wl smpi tidk d terjdi lgi pertukrn elemen. 6. Bil tidk d pertukrn elemen lgi, mk elemen list terurut. Contoh psuedocode untuk lgoritm bubble sort dengn urutn membesr : procedure bubblesort( A : list of integer ) vr temp,i : integer tukr :boolen Algoritm do tukr := flse for i = 1 to length( A ) - 1 do if A[ i ] > A[ i + 1 ] then temp:=a[i] A[i]:=A[i+1] A[i+1]:=temp tukr := true while tukr Pd setip pengulngn (loop) dilkukn pengecekn terhdp tip elemen muli elemen pertm dn kedu, elemen kedu dn ketig, dn seterusny smpi elemen sebelum terkhir. Bil msih terjdi pertukrn (tukr = true) dilkukn pengecekn lgi smpi tidk terjdi pertukrn (tukr = flse) yng berrti semu elemen dlm list tersebut sudh terurut membesr. Contoh: 5 3 8 7 9 1 wl (belum terurut ) 3 5 7 8 1 9 pengulngn ke-1 3 5 7 1 8 9 pengulngn ke-2 3 5 1 7 8 9 pengulngn ke-3 3 1 5 7 8 9 pengulngn ke-4 1 3 5 7 8 9 pengulngn ke-5 (terurut) Slh stu kelebihn lgoritm bubble sort, terjdi st semu elemen sudh terurut (kompleksits = O(n) ) di mn hny terjdi pengecekn pd setip elemen, sehingg penelusurn hny dilkukn stu kli sj. Ini merupkn ksus terbik yng mungkin terjdi pd lgoritm ini. Kelebihn lin dri lgoritm ini dlh dpt dieksekusi dn dijlnkn dengn cukup cept dn efisien untuk sebuh ksus yng hny mengurutkn list yng urutnny sudh hmpir benr. Selin ksus terbik tersebut, kompleksits untuk lgoritm ini kn menjdi O(n²). Krenny lgoritm ini sngt tidk efisien untuk dipergunkn dlm duni pemrogrmn yng sesungguhny, plgi jik pengurutn dilkukn terhdp elemen yng brjumlh sngt besr. Kelebihn lin bubble sort dlh kemudhn untuk dimengerti. Umumny lgoritm ini sering digunkn untuk mengenlkn lgoritm pengurutn dlm duni komputer kren kesederhnn ideny. Nmun Owen Astrchn,seorng peneliti, mengutrkn sebikny lgoritm bubble sort ini tidk dijrkn lgi di duni komputer// Posisi setip elemen pd bubble sort kn sngt menentukn perform st eksekusi. Bil elemen yng terbesr disimpn di wl, mk tidk kn menimbulkn persoln sebb elemen tersebut secr cept kn ditukr lngsung ke elemen pling terkhir. Seblikny jik elemen terkecil disimpn di bgin pling khir elemen, mk kn mengkibtkn elemen tersebut kn bergerk sebnyk hny stu pergesern setip msuk ke loop. Ini berrti hrus dilkukn pengecekn sebnyk n kli dlm stu loop dn loop kn dijlnkn sebnyk n kli jug. Kedu jenis ini bis disebut rbbit dn turtle. Untuk menghilngkn mslh rbbit dn turtle ini, lgoritm ini dikembngkn dengn menciptkn lgoritm cocktil sort dn comb sort. Cocktil sort cukup bik untuk mengtsi permslhn ini nmun untuk ksus terburuk kompleksitsny sm dengn bubble sort yitu O(n²). Comb sort cukup bik untuk mempercept turtle pd elemen list dn jug memiliki kompleksits yng cukup bik, yitu n log n, nmun comb sort pun memiliki kelemhn, yitu tidk stbil pd st pengurutn. Kedu lgoritm di ts tidk kn dibhs pd mklh ini. Kelemhn yng lin dlh bubble sort berinterksi dengn buruk pd computer modern st ini. Penulisny menghbiskn tempt du kli lebih bnyk dri insertion sort dn jug sering melkukn cche misses dn lebih bnyk terjdi brnch missprediction. Penelitin yng dilkukn oleh Astrchn pd pengurutn string di jv jug membuktikn bhw bubble sort lim kli lebih lmbt dri insertion sort. Krenny pd implementsiny bubble sort jrng digunkn, meskipun bnyk jug lgoritm lin yng dikembngkn dri bubble sort ini. Dri nlisis tersebut, lgoritm ini sebikny tidk diimplementsikn sebb

Generted by Foxit PDF Cretor Foxit Softwre http://www.foxitsoftwre.com For evlution only. termsuk tidk efisien penggunnny, hny bik digunkn untuk mengurutkn list yng sudh hmpir terurut. Selin itu pengurutn jenis ini sngt tidk efisien dn memkn bnyk wktu st dieksekusi. Nmun kren lgoritm ini termsuk sederhn membutny cukup mudh untuk dijrkn sebgi dsr dri lgoritm pengurutn. 2.2. Insertion Sort Algoritm insertion sort dlh sebuh lgoritm sederhn yng cukup efisien untuk mengurutkn sebuh list yng hmpir terurut. Algorim ini jug bis digunkn sebgi bgin dri lgoritm yng lebih cnggih. Cr kerj lgoritm ini dlh dengn mengmbil elemen list stu-per-stu dn memsukknny di posisi yng benr seperti nmny. Pd rry, list yng bru dn elemen sisny dpt berbgi tempt di rry, meskipun cukup rumit. Untuk menghemt memori, implementsiny menggunkn pengurutn di tempt yng membndingkn elemen st itu dengn elemen sebelumny yng sudh diurut, llu menukrny terus smpi posisiny tept. Hl ini terus dilkukn smpi tidk d elemen tersis di input. Seperti sudh dibhs di bgin pendhulun, slh stu implementsiny pd kehidupn sehri-hri dlh st kit mengurutkn krtu remi. Kit mbil krtu stuper-stu llu membndingkn dengn krtu sebelumny untuk mencri posisi yng tept. Vrisi pd umuny yng dilkukn terhdp rry pd insertion sort dlh sebgi berikut : Elemen wl di msukkn sembrng, llu elemen berikutny dimsukkn di bgin pling khir. Elemen tersebut dibndingkn dengn elemen ke (x-1). Bil belum terurut posisi elemen sebelumny digeser sekli ke knn terus smpi elemen yng sedng diproses menemukn posisi yng tept tu smpi elemen pertm. Setip pergesern kn menggnti nili elemen berikutny, nmun hl ini tidk menjdi persoln sebb elemen berikutny sudh diproses lebih dhulu. Sebelum insert Sesudh insert Contoh psuedocode untuk bubble sort dengn urutn membesr : procedure insertionsort(a : list of integer) vr Nili,I,j : integer Algoritm for i = 1 to length[a]-1 do nili = A[i] j = i-1 while (j >= 0) nd (A[j] > nili) do A[j + 1] = A[j] j = j-1 end while A[j+1] = nili Pertukrn yng berulng terjdi di pengulngn while yng kn berhenti st elemen sebelumny sudh lebih kecil. Pengulngn for bergun untuk melkukn insert elemen selnjutny. Ksus terbik pd lgoritm ini dlh st semu elemen sudh terurut. Pengecekn tip elemen hny dilkukn 1 kli sehingg hny terjdi n kli pengulngn iterte (komplesits = O(n)). Sedngkn ksus terburuk dlh st list d dlm kondisi terblik yng membutuhkn n buh pertukrn terhdp n buh elemen, sehingg kompleksitsny sm dengn O(n²). kompleksits ini sm dengn kompleksits rt-rtny. Ini berrti untuk menghitung jumlh elemen yng sngt besr lgoritm ini kurng efisien untuk digunkn. Nmun untuk melkukn sorting terhdp elemen yng sedikit, lgoritm ini termsuk lgoritm tercept eksekusiny. Hl ini disebbkn pengulngn di dlmny sngt cept. Jik kit membndingkn dengn bubble sort, keduny memiliki kompleksits yng sm untuk ksus terburuk, nmun menurut Astrchn keduny sngt berbed dlm jumlh pertukrn yng diperlukn. Krenny sekrng ini cukup bnyk text book yng merekomendsikn insertion sort disbnding bubble sort. Insertion sort ini memiliki beberp keuntungn: 1. Implementsi yng sederhn 2. Pling efisien untuk dt berukurn kecil 3. Merupkn online lgorithmic, yng berrti bis lngsung melkukn sort setip d dt

Generted by Foxit PDF Cretor Foxit Softwre http://www.foxitsoftwre.com For evlution only. bru 4. Proses di tempt (memerlukn O(1) memori tmbhn) 5. Stbil. Pd thun 2004 Bender, Frch-Colton, nd Mosteiro menemukn pengembngn bru dri lgoritm ini, disebut librry sort tu gpped insertion sort yng menggunkn beberp gp kosong di sepnjng rry. Dengn lgoritm ini, pergesern elemen dilkukn smpi gp tersebut dicpi. Algoritm ini cukup bik dengn kompleksits O(n log n). 2.3. Merge Sort Merge sort ini memnftkn sebuh fungsi merge dengn spesifiksi mengurutkn 2 buh list yng elemen tip list sudh terurut. Dengn ide ini list yng kn diproses dibgi-bgi dulu menjdi list yng lebih kecil hingg tingl stu elemen. Setelh itu digbung kembli dri du list menjdi stu, llu digbung kembli terus smpi menjdi 2 list besr yng setelh dimerge kn menghsilkn list yng sudh terurut. Sorting jenis ini sngt bergun st kit kn memproses jumlh elemen yng sngt bnyk. Konsep dri merge sort sendiri dlh sebgi berikut : 1. Bgi list besr menjdi setenghny 2. Lkukn hl ini secr rekursif smpi diperoleh list dengn stu elemen sj 3. List tersebut digbung lgi menjdi sebuh list besr yng sudh terurut. Contoh pseudocode untuk merge sort : function mergesort(m) vr kiri, knn, hsil :list tengh: integer lgoritm if length(m) 1 then return m else tengh = length(m) div 2 for x = m to tengh do dd x to kiri for x = m fter tengh do dd x to knn kiri = mergesort(kiri) knn = mergesort(knn) hsil = merge(kiri, knn) return hsil function merge(kiri,knn) vr hsil:list lgoritm while length(kiri) > 0 nd length(knn) > 0 do if first(kiri) first(knn) then ppend first(kiri) to hsil kiri = rest(kiri) else ppend first(knn) to hsil knn = rest(knn) end while if length(kiri) > 0 then ppend rest(kiri) to hsil if length(knn) > 0 then ppend rest(knn) to hsil return hsil Merge sort memiliki ksus terburuk dn ksus rt-rt. Ksus terburuk dlh st tip 2 lemen dibndingkn sellu dilkukn pertukrn. Bil wktu yng diperlukn untuk melkukn merge sort dlh T(n) mk untuk st rekursif wktu yng dihbiskn dlh T(n) = 2T(n/2) + n. T (n/2) dlh wktu yng diperlukn untuk merge setengh dri ukurn list, dn ditmbh n sebgi lngkh dri penggbungn list. Kompleksits wktu terburuk dn rt-rt dri merge sort dlh O(n log n), sm dengn kompleksits terbik dri quick sort. Untuk mengurutkn dt yng sngt besr, jumlh perbndingn yng dihrpkn mendekti nili n di mn Dibnding dengn lgoritm lin, merge sort ini termsuk lgoritm yng sngt efisien dlm penggunnny sebb setip list sellu dibgibgi menjdi list yng lebih kecil, kemudin digbungkn lgi sehingg tidk perlu melkukn bnyk perbndingn. Merge sort ini merupkn lgoritm terbik untuk mengurutkn linked list, sebb hny memerlukn memori tmbhn sebesr Θ(1). Berdsrkn nlisis tersebut, merge sort bis dibilng sebgi slh stu lgoritm terbik terutm untuk mengurutkn dt yng jumlhny sngt bnyk. Untuk dt yng sedikit, lgoritm ini sebikny tidk digunkn kren d beberp lgoritm lin yng bis bekerj lebih cept dri merge sort. fungsi merge sendiri pseudocodeny contohny:

Generted by Foxit PDF Cretor Foxit Softwre http://www.foxitsoftwre.com For evlution only. Ilustrsiny dlh sebgi berikut (implementsi dri merge sort terhdp 7 buh nili): Gmbr 1. Ilustrsi lgoritm pengurutn merge sort 2.3. Quick Sort Quick sort merupkn divide nd conquer lgorithm. Algoritm ini mengmbil slh stu elemen secr ck (bisny dri tengh) llu menyimpn semu elemen yng lebih kecil di sebelh kiriny dn semu elemen yng lebih besr di sebelh knnny. Hl ini dilkukn secr rekursif terhdp elemen di sebelh kiri dn knnny smpi semu elemen sudh terurut. Algoritm ini termsuk lgoritm yng cukup bik dn cept. Hl penting dlm lgoritm ini dlh pemilihn nili tengh yng bik sehingg tidk memperlmbt proses sorting secr keseluruhn. Ide dri lgoritm ini dlh sebgi berikut : 1. Pilih stu elemen secr ck 2. Pindhkn semu elemen yng lebih kecil ke sebelh kiri elemen tersebut dn semu elemen yng lebih besr ke sebelh knnny. 3. Elemen yng niliny sm bis disimpn di slh stuny. Ini disebut opersi prtisi 4. Lkukn sort secr rekursif terhdp sublist sebelh kiri dn knnny. Berikut dlh psudocode untuk quicksort : function quicksort(rry) vr kecil,sm,besr :list lgoritm if length(rry) 1 then return rry pivot{mengmbil sebuh nili} for ech x in rry if x < pivot then ppend x to kecil if x = pivot then ppend x to sm if x > pivot then ppend x to besr return conctente(quicksort(kecil), sm, quicksort(besr)) Setip elemen yng kn disort sellu diperlkukn secr sm di sini, dimbil slh stu elemen, dibgi menjdi 3 list, llu ketig list tersebut disort dn digbung kembli. Contoh kode di ts menggunkn 3 buh list, yitu yng lebih besr, sm dn lebih kecil niliny dri pivot. Untuk membut lebih efisien, bis digunkn 2 buh list dengn mengeliminsi yng niliny sm (bis digbung ke slh stu dri 2 list yng lin). Ksus terburuk dri lgoritm ini dlh st dibgi menjdi 2 list, stu list hny terdiri dri 1 elemen dn yng lin terdiri dri n-2 elemen. Untuk ksus terburuk dn ksus rt-rt, lgoritm ini memiliki kompleksits sebesr O(n log n). Jumlh rt-rt perbndingn untuk quick sort berdsrkn permutsiny dengn sumsi bhw nili pivot dimbil secr rndom dlh :

Generted by Foxit PDF Cretor Foxit Softwre http://www.foxitsoftwre.com For evlution only. Tbel 1. Perbndingn kompleksits berbgi lgoritm pengurutn 3. KESIMPULAN Penggunn lgoritm pengurutn dlm ilmu komputer memng sngt diperlukn sebb kit tidk bis membut lgoritm dengn prinsip yng penting jln. Bil ingin mengurutkn dt yng sedikit jumlhny mk sebikny menggunkn insertion sort. Nmun bil ingin mengurutkn dt yng sngt bnyk, merge sort dn quick sort kn menjdi pilihn yng bik. Bubble sort sendiri hny sebuh lgoritm sederhn yng sebikny tidk diimplementsikn lgi. Msih bnyk lgoritm pengurutn yng lin, dengn segl kelebihn dn kekurngnny. Kren itu pemilihn kompleksits wktu dn rung sngt penting di sini. Mklh ini tidk membhs semu lgoritm pengurutn, kren untuk membhs stu lgoritm secr mendlm pun kn sngt rumit dn mungkin menghbiskn stu mklh ini. Nmun mellui tulisn ini, pembc dihrpkn mmpu mengnlis penggunn sorting lgorithmic yng bik. DAFTAR REFERENSI [1] Wikipedi, the free encyclopedi. (2006). Sorting lgorithmic. http://en.wikipedi.org/wiki/sorting_lgorithm Tnggl kses : 2 Jnuri 2009 pukul 20.00. [2] Munir, Rinldi. (2008). Diktt Kulih IF2093 Struktur Diskrit Edisi Keempt. Deprtemen Teknik Informtik, Institut Teknologi Bndung.