perbandingan kinerja algoritma bitonic sort, odd …

114
PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD-EVEN SORT DAN COMB SORT SKRIPSI MARIATY H 141421005 PROGRAM EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017 Universitas Sumatera Utara

Upload: others

Post on 03-Oct-2021

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD-EVEN

SORT DAN COMB SORT

SKRIPSI

MARIATY H

141421005

PROGRAM EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2017

Universitas Sumatera Utara

Page 2: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD-EVEN SORT DAN COMB SORT

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu

Komputer

MARIATY H

141421005

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2017

Universitas Sumatera Utara

Page 3: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

PERSETUJUAN

Judul : PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD-EVEN SORT DAN COMB SORT

Kategori : SKRIPSI

Nama : MARIATY H

Nomor Induk Mahasiswa : 1414005

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, April 2017

Komisi Pembimbing : Pembimbing 2 Pembimbing 1

Handrizal, S.Si., M.Comp.Sc Dr. Maya Silvi Lydia, M.Sc NIP - NIP 197401272002122001

Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M. Kom NIP.196203171991031001

Universitas Sumatera Utara

Page 4: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

PERNYATAAN

PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD-EVEN SORT

DAN COMB SORT

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, April 2017

Mariaty H

141421005

Universitas Sumatera Utara

Page 5: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

PENGHARGAAN

Puji dan syukur kehadirat Tuhan Yang Maha Esa, yang dengan rahmat dan karunia-Nya

penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar

Sarjana Komputer, pada Program Studi Ekstensi S1 Ilmu Komputer Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara.

Pada pengerjaan skripsi dengan judul Perbandingan Kinerja Algoritma Bitonic Sort,

Odd-Even Sort dan Comb Sort, penulis menyadari bahwa banyak pihak yang turut membantu,

baik dari pihak keluarga, sahabat dan orang-orang terkasih yang memotivasi dalam

pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Dr. Runtung Sitepu, SH, M. Hum selaku Rektor Universitas Sumatera Utara.

2. Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu Komputer dan

Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer

Universitas Sumatera Utara.

4. Ibu Dr. Maya Silvi Lydia, M.Sc selaku Dosen Pembimbing I yang telah meluangkan

waktu dan pikiran dalam membimbing dan mengarahkan penulis agar dapat

menyelesaikan skripsi ini.

5. Bapak Handrizal, S.Si., M.Comp.Sc selaku Dosen Pembimbing II yang telah meluangkan

waktu dan pikiran dalam membimbing dan mengarahkan penulis agar dapat

menyelesaikan skripsi ini.

6. Ibu Dian Rachmawati, S.Si., M.Kom selaku Dosen Pembanding I yang telah memberikan

arahan, kritik, dan saran kepada penulis selama pengerjaan skripsi.

7. Bapak M.Andri Budiman, S.T., M.Comp.Sc., M.EM selaku Dosen Pembanding II yang

telah memberikan kritik dan saran kepada penulis selama pengerjaan skripsi.

8. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi

Informasi Universitas Sumatera Utara.

9. Keluarga tercinta yang selalu memberikan kasih sayang, doa, semangat, serta dukungan

kepada penulis.

Universitas Sumatera Utara

Page 6: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

10. Teman-teman seperjuangan skripsi dan teman-teman lainnya dalam diskusi pembuatan

skripsi serta seluruh teman-teman Ekstensi stambuk 2014.

11. Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis

ucapkan satu per satu yang telah banyak membantu dalam penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini dalam penyusunan dan masih terdapat kekurangan.

Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat

membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semua.

Medan, April 2017

Penulis,

Mariaty H

Universitas Sumatera Utara

Page 7: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

ABSTRAK

Pengurutan merupakan suatu proses menyusun kembali suatu himpunan objek menggunakan aturan tertentu. Data yang akan diurutkan memiliki berbagai macam jenis baik dalam hal banyaknya data maupun jenis datanya. Masalahnya, tidak ada satupun algoritma yang terbaik untuk setiap situasi yang dihadapi. Bahkan sangat sulit untuk menentukan algoritma mana yang paling baik untuk digunakan dalam situasi tertentu. Oleh karena itu, dibuatlah suatu aplikasi perbandingan kinerja algoritma pengurutan. Pada penelitian ini algoritma yang digunakan adalah algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort. Penelitian ini bertujuan untuk mengetahui kinerja ketiga algoritma tersebut secara teoretikal dan real time. Algoritma Bitonic Sort merupakan algoritma pengurutan paralel menggunakan sorting network. Berbeda dengan Bitonic Sort, Odd-Even Sort beroperasi pada dua fase alternatif, yaitu fase genap(even) dan fase ganjil (odd). Pada fase genap, proses bernomor genap menukarkan bilangannya dengan tetangga sebelah kanannya. Begitu pula, pada fase ganjil, proses bernomor ganjil menukarkan bilangannya dengan tetangga sebelah kanannya. Pada algoritma Comb Sort terdapat shrink factor yang memberikan efek yang sangat bagus pada efisensi comb sort. Shrink factor berfungsi untuk menentukan ukuran gap. Shrink factor biasanya bernilai 1.24. Gap merupakan jarak antara dua elemen yang akan dibandingkan. Pembulatan nilai gap adalah ke bawah (floor). Hasil penelitian ini menunjukkan bahwa algoritma Comb Sort memiliki rata-rata waktu tercepat untuk melakukan pengurutan 10.000 karakter acak dengan waktu 13,3817 ms, 41,03088 ms untuk Bitonic Sort dan 2123,70183 ms untuk Comb Sort. Untuk pengurutan 10.000 karakter terurut, Odd-Even Sort memiliki waktu tercepat yaitu 0,3952 ms, 64,6939 ms untuk Bitonic Sort menjadi yang paling lama dan 13,8858 ms untuk Comb Sort . Untuk pengurutan data bertipe string sebanyak 250 kata yaitu 3,4262 ms untuk Comb Sort, 5,8232 ms untuk Bitonic Sort dan 12,9607 ms untuk Odd-Even Sort . Odd-Even Sort dan Comb Sort memiliki nilai T(n) yang sama yaitu n2 sedangkan Bitonic Sort memiliki T(n) = (n(log n)2).

Kata kunci : Pengurutan, Algoritma Bitonic Sort, Algoritma Odd-Even Sort, Algoritma Comb Sort, kompleksitas algoritma.

Universitas Sumatera Utara

Page 8: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

COMPARISON PERFORMANCE OF ALGORITHMS BITONIC SORT, ODD-EVEN

SORT AND COMB SORT

ABSTRACT

Sorting is a process to arrange some objects using a set of specific rules. The data will be sorted have many kind both in terms of the amount of data and data types. The problem is no algorithm is best for each situation encountered. It is difficult to determine which algorithm is better to using in a particular situation. Therefore, then made a comparison of application performance sorting algorithms. In this research the algorithms that use is Bitonic Sort, Odd-Even Sort and Comb Sort. This research aims to determine the performance of the three algorithms theoretically and in real time. Bitonic Sort algorithm is a parallel sorting algorithms using a sorting network. Unlike the Bitonic Sort, Odd-Even Sort operates on two alternative phases, namely the phase of even (even) and odd phase (odd). In phase even, even-numbered process to redeem that number with the right of number. Similarly, in the phase of odd, odd-numbered process to redeem that number with the right of number. On Comb Sort algorithm are shrink factor which gives a very good effect on the efficiency of comb sort. Shrink factor used to determine the size of the gap. Shrink factor usually worth 1.24. Gap is the distance between the two elements to be compared. Rounding the value gap is down (floor). The results of this research show that the algorithm Comb Sort has an average fastest time to do the sorting 10,000 random character with a time of 13.3817 ms, 41.03088 ms for Bitonic Sort and 2123.70183 ms for Comb Sort. For sorting 10,000 character sequence, Odd-Even Sort had the fastest time is 0.3952 ms, 64.6939 ms for Bitonic Sort become the longest and 13.8858 ms for Comb Sort. To sort the data type string as many as 250 words is 3.4262 ms for Comb Sort, 5.8232 ms for Bitonic Sort and 12.9607 ms for Odd-Even Sort. Odd-Even Comb Sort Sort and has a same value of T (n) is n2 while Bitonic Sort have T (n) = (n (log n) 2).

Keyword : Sorting, Bitonic Sort Algorithm, Odd-Even Sort Algorithm, Comb Sort Algorithm, algorithm complexity

Universitas Sumatera Utara

Page 9: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

DAFTAR ISI

PERSETUJUAN ii PERNYATAAN iii PENGHARGAAN iv ABSTRAK vi ABSTRACT vii DAFTAR ISI viii DAFTAR TABEL xi DAFTAR GAMBAR xii LAMPIRAN xv BAB 1. PENDAHULUAN 1

1.1. Latar Belakang 1 1.2. Rumusan Masalah 2 1.3. Batasan Masalah 2 1.4. Tujuan Penelitian 3 1.5. Manfaat Penelitian 3 1.6. Metodologi Penelitian 3 1.7. Sistematika Penulisan 4

BAB 2. LANDASAN TEORI 6 2.1. Pengertian Algoritma 6 2.2. Kompleksitas Algoritma 7 2.3. Notasi Asimptotik 7 2.4. Struktur Data 10 2.5. Algoritma Bitonic Sort 11

2.5.1. Contoh dan Proses Algoritma Bitonic Sort 15 2.6. Algoritma Odd-Even Sort 16

2.6.1. Contoh dan Proses Algoritma Odd-Even Sort 17 2.7. Algoritma Comb Sort 17

2.7.1. Contoh dan Proses Kerja Algoritma Comb Sort 18 2.8. Tinjauan Penelitian yang Relevan 20

BAB 3. ANALISIS DAN PERANCANGAN SISTEM 23 3.1. Analisis Sistem 23

3.1.1. Analisis Masalah 23

Universitas Sumatera Utara

Page 10: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.1.2. Analisis Kebutuhan 24 3.1.2.1. Analisis Kebutuhan Fungsional 24 3.1.2.2. Analisis Kebutuhan Nonfungsional 24

3.1.3. Pemodelan Sistem 25 3.1.3.1. Use Case Diagram 25 3.1.3.2. Activity Diagram 30 3.1.3.3. Sequence Diagram 34

3.2. Flowchart Sistem 36 3.3. Pseudocode Program 37

3.3.1. Pseudocode Algoritma Bitonic Sort 37 3.3.2. Pseudocode Algoritma Odd-Even Sort 38 3.3.3. Pseudocode Algoritma Comb Sort 39

3.4. Perancangan Sistem 39 3.4.1. Rancangan halaman menu utama 39 3.4.2. Rancangan halaman Character Sorting 40 3.4.3. Rancangan Halaman Result 42 3.4.4. Rancangan Halaman Char Sorting Analyze 45 3.4.5. Rancangan Halaman Word Sorting 46 3.4.6. Rancangan Halaman String Sorting Analyze 48 3.4.7. Rancangan Halaman About 49

BAB 4. IMPLEMENTASI DAN PENGUJIAN 50 4.1. Implementasi 50 4.2. Antarmuka Sistem 50

4.2.1. Halaman Menu Utama 51 4.2.2. Halaman Character Sorting 51 4.2.3. Halaman Bitonic Sort Result 53 4.2.4. Halaman Odd-Even Sort Result 54 4.2.5. Halaman Comb Sort Result 55 4.2.6. Halaman Char Sorting Analyze 56 4.2.7. Halaman Word Sorting 58 4.2.8. Halaman String Sorting Analyze 59 4.2.9. Halaman About 61

4.3. Pengujian Sistem 61 3.3.1. Pengujian Generate Data 61

Universitas Sumatera Utara

Page 11: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.3.2. Pengujian Pengurutan Karakter 63 3.3.3. Pengujian Grafik Perbandingan 69 3.3.4. Hasil Pengujian Pengurutan Karakter 72 3.3.5. Pengujian Pengurutan String 79 3.3.6. Hasil pengujian pengurutan string 81

3.4. Kompleksitas Algoritma 82 3.4.1. Kompleksitas Algoritma Bitonic Sort 82 3.4.2. Kompleksitas Comb Sort 82 4.4.3. Kompleksitas Algoritma Odd-Even Sort 84

BAB 5. KESIMPULAN DAN SARAN 87 5.1. Kesimpulan 87 5.2. Saran 87

Daftar Pustaka 89

Universitas Sumatera Utara

Page 12: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

DAFTAR TABEL

Tabel 2.1. Kelompok algoritma berdasarkan kompleksitas waktu asimptotiknya 7 Tabel 3.1. Dokumentasi Naratif Use Case Char Sort 26 Tabel 3.2. Dokumentasi Naratif Use Case Word Sort 28 Tabel 3.3. Dokumentasi Naratif Use Case About 29 Tabel 3.4. Dokumentasi Naratif Use Case Exit 30 Tabel 3.5. Dokumentasi Naratif Activity Diagram 32 Tabel 3.6. Keterangan halaman menu utama 40 Tabel 3.7. Keterangan halaman Character Sorting 41 Tabel 3.8. Keterangan Halaman Bitonic Sort Result 42 Tabel 3.9. Keterangan Halaman Odd-Even Sort Result 43 Tabel 3.10. Keterangan Halaman Comb Sort Result 44 Tabel 3.11. Keterangan Halaman Char Sorting Analyze 45 Tabel 3.12. Keterangan Halaman Word Sorting 47 Tabel 3.13. Keterangan Halaman String Sorting Analyze 48 Tabel 3.14. Keterangan Halaman About 49 Tabel 4.1 Hasil Pengujian algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort pada

pengurutan data terurut 72 Tabel 4.2 Hasil Pengujian algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort pada

pengurutan data acak 75 Tabel 4.3 Hasil pengujian pengurutan string 81 Tabel 4.5 Kompleksitas Fungsi Swap algoritma Comb Sort 82 Tabel 4.6 Kompleksitas Fungsi Sort algoritma Comb Sort 83 Tabel 4.7 Kompleksitas Fungsi Swap algoritma Odd-Even Sort 84 Tabel 4.8 Kompleksitas Fungsi InnerSort algoritma Odd-Even Sort 85 Tabel 4.9 Kompleksitas Fungsi Sort algoritma Odd-Even Sort 85

Universitas Sumatera Utara

Page 13: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

DAFTAR GAMBAR

Gambar 2.1. Grafik fungsi Big-Oh (Sumber: Dave & Dave, 2008) 8 Gambar 2.2. Grafik fungsi Big-Theta (Sumber: Dave & Dave, 2008) 9 Gambar 2.3. Grafik fungsi Big-Omega (Sumber: Dave & Dave, 2008) 10 Gambar 2.4. Algoritma Comparator 11 Gambar 2.5. Comparison Network 11 Gambar 2.6. Half-Cleaner 12 Gambar 2.7. Bitonic-sorter 13 Gambar 2.8. Merging Network 14 Gambar 2.9. Bitonic-Sorter 15 Gambar 2.10. Proses Algoritma Bitonic Sort 16 Gambar 2.11. Proses Algoritma Odd-Even Sort 17 Gambar 2.12. Iterasi 1 Algoritma Comb Sort. 18 Gambar 2.13. Iterasi 2 Algoritma Comb Sort 19 Gambar 2.14. Iterasi 3 Algoritma Comb Sort 19 Gambar 2.15. Iterasi 4 Algoritma Comb Sort 20 Gambar 2.16. Iterasi 5 Algoritma Comb Sort 20 Gambar 3.1. Diagram Ishikawa 23 Gambar 3.2. Use Case Diagram 25 Gambar 3.3. Activity Diagram 31 Gambar 3.4. Sequence Diagram 35 Gambar 3.5. Flowchart Char Sort 36 Gambar 3.6. Flowchart String Sort 37 Gambar 3.7. Rancangan halaman menu utama 40 Gambar 3.8. Rancangan Halaman Character Sorting 40 Gambar 3.9. Rancangan Halaman Result Bitonic Sort Result 42 Gambar 3.10. Rancangan Halaman Odd-Even Sort Result 43 Gambar 3.11. Rancangan Halaman Comb Sort Result 44 Gambar 3.12. Rancangan Halaman Char Sorting Analyze 45 Gambar 3.13. Rancangan Halaman Word Sorting 47 Gambar 3.14. Rancangan Halaman String Sorting Analyze 48 Gambar 3.15. Rancangan Halaman About 49 Gambar 4.1. Halaman Menu Utama 51

Universitas Sumatera Utara

Page 14: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.2. Halaman Character Sorting sebelum proses sorting 52 Gambar 4.3. Halaman Character Sorting setelah proses sorting 53 Gambar 4.4. Halaman Bitonic Sort Result 54 Gambar 4.5. Halaman Odd-Even Sort Result 55 Gambar 4.6. Halaman Comb Sort Result 56 Gambar 4.6. Halaman Char Sorting Analyze 57 Gambar 4.7. Dialog print pada halaman Char Sorting Analyze 57 Gambar 4.8. Dialog save pada halaman Char Sorting Analyze 58 Gambar 4.9. Halaman Word Sorting sebelum proses sorting 58 Gambar 4.10. Halaman Word Sorting setelah proses sorting 59 Gambar 4.11. Halaman String Sorting Analyze 59 Gambar 4.12. Dialog print pada halaman String Sorting Analyze 60 Gambar 4.13. Dialog save pada halaman String Sorting Analyze 60 Gambar 4.14. Halaman About 61 Gambar 4.15. Generate data Numeric 62 Gambar 4.16. Generate data Alphabet 62 Gambar 4.17. Generate data Alphanumeric 63 Gambar 4.18. Generate data Alphanumeric & Symbol 63 Gambar 4.19. Hasil pengurutan algoritma Bitonic Sort tipe karakter numeric 64 Gambar 4.20. Hasil pengurutan algoritma Odd-Even Sort tipe karakter numeric 64 Gambar 4.21. Hasil pengurutan algoritma Comb Sort tipe karakter numeric 65 Gambar 4.22. Hasil pengurutan algoritma Bitonic Sort tipe karakter alphabet 65 Gambar 4.23. Hasil pengurutan algoritma Odd-Even Sort tipe karakter alphabet 66 Gambar 4.24. Hasil pengurutan algoritma Comb Sort tipe karakter alphabet 66 Gambar 4.25. Hasil pengurutan algoritma Bitonic Sort tipe karakter alphanumeric 67 Gambar 4.26. Hasil pengurutan algoritma Odd-Even Sort tipe karakter alphanumeric 67 Gambar 4.27. Hasil pengurutan algoritma Comb Sort tipe karakter alphanumeric 68 Gambar 4.28. Hasil pengurutan algoritma Bitonic Sort tipe karakter alphanumeric & symbol 68 Gambar 4.29. Hasil pengurutan algoritma Odd-Even Sort 69 tipe karakter alphanumeric & symbol 69 Gambar 4.30. Hasil pengurutan algoritma Comb Sort tipe karakter alphanumeric & symbol 69 Gambar 4.31. Grafik perbandingan pengurutan karakter numeric 70 Gambar 4.32. Grafik perbandingan pengurutan karakter alphabet 70 Gambar 4.33. Grafik perbandingan pengurutan karakter alphanumeric 71

Universitas Sumatera Utara

Page 15: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.34. Grafik perbandingan pengurutan karakter alphanumeric & symbol 71 Gambar 4.35 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter

numeric 73 Gambar 4.36 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter

alphabet 73 Gambar 4.37 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter

alphanumeric 74 Gambar 4.38 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter

alphanumeric & symbol 74 Gambar 4.39. Grafik perbandingan running time pengurutan data acak untuk tipe karakter

numeric 77 Gambar 4.40. Grafik perbandingan running time pengurutan data acak untuk tipe karakter

alphabet 78 Gambar 4.41. Grafik perbandingan running time pengurutan data acak untuk 78 tipe karakter alphanumeric 78 Gambar 4.42. Grafik perbandingan running time pengurutan data acak untuk tipe karakter

alphanumeric & symbol 79 Gambar 4.43. Pengurutan String 80 Gambar 4.44. Grafik perbandingan pengurutan string 80 Gambar 4.45. Grafik perbandingan running time pengurutan string 81

Universitas Sumatera Utara

Page 16: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

LAMPIRAN

LISTING PROGRAM A-1 CURRICULUM VITAE B-1

Universitas Sumatera Utara

Page 17: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Sorting atau pengurutan merupakan suatu proses menyusun kembali suatu himpunan objek

menggunakan aturan tertentu. Sorting merupakan salah satu tugas dari sekian banyak tugas

komputer yang dilakukan, yang diteliti secara luas, dan memiliki banyak algoritma yang

berbeda yang dibangun. Sorting memiliki manfaat yang penting dalam proses pencarian.

Data yang tidak terurut harus dicari secara normal menggunakan waktu pembacaan

sekuensial dari semua data. Hal ini membutuhkan waktu yang sangat lama. Pada data yang

telah terurut akan membiarkan dirinya dicari dengan menggunakan teknik pencarian data

sederhana.

Ada 2 jenis pengurutan secara umum yaitu ascending (data terurut naik) dan descending

(data terurut turun). Tujuan pengurutan adalah untuk mempermudah pencarian data.

Pengurutan data menjadi sesuatu yang penting dalam ilmu komputer karena waktu yang

dibutuhkan dalam melakukan proses pengurutan perlu dipertimbangkan ( Saniman, 2010).

Data yang akan diurutkan memiliki berbagai macam jenis baik dalam hal banyaknya data

maupun jenis datanya. Masalahnya, tidak ada satupun algoritma yang terbaik untuk setiap

situasi yang dihadapi. Bahkan sangat sulit untuk menentukan algoritma mana yang paling

baik untuk digunakan dalam situasi tertentu. Hal ini disebabkan adanya beberapa faktor yang

mempengaruhi efektifitas proses pengurutan yaitu:

1. Banyaknya data yang akan diurutkan.

2. Kapasitas pengingat (memori) apakah mampu menyimpan semua data yang dimiliki.

3. Tempat penyimpanan data.

Kelebihan dari data yang telah terurut adalah memudahkan user untuk melakukan

penambahan data, pengubahan data, dan penghapusan data. Dalam kondisi terurut juga akan

mempermudah untuk mencari data yang hilang atau terhapus.

Melihat pentingnya sorting (pengurutan) dalam pengelolaan data, telah ada beberapa

penelitian yang melakukan analisis perbandingan kinerja beberapa algoritma sebagai contoh

analisis perbandingan kompleksitas pengurutan nilai algoritma Quick sort, Shell sort,

Insertion sort, Selection sort dan Bubble sort (Rahayuningsih, 2016), aplikasi visualisasi dan

Universitas Sumatera Utara

Page 18: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

perbandingan metode-metode pengurutan data yang dilakukan dengan menggunakan

algoritma Bubble sort, Bucket sort, Comb sort, Pigeon Hole sort (Murtado & Harsamuda.

2014), analisis perbandingan algoritma Bubble sort, Merge sort dan Quick sort dalam proses

pengurutan kombinasi angka dan huruf (Sonita & Nurtaneo, 2015), algoritma paralel Odd

Even Transposition pada model jaringan nonlinier (Ernastuti et al. 2010).

Oleh karena itu, penulis akan melakukan perbandingan kinerja terhadap algoritma

Bitonic Sort, Odd-Even Sort, dan Comb Sort. Hal ini menjadi dorongan untuk memberikan

manfaat dan kemudahan terhadap pengguna dalam mengenal, mengetahui dan memahami.

1.2. Rumusan Masalah

Masalah yang akan dibahas pada penelitian ini ialah belum adanya perbandingan kinerja 3

algoritma pengurutan yakni Bitonic Sort, Odd-Even Sort, dan Comb Sort dalam melakukan

proses pengurutan.

1.3. Batasan Masalah

Adapun yang menjadi batasan masalah yaitu :

1. Mengukur kemampuan sistem dalam melakukan pengurutan data bertipe string,

pengukuran kecepatan proses (running time) pengurutan string / kata dalam satuan

waktu (ms) serta ukuran kompleksitas algoritmanya adalaha Big-ϴ.

2. Perbandingan kinerja algoritma Bitonic Sort, Odd-even Sort dan Comb Sort dilakukan

secara teoretikal dan real time.

3. Tipe struktur data yang digunakan adalah list.

4. Data diurutkan secara ascending (dari kecil ke besar) dan descending (dari besar ke

kecil).

5. Perancangan aplikasi perbandingan ini menggunakan bahasa pemrograman C# dan

file bertipe text (txt) yang berisikan kata-kata yang akan diurutka. Delimiter (pemisah)

yang digunakan yaitu whitespace dan newline.

Universitas Sumatera Utara

Page 19: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah:

1. Mengetahui theoretical running time algoritma dari ketiga algoritma tersebut dalam

Big ϴ.

2. Mengetahui real running time ketiga algoritma tersebut dalam satuan waktu (ms).

1.5. Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini antara lain:

1. Memahami bagaimana menganalisis theoretical running time dan real running time

algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort pada proses sorting data.

2. Sebagai bahan referensi mengenai algoritma Bitonic Sort, Odd-Even Sort dan Comb

Sort pada proses sorting data.

1.6. Metodologi Penelitian

Tahapan penelitian yang dilakukan dalam penelitian ini adalah :

a. Studi Literatur

Studi ini dilakukan dengan cara mempelajari, meneliti dan menelaah berbagai

literatur-literatur dari perpustakaan yang bersumber dari buku-buku, teks, jurnal

ilmiah maupun hasil penelitian terdahulu sebagai referensi yang diperlukan dalam

melakukan penelitian.

b. Analisis dan Perancangan

Dengan adanya rumusan dan batasan masalah, kebutuha perancangan dianalisis

disertai pembuatan Flowchart, Unified Modeling Language (UML), Design Interface.

c. Implementasi

Sistem diimplementasikan dengan metode algoritma Bitonic Sort, Odd-Even Sort dan

Comb Sort menggunakan bahasa pemrograman C#.

d. Pengujian

Sistem yang akan dibuat akan diuji dengan mengurutkan string secara ascending lalu

melihat kecepatan proses pengurutan kata pada sistem yang akan dibuat dengan

menggunakan algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort.

Universitas Sumatera Utara

Page 20: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

e. Penyusunan Skripsi

Pada tahap ini dilakukan penyusunan laporan hasil perancangan sistem ke dalam

format penulisan skripsi.

1.7. Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari beberapa bagian yaitu :

BAB 1 PENDAHULUAN

Bab ini menjelaskan latar belakang judul skripsi “Perbandingan Kinerja

Algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort”, rumusan

masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode

penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini berisi tentang penjelasan singkat mengenai algoritma,

kompleksitas algoritma, notasi asimptotik, struktur data, algoritma Bitonic

Sort, algoritma Odd-Even Sort dan algoritma Comb Sort.

BAB 3 ANALISIS PERANCANGAN SISTEM

Bab ini membahas tentang analisis terhadap masalah penelitian dan

perancangan terhadap sistem yang akan dibangun, cara kerja sistem

disertai pembuatan flowchart, Unified Modeling Language (UML), Design

Interface.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi tentang pembuatan sistem dan coding sesuai dengan analisis

dan perancangan, kemudian melakukan pengujian sistem, serta

pembahasan hasil pengujian dan analisisnya.

Universitas Sumatera Utara

Page 21: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dari keseluruhan uraian bab-bab

sebelumnya dan saran berdasarkan hasil pengujian yang diharapkan dapat

bermanfaat untuk penelitian selanjutnya yang berhubungan.

Universitas Sumatera Utara

Page 22: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

BAB 2

LANDASAN TEORI

2.1. Pengertian Algoritma

Algorism yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja”far

Muhammad Ibnu Musa Al Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi

Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang

artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari

judul buku itu juga diperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism

menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic,

sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah

menjadi biasa. Seiring waktu kata Algorithm berangsur-angsur dipakai sebagai metode

perhitungan (komputasi) secara umum, sehingga kehilangan makna kata (Barakbah et al.

2013).

Pengertian algoritma sangat lekat dengan kata logika, yaitu kemampuan seorang manusia

untuk berfikir dengan akal tetang suatu permasalahan menghasilkan sebuah kebenaran,

dibuktikan dan dapat diterima akal, logika seringkali dihubungkan dengan kecerdasan.

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun

secara sistematis (Munir, 2005). Menurut KBBI (Kamus Besar Bahasa Indonesia), algoritma

adalah urutan logis pengambilan keputusan untuk pemecahan masalah.

Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagai

algoritma. Menurut Munir, 2005, Donald E. Knuth (1998) menyatakan bahwa algoritma

harus mempunyai lima ciri penting yang meliputi:

1. Finiteness (keterbatasan), algoritma harus berakhir setelah mengerjakan sejumlah

langkah proses.

2. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak

berarti ganda.

3. Input (masukan), algoritma memiliki nol atau lebih data masukan(input).

4. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).

5. Effectiveness (efektivitas), algoritma harus sangkil (efektif), langkah-langkah

algoritma dikerjakan dalam waktu yang wajar.

Universitas Sumatera Utara

Page 23: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

2.2. Kompleksitas Algoritma

Kebenaran suatu algoritma harus diuji dengan jumlah masukan tertentu utuk melihat kinerja

algoritma berupa waktu yang diperlukan untuk menjalankan algoritmanya dan ruang memori

yang diperlukan untuk struktur datanya. Besaran yang dipakai untuk menerangkan model

penilaian waktu/ruang algoritma adalah dengan menggunakan kompleksitas algoritma

(Nugraha , 2012). Ada 2 macam kompleksitas algoritma yaitu:

a. Kompleksitas waktu adalah mengukur jumlah perhitungan (komputasi) yang

dikerjakan oleh komputer ketika menyelesaikan suatu masalah dengan menggunakan

algoritma. Ukuran yang dimaksud mengacu ke jumlah langkah-langkah perhitungan

dan waktu tempuh pemrosesan.

b. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan dalam

eksekusi program.

2.3. Notasi Asimptotik

Kompleksitas waktu asimptotik adalah analisis efisiensi asimptotik dari suatu algoritma

untuk menentukan kompleksitas waktu yang sesuai. Analisis dilakukan untuk nilai n cukup

besar dan bahkan tidak terbatas. Notasi asimptotik adalah notasi yang digunakan untuk

menentukan kompleksitas waktu asimptotik dengan melihat waktu tempuh (running time)

algoritma (Azizah, 2013).

Notasi asimptotik dapat dituliskan dengan beberapa simbol, yaitu :

1. Notasi Big O, yaitu notasi asimptotik sebuah fungsi algoritma yang digunakan ketika

hanya diketahui batas atas. Notasi O menyatakan running time dari suatu algoritma

untuk kemungkinan terburuk. Notasi O memiliki beberapa bentuk, dapat dilihat pada

Tabel 2.1.

Tabel 2.1. Kelompok algoritma berdasarkan kompleksitas waktu asimptotiknya

Notasi Nama Penjelasan O(1) Konstan Running time algoritma yang sedang dianalisis tetap, tidak

bergantung pada n.

O(log n) Logaritmik Laju pertumbuhan waktu lebih lambat dari pertumbuhan n.

Universitas Sumatera Utara

Page 24: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Notasi Nama Penjelasan O(n) Linear Bila n menjadi 2n maka running time algoritma menjadi 2

kali running time semula.

O(n log n) Linearitmik (n

log n) atau Log

Linear

Terdapat pada algoritma yang membagi persoalan menjadi

beberapa persoalan yang lebih kecil, menyelesaikan setiap

persoalan secara independen kemudian menggabungkan

solusi masing-masing persoalan.

O(n2) Kuadratik Biasa digunakan untuk kasus dengan n yang berukuran kecil.

Bila n dinaikkan 2 kali semula, maka running time algoritma

akan menjadi empat kali semula.

O(n3) Kubik Bila n dinaikkan 2 kali semula, maka running time algoritma

akan menjadi delapan kali semula.

O(2n) Eksponensial Bila n dinaikkan 2 kali semula, maka running time algoritma

akan menjadi kuadrat kali semula.

O(n!) Faktorial Algoritma jenis ini akan memproses setiap masukan dan

menghubungkannya dengan n-1 masukan lainnya. Bila n

dinaikkan 2 kali semula, maka running time algoritma akan

menjadi faktoria dari 2n.

Untuk fungsi g(n), didefinisikan O(g(n)) sebagai big-oh dari n, sebagai himpunan:

O(g(n)) = {f(n) : ada konstanta positif c dan n0, sedemikian rupa untuk semua n ≥ n0,

sehingga 0 ≤ f(n) ≤ cg(n)}. f(n) secara intuitif merupakan himpunan seluruh fungsi

yang rateofgrowth-nya adalah sama atau lebih kecil dari g(n). g(n) adalah asymptotic

upper bound untuk f(n). Untuk grafik fungsi dapat dilihat pada Gambar 2.1.

Gambar 2.1. Grafik fungsi Big-Oh (Sumber: Dave & Dave, 2008)

Universitas Sumatera Utara

Page 25: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

2. Notasi Little o, yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas

namun tidak secara ketat terikat (not asymptotically tight).

3. Notasi Theta (𝜃𝜃), yaitu notasi asimptotik sebuah fungsi algoritma untuk batas atas dan

bawah.

Untuk fungsi g(n), kita definisikan Θ(g(n)) sebagai big-theta dari n, sebagai

himpunan:

Θ(g(n)) = {f(n) : ada konstanta positif c1, c2 dan n0, sedemikian rupa untuk semua n

≥ n0, sehingga 0 ≤ c1g(n) ≤ f(n) ≤ c1g(n)}. f(n) merupakan Θ(g(n)) pada nilai antara

c1 sampe c2. g(n) adalah asymptoticallytight bound untuk f(n).

Secara intuitif merupakan himpunan seluruh fungsi yang rateofgrowth-nya adalah

sama dengan g(n). Untuk grafik fungsi Big-Theta dapat dilihat pada Gambar 2.2.

Gambar 2.2. Grafik fungsi Big-Theta (Sumber: Dave & Dave, 2008)

4. Notasi Omega ( ), yaitu notasi asimptotik sebuah fungsi algoritma untuk batas

bawah, notasi ini berlawanan dengan notasi little-o.

Untuk fungsi g(n), didefinisikan Ω(g(n)) sebagai big-omega dari n, sebagai

himpunan:

Ω(g(n)) = {f(n) : ada konstanta positif c dan n0, sedemikian rupa untuk semua n ≥ n0,

sehingga 0 ≤ cg(n)≤ f(n) }. f(n) secara intuitif merupakan himpunan seluruh fungsi

yang rateofgrowth-nya adalah sama atau lebih tinggi dari g(n). g(n) adalah asymptotic

lower bound untuk f(n). Untuk grafik fungsi Big-Omega dapat dilihat pada Gambar

2.3.

Universitas Sumatera Utara

Page 26: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 2.3. Grafik fungsi Big-Omega (Sumber: Dave & Dave, 2008)

2.4. Struktur Data

Struktur data adalah sebuah skema organisasi, seperti variabel dan array,dll, yang diterapkan

pada data sehingga data dapat diinterpretasikan dan sehingga operasi-operasi spesifik dapat

dilaksanakan pada data tersebut. Pemakaian struktur data yang tepat didalam proses

pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan

program secara keseluruhan lebih efisien dan sederhana. Data adalah representasi dari fakta

dunia nyata.

Setiap data memiliki tipe data. Tipe data adalah pengelompokkan data berdasarkan isi

dan sifatnya. Secara garis besar tipe data dapat dikategorikan menjadi tiga macam yaitu

(Barakbah et al. 2013):

1. Tipe data dasar (tipe data primitif / tipe data sederhana) adalah tipe data yang sudah

ada dan dijadikan standar dalam bahasa pemrograman tertentu. Contoh tipe data dasar

adalah integer(bilangan bulat), float atau double(bilangan real), char(karakter),

boolean(logika)

2. Tipe data bentukan atau tipe data komposit adalah tipe data yang dibentuk dari tipe

data dasar. Contoh tipe data bentukan adalah array, string, record, union, struct, dll.

Tujuan dibuatnya tipe data bentukan adalah:

a. Mempermudah proses pemrograman.

b. Mempermudah dalam penambahan variabel.

c. Mempermudah pengelompokkan data sehingga lebih teratur.

Tipe data abstrak atau Abstract Data Type (ADT) adalah model matematika dari

obyek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan

Universitas Sumatera Utara

Page 27: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

fungsi-fungsi yang beroperasi pada data yang bersangkutan. Contoh tipe data abstrak

adalah stack, queue, list, tree, graph, dll.

2.5. Algoritma Bitonic Sort

Algoritma Bitonic Sort adalah suatu algoritma pengurutan paralel menggunakan sorting

network. Comparator merupakan Komponen terkecil dari sorting network, yaitu suatu

perangkat dengan dua masukan, x dan y, dan dua keluaran, x’ dan y’, dimana x’=min(x,y)

dan y’=max(x,y) (Mukhlis et al. 2014), dapat dilihat pada Gambar 2.4.

COMPARATOR(x,y)

if x > y then

temp ← x

x ← y

y ← temp

y

x7 3

3 7

x’

y’

Gambar 2.4. Algoritma Comparator

Diasumsikan setiap comparator membutuhkan waktu O(l) untuk melakukan operasinya.

Dengan menghubungkan sejumlah comparator dengan kabel, dapat dibentuk sebuah

comparison network, dapat dilihat pada Gambar 2.5.

a2

a3

a4

a19 5 2

65

2

6

9

2

6

5

9

5

6

2

9

Gambar 2.5. Comparison Network

Universitas Sumatera Utara

Page 28: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Sebuah sorting network adalah comparison network dimana untuk sembarang

masukan akan menghasilkan keluaran yang terurut menaik (b1 ≤ b2 ≤ ... ≤ bn).

Suatu bitonic sequence adalah suatu sequence yang terurut menaik kemudian terurut

menurun atau terurut menurut kemudian menaik. Sequence <1,4,6,8,3,2> dan <9,8,3,2,4,6>

adalah contoh bitonic sequence.

Suatu half cleaner adalah comparison network dengan kedalaman l dimana

dimasukkan ke-i akan dibandingkan dengan masukan ke-(i + n/2) untuk i = 1,2,...,n/2. Jika

masukan dari half cleaner adalah bitonic sequence berukuran n, maka keluarannya adalah

dua bitonic sequence yang masing-masing berukuran n/2 dan data pada bitonic sequence ke-2

≥ data bitonic sequence ke-1, dapat dilihat pada Gambar 2.6. Half cleaner dapat

diterjemahkan menjadi modul algoritma berikut ini, yang waktu eksekusinya adalah O(l) :

HALF-CLEANER (a, start, n)

for i ← start to start + n/2-1 in parallel do

COMPARATOR (a[i], a[ i+n/2])

5

6 3

b1

b2

9

7

8

3

5

1

b3

b4

b5

b6

b7

b8

1

8

6

7

9

Gambar 2.6. Half-Cleaner

Universitas Sumatera Utara

Page 29: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Dengan menggunakan half cleaner dapat dibentuk Bitonic Sorter. Bitonic Sorter(n)

dapat dibentuk dengan menghubungkan kabel keluaran dari half cleaner (n) dengan kabel

masukan dari dua Bitonic Sorter(n/2), dapat dilihat pada Gambar 2.7.

b1

b2

b3

b4

b5

b6

b7

b8

a1

a2

a3

a4

a5

a6

a7

a8

HALF CLEANER (n)

BITONIC SORTER (n/2)

BITONIC SORTER (n/2)

Gambar 2.7. Bitonic-sorter

BITONIC-SORTER(a, start, n) /*asumsi n genap*/

HALF-CLEANER(a, start, n)

if n > 2 then

for i ← 0 to 1 in parallel do

BITONIC-SORTER (a, start + i*n/2, n/2)

Waktu eksekusi Bitonic Sorter(n) dapat dihitung sebagai berikut:

T(n) = �0 , 𝑛𝑛 = 1 1 + 𝑇𝑇(𝑛𝑛/2) , 𝑛𝑛 > 1

Solusinya adalah T(n)= O(log n). Jadi waktu eksekusi Bitonic Sorter(n) = O(log n). Bitonic

Sorter sudah mampu mengurutkan, namun masukannya berupa bitonic sequence. Diinginkan

sebuah sorting network yang mampu mengurutkan sembarang data. Tahap berikutnya dari

pembuatan sorting network tersebut adalah membentuk network yang mampu

menggabungkan dua sequence berukuran n/2 yang sudah terurut menaik, menjadi sebuah

sequence berukuran n yang terurut menaik. Ini disebut merging network, dapat dilihat pada

Universitas Sumatera Utara

Page 30: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 2.8. Merging network berukuran n dapat dibentuk dengan memodifikasi half-cleaner

pertama dari Bitonic Sorter(n). Waktu eksekusinya juga O(log n).

b1

b2

b3

b4

b5

b6

b7

b8

a1

a2

a3

a4

a5

a6

a7

a8

BITONIC SORTER (n/2)

BITONIC SORTER (n/2)

Gambar 2.8. Merging Network

MERGER(a, start, n) /*asumsi n genap*/

for i ← 1 to n/2 in parallel do

COMPARATOR (a[start+i-1], a[start+n-i])

if n>2 then

for i ← 0 to 1 in parallel do

BITONIC-SORTER(a, start+i*n/2, n/2)

Akhirnya dengan menggabungkan merging network, didapat sebuah sorting network

yang dapat mengurutkan sembarang sequence berukuran n (SORTER(n)), dapat dilihat pada

Gambar 2.9.

SORTER(a, start, n) /*asumsi n genap*/

if n>2 then

for i ← 0 to 1 in parallel do

SORTER(a, start+i*n/2, n/2)

MERGER(a, start, n)

Universitas Sumatera Utara

Page 31: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Waktu eksekusi Bitonic-Sort adalah:

T(n) = �0 , 𝑛𝑛 = 1 𝑂𝑂(log𝑛𝑛) + 𝑇𝑇(𝑛𝑛/2) , 𝑛𝑛 > 1

Solusinya adalah O(log2n).

b1

b2

b3

b4

b5

b6

b7

b8

a1

a2

a3

a4

a5

a6

a7

a8

BITONIC SORTER (n/2)

BITONIC SORTER (n/2)

MERGER (n)

Gambar 2.9. Bitonic-Sorter

2.5.1. Contoh dan Proses Algoritma Bitonic Sort

Untuk mengilustrasikan deskripsi dan cara kerja dari algoritma Bitonic Sort ini, akan

digunakan contoh berikut, dapat dilihat pada Gambar 2.10:

List belum terurut : M A R I A T Y H

Kode ASCII : M = 77, A= 65, R= 82, I= 73, A= 65, T= 84, Y= 89, H= 72

77 65 82 73 65 84 89 72

77 65 82 73 65 84 89 72

Swap 77 dan 65

Swap 82 dan 73

Swap 65 dan 84

Swap 89 dan

72 65 77 82 73 65 84 89 72

Swap 65 dan 82

Swap 65 dan 89

Swap 77 dan 73

Swap 84 dan 72

Universitas Sumatera Utara

Page 32: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

65 73 82 77 89 84 65 72

Swap 65 dan 73

Swap 82 dan 77

Swap 89 dan 84

Swap 65 dan

72 65 73 77 82 89 84 72 65

Swap 65 dan 89

Swap 73 dan 84

Swap 77 dan 72

Swap 82 dan 65

65 73 72 65 89 84 77 82

Swap 65 dan 72

Swap 89 dan 77

Swap 73 dan 65

Swap 84 dan 82

65 65 72 73 77 82 89 84

Swap 65 dan 65

Swap 72 dan 73

Swap 77 dan 82

Swap 89 dan

84 65 65 72 73 77 82 84 89

List terurut

65 65 72 73 77 82 84 89

Gambar 2.10. Proses Algoritma Bitonic Sort

2.6. Algoritma Odd-Even Sort

Algoritma Odd-even(transposition) sort adalah suatu algoritma paralel sorting yang

merupakan pengembangan dari algoritma sekuensial “bubble sort”, dimana algoritma odd-

even(transposition) ini didesain khusus untuk model jaringan komputer array linier

(homogen). Untuk n elemen data, kompleksitas waktu dari algoritma bubble sort pada

prosesor tunggal adalah O(n2), sedangkan pada odd-even(transposition) yang bekerja di atas

n prosesor adalah ϴ(n). Nampak peningkatan kecepatan waktu pada kinerja algoritma paralel

ini sebesar n kali dibanding algoritma sekuensialnya (Ernastuti et al. 2010).

Universitas Sumatera Utara

Page 33: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Odd-even(transposition) beroperasi pada dua fase alternatif, yaitu fase genap(even) dan

fase ganjil(odd). Pada fase genap, proses bernomor genap menukarkan bilangannya dengan

tetangga sebelah kanannya. Begitu pula, pada fase ganjil, proses bernomor ganjil

menukarkan bilangannya dengan tetangga sebelah kanannya.

2.6.1. Contoh dan Proses Algoritma Odd-Even Sort

Untuk mengilustrasikan deskripsi dan cara kerja dari algoritma Odd-Even Sort ini, akan

digunakan contoh pada Gambar 2.11:

List belum terurut : M A R I A T Y H

Kode ASCII : M = 77, A= 65, R= 82, I= 73, A= 65, T= 84, Y= 89, H= 72

Fase P1 P2 P3 P4 P5 P6 P7 P8 77 65 82 73 65 84 89 72 1 65 77 73 82 65 84 72 89 2 65 73 77 65 82 72 84 89 1 65 73 65 77 72 82 84 89 2 65 65 73 72 77 82 82 89 1 65 65 72 73 77 82 82 89 2 65 65 72 73 77 82 82 89 Gambar 2.11. Proses Algoritma Odd-Even Sort

Ket: Untuk data yang berwarna biru tebal, data yang telah terurut secara ascending. Fase

1 : fase ganjil (odd), fase 2 : fase genap (even).

2.7. Algoritma Comb Sort

Algoritma Comb Sort merupakan algoritma yang relatif sederhana. Awalnya dirancang oleh

Wlodzimierz Dobosiewicz pada tahun 1980. Kemudian ditemukan kembali oleh Syephen

Lacey dan Richard Box pada tahun 1991. Comb Sort merupakan varian dari bubble sort. Ide

awal membentuk algoritma ini adalah untuk menghilangkan nilai kecil yang berada di dekat

akhir list, yang membuat bubble sort begitu lambat. Nilai besar yang berada di awal list,

tidak menjadi masalah dalam bubble sort. Pada algoritma comb sort terdapat shrink factor

Universitas Sumatera Utara

Page 34: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

yang memberikan efek yang sangat bagus pada efisensi comb sort. Shrink factor berfungsi

untuk menentukan ukuran gap. Shrink factor biasanya bernilai 1.24. Gap merupakan jarak

antara dua elemen yang akan dibandingkan. Pembulatan nilai gap adalah ke bawah (floor).

2.7.1. Contoh dan Proses Kerja Algoritma Comb Sort

1. Mulai dengan ukuran gap yang sama dengan jumlah data (n).

2. Hitung ukuran gap dengan melakukan pembagian ukuran gap sebelumnya dengan

shrink factor (lakukan pembulatan ke bawah (floor) pada hasil pembagian).

3. Iterasi pada list, lakukan swap pada elemen-elemen.

4. Jika gap bernilai 1 dan tidak ada swap selama iterasi, maka list telah terurut.

Untuk mengilustrasikan deskripsi dan cara kerja dari algoritma Comb Sort ini, akan

digunakan contoh berikut:

List belum terurut : M A R I A T Y H

Kode ASCII : M = 77, A= 65, R= 82, I= 73, A= 65, T= 84, Y= 89, H= 72

77 65 82 73 65 84 89 72

N = 8.

Shrink factor = 1.24.

Iterasi 1, gap 8 / 1.24 = 6.45

Jarak elemen yang akan diswap adalah 6, dapat dilihat pada Gambar 2.12.

Gambar 2.12. Iterasi 1 Algoritma Comb Sort.

Iterasi 2, gap 6 / 1.24 = 4.83.

Jarak elemen yang akan diswap adalah 4, dapat dilihat pada Gambar 2.13.

77 65 82 73 65 84 89 72

Swap 77 dan 89 77 65 82 73 65 84 89 72

Swap 65 dan 72 77 65 82 73 65 84 89 72

77 65 82 73 65 84 89 72 Swap 77 dan 65 65 65 82 73 77 84 89 72 Swap 65 dan 84

Universitas Sumatera Utara

Page 35: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 2.13. Iterasi 2 Algoritma Comb Sort Iterasi 3, gap 4 / 1.24 = 3.22

Jarak elemen yang akan diswap adalah 3, dapat dilihat pada Gambar 2.14.

Gambar 2.14. Iterasi 3 Algoritma Comb Sort

Iterasi 4, gap 3 / 1.24 = 2.41

Jarak elemen yang akan diswap adalah 2, dapat dilihat pada Gambar 2.15.

65 65 82 73 77 84 89 72 Swap 82 dan 89 65 65 82 73 77 84 89 72 Swap 73 dan 72 65 65 82 72 77 84 89 73

65 65 82 72 77 84 89 73 Swap 65 dan 72 65 65 82 72 77 84 89 73 Swap 65 dan 77 65 65 82 72 77 84 89 73 Swap 82 dan 84 65 65 82 72 77 84 89 73 Swap 73 dan 89 65 65 82 72 77 84 89 73 Swap 77 dan 73 65 65 82 72 73 84 89 77

65 65 82 72 73 84 89 77 Swap 65 dan 82 65 65 82 72 73 84 89 77 Swap 65 dan 72 65 65 82 72 73 84 89 77 Swap 82 dan 73 65 65 73 72 82 84 89 77

Universitas Sumatera Utara

Page 36: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 2.15. Iterasi 4 Algoritma Comb Sort Iterasi 5, gap 2 / 1.24 = 1.61

Jarak elemen yang akan diswap adalah 1, dapat dilihat pada Gambar 2.16.

Gambar 2.16. Iterasi 5 Algoritma Comb Sort List terurut.

2.8. Tinjauan Penelitian yang Relevan

Berikut adalah penelitian yang membahas seputar algoritma sorting:

Swap 72 dan 84 65 65 73 72 82 84 89 77 Swap 82 dan 89 65 65 73 72 82 84 89 77 Swap 84 dan 77 65 65 73 72 82 77 89 84

65 65 73 72 82 77 89 84 Swap 65 dan 65 65 65 73 72 82 77 89 84 Swap 65 dan 73 65 65 73 72 82 77 89 84 Swap 73 dan 72 65 65 72 73 82 77 89 84 Swap 73 dan 82 65 65 72 73 82 77 89 84 Swap 82 dan 77 65 65 72 73 77 82 89 84 Swap 82 dan 89 65 65 72 73 77 82 89 84 Swap 89 dan 84 65 65 72 73 77 82 84 89

65 65 72 73 77 82 84 89

Universitas Sumatera Utara

Page 37: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

1. Rahayuningsih (2016) melakukan penelitian analisis perbandingan kompleksitas

algoritma pengurutan nilai (sorting) dengan menggunakan algoritma Quick sort, Shell

sort, Insertion sort, Selection sort dan Bubble sort.

Hasilnya adalah Quick sort merupakan algoritma mengurutkan dengan sangat cepat,

namun algoritma ini sangat kompleks dan diproses secara rekursif. Meskipun begitu,

Quick sort tidak selalu menjadi pilihan terbaik. Hal ini dikarenakan algoritma ini

melakukan rekursif yang berarti jika dilakukan untuk pengurutan data yang banyak,

walaupun cepat tetapi menghabiskan banyak memori. Beda halnya dengan algoritma

Shell sort, Insertion sort, Selection sort yang menjadi pilihan yang baik dan efisien untuk

mengurutkan nilai dalam suatu array yang berukuran sedang. Dengan interval data antara

100-1000 elemen.

2. Murtado dan Harsamuda (2014) yang melakukan penelitian perbandingan metode-

metode pengurutan data yang disajikan dalam bentuk grafik. Metode-metode yang

digunakan sebagai perbandingan adalah Bubble sort, Bucket sort, Comb sort, Pigeon

Hole sort. Hasil penelitian tersebut adalah algoritma Bubble sort memiliki waktu yang

lebih lama dalam mengurutkan 20 data dibandingkan dengan algoritma Bucket sort.

Untuk algoritma Comb sort dan Pigeon Hole sort memerlukan waktu yang sama untuk

mengurutkan 20 data secara ascending.

3. Sonita dan Nurtaneo (2015) melakukan penelitian analisis perbandingan proses

pengurutan kombinasi angka dan huruf dengan menggunakan algoritma Bubble sort,

Quick sort dan Merge sort. Hasil yang didapatkan adalah Algoritma Quick sort memiliki

waktu tercepat dalam melakukan proses pengurutan dibandingkan dengan Algoritma

Bubble sort dan Merge sort. Untuk algoritma yang memiliki waktu terlama dalam

melakukan proses pengurutan adalah Bubble sort.

4. Ernastuti et al (2010) melakukan penelitian terhadap model jaringan nonlinier dengan

menggunakan algoritma paralel Odd-Even Transposition. Hasil dari penelitian tersebut

adalah algoritma Odd-Even Transposition dapat dijalankan pada model jaringan

komputer kluster nonlinier hypercube, Fibonacci cube dan extended Lucas cube dengan

kompleksitas waktu O(n). Kompleksitas sorting n elemen pada jaringan non linier

hypercube (Q(k)) dengan n= 2k prosesor menggunakan algoritma Odd-Even

Transposition sort adalah O(n). Untuk k > 2 dan n= 2k, kompleksitas pada jaringan

Universitas Sumatera Utara

Page 38: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

nonlinier Fibonacci cube (FC(k)) adalah O(n). Untuk k > 4 dan n= 2k, kompleksitas pada

jaringan nonlinier extended Lucas cube (ELC(k)) adalah O(n).

Universitas Sumatera Utara

Page 39: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dibahas mengenai beberapa analisis sitem dan perancangan sistem aplikasi.

Analisis sistem akan menganalisis pengurutan data bertipe char dan string menggunakan

algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort. Pada perancangan sistem aplikasi

yang akan dibaha adalah mengenai flowchart sistem dan flowchart menu serta perancangan

antarmuka (interface).

3.1. Analisis Sistem

Analisis sistem bertujuan untuk mengindentifikasi masalah yang akan diselesaikan,

kebutuhan fungsional dan non fungsional yang dibutuhkan oleh sistem. Hal ini dilakukan

agar pada saat perancangan aplikasi tidak terjadi kesalahan yang berarti, sehingga sistem

yang dirancang dapat berjalan dengan baik, tepat guna dan ketahanan dari sistem tersebut

akan lebih terjaga serta selesai pada waktu yang telah ditentukan. Ada dua tahapan analisis

dalam perancangan sistem ini yaitu analisis masalah dan analisis kebutuhan.

3.1.1. Analisis Masalah

Adapun masalah yang diangkat dalam penelitian ini adalah bagaimana menganalisis

kompleksitas waktu menggunakan algoritma Bitonic sort, Odd-Even sort dan Comb sort.

Untuk mengidentifikasi semua penyebab yang berhubungan dengan suatu permasalahan

digunakan Diagram Ishikawa (Fish Bone) dapat dilihat pada Gambar 3.1.

Material

Pengurutan biasanya dilakukan di kertas

Pengurutan masih dilakukan pada data bertipe integer

Metode

Belum adanya perbandingan kinerja algoritma bitonic, odd-even dan comb sort

ManusiaManusia MesinMesin

mengetahui perbedaan running time algoritma bitonic, odd-even dan comb

Menganalisis kompleksitas waktu terhadap pengurutan data bertipe char dan string dengan menggunakan algoritma Bitonic sort, Odd-Even sort dan Comb sort

Pengurutan masih dilakukan secara manual dan membutuhkan waktu yang lama

Gambar 3.1. Diagram Ishikawa

Universitas Sumatera Utara

Page 40: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.1.2. Analisis Kebutuhan

Untuk membangun sebuah sistem, perlu dilakukan tahap analisis kebutuhan. Analisis

kebutuhan terdiri dari dua bagian yaitu kebutuhan fungsional dan kebutuhan

nonfungsional.

3.1.2.1. Analisis Kebutuhan Fungsional

Kebutuhan fungsional menggambarkan aktivitas dan layanan yang sistem berikan.

Kebutuhan fungsional dalam melakukan pengurutan data adalah:

1. Sistem harus mampu mengurutkan data acak bertipe char dan string.

2. Sistem harus mampu mengurutkan secara ascending (menaik) dan descending

(menurun).

3. Sistem harus mampu membuat banyak sampel sesuai dengan inputan user.

4. Sistem harus mampu menghitung running time algoritma Bitonic sort, Odd-

Even sort dan Comb sort.

5. Sistem harus mampu menampilkan perbandingan waktu pengurutan

menggunakan algoritma Bitonic sort, Odd-Even sort dan Comb sort dalam

grafik.

6. Sistem harus mampu mengklasifikasikan dan membaca isi file bertipe txt.

3.1.2.2. Analisis Kebutuhan Nonfungsional

Kebutuhan non-fungsional yang dibutuhkan dan digunakan dalam membangun

sistem ini adalah:

1. Performa

Sistem yang akan dibangun harus dapat menampilkan hasil pengurutan yang

sesuai dengan input yang dimasukkan oleh pengguna.

2. Interface

Sistem yang akan dibangun harus memiliki antarmuka yang user friendly,

artinya sistem ini mudah digunakan dan mudah dimengerti oleh pengguna.

3. Hemat biaya

Sistem yang dibangun tidak membutuhkan perangkat tambahan ataupun

perangkat pendukung lainnya yang dapat menambah biaya.

Universitas Sumatera Utara

Page 41: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

4. Kontrol

Sistem yang dibangun harus dapat menampilkan pesan error untuk setiap

masukkan yang tidak sesuai.

5. Manajemen kualitas

Sistem yang akan dibangun harus memiliki kualitas yang baik yaitu tidak

mempersulit pengguna dalam melakukan pengurutan data.

3.1.3. Pemodelan Sistem

Pemodelan sistem bertujuam menggambarkan peran user terhadap sistem yang dibuat.

Pemodelan sistem yang digunakan dalam perancangan sistem yaitu use case diagram,

activity diagram dan sequence diagram.

3.1.3.1. Use Case Diagram

Use case diagram digunakan untuk merepresentasikan interaksi yang terjadi antara

user dengan sistem. Use case diagram menggambarkan interaksi tipikal antara

pengguna sistem dengan sistem itu sendiri, diberikan dalam sebuah narasi tentang

bagaimana sistem tersebut digunakan.Use case diagram dari sistem yang akan

dibangun dapat dilihat pada Gambar 3.2.

Gambar 3.2. Use Case Diagram

Universitas Sumatera Utara

Page 42: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Pada use case diagram di atas terdapat satu aktor yang berperan sebagai user. Untuk

menampilkan hasil perbandingan kompleksitas waktu dalam melakukan pengurutan

yang menggunakan algoritma Bitonic sort, Odd-Even sort dan Comb sort, user harus

memasukkan banyak karakter dan banyak sampel yang akan diurutkan pada use case

char sort. Selanjutnya user memilih generate data kemudian sistem akan

menampilkan hasil generate data yaitu data acak. Setelah sistem menampilkan data

acak, user menekan tombol sort yang kemudian sistem akan menampilkan data yang

telah terurut dan menampilkan running time dari algoritma Bitonic sort, Odd-Even

sort dan Comb sort. Setelah itu tekan tombol analyze maka sistem akan

menampilkan hasil perbandingan kompleksitas waktu dari ketiga algoritma tersebut

dalam bentuk grafik. User dapat menyimpan grafik perbandingan ataupun

memprintnya dengan menekan tombol print atau tombol save. Dokumentasi naratif

use case Char Sort dapat dilihat pada Tabel 3.1

Tabel 3.1. Dokumentasi Naratif Use Case Char Sort

Nama Use Case Char Sort

Actor User (Pengguna)

Deskripsi Use case ini mendeskripsikan pengurutan data bertipe char.

Basic Flow User menginputkan berupa angka (integer) , memilih untuk tipe

karakter dan banyak sampel.

Alternate Flow -

Pre-Condition Aplikasi menampilkan halaman generate dan siap menerima

inputan.

Typical course of

Event

Kegiatan User Respon Sistem

1. Menekan tombol Generate

Data.

2. Menekan tombol Sort.

3. Menekan tombol See Result

Bitonic Sort.

4. Menekan tombol See Result

1. Sistem menampilkan data

acak.

2. Sistem akan melakukan

proses pengurutan data

bertipe char dengan

menggunakan algoritma

Universitas Sumatera Utara

Page 43: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Odd-Even Sort.

5. Menekan tombol See Result

Comb Sort.

6. Menekan tombol Analyze.

7. Menekan tombol Print.

8. Menekan tombol Save.

Bitonic sort, Odd-Even sort

dan Comb sort.

3. Sistem menampilkan hasil

data terurut, waktu

pengurutan setiap sampel

dan rata-rata waktu

pengurutan dengan

menggunakan algoritma

Bitonic sort.

4. Sistem menampilkan hasil

data terurut, waktu

pengurutan setiap sampel

dan rata-rata waktu

pengurutan dengan

menggunakan algoritma

Odd-Even sort.

5. Sistem menampilkan hasil

data terurut, waktu

pengurutan setiap sampel

dan rata-rata waktu

pengurutan dengan

menggunakan algoritma

Comb sort.

6. Sistem menampilkan grafik

perbandingan waktu

algoritma Bitonic sort, Odd-

Even sort dan Comb sort.

7. Sistem menampilkan dialog

print.

8. Sistem menyimpan grafik

perbandingan ke dalam file

Universitas Sumatera Utara

Page 44: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

bertipe pdf.

Pasca Kondisi User mendapatkan hasil perbandingan running time algoritma

Bitonic sort, Odd-Even sort dan Comb sort dalam bentuk grafik.

Pada use case Gambar 3.1, terdapat use case word Sort yang di dalamnya terdapat

use case Open File, Sort, Analyze, Save dan Print. Untuk penjelasannya dapat dilihat

pada Tabel 3.2.

Tabel 3.2. Dokumentasi Naratif Use Case Word Sort

Nama Use Case Word Sort

Actor User (Pengguna)

Deskripsi Use case ini mendeskripsikan pengurutan data bertipe string

yang disimpan dalam sebuah file bertipe txt.

Basic Flow User menginputkan file yang bertipe txt

Alternate Flow -

Pre-Condition Aplikasi siap menerima inputan

Typical course of

Event

Kegiatan User Respon Sistem

1. Menekan tombol Open

File.

2. Menekan tombol Sort.

3. Menekan tombol Analyze.

4. Menekan tombol Print.

5. Menekan tombol Save.

1. Sistem menampilkan dialog

untuk memilih file yang

bertipe txt, pilih ok, maka

sistem akan menampilkan

isi file dalam textbox.

2. Sistem akan melakukan

proses pengurutan data

bertipe string dengan

menggunakan algoritma

Universitas Sumatera Utara

Page 45: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Bitonic sort, Odd-Even sort

dan Comb sort dan

menampilkan hasil

pengurutan dan waktu

pengurutan.

3. Sistem menampilkan grafik

perbandingan waktu

algoritma Bitonic sort,

Odd-Even sort dan Comb

sort.

4. Sistem menampilkan dialog

print.

5. Sistem menyimpan grafik

perbandingan ke dalam file

bertipe pdf.

Pasca Kondisi User mendapatkan hasil perbandingan running time algoritma

Bitonic sort, Odd-Even sort dan Comb sort dalam bentuk grafik.

Selain use case Char Sort dan Word Sort, terdapat use case About dan use case Exit.

Dokumentasi naratif use case About dapat dilihat pada Tabel 3.3. Untuk dokumentasi

naratif use case Exit dapat dilihat pada Tabel 3.4.

Tabel 3.3. Dokumentasi Naratif Use Case About

Nama Use Case About

Actor User (Pengguna)

Deskripsi Use case ini menampilkan keterangan dan informasi tentang

pembuat sistem.

Basic Flow User ingin melihat informasi pembuat sistem.

Alternate Flow -

Pre-Condition Aplikasi siap menampilkan penjelasan.

Typical course of Kegiatan User Respon Sistem

Universitas Sumatera Utara

Page 46: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Event 1. Memilih menu About.

1. Menampilkan informasi

tentang pembuat sistem.

Pasca Kondisi User mendapatkan informasi hak cipta sistem.

Tabel 3.4. Dokumentasi Naratif Use Case Exit

Nama Use Case Exit

Actor User (Pengguna)

Deskripsi Use case ini untuk menutup sistem aplikasi.

Basic Flow User ingin keluar dari sistem.

Alternate Flow -

Pre-Condition Aplikasi siap menampilkan menu exit.

Typical course of

Event

Kegiatan User Respon Sistem

1. Memilih menu Exit.

1. Sistem tertutup.

Pasca Kondisi User keluar dari aplikasi.

3.1.3.2. Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang

dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi

dan bagaimana berakhir. Activity diagram pada sistem yang akan dibangun terdapat 4

(empat) activity utama yaitu:

1. Char Sort

2. Word Sort

3. About

4. Exit

Pada Gambar 3.3 dijelaskan rancangan aktivitas user dan respon sistem pada

aplikasi.

Universitas Sumatera Utara

Page 47: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 3.3. Activity Diagram

Universitas Sumatera Utara

Page 48: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Berdasarkan activity diagram tersebut maka rancangan aktivitas sistem dapat

dijelaskan pada Tabel 3.5.

Tabel 3.5. Dokumentasi Naratif Activity Diagram

Nama Activity Diagram Activity Diagram System

Actor User (Pengguna)

Deskripsi Diagram activity tersebut menjelaskan rancangan

aktivitas user dan respon sistem.

Pre-Condition Aplikasi menampilkan menu Char Sort, Word Sort,

About dan Exit

Aktivitas dan Respon Aktivitas User Respon Sistem

• User memilih menu

Char Sort.

1. User menginput total

karakter, memilih tipe

karakter dan memilih

jumlah sampel.

Kemudian user

menekan tombol

Generate Data.

2. User menekan tombol

Sort.

3. User menekan tombol

See Result Bitonic

Sort .

4. User menekan tombol

See Result Odd-Even

Sort.

5. User menekan tombol

See Result Comb Sort.

• Sistem menampilkan

halaman generate data.

1. Menampilkan data

acak.

2. Sistem melakukan

pengurutan data acak

dengan menggunakan

algoritma Bitonic Sort,

Odd-Even sort dan

Comb sort.

3. Menampilkan halaman

yang berisi data yang

telah terurut, waktu

pengurutan setiap

sampel dan rata-rata

waktu pengurutan

menggunakan

algoritma Bitonic Sort.

4. Menampilkan halaman

Universitas Sumatera Utara

Page 49: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

6. User menekan tombol

Analyze.

7. User menekan tombol

Print.

8. User menekan tombol

Save.

• User memilih menu

Word Sort.

1. User menekan

tombol Open

File.

2. User menekan

tombol Sort.

3. User menekan

tombol Analyze.

4. User menekan

tombol Print.

5. User menekan

tombol Save.

• User memilih menu

About

• User memilih Exit

yang berisi data yang

telah terurut, waktu

pengurutan setiap

sampel dan rata-rata

waktu pengurutan

menggunakan

algoritma Odd-Even

Sort.

5. Menampilkan halaman

yang berisi data yang

telah terurut, waktu

pengurutan setiap

sampel dan rata-rata

waktu pengurutan

menggunakan

algoritma Comb Sort.

6. Menampilkan grafik

perbandingan waktu

pengurutan ketiga

algoritma.

7. Sistem menampilkan

dialog print.

8. Sistem menyimpan

grafik perbandingan ke

dalam file bertipe pdf.

• Sistem menampilkan

halaman sorting string.

1. Menampilkan isi file.

2. Sistem melakukan

pengurutan data acak

dengan menggunakan

Universitas Sumatera Utara

Page 50: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

algoritma Bitonic sort,

Odd-Even sort dan

Comb sort dan

menampilkan hasil

pengurutan dan waktu

pengurutan.

3. Menampilkan grafik

perbandingan waktu

pengurutan ketiga

algoritma.

4. Sistem menampilkan

dialog print.

5. Sistem menyimpan

grafik perbandingan ke

dalam file bertipe pdf.

• Menampilkan halaman

about.

• Keluar aplikasi

Pasca Kondisi User mendapatkan hasil perbandingan running time

algoritma Bitonic sort, Odd-Even sort dan Comb sort

dalam bentuk grafik.

Pada activity diagram di atas dapat dijelaskan bahwa user dapat menginput banyak

karakter dan banyak sampel yang akan diurutkan. Lalu user dapat melihat hasil

perbandingan running time algoritma Bitonic sort, Odd-Even sort dan Comb sort

dalam melakukan pengurutan dengan jumlah karakter dan banyak sampel yang telah

ditentukan dalam bentuk grafik.

3.1.3.3. Sequence Diagram

Sequence diagram adalah diagram yang menunjukkan interaksi antar objek di dalam

sistem yang disusun pada sebuah urutan atau rangkaian waktu. Interaksi antar objek

Universitas Sumatera Utara

Page 51: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

tersebut adalah pengguna, display dan pesan. Pada Gambar 3.4 menggambarkan

perilaku user terhadap sistem.

Gambar 3.4. Sequence Diagram

Universitas Sumatera Utara

Page 52: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.2. Flowchart Sistem

Flowchart atau bagan alir adalah bagan (chart) yang menunjukkan alir (flow) di dalam

program dan prosedur sistem secara logika. Flowchart merupakan gambar atau bagan yang

memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Dengan demikian

setiap simbol menggambarkan proses tertentu, sedangkan antara proses digambarkan dengan

garis penghubung. Pada sistem ini terdapat 2 (dua) flowchart yaitu flowchart pengurutan data

bertipe char (char sort) dapat dilihat pada Gambar 3.5 dan flowchart pengurutan data

bertipe string (string sort) dapat dilihat pada Gambar 3.6.

MULAI

Jumlah Karakter

Jumlah sampel

Generate Random Sample Data

Hasil pengurutan dan waktu pengurutan

Generate Grafik

SELESAI

Algoritma Bitonic Sort, Algoritma Odd-Even sort, Algoritma Comb Sort

Tipe Karakter

Grafik perbandingan

Gambar 3.5. Flowchart Char Sort Gambar 3.5 menggambarkan aliran proses pada pengurutan data bertipe karakter (char

sort). Proses diawali dengan menginput banyak karakter yang akan diurutkan, memilih

banyak sampel dan memilih tipe karakter yang akan diurutkan (terdapat empat tipe yaitu :

numeric, alphabet, alphanumeric, alphanumeric dan simbol). Setelah itu masuk ke

proses pembangkitan data (generate data) sesuai dengan inputan. Setelah data berhasil

dibangkitkan, proses pengurutan menggunakan algoritma bitonic sort, odd-even sort dan

comb sort dapat dilakukan. Sistem akan menampilkan hasil pengurutan dan waktu yang

Universitas Sumatera Utara

Page 53: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

dibutuhkan untuk pengurutan dan waktu pengurutan dapat ditampilkan dalam grafik

dalam proses generate grafik yang dapat dijadikan sebagai bahan perbandingan.

MULAI

Baca isi file

Input file bertipe txt

Hasil Pengurutan dan waktu pengurutan

Generate Grafik

SELESAI

Algoritma Bitonic Sort, Algoritma Odd-Even sort, Algoritma Comb Sort

Grafik perbandingan

Gambar 3.6. Flowchart String Sort Gambar 3.6 menggambarkan aliran proses pada pengurutan data bertipe string (string

sort). Proses diawali dengan menginput file bertipe txt yang berisikan string yang akan

diurutkan. Kemudian sistem akan membaca isi file dan menampilkannya. Setelah sistem

berhasil membaca dan menampilkan isi file, maka proses pengurutan string menggunakan

algoritma bitonic sort, odd-even sort dan comb sort dapat dilakukan. Sistem akan

menampilkan hasil pengurutan dan waktu yang dibutuhkan untuk pengurutan. Waktu

pengurutan dapat ditampilkan dalam grafik dalam proses generate grafik yang dapat

dijadikan sebagai bahan perbandingan.

3.3. Pseudocode Program

3.3.1. Pseudocode Algoritma Bitonic Sort

COMPARATOR(x,y) //fungsi menukar nilai x dan y jika x lebih besar dari y

if x > y then // jika nilai x lebih besar dari y maka

temp ← x //temp menampung nilai x

x ← y // x menampung nilai y

y ← temp // y menampung nilai temp

Universitas Sumatera Utara

Page 54: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

HALF-CLEANER (a, start, n) //fungsi untuk melakukan divide

for i ← start to start + n/2-1 in parallel do // perulangan dimulai dari 0 sampai n/2

COMPARATOR (a[i], a[ i+n/2]) // memanggil fungi COMPARATOR

BITONIC-SORTER(a, start, n) /*asumsi n genap*/

HALF-CLEANER(a, start, n) // memanggil fungsi HALF-CLEANER

if n > 2 then // jika n lebih besar dari 2

for i ← 0 to 1 in parallel do // perulangan dimulai dari 0 sampai 1

BITONIC-SORTER (a, start + i*n/2, n/2) //rekursif

MERGER(a, start, n) /*asumsi n genap*/ // fugsi untuk menyatukan data yang didivide

for i ← 1 to n/2 in parallel do //perulangan dimulai dari 1 sampai n/2

COMPARATOR (a[start+i-1], a[start+n-i]) //memanggil fungsi COMPARATOR

if n>2 then //jika n lebih besar dari 2

for i ← 0 to 1 in parallel do // perulangan dimulai dari 0 sampai ke 1

BITONIC-SORTER(a, start+i*n/2, n/2) //memanggil fungsi BITONIC-

SORTER

SORTER(a, start, n) /*asumsi n genap*/ //fungsi untuk melakukan penyatuan data terurut

if n>2 then // jika n lebih besar dari 2

for i ← 0 to 1 in parallel do //perulangan dimulai dari 0 sampai ke 1

SORTER(a, start+i*n/2, n/2) //rekursif

MERGER(a, start, n) // memanggil fungsi MERGER

3.3.2. Pseudocode Algoritma Odd-Even Sort

for (i = 0 ; i < n ; i++) // perulangan dilakukan sebanyak data yang akan diurutkan { if (i %2 = 1) // jika i adalah bilangan ganjil { for (int j = 2 ; j < n ; j += 2) // perulangan dimulai dari 2 sampai ke n { if (a[j] < a[j-1]) // jika nilai di index j lebih kecil daripada nilai di index j-1 swap (a[j-1], a[j]) ; //menukar nilai di index j ke index j-1

} } else {

for (int j = 1 ; j < n ; j += 2) //perulangan dimulai dari 1 sampai ke n {

Universitas Sumatera Utara

Page 55: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

if (a[j] < a[j-1]) //jika nilai di index j lebih kecil daripada nilai di index j-1

swap (a[j-1], a[j]) ; //menukar nilai di index j ke index j-1 }

} }

3.3.3. Pseudocode Algoritma Comb Sort

do { //awal perulangan swapped = false ; // swapped bernilai false

gap= newGap(gap); // memanggil fungsi newGap untuk menentukan jarak nilai yang akan dibandingkan

for (int i = 0 ; i < len – gap ; i ++) //perulangan dimulai dari 0 sampai len-gap {

if(a[i] > a[i+gap]) //jika nilai di index a[i] lebih besar dari nilai di index [i+gap]

{ swapped = true; //swapped bernilai true swap(a[i], a[i+gap]); //menukarkan nilai di index a[i+gap] ke a[i] } }

}while (gap > 1 || swapped); // perulangan dilakukan ketika gap bernilai lebih besar dari 1 atau swapped bernilai false

3.4. Perancangan Sistem

3.4.1. Rancangan halaman menu utama

Halaman menu utama merupakan halaman yang pertama kali tampil pada saat aplikasi

dijalankan. Pada halaman ini terdapat satu label dan empat tombol. Rancangan halaman

menu utama dapat dilihat pada Gambar 3.7. Pada halaman menu utama terdapat 4

(empat) menu utama yang berupa tombol yaitu Char Sort merupakan menu yang akan

menampilkan halaman Character Sorting, Word Sort merupakan menu yang akan

menampilkan halaman Word Sorting, About merupakan menu yang akan menampilkan

halaman About dan Exit merupakan menu untuk keluar dari aplikasi.

Universitas Sumatera Utara

Page 56: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

APLIKASI PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD-EVEN SORT DAN COMB SORT

CHAR SORT

WORD SORT

ABOUT

EXIT

1

2

3

4

5

Gambar 3.7. Rancangan halaman menu utama

Untuk keterangan gambar 3.7 dapat dilihat pada Tabel 3.6.

Tabel 3.6. Keterangan halaman menu utama

No Jenis Objek Keterangan 1 Label Judul 2 Button Membuka halaman Character Sorting 3 Button Membuka halaman Word String 4 Button Membuka halaman About 5 Button Keluar dari aplikasi

3.4.2. Rancangan halaman Character Sorting

Halaman character sorting tampil setelah user menekan tombol char sort pada halaman

menu utama. Rancangan halaman character sorting dapat dilihat pada Gambar 3.8.

Character Sorting

TOTAL CHARACTER

TYPE CHAR

TOTAL SAMPEL

BITONIC SORT

ODD-EVEN SORT

COMB SORT

ANALYZE

SEE RESULT

SEE RESULT

SEE RESULT

SORT

0%

0%

0%

1

5

6

7

8

15

16

17

18

19

12

13

14

9

10

11

2

3

4

Gambar 3.8. Rancangan Halaman Character Sorting

Universitas Sumatera Utara

Page 57: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Untuk keterangan gambar 3.8 dapat dilihat pada Tabel 3.7

Tabel 3.7. Keterangan halaman Character Sorting

No Jenis Objek Keterangan 1 Label Judul halaman (Character Sorting) 2 Label - 3 Label - 4 Label - 5 Text Box Untuk menerima inputan total character yang akan diurutkan

dari user. 6 Combo Box Untuk memilih tipe karakter yang akan diurutkan (Number

Only, Alphabet Only, Alphanumeric Only dan Alphanumeric + Symbol)

7 Combo Box Untuk memilih banyaknya sampel yang akan diurutkan (2-10) 8 Panel Panel ini berisi label, rich text box sesuai dengan banyaknya

sampel yang dipilih. Label dan rich text box ini akan muncul ketika user menekan tombol generate data.

9 Label - 10 Label - 11 Label - 12 Progress Bar Untuk menampilkan kemajuan suatu proses pengurutan

menggunakan algoritma bitonic sort. Progress bar akan aktif ketika menekan tombol sort.

13 Progress Bar Untuk menampilkan kemajuan suatu proses pengurutan menggunakan algoritma odd-even sort. Progress bar akan aktif ketika menekan tombol sort.

14 Progress Bar Untuk menampilkan kemajuan suatu proses pengurutan menggunakan algoritma comb sort. Progress bar akan aktif ketika menekan tombol sort.

15 Button Tombol sort untuk memulai proses pengurutan data bertipe char dengan menggunakan algoritma bitonic sort, odd-even sort dan comb sort. Tombol sort akan akan aktif ketika user menekan tombol generate data.

16 Button Tombol see result, untuk membuka halaman Result Bitonic Sort. Tombol ini aktif ketika user menekan tombol sort.

17 Button Tombol see result, untuk membuka halaman Result Odd-Even Sort. Tombol ini aktif ketika user menekan tombol sort.

18 Button Tombol see result, untuk membuka halaman Result Comb Sort. Tombol ini aktif ketika user menekan tombol sort.

19 Button Tombol analyze, untuk menampilkan halama Grafik Analyze.

Universitas Sumatera Utara

Page 58: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.4.3. Rancangan Halaman Result

Halaman result tampil setelah user menekan tombol see result pada halaman character

sorting. Halaman result ada 3 yaitu Bitonic Sort Result, Odd-Even Sort Result dan Comb

Sort Result. Rancangan halaman Bitonic Sort Result dapat dilihat pada Gambar 3.9.

BITONIC SORT RESULT

TOTAL CHARACTER

TOTAL SAMPEL

AVERAGE TIME ms

1

2

3 4

5

6

7

8

9 10

Gambar 3.9. Rancangan Halaman Result Bitonic Sort Result

Keterangan gambar 3.9 dapat dilihat pada Tabel 3.8

Tabel 3.8. Keterangan Halaman Bitonic Sort Result

No Jenis Objek Keterangan 1 Label Judul halaman (Bitonic Sort Result) 2 Panel Panel ini berisikan label dan rich text box. Rich text box berisikan data

bertipe char yang telah terurut. Jumlah label dan rich text box sesuai dengan inputan total sampel.Label dan rich textbox muncul ketika user menekan tombol see result.

3 Panel Panel ini berisikan label dan rich text box. Rich text box berisikan data waktu yang dibutuhkan untuk melakukan pengurutan setiap sampel. Jumlah label dan rich text box sesuai dengan banyak sampel yang dipilih user. Label dan rich textbox muncul ketika user menekan tombol see result.

4 Label - 5 Label - 6 Label - 7 Text Box Menampilkan banyak karakter yang diurutkan per sampelnya. 8 Text Box Menampilkan banyak sampel. 9 Text Box Menampilkan rata-rata waktu yang dibutuhkan utuk mengurutkan data

Universitas Sumatera Utara

Page 59: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

bertipe char dengan menggunakan algoritma bitonic sort. 10 Label -

Rancangan halaman Odd-Even Sort Result tidak jauh berbeda dengan halaman Bitonic

Sort Result. Rancangan halaman Odd-Even Sort Result dapat dilihat pada Gambar 3.10.

ODD-EVEN SORT RESULT

TOTAL CHARACTER

TOTAL SAMPEL

AVERAGE TIME ms

1

2

3 4

5

6

7

8

9 10

Gambar 3.10. Rancangan Halaman Odd-Even Sort Result

Keterangan gambar 3.10 dapat dilihat pada Tabel 3.9.

Tabel 3.9. Keterangan Halaman Odd-Even Sort Result

No Jenis Objek Keterangan 1 Label Judul halaman (Odd-Even Sort Result) 2 Panel Panel ini berisikan label dan text box. Rich text box berisikan data

bertipe char yang telah terurut. Jumlah label dan rich text box sesuai dengan inputan total sampel.Label dan rich textbox muncul ketika user menekan tombol see result.

3 Panel Panel ini berisikan label dan rich text box. Rich text box berisikan data waktu yang dibutuhkan untuk melakukan pengurutan setiap sampel. Jumlah label dan rich text box sesuai dengan banyak sampel yang dipilih user. Label dan rich textbox muncul ketika user menekan tombol see result.

4 Label - 5 Label - 6 Label - 7 Text Box Menampilkan banyak karakter yang diurutkan per sampelnya. 8 Text Box Menampilkan banyak sampel. 9 Text Box Menampilkan rata-rata waktu yang dibutuhkan utuk mengurutkan data

bertipe char dengan menggunakan algoritma odd-even sort.

Universitas Sumatera Utara

Page 60: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

No Jenis Objek Keterangan 10 Label -

Rancangan halaman Comb Sort Result dapat dilihat pada Gambar 3.11.

COMB SORT RESULT

TOTAL CHARACTER

TOTAL SAMPEL

AVERAGE TIME ms

1

2

3 4

5

6

7

8

9 10

Gambar 3.11. Rancangan Halaman Comb Sort Result

Keterangan gambar 3.11 dapat dilihat pada Tabel 3.10

Tabel 3.10. Keterangan Halaman Comb Sort Result

No Jenis Objek Keterangan 1 Label Judul halaman (Comb Sor Result t) 2 Panel Panel ini berisikan label dan rich text box. Rich text box berisikan data

bertipe char yang telah terurut. Jumlah label dan rich text box sesuai dengan inputan total sampel.Label dan rich textbox muncul ketika user menekan tombol see result.

3 Panel Panel ini berisikan label dan text box. Rich text box berisikan data waktu yang dibutuhkan untuk melakukan pengurutan setiap sampel. Jumlah label dan rich text box sesuai dengan banyak sampel yang dipilih user. Label dan rich textbox muncul ketika user menekan tombol see result.

4 Label - 5 Label - 6 Label - 7 Text Box Menampilkan banyak karakter yang diurutkan per sampelnya. 8 Text Box Menampilkan banyak sampel.

Universitas Sumatera Utara

Page 61: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

No Jenis Objek Keterangan 9 Text Box Menampilkan rata-rata waktu yang dibutuhkan utuk mengurutkan data

bertipe char dengan menggunakan algoritma comb sort. 10 Label -

3.4.4. Rancangan Halaman Char Sorting Analyze

Halaman char sorting analyze tampil setelah user menekan tombol analyze pada halaman

character sorting. Rancangan halaman char sorting analyze dapat dilihat pada Gambar

3.12.

GRAPHIC ANALYZE

BITONIC SORT

ODD-EVEN SORT

COMB SORT

WAKTU PENGURUTAN

KETERANGAN:

TOTAL CHARACTER

AVERAGE TIME

B

OD

C

ms

ms

ms

KESIMPULAN

16

2

1

65

3

7

4

9

8

10

11

12

13

14

15

Print Save

17 18

Gambar 3.12. Rancangan Halaman Char Sorting Analyze

Keterangan gambar 3.12 dapat dilihat pada Tabel 3.11.

Tabel 3.11. Keterangan Halaman Char Sorting Analyze

No Jenis Objek Keterangan 1 Label Judul halaman (Char Sorting Analyze) 2 Panel Panel ini berisikan grafik yang menunjukkan perbandingan waktu

pengurutan yang dilakukan dengan menggunakan algoritma bitonic sort, odd-even sort dan comb sort.

3 Label - 4 Label - 5 Text Box Menampilkan banyak karakter yang diurutkan

Universitas Sumatera Utara

Page 62: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

No Jenis Objek Keterangan 6 Label - 7 Label - 8 Label - 9 Label - 10 Text Box Menampilkan rata-rata waktu yang dibutuhkan untuk mengurutkan

dengan menggunakan algoritma bitonic sort. 11 Text Box Menampilkan rata-rata waktu yang dibutuhkan untuk mengurutkan

dengan menggunakan algoritma odd-even sort. 12 Text Box Menampilkan rata-rata waktu yang dibutuhkan untuk mengurutkan

dengan menggunakan algoritma comb sort. 13 Label - 14 Label - 15 Label - 16 Label Menampilkan kesimpulan hasil perbandingan waktu pengurutan. 17 Button Tombol Print. Untuk mencetak grafik perbandingan. 18 Button Tombol Save. Menyimpan grafik perbandingan ke dalam file bertipe

pdf.

3.4.5. Rancangan Halaman Word Sorting

Halaman word sorting tampil setelah user menekan tombol word sort pada halaman

menu utama. Rancangan halaman word sorting dapat dilihat pada Gambar 3.13 .

WORD SORTING

Path: Open File

UNSORTED SORTEDBITONIC SORT

SORTEDODD-EVEN SORT

SORTEDCOMB SORT

TIME TIME TIMEms ms ms

BITONIC SORT

ODD-EVEN SORT

COMB SORT

0%

0%

0%

SORT ANALYZE

1

23

4

5

9

6 7 8

10 11 12

13

14 15

1617 18

19

20

21

22

23

24

25

26

27

28 29

Universitas Sumatera Utara

Page 63: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 3.13. Rancangan Halaman Word Sorting

Keterangan gambar 3.13 dapat dilihat pada Tabel 3.12.

Tabel 3.12. Keterangan Halaman Word Sorting

No Jenis Objek Keterangan 1 Label Judul halaman (Word Sorting) 2 Label - 3 Text Box Untuk menampilkan letak dan nama file yang dipilih. 4 Button Tombol open file, untuk membuka opendialog dan memilih file

yang berextension txt. 5 Label - 6 Label - 7 Label - 8 Label - 9 Text Box Menampilkan data yang belum terurut yang berasal dari file yang

dipilih oleh user. 10 Text Box Menampilkan data yang telah diurutkan dengan menggunakan

algoritma bitonic sort. 11 Text Box Menampilkan data yang telah diurutkan dengan menggunakan

algoritma odd-even sort. 12 Text Box Menampilkan data yang telah diurutkan dengan menggunakan

algoritma comb sort. 13 Label - 14 Text Box Menampilkan waktu pengurutan data dengan menggunakan

algoritma bitonic sort dalam satuan ms (milisecond) 15 Label - 16 Label - 17 Text Box Menampilkan waktu pengurutan data dengan menggunakan

algoritma odd-even sort dalam satuan ms (milisecond) 18 Label - 19 Label - 20 Text Box Menampilkan waktu pengurutan data dengan menggunakan

algoritma comb sort dalam satuan ms (milisecond) 21 Label - 22 Label - 23 Label - 24 Label - 25 Progress Bar Untuk menampilkan kemajuan suatu proses pengurutan

menggunakan algoritma bitonic sort. Progress bar akan aktif ketika menekan tombol sort.

26 Progress Bar Untuk menampilkan kemajuan suatu proses pengurutan menggunakan algoritma odd-even sort. Progress bar akan aktif ketika menekan tombol sort.

27 Progress Bar Untuk menampilkan kemajuan suatu proses pengurutan menggunakan algoritma comb sort. Progress bar akan aktif ketika

Universitas Sumatera Utara

Page 64: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

No Jenis Objek Keterangan menekan tombol sort.

28 Button Tombol sort, untuk memulai melakukan penguruta data bertipe string dengan menggunakan algoritma bitonic sort, odd-even sort dan comb sort.

29 Button Tombol analyze, menampilkan halaman graphic analyze.

3.4.6. Rancangan Halaman String Sorting Analyze

Halaman string sorting analyze tampil setelah user menekan tombol analyze pada

halaman word sorting. Rancangan halaman string sorting analyze dapat dilihat pada

Gambar 3.14.

STRING SORTING ANALYZE

BITONIC SORT

ODD-EVEN SORT

COMB SORT

WAKTU PENGURUTAN

KETERANGAN:

TIME

B

OD

C

ms

ms

ms

KESIMPULAN

14

2

1

6

5

3

48

9

10

11

12

137

Print Save

15 16

Gambar 3.14. Rancangan Halaman String Sorting Analyze

Keterangan gambar 3.14 dapat dilihat pada Tabel 3.13.

Tabel 3.13. Keterangan Halaman String Sorting Analyze

No Jenis Objek Keterangan 1 Label Judul halaman (String Sorting Analyze) 2 Panel Panel ini berisikan grafik yang menunjukkan perbandingan waktu

pengurutan yang dilakukan dengan menggunakan algoritma bitonic

Universitas Sumatera Utara

Page 65: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

No Jenis Objek Keterangan sort, odd-even sort dan comb sort.

3 Label - 4 Label - 5 Label - 6 Label - 7 Label - 8 Text Box Menampilkan waktu yang dibutuhkan untuk mengurutkan dengan

menggunakan algoritma bitonic sort. 9 Text Box Menampilkan waktu yang dibutuhkan untuk mengurutkan dengan

menggunakan algoritma odd-even sort. 10 Text Box Menampilkan waktu yang dibutuhkan untuk mengurutkan dengan

menggunakan algoritma comb sort. 11 Label - 12 Label - 13 Label - 14 Label Menampilkan kesimpulan hasil perbandingan waktu pengurutan. 15 Button Tombol Print. Untuk mencetak grafik perbandingan. 16 Button Tombol Save. Menyimpan grafik perbandingan ke dalam file bertipe

pdf.

3.4.7. Rancangan Halaman About

Halaman about tampil setelah user menekan tombol about pada halaman utama.

Rancangan halaman about dapat dilihat pada Gambar 3.15.

ABOUT1

23

Gambar 3.15. Rancangan Halaman About

Keterangan gambar 3.15 dapat dilihat pada Tabel 3.14.

Tabel 3.14. Keterangan Halaman About

No Jenis Objek Keterangan 1 Label Judul halaman (About) 2 Picture Box Menampilkan foto 3 Label Menampilkan biodata

Universitas Sumatera Utara

Page 66: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Implementasi sistem merupakan penerapan hasil perancangan yang telah dibuat dari

penggabungan program menjadi suatu aplikasi. Pada tahapan implementasi ini aplikasi yang

telah dianalisis dan dirancang akan difungsikan, sehingga diketahui bagaimana kinerja

aplikasi ini. Aplikasi ini diimplementasikan dari perancangan dari bab sebelumnya. Aplikasi

ini dibangun dengan menggunakan bahasa pemrograman C# dan menggunakan software

Microsoft Visual Studio 2010 Ultimate.

Pada aplikasi ini terdapat 9 (sembilan) tampilan halaman, yaitu halaman menu utama,

halaman character sorting, halaman bitonic sort result, halaman odd-even sort result,

halaman comb sort result, halaman char sorting analyze, halaman word sorting, halaman

string sorting analyze dan halaman about.

4.2. Antarmuka Sistem

Setelah melewati tahap analisis perancangan antarmuka pengguna, rancangan digunakan

sebagai acuan untuk pengkodingan halaman-halaman pada perangkat lunak. Pada aplikasi

perbadingan kinerja algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort ini terdapat

beberapa halaman yaitu:

1. Halaman Menu Utama.

2. Halaman Character Sorting.

3. Halaman Bitonic Sort Result.

4. Halaman Odd-Even Sort Result.

5. Halaman Comb Sort Result.

6. Halaman Char Sorting Analyze.

7. Halaman Word Sorting.

8. Halaman String Sorting Analyze.

9. Halaman About

Universitas Sumatera Utara

Page 67: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

4.2.1. Halaman Menu Utama

Halaman menu utama ini merupakan halaman yang pertama kali muncul ketika aplikasi

dijalankan. Tampilan halaman menu utama dapat dilihat pada Gambar 4.1.

Gambar 4.1. Halaman Menu Utama

4.2.2. Halaman Character Sorting

Halaman Character Sorting merupakan halaman yang muncul ketika user menekan

tombol Char Sort pada halaman Menu Utama. Pada halaman Character Sorting, user

harus memasukkan jumlah karakter yang akan diurutkan, total sampel, tipe karakter yang

akan diurutkan dan sort order. Untuk tipe karakter terdapat 4(empat) jenis yaitu numeric

(karakter angka), alphabet (karakter huruf), alphanumeric (karakter angka dan huruf) dan

alphanumeric dan symbol (karakter angka, huruf dan simbol). Setiap sampel berisikan

karakter yang berjumlah sesuai dengan yang dimasukkan oleh user pada textbox total

character. Tampilan halaman Character Sorting sebelum proses pengurutan dapat dilihat

pada Gambar 4.2 dan tampilan halaman Character Sorting setelah proses pengurutan

dapat dilihat pada Gambar 4.3.

Universitas Sumatera Utara

Page 68: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.2. Halaman Character Sorting sebelum proses sorting

Ketika user mengisi total karakter, tipe karaktr dan total sampel dan menekan tombol

Generate Data, maka panel akan menampilkan data acak sesuai dengan inputan user.

Total sampel yang dapat dipilih user minimal 2 (dua) dan maksimal 10 (sepuluh). Sampel

pertama hasil generate data merupakan sampel data terurut sedangkan sampel kedua

sampai dengan sepuluh merupakan sampel data acak. Hal ini dibuat untuk

membandingkan running time algoritma Bitonic sort, Odd-Even sort dan Comb sort

dalam melakukan pengurutan data terurut dan data acak.

Universitas Sumatera Utara

Page 69: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.3. Halaman Character Sorting setelah proses sorting

Ketika user menekan tombol start maka progress bar akan jalan. Setelah proses

pengurutan selesai tombol start disable (tidak dapat ditekan), tombol see result untuk

bitonic, odd-ven ,comb dan tombol analyze enable (dapat ditekan). Jika proses

pengurutan menggunakan ketiga algoritma tersebut belum selesai maka tombol analyze

tidak dapat ditekan.

4.2.3. Halaman Bitonic Sort Result

Halaman Bitonic Sort Result merupakan halaman yang muncul ketika user menekan

tombol see result pada halaman character sorting. Tampilan halaman Bitonic Sort Result

dapat dilihat pada Gambar 4.4. Pada halaman Bitonic Sort Result akan ditampilkan hasil

pengurutan karakter.

Universitas Sumatera Utara

Page 70: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Selain menampilkan hasil pengurutan, halaman ini juga menampilkan waktu yang

dibutuhkan untuk melakukan pengurutan tiap sampel dan rata-rata waktu.

Gambar 4.4. Halaman Bitonic Sort Result

4.2.4. Halaman Odd-Even Sort Result

Halaman Odd-Even Sort Result merupakan halaman yang akan muncul ketika user

menekan tombol see result pada halaman character sorting. Tampilan halaman Odd-Even

Sort Result dapat dilihat pada Gambar 4.5. Pada halaman Odd-Even Sort Result akan

ditampilkan hasil pengurutan karakter. Selain menampilkan hasil pengurutan, halaman ini

Universitas Sumatera Utara

Page 71: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

juga menampilkan waktu yang dibutuhkan untuk melakukan pengurutan tiap sampel dan

rata-rata waktu.

Gambar 4.5. Halaman Odd-Even Sort Result

4.2.5. Halaman Comb Sort Result

Halaman Comb Sort Result merupakan halaman yang akan muncul ketika user menekan

tombol See Result pada halaman Character Sorting. Tampilan halaman Comb Sort Result

dapat dilihat pada Gambar 4.6. Pada halaman Comb Sort Result akan ditampilkan hasil

pengurutan karakter. Selain menampilkan hasil pengurutan, halaman ini juga

menampilkan waktu yang dibutuhkan untuk melakukan pengurutan tiap sampel dan rata-

rata waktu.

Universitas Sumatera Utara

Page 72: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.6. Halaman Comb Sort Result

4.2.6. Halaman Char Sorting Analyze

Halaman Char Sorting Analyze merupakan halaman yang tampil ketika user menekan

tombol analyze pada halaman character sorting. Pada halaman ini terdapat 2(dua) grafik.

Grafik pertama merupakan grafik perbandingan waktu pengurutan pada data bertipe char

yang terurut (Sorted Sample Data) sedangkan grafik kedua merupakan grafik

perbandingan rata-rata waktu pengurutan pada data acak yang bertipe char (Random

Sample Data).Tampilan halaman char sorting analyze dapat dilihat pada Gambar 4.6.

Pada halaman char sorting analyze terdapat tombol lambang print yang berfungsi untuk

mencetak grafik perbandingan, dapat dilihat pada Gambar 4.7. Selain itu terdapat juga

tombol lambang pdf yang berfungsi untuk menyimpan grafik perbandingan ke dalam file

bertipe pdf, dapat dilihat pada Gambar 4.8.

Universitas Sumatera Utara

Page 73: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.6. Halaman Char Sorting Analyze

Gambar 4.7. Dialog print pada halaman Char Sorting Analyze

Universitas Sumatera Utara

Page 74: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.8. Dialog save pada halaman Char Sorting Analyze

4.2.7. Halaman Word Sorting

Halaman Word Sorting merupakan halaman yang tampil ketika user menekan tombol

word sort pada halaman menu utama. Tampilan halaman word sorting sebelum proses

pengurutan dapat dilihat pada Gambar 4.9 dan tampilan halaman word sorting setelah

proses pengurutan dapat dilihat pada Gambar 4.10.

Gambar 4.9. Halaman Word Sorting sebelum proses sorting

Universitas Sumatera Utara

Page 75: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.10. Halaman Word Sorting setelah proses sorting

4.2.8. Halaman String Sorting Analyze

Halaman String Sorting Analyze merupakan halaman yang tampil ketika user menekan

tombol analyze pada halaman word sorting. Tampilan halaman string sorting analyze

dapat dilihat pada Gambar 4.11.

Gambar 4.11. Halaman String Sorting Analyze

Universitas Sumatera Utara

Page 76: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Pada halaman string sorting analyze terdapat tombol lambang print yang berfungsi untuk

mencetak grafik perbandingan, dapat dilihat pada Gambar 4.12. Selain itu terdapat juga

tombol lambang pdf yang berfungsi untuk menyimpan grafik perbandingan ke dalam file

bertipe pdf, dapat dilihat pada Gambar 4.13.

Gambar 4.12. Dialog print pada halaman String Sorting Analyze

Gambar 4.13. Dialog save pada halaman String Sorting Analyze

Universitas Sumatera Utara

Page 77: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

4.2.9. Halaman About

Halaman About merupakan halaman yang tampil ketika user menekan tombol about pada

halaman menu utama. Tampilan about dapat dilihat pada Gambar 4.14.

Gambar 4.14. Halaman About

4.3. Pengujian Sistem

Pengujian sistem dilakukan untuk mengetahui bagaimana kinerja algoritma Bitonic sort,

Odd-Even sort dan Comb sort dalam melakukan pengurutan pada data bertipe char dan

string. Dalam pengujian yang akan dibandingkan adalah waktu yang dibutuhkan oleh

masing-masing algoritma dalam melakukan pengurutan yang kemudian hasil perbandingan

tersebut akan ditampilkan dalam bentuk grafik.

Aplikasi ini terdiri dari 2 (dua) menu utama pengurutan, yaitu pengurutan yang dilakukan

pada data bertipe char (Menu Character Sorting) dan pengurutan yang dilakukan pada data

yang bertipe string (Menu Word Sorting).

3.3.1. Pengujian Generate Data

Generate data merupakan proses untuk membangkitkan data acak yang akan diurutkan.

Pada aplikasi ini, sistem menerima inputan dari user untuk menentukan banyak karakter

Universitas Sumatera Utara

Page 78: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

yang akan diurutkan, contoh n=100. Data acak yang berhasil dibangkitkan sistem dengan

total karakter :100, tipe karakter: numeric, total sampel : 2 dan sort order : ascending

dapat dilihat pada Gambar 4.15. Untuk total sampel, user dapat memilih minimal 2

(sampel) maksimal 10 (sepuluh). Sampel pertama hasil pembangkitan data (generate

data) merupakan sampel data terurut sedangkan sampel kedua sampai dengan sampel

sepuluh merupakan sampel data acak.

Gambar 4.15. Generate data Numeric

Data acak yang berhasil dibangkitkan sistem dengan total karakter :100, tipe karakter: alphabet,

total sampel : 2 dan sort order : ascending dapat dilihat pada Gambar 4.16.

Gambar 4.16. Generate data Alphabet

Data acak yang berhasil dibangkitkan sistem dengan total karakter :100, tipe karakter:

alphanumeric, total sampel : 2 dan sort order : ascending dapat dilihat pada Gambar

4.17.

Universitas Sumatera Utara

Page 79: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.17. Generate data Alphanumeric

Data acak yang berhasil dibangkitkan sistem dengan total karakter :100, tipe karakter:

alphanumeric & symbol, total sampel : 2 dan sort order : ascending dapat dilihat pada

Gambar 4.18.

Gambar 4.18. Generate data Alphanumeric & Symbol

3.3.2. Pengujian Pengurutan Karakter

Pada proses ini sistem melakukan pengurutan data hasil generate data dengan jumlah 100

karakter, tipe karakter numeric, alphabet, alphanumeric dan alphanumeric & symbol,

Universitas Sumatera Utara

Page 80: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

dengan jumlah sampel 2(dua). Hasil pengurutan n=100, tipe karakter = numeric dan total

sampel = 2 dengan menggunakan algoritma Bitonic Sort dapat dilihat pada Gambar 4.19.

Gambar 4.19. Hasil pengurutan algoritma Bitonic Sort tipe karakter numeric

Hasil pengurutan n=100, tipe karakter = numeric dan total sampel = 2 dengan

menggunakan algoritma Odd-Even Sort dapat dilihat pada Gambar 4.20.

Gambar 4.20. Hasil pengurutan algoritma Odd-Even Sort tipe karakter numeric

Hasil pengurutan n=100, tipe karakter = numeric dan total sampel = 2 dengan

menggunakan algoritma Comb Sort dapat dilihat pada Gambar 4.21.

Universitas Sumatera Utara

Page 81: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.21. Hasil pengurutan algoritma Comb Sort tipe karakter numeric

Hasil pengurutan n=100, tipe karakter= alphabet dan total sampel = 2 menggunakan

algoritma Bitonic Sort dapat dilihat pada Gambar 4.22.

Gambar 4.22. Hasil pengurutan algoritma Bitonic Sort tipe karakter alphabet

Hasil pengurutan n=100, tipe karakter= alphabet dan total sampel = 2 menggunakan

algoritma Odd-Even Sort dapat dilihat pada Gambar 4.23

Universitas Sumatera Utara

Page 82: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.23. Hasil pengurutan algoritma Odd-Even Sort tipe karakter alphabet

Hasil pengurutan n=100, tipe karakter= alphabet dan total sampel = 2 menggunakan

algoritma Comb Sort dapat dilihat pada Gambar 4.24.

Gambar 4.24. Hasil pengurutan algoritma Comb Sort tipe karakter alphabet

Hasil pengurutan n=100, tipe karakter= alphanumeric dan total sampel = 2 dengan

menggunakan algoritma Bitonic Sort dapat dilihat pada Gambar 4.25.

Universitas Sumatera Utara

Page 83: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.25. Hasil pengurutan algoritma Bitonic Sort tipe karakter alphanumeric

Hasil pengurutan n=100, tipe karakter= alphanumeric dan total sampel = 2 dengan

menggunakan algoritma Odd-Even Sort dapat dilihat pada Gambar 4.26.

Gambar 4.26. Hasil pengurutan algoritma Odd-Even Sort tipe karakter alphanumeric

Universitas Sumatera Utara

Page 84: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Hasil pengurutan n=100, tipe karakter= alphanumeric dan total sampel = 2 dengan

menggunakan algoritma Comb Sort dapat dilihat pada Gambar 4.27.

Gambar 4.27. Hasil pengurutan algoritma Comb Sort tipe karakter alphanumeric

Hasil pengurutan n=100, tipe karakter= alphanumeric & symbol dan total sampel = 2

dengan menggunakan algoritma Bitonic Sort dapat dilihat pada Gambar 4.28.

Gambar 4.28. Hasil pengurutan algoritma Bitonic Sort tipe karakter alphanumeric & symbol

Universitas Sumatera Utara

Page 85: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Hasil pengurutan n=100, tipe karakter= alphanumeric & symbol dan total sampel = 2

dengan menggunakan algoritma Odd-Even Sort dapat dilihat pada Gambar 4.29.

Gambar 4.29. Hasil pengurutan algoritma Odd-Even Sort tipe karakter alphanumeric & symbol

Hasil pengurutan n=100, tipe karakter= alphanumeric & symbol dan total sampel = 2

dengan menggunakan algoritma Comb Sort dapat dilihat pada Gambar 4.30.

Gambar 4.30. Hasil pengurutan algoritma Comb Sort tipe karakter alphanumeric &

symbol

3.3.3. Pengujian Grafik Perbandingan

Grafik perbandingan dapat dilihat setelah proses pengurutan selesai dilakukan. Terdapat 2

grafik perbandingan karakter. Grafik pertama menggambarkan perbandingan waktu yang

dibutuhkan algoritma bitonic sort, odd-even sort dan comb sort melakukan pengurutan

Universitas Sumatera Utara

Page 86: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

data terurut. Grafik kedua menggambarkan perbandingan waktu yang dibutuhkan ketiga

algoritma tersebut untuk mengurutkan data acak. Grafik perbandingan dengan total

karakter : 100, tipe karakter : numeric dapat dilihat pada Gambar 4.31.

Gambar 4.31. Grafik perbandingan pengurutan karakter numeric

Grafik perbandingan dengan total karakter : 100, tipe karakter : alphabet dapat dilihat

pada Gambar 4.32.

Gambar 4.32. Grafik perbandingan pengurutan karakter alphabet

Universitas Sumatera Utara

Page 87: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Grafik perbandingan dengan total karakter : 100, tipe karakter : alphanumeric dapat

dilihat pada Gambar 4.33.

Gambar 4.33. Grafik perbandingan pengurutan karakter alphanumeric

Grafik perbandingan dengan total karakter : 100, tipe karakter : alphanumeric & symbol

dapat dilihat pada Gambar 4.34.

Gambar 4.34. Grafik perbandingan pengurutan karakter alphanumeric & symbol

Universitas Sumatera Utara

Page 88: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.3.4. Hasil Pengujian Pengurutan Karakter

Berdasarkan hasil pengujian dari penelitian di atas, hasil running time dari pengurutan

karakter menggunakan algoritma bitonic sort, odd-even sort dan comb sort yang

dilakukan terhadap jenis karakter yang berbeda. Hasil pengujian dibagi atas 2(dua) bagian

yaitu pengurutan data terurut dan pengurutan data acak. Adapun hasil pengujian ketiga

algoritma yang digunakan dapat dilihat pada Tabel 4.1 dan Tabel 4.2.

Tabel 4.1 Hasil Pengujian algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort

pada pengurutan data terurut

Setelah mendapatkan hasil pengujian pengurutan data terurut dari Tabel 4.1 maka dapat

dibuat grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe

karakter numeric dapat dilihat pada Gambar 4.35.

Total Karakter

Tipe Karakter Running Time (ms) Bitonic Sort Odd-Even Sort Comb Sort

100 Numeric 0,26120 0,02090 0,05780

Alphabet 0,52060 0,00650 0,07270

Alphanumeric 0,36290 0,01070 0,05870

Alphanumeric & symbol 4,33120 0,01300 0,06480

1000 Numeric 26,13550 0,16460 1,01280

Alphabet 26,92160 0,02470 0,90740

Alphanumeric 27,44140 0,02560 0,81680

Alphanumeric & symbol 7,16540 0,03870 0,81590

5000 Numeric 28,48410 0,46000 5,46400

Alphabet 46,25570 0,40540 6,38860

Alphanumeric 25,34520 0,24440 5,46400

Alphanumeric & symbol 48,23940 0,31670 3,89690

10000 Numeric 68,83210 0,66340 16,47270

Alphabet 82,14410 3,37950 15,00320

Alphanumeric 76,99260 1,41680 32,17760

Alphanumeric & symbol 64,69390 0,35920 13,88580

Universitas Sumatera Utara

Page 89: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.35 Grafik perbandingan running time pengurutan data terurut untuk

tipe karakter numeric

Grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe karakter

alphabet dapat dilihat pada Gambar 4.36.

Gambar 4.36 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter alphabet

0,2612

26,1355 28,484168,8321

0,0209

0,1646 0,46 0,6634

0,0578

1,0128

5,46416,4727

0,01

0,1

1

10

100 1000 5000 10000

Wak

tu (m

s)

Jumlah karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

0,5206

26,921646,2557

82,1441

0,00650,0247

0,4054

3,3795

0,0727

0,9074

6,388615,0032

0,001

0,01

0,1

1

10

100 1000 5000 10000

Wak

tu (m

s)

Jumlah karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

Universitas Sumatera Utara

Page 90: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe karakter

alphanumeric dapat dilihat pada Gambar 4.37.

Gambar 4.37 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter alphanumeric

Grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe karakter

alphanumeric & symbol dapat dilihat pada Gambar 4.38.

Gambar 4.38 Grafik perbandingan running time pengurutan data terurut untuk tipe karakter alphanumeric & symbol

Berdasarkan grafik pada Gambar 4.35 - Gambar 4.38 dijelaskan bahwa algoritma Odd-

Even sort memiliki waktu tercepat dalam mengurutkan data terurut numeric, alphabet,

0,3629

27,4414 25,345276,9926

0,01070,0256

0,2444

1,4168

0,0587

0,8168

5,464

32,1776

0,01

0,1

1

10

100 1000 5000 10000

Wak

tu (m

s)

Jumlah karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

4,3312 7,1654

48,2394 64,6939

0,0130,0387

0,3167 0,35920,0648

0,81593,8969

13,8858

0,01

0,1

1

10

100 1000 5000 10000

Wak

tu (m

s)

Jumlah karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

Universitas Sumatera Utara

Page 91: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

alphanumeric dan alphanumeric & symbol dibandingkan algoritma Comb sort dan

algoritma Bitonic sort. Algoritma Bitonic memiliki waktu terlama dalam melakukan

pengurutan data terurut.

Tabel 4.2 Hasil Pengujian algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort

pada pengurutan data acak

Total Sampel : 5 Sort Order : Ascending

Total Karakter

Sampel Tipe Karakter

Running Time (ms) Bitonic Sort Odd-Even Sort Comb Sort

100 2 Numeric 1,25820 0,47020 0,05970 3 0,96750 2,03680 0,06810 4 0,18470 0,30790 0,06010 5 0,18240 0,29990 0,05590

Rata-rata 0,64820 0,77870 0,06095 100 2 Alphabet 0,31810 1,56660 0,04710

3 1,00910 0,31350 0,03960 4 0,19640 1,19010 0,04010 5 0,17160 0,30830 0,05830

Rata-rata 0,42380 0,84463 0,04628 100 2 Alphanumeric 0,42960 0,56870 0,06010

3 0,17630 0,35310 0,06290 4 0,17860 1,15180 0,06110 5 0,21500 0,39230 0,06850

Rata-rata 0,24988 0,61648 0,06315 100 2 Alphanumeric

& symbol 0,33260 0,32370 0,05920

3 0,22160 0,31770 0,06570 4 0,18140 0,23550 0,06340 5 0,18700 0,22020 0,06250

Rata-rata 0,23065 0,27428 0,06270 1000 2 Numeric 4,56920 51,44770 2,36900

3 2,27430 19,58120 0,93300 4 2,78090 18,84080 0,56630 5 2,62750 18,76760 0,56120

Rata-rata 3,06298 27,15933 1,10738 1000 2 Alphabet 4,70260 48,52160 1,06780

3 2,51460 20,54830 2,09330 4 2,76790 21,16320 0,89060 5 2,41750 20,41120 0,69140

Rata-rata 3,10065 27,66108 1,18578 1000 2 Alphanumeric 4,74970 51,13090 1,05760

Universitas Sumatera Utara

Page 92: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3 3,50220 20,99250 1,50310 4 4,34940 20,82170 0,70210 5 2,42030 20,87210 0,65360

Rata-rata 3,75540 28,45430 0,97910 1000 2 Alphanumeric

& symbol 3,67200 28,66090 3,24930

3 2,79350 20,84970 0,82150 4 2,33310 20,71540 0,64610 5 2,98200 20,66310 1,63420

Rata-rata 2,94515 22,72228 1,58778 5000 2 Numeric 22,64630 514,15360 9,40940

3 20,54930 464,78570 5,87690 4 17,19400 461,63100 6,01210 5 17,71510 477,11140 5,50780

Rata-rata 19,52618 479,42043 6,70155 5000 2 Alphabet 57,54110 597,59980 7,23820

3 19,08390 524,53530 7,35760 4 21,00230 519,42680 7,07350 5 19,32740 513,07260 7,64220

Rata-rata 29,23868 538,65863 7,32788 5000 2 Alphanumeric 27,70730 557,33020 7,67530

3 17,34510 521,82100 8,17640 4 16,90010 519,07920 6,52020 5 18,90010 519,45990 8,72360

Rata-rata 20,21315 529,42258 7,77388 5000 2 Alphanumeric

& symbol 27,60180 571,17590 6,90230

3 21,04430 509,41270 8,60330 4 18,35010 516,74240 7,29980 5 17,89980 515,41980 9,02730

Rata-rata 21,22400 528,18770 7,95818 10000 2 Numeric 41,40330 1957,84230 14,38590

3 39,56420 2194,32120 12,16800 4 42,04990 2331,42240 13,29700 5 41,10610 2011,22140 13,67590

Rata-rata 41,03088 2123,70183 13,38170 10000 2 Alphabet 52,73020 2120,81490 15,40020

3 43,87630 2039,70280 15,86720 4 41,74060 2042,76970 15,95490 5 41,62950 2114,98840 16,00390

Rata-rata 44,99415 2079,56895 15,80655 10000 2 Alphanumeric 50,89490 2210,12170 12,98910

3 40,85790 2123,39060 16,31880 4 39,09910 2168,42920 17,46080 5 42,84440 2166,86860 17,24900

Universitas Sumatera Utara

Page 93: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Rata-rata 43,42408 2167,20253 16,00443 10000 2 Alphanumeric

& symbol 47,71220 2145,07270 15,41510

3 42,65920 2077,15590 13,42530 4 39,90100 2157,92610 15,76590 5 43,75360 2070,64170 11,34600

Rata-rata 43,50650 2112,69910 13,98808

Setelah mendapatkan hasil pengujian pengurutan data terurut dari Tabel 4.2 maka dapat

dibuat grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe

karater numeric dapat dilihat pada Gambar 4.39.

Gambar 4.39. Grafik perbandingan running time pengurutan data acak untuk tipe karakter numeric

Grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe karater

alphabet dapat dilihat pada Gambar 4.40.

0,6482

3,06298

19,5261841,03088

0,7787

27,15933

479,42043

2123,70183

0,06095

1,10738

6,7015513,3817

0,01

0,1

1

10

100

1000

10000

100 1000 5000 10000

Wak

tu (m

s)

Jumlah Karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

Universitas Sumatera Utara

Page 94: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.40. Grafik perbandingan running time pengurutan data acak untuk tipe karakter alphabet

Grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe karater

alphanumeric dapat dilihat pada Gambar 4.41.

Gambar 4.41. Grafik perbandingan running time pengurutan data acak untuk tipe karakter alphanumeric

0,42383,10065

29,23868 44,99415

0,84463

27,66108

538,658632079,56895

0,04628

1,185787,32788 15,80655

0,01

0,1

1

10

100

1000

10000

100 1000 5000 10000

Wak

tu (m

s)

Jumlah Karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

0,24988

3,7554

20,2131543,42408

0,61648

28,4543

529,422582167,20253

0,06315

0,9791

7,7738816,00443

0,01

0,1

1

10

100

1000

10000

100 1000 5000 10000

Wak

tu (m

s)

Jumlah Karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

Universitas Sumatera Utara

Page 95: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dengan tipe karater

alphanumeric & symbol dapat dilihat pada Gambar 4.42.

Gambar 4.42. Grafik perbandingan running time pengurutan data acak untuk tipe karakter alphanumeric & symbol

Berdasarkan grafik pada Gambar 4.39 - Gambar 4.42 dijelaskan bahwa algoritma Comb

sort memiliki waktu tercepat dalam mengurutkan data acak numeric, alphabet,

alphanumeric dan alphanumeric & symbol dibandingkan algoritma Bitonic sort dan

algoritma Odd-Even sort. Algoritma Odd-Even sort memiliki waktu terlama dalam

melakukan pengurutan data acak.

3.3.5. Pengujian Pengurutan String

Pada proses pengurutan string, diawali dengan membuka file bertipe txt , membaca isi file

dan menampilkan isi file. Kemudian sistem akan melakukan pengurutan isi file baik

secara ascending maupun descending. Pengujian pengurutan string dengan menggunakan

algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort dapat dilihat pada Gambar 4.43.

0,23065

2,94515

21,22443,5065

0,27428

22,72228

528,18772112,6991

0,0627

1,58778

7,95818 13,98808

0,01

0,1

1

10

100

1000

10000

100 1000 5000 10000

Wak

tu (m

s)

Jumlah Karakter

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

Universitas Sumatera Utara

Page 96: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Gambar 4.43. Pengurutan String

Setelah proses pengurutan selesai, grafik perbandingan dapat dilihat pada Gambar 4.44.

Gambar 4.44. Grafik perbandingan pengurutan string

Universitas Sumatera Utara

Page 97: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.3.6. Hasil pengujian pengurutan string

Berdasarkan hasil pengujian dari penelitian di atas, hasil running time dari pengurutan

string menggunakan algoritma bitonic. Adapun hasil pengujian ketiga algoritma yang

digunakan dapat dilihat pada Tabel 4.3.

Tabel 4.3 Hasil pengujian pengurutan string

No Jumlah String Running Time (ms) Bitonic Sort Odd-Even Sort Comb Sort

1 10 0,11380 0,06570 0,02750 2 50 0,31350 0,52060 0,24160 3 100 2,66760 3,08280 1,44480 4 150 1,87730 4,80480 1,18070 5 200 4,39750 7,45370 2,50570 6 250 5,82320 12,96070 3,42620

Setelah mendapatkan hasil pengujian pengurutan data string dari Tabel 4.3 maka dapat

dibuat grafik perbandingan hasil pengujian dari ketiga algoritma tersebut dapat dilihat

pada Gambar 4.45.

Gambar 4.45. Grafik perbandingan running time pengurutan string

0,11380,3135

2,6676 1,87734,3975 5,8232

0,0657

0,5206

3,0828 4,8048 7,4537 12,9607

0,0275

0,2416

1,4448 1,18072,5057 3,4262

0,01

0,1

1

10

10 50 100 150 200 250

Wak

tu (m

s)

Jumlah String

Running Time

Bitonic Sort Odd-Even Sort Comb Sort

Universitas Sumatera Utara

Page 98: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3.4. Kompleksitas Algoritma

Kompleksitas algoritma yang akan diuji adalah kompleksitas algoritma Bitonic Sort, Odd-

Even Sort dan Comb Sort berikut.

3.4.1. Kompleksitas Algoritma Bitonic Sort

Perhitungan kompleksitas algoritma Bitonic Sort berbeda dengan perhitungan

kompleksitas Comb Sort dan Odd-Even Sort. Perhitungan kompleksitas Bitonic Sort

tidak dapat dilakukan menggunakan tabel C & # melainkan menggunakan cara

recurrence relation. Recurrence relation digunakan untuk menganalisis algoritma yang

rekursif (fungsi yang memanggil dirinya sendiri) selain itu digunakan untuk algoritma

divide dan conquer (dipisah dan disatukan). Bitonic sort merupakan salah satu algoritma

yang rekursif dan melakukan divide dan conquer. Untuk melakukan pengurutan sebuah

list sepanjang n dari dua buah list yang sudah terurut dengan panjang n/2, dibutuhkan

komparasi sebanyak log n, sedangkan banyaknya level komparasi Bitonic Sort secara

keseluruhan adalah sebuah recurrence relation T(n) = log n + T(n/2). Solusi dari

recurrence solution tersebut adalah :

T(n) = (log n) + (log n) – 1 + (log n) – 2 + .... + 1

= log n * ((log n) + 1) / 2

= ((log n)2 + log n) /2

Setiap level komparasi terdiri dari n/2 buah proses komparasi. Sehingga T(n) total untuk

Bitonic Sort = banyak proses komparasi setiap level * banyak level komparasi

= (n/2) * (((log n)2 + log n) / 2)

=(n (log n)2) / 4 + (n log n) / 4

T(n) = ϴ (n (log n)2).

3.4.2. Kompleksitas Comb Sort

Kompleksitas untuk fungsi swap pada algoritma Comb Sort dapat dilihat pada Tabel 4.5

Tabel 4.5 Kompleksitas Fungsi Swap algoritma Comb Sort

Code C # C# private void Swap(IList<T> list, int a, int b)

Universitas Sumatera Utara

Page 99: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

{ T temp = list[a]; C1 1 C1 list[a] = list[b]; C2 1 C2 list[b] = temp; C3 1 C3 }

Fase swap algoritma Comb Sort:

T(n) = C1n0 + C2n0 + C3n0

= ϴ(n0) = ϴ(1)

Kompleksitas untuk fungsi sort pada algoritma Comb Sort dapat dilihat pada Tabel 4.6

Tabel 4.6 Kompleksitas Fungsi Sort algoritma Comb Sort

Code C # C# public void Sort(IList<T> list) { stopwatch = new Stopwatch(); C1 1 C1 stopwatch.Start(); C2 1 C2 int gap = list.Count; C3 1 C3 float shrinkFactor = 1.24f; C4 1 C4 bool swapped = false; C5 1 C5 while (gap > 1 || swapped) C6 n C6n { if (gap > 1) C7 n C7n { gap = (int)(gap / shrinkFactor); C3 n C3n } swapped = false; C5 n C5n for (int i = 0; gap + i < list.Count; i++) C8 n2 C8n2

{ if (list[i].CompareTo(list[i + gap]) > 0) C7 n2 C7n2

{ Swap(list, i, i + gap); ϴ(1) n2 ϴ(n2) swapped = true; C5 n2 C5n2

} } } stopwatch.Stop(); C1 1 C1 ticks = stopwatch.ElapsedTicks; C9 1 C9 totalms = stopwatch.Elapsed.TotalMilliseconds; C10 1 C10 }

Universitas Sumatera Utara

Page 100: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Fase Sort algoritma Comb Sort:

T(n) = C1n0 + C1n0 + C2n0 + C3n0 + C4n0 + C5n0 + C6n1 + C7n1 + C3n1 + C5n1 + C8n2

+ C7n2 + ϴ(n2) + C5n2 + C10n0 + C9n0

= (2C1 + C2 + C3 + C4 + C5 + C10 + C9) n0 + (C6 + C7 + C3 + C5) n1 + ( C8 + C7

+ ϴ + C5) n2

= ϴ(n2)

Kompleksitas dari algoritma Comb Sort: C adalah konstanta, # adalah frekuensi yang

berfungsi sebagai ukuran masukan dan C# untuk mencari kompleksitas waktu (T(n)), n

adalah jumlah proses. Jumlahkan hasil dari perkalian C.# , lalu ambil pangkat terbesar

dari nilai masukan(#) dan didapatlah pangkat terbesar yaitu n2.

Pada algoritma Comb Sort fase pertukaran (Swap) memiliki T(n) = ϴ(1) dan pada

fase pengurutan (Sort) memiliki T(n) = ϴ(n2). Maka kompleksitas algoritma Comb Sort

adalah ϴ(n2).

4.4.3. Kompleksitas Algoritma Odd-Even Sort

Kompleksitas untuk fungsi swap pada algoritma Odd-Even Sort dapat dilihat pada Tabel

4.7.

Tabel 4.7 Kompleksitas Fungsi Swap algoritma Odd-Even Sort

private void Swap(Ilist<T> list, int a, int b) C # C# { T temp = list[a]; C1 1 C1 list[a] = list[b]; C2 1 C2 list[b] = temp; C3 1 C3 }

Fase swap algoritma Odd-Even Sort:

T(n) = C1n0 + C2n0 + C3n0

= ϴ(n0) = ϴ(1)

Kompleksitas untuk fungsi innersort pada algoritma Odd-Even Sort dapat dilihat pada

Tabel 4.8.

Universitas Sumatera Utara

Page 101: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Tabel 4.8 Kompleksitas Fungsi InnerSort algoritma Odd-Even Sort

Code C # C# private bool InnerSort(Ilist<T> list, int i) { var sorted = true; C1 1 C1 for (; i < list.Count – 1; i += 2) C2 n C2n { if (list[i].CompareTo(list[i + 1]) > 0) C3 n C3n { Swap(list, i, i + 1); ϴ(1) n ϴ(n) sorted = false; C1 n C1n } } return sorted; C4 1 C4 }

Fase InnerSort algoritma Odd-Even Sort:

T(n) = C1n0 + C2n1 + C3n1 + ϴ(n) + C1n1 + C4n0

= ϴ(n1) = ϴ(n)

Kompleksitas untuk fungsi sort pada algoritma Odd-Even Sort dapat dilihat pada Tabel

4.9.

Tabel 4.9 Kompleksitas Fungsi Sort algoritma Odd-Even Sort

Code C # C# public void Sort(IList<T> list) { stopwatch = new Stopwatch(); C1 1 C1 stopwatch.Start(); C1 1 C1 var sorted = false; C2 1 C2 while (!sorted) C3 n C3n { sorted = InnerSort(list, 1); ϴ(n) n ϴ(n2) sorted = InnerSort(list, 0) && sorted; ϴ(n) n ϴ(n2) } stopwatch.Stop(); C1 1 C1 ticks = stopwatch.ElapsedTicks; C4 1 C4 totalms = stopwatch.Elapsed.TotalMilliseconds; C5 1 C5 }

Fase Sort algoritma Odd-Even Sort:

T(n) = C1n0 + C1n0 + C2n0 + C3n1 + ϴ(n2) + ϴ(n2) + C1n0 + C4n0 + C5n0

= ϴ(n2)

Universitas Sumatera Utara

Page 102: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Kompleksitas dari algoritma Odd-Even Sort: C adalah konstanta, # adalah frekuensi yang

berfungsi sebagai ukuran masukan dan C# untuk mencari kompleksitas waktu (T(n)), n

adalah jumlah proses. Jumlahkan hasil dari perkalian C.# , lalu ambil pangkat terbesar

dari nilai masukan(#) dan didapatlah pangkat terbesar yaitu n2.

Pada algoritma Odd-Even Sort fase pertukaran (Swap) memiliki T(n) = ϴ(1) , fase

InnerSort memiliki T(n) = n dan pada fase pengurutan (Sort) memiliki T(n) = ϴ(n2).

Maka kompleksitas algoritma Odd-Even Sort adalah ϴ(n2).

Berdasarkan hasil perhitungan kompleksitas algoritma Bitonic Sort, Odd-Even

Sort dan Comb Sort, maka diketahui bahwa algoritma Bitonic Sort memiliki nilai T(n)=

ϴ (n (log n)2) yang lebih lama jika dibandingkan dengan algoritma Odd-Even Sort dan

Comb Sort yaitu ϴ(n2). Berikut contoh untuk membuktikan jika ϴ (n (log n)2) lebih lama

dari ϴ(n2).

Contoh : n = 8

T(8) = ϴ(n2)

= 82

= 64 ms (diasumsikan waktu dalam ms)

T(8) = ϴ (n (log n)2)

= 8.(log 8)2

= 8 (3)2

= 8.9

= 72 ms (diasumsikan waktu dalam ms)

Berdasarkan hasil perhitungan di atas algoritma Odd-Even Sort dan Comb Sort memiliki

waktu tercepat jika dibandingkan dengan algoritma Bitonic Sort.

Universitas Sumatera Utara

Page 103: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Setelah melihat dan mengamati dari hasil analisis yang didapat dari sistem yang telah

diselesaikan, maka dapat ditarik kesimpulan sebagai berikut:

1. Pada penerapan algoritma Bitonic Sort, Odd-Even Sort dan Comb Sort didapat hasil

bahwa Comb Sort memiliki waktu tercepat dalam melakukan pengurutan data acak

bertipe char dan string dibandingkan dengan Bitonic Sort dan Odd-Even Sort. Rata-rata

waktu tercepat yang dibutuhkan oleh Comb Sort untuk mengurutkan 10.000 karakter

adalah 13,3817 ms (tipe karakter numerik) dan untuk mengurutkan 250 string adalah

3,4262. Sedangkan Bitonic Sort memiliki rata-rata waktu 41,03088 ms (untuk 10.000

karakter bertipe numerik) dan untuk mengurutkan 250 string membutuhkan waktu 5,8232

ms. Meskipun Odd-Even Sort memiliki rata-rata waktu yang paling lama dalam

melakukan pengurutan data acak bertipe char yaitu 2123,70183 ms (banyaknya 10.000

karakter bertipe numerik) dan string yaitu 12,9607 ms (banyaknya 250 string), tetapi

dalam mengurutkan data terurut bertipe char Odd-Even Sort memiliki waktu yang paling

cepat yaitu 0.6634 ms (jumlah 10.000 karakter bertipe numerik) dan Bitonic Sort

memiliki waktu yang paling lama yaitu 68,8321 ms.

2. Pada perhitungan kompleksitas algoritma, Odd-Even Sort dan Comb Sort memiliki T(n)

yang sama yaitu n2 sedangkan Bitonic Sort memiliki T(n) = (n(log n)2).

5.2. Saran

Dalam pengembangan penelitian ini penulis memberikan beberapa saran yaitu:

1. Diharapkan penelitian ini dapat dikembangkan dengan desain yang lebih baik lagi (user

friendly).

2. Untuk pengembangan selanjutnya, diharapkan aplikasi ini dapat membaca isi file yang

bertipe pdf, word, dsb. , sebagai masukan untuk melakukan pengurutan data bertipe

string.

Universitas Sumatera Utara

Page 104: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

3. Diharapkan penelitian dapat menjadi referensi dan bahan pembelajaran untuk melakukan

penelitian dengan algoritma pengurutan yang berbeda selain Bitonic Sort, Odd-Even Sort

dan Comb Sort.

Universitas Sumatera Utara

Page 105: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Daftar Pustaka

Azizah, U.N. 20s13. Perbandingan Detektor Tepi Prewt dan Detektor Tepi Laplacian

Berdasarkan Kompleksitas Waktu. Skripsi. Universitas Pendidikan Indonesia.

Barakbah, A.R., Karlita, T. & Ahsan, A.S. 2013. Logika dan Algoritma. Program Studi Teknik

Informatika Departemen Teknik Informatika dan Komputer Politeknik Elektronika

Negeri Surabaya: Surabaya.

Dave, P.H. & Dave, H.B. 2008. Design and Analysis of Algorithms. Dorling Kindersley: India.

Ernastuti, Salim, R.A. & Haryanto. 2010. Algoritma Paralel Odd Even Transposition Pada

Model Jaringan Nonlinier, Jurnal Ilmu Komputer dan Informasi, Vol.3, No.2, ISSN

1979-0732.

Knuth, D.E. 1998. The art of computer programming: sorting and searching. Vol. 3. Pearson

Education.

Mukhlis, Y. & Harmanto, L. 2014. Metode Sorting Bitonic pada GPU. Skripsi. Universitas

Gunadarma.

Munir, R. 2005. Algoritma dan Pemrograman I . Edisi 3. INFORMATIKA: Bandung

Murtado, A. & Harsamuda. 2014. Aplikasi Visualisasi Perbandingan Metode-Metode

Pengurutan Data, Jurnal Ilmiah SISFOTENIKA, Vol.4, No.1.

Nugraha, D.W. 2012. Penerapan Kompleksitas Waktu Algoritma Prim Untuk Menghitung

Kemampuan Komputer Dalam Melaksanakan Perintah. Jurnal Ilmiah Fristek Vol.2,

No.2.

Rahayuningsih, P.A. 2016. Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai

(Sorting). Jurnal Evolusi Vol.4, No. 2.

Saniman & Fathoni, M. 2010. Konsep Sorting dalam Pemrograman. Jurnal SAINTIKOM, Vol.8,

No.1.

Universitas Sumatera Utara

Page 106: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

Sonita, A. & Nurtaneo, F. 2015. Analisis Perbandingan Algoritma Bubble Sort, Merge Sort, dan

Quick Sort dalam Proses Pengurutan Kombinasi Angka dan Huruf. Jurnal Pseudocode,

Vol.2,No.2,ISSN2355-5920.

Universitas Sumatera Utara

Page 107: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

LISTING PROGRAM 1. Program Bitonic Sort

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; using System.ComponentModel; namespace PABODCSort { public class BitonicSort <T> where T : IComparable { #region Variable Declaration private List<T> a; private bool ASCENDING = true; // sorting direction private Stopwatch stopwatch; private long ticks; private double totalms; #endregion public bool sortOrder { get { return ASCENDING; } set { ASCENDING = value; } } public long getTicks() { return this.ticks; } public double getTotalMilliSeconds() { return this.totalms; } public void sort_usingBackground(List<T> a, BackgroundWorker worker, DoWorkEventArgs e) { stopwatch = new Stopwatch(); stopwatch.Start(); this.a=a; bitonicSort_usingBackground(0, a.Count, ASCENDING, worker, e); stopwatch.Stop(); ticks = stopwatch.ElapsedTicks; totalms = stopwatch.Elapsed.TotalMilliseconds; } private void bitonicSort_usingBackground(int lo, int n, bool dir, BackgroundWorker worker, DoWorkEventArgs e) { if (n > 1) {

Universitas Sumatera Utara

Page 108: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

if (worker.CancellationPending) { e.Cancel = true; //break; } else { int m = n / 2; /* Sequentially Mode ---------------*/ bitonicSort_usingBackground(lo, m, !dir, worker, e); bitonicSort_usingBackground(lo + m, n - m, dir, worker, e); bitonicMerge(lo, n, dir); /*----------------------------------*/ } } } public void sort(List<T> a) { stopwatch = new Stopwatch(); stopwatch.Start(); this.a = a; bitonicSort(0, a.Count, ASCENDING); stopwatch.Stop(); ticks = stopwatch.ElapsedTicks; totalms = stopwatch.Elapsed.TotalMilliseconds; } private void bitonicSort(int lo, int n, bool dir) { if (n>1) { int m = n / 2; /* Sequentially Mode ---------------*/ bitonicSort(lo, m, !dir); bitonicSort(lo + m, n - m, dir); bitonicMerge(lo, n, dir); /*----------------------------------*/ } } private void bitonicMerge(int lo, int n, bool dir) { if (n>1) { int m=greatestPowerOfTwoLessThan(n); for (int i = lo; i < lo + n - m; i++) { compare(i, i + m, dir); } /* Sequentially Mode ------------*/ bitonicMerge(lo, m, dir); bitonicMerge(lo+m, n-m, dir); /*------------------------------*/ }

Universitas Sumatera Utara

Page 109: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

} private void compare(int i, int j, bool dir) { if (dir == (a[i].CompareTo(a[j]) > 0)) swap(a, i, j); } private void swap(List<T> list, int a, int b) { T temp = list[a]; list[a] = list[b]; list[b] = temp; } private int greatestPowerOfTwoLessThan(int n) { int k=1; while (k<n) k=k<<1; return k>>1; } } }

2. Program Odd-Even Sort

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.ComponentModel; namespace PABODCSort { public class OddEvenSort<T> where T : IComparable { private static bool ASCENDING = true; // sorting direction private Stopwatch stopwatch; private long ticks; private double totalms; public bool sortOrder { get { return ASCENDING; } set { ASCENDING = value; } } public long getTicks() { return this.ticks; } public double getTotalMilliSeconds() {

Universitas Sumatera Utara

Page 110: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

return this.totalms; } public void Sort_usingBackground(IList<T> list, BackgroundWorker worker, DoWorkEventArgs e) { stopwatch = new Stopwatch(); stopwatch.Start(); var sorted = false; while (!sorted) { if (worker.CancellationPending) { e.Cancel = true; break; } else { sorted = InnerSort(list, 1); sorted = InnerSort(list, 0) && sorted; } } stopwatch.Stop(); ticks = stopwatch.ElapsedTicks; totalms = stopwatch.Elapsed.TotalMilliseconds; } public void Sort(IList<T> list) { stopwatch = new Stopwatch(); stopwatch.Start(); var sorted = false; while (!sorted) { sorted = InnerSort(list, 1); sorted = InnerSort(list, 0) && sorted; } stopwatch.Stop(); ticks = stopwatch.ElapsedTicks; totalms = stopwatch.Elapsed.TotalMilliseconds; } private bool InnerSort(IList<T> list, int i) { var sorted = true; for (; i < list.Count - 1; i += 2) { if(ASCENDING == true) { if (list[i].CompareTo(list[i + 1]) > 0) { Swap(list, i, i + 1); sorted = false; } } else { if (list[i].CompareTo(list[i + 1]) < 0)

Universitas Sumatera Utara

Page 111: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

{ Swap(list, i, i + 1); sorted = false; } } } return sorted; } private void Swap(IList<T> list, int a, int b) { T temp = list[a]; list[a] = list[b]; list[b] = temp; } } }

3. Program Comb Sort using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.ComponentModel; namespace PABODCSort { public class CombSort<T> where T : IComparable { private static bool ASCENDING = true; // sorting direction private Stopwatch stopwatch; private long ticks; private double totalms; public bool sortOrder { get { return ASCENDING; } set { ASCENDING = value; } } public long getTicks() { return this.ticks; } public double getTotalMilliSeconds() { return this.totalms; } public void Sort_usingBackground(IList<T> list, BackgroundWorker worker, DoWorkEventArgs e) { stopwatch = new Stopwatch(); stopwatch.Start();

Universitas Sumatera Utara

Page 112: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

int gap = list.Count; float shrinkFactor = 1.24f; bool swapped = false; while (gap > 1 || swapped) { if (worker.CancellationPending) { e.Cancel = true; break; } else { if (gap > 1) { gap = (int)(gap / shrinkFactor); } swapped = false; for (int i = 0; gap + i < list.Count; i++) { if (ASCENDING == true) { if (list[i].CompareTo(list[i + gap]) > 0) { Swap(list, i, i + gap); swapped = true; } } else { if (list[i].CompareTo(list[i + gap]) < 0) { Swap(list, i, i + gap); swapped = true; } } } } } stopwatch.Stop(); ticks = stopwatch.ElapsedTicks; totalms = stopwatch.Elapsed.TotalMilliseconds; } public void Sort(IList<T> list) { stopwatch = new Stopwatch(); stopwatch.Start(); int gap = list.Count; float shrinkFactor = 1.24f; bool swapped = false; while (gap > 1 || swapped) { if (gap > 1) { gap = (int)(gap / shrinkFactor); }

Universitas Sumatera Utara

Page 113: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

swapped = false; for (int i = 0; gap + i < list.Count; i++) { if (ASCENDING == true) { if (list[i].CompareTo(list[i + gap]) > 0) { Swap(list, i, i + gap); swapped = true; } } else { if (list[i].CompareTo(list[i + gap]) < 0) { Swap(list, i, i + gap); swapped = true; } } } } stopwatch.Stop(); ticks = stopwatch.ElapsedTicks; totalms = stopwatch.Elapsed.TotalMilliseconds; } private void Swap(IList<T> list, int a, int b) { T temp = list[a]; list[a] = list[b]; list[b] = temp; } } }

Universitas Sumatera Utara

Page 114: PERBANDINGAN KINERJA ALGORITMA BITONIC SORT, ODD …

CURRICULUM VITAE

E-mail :

DATA PRIBADI

Nama lengkap : Mariaty Harefa

Tempat / Tanggal lahir : Takengon / 28 Maret 1989

Alamat rumah : Jl. Teratai Raya Huta IV

Pematang Siantar

Jenis Kelamin : Perempuan

Agama : Kristen Protestan

Status : Belum menikah

No. HP : 08116206222

[email protected]

RIWAYAT PENDIDIKAN FORMAL

1996-2001 : SD INDORAYON PORSEA

2001-2004 : SMP INDORAYON PORSEA

2004-2007 : SMA NEGERI 1 MATAULI PANDAN

2008-2011 : POLITEKNIK NEGERI BATAM

SEMINAR

2014 : Peserta Seminar Nasional Literasi Informasi (SENARAI)

PENGALAMAN KERJA

2009 : Magang di PT. Telkom, Pematang Siantar

2011 : Magang di PT.Telkom, Pematang Siantar

2012-2014 : Bekerja di PT. Bank Central Asia, Tbk

Universitas Sumatera Utara