• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Cocktail Shaker Sort dan 4 Way Merge Sort Dalam Pengurutan Data

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Cocktail Shaker Sort dan 4 Way Merge Sort Dalam Pengurutan Data"

Copied!
92
0
0

Teks penuh

(1)

LISTING PROGRAM COCKTAIL SHAKER SORT

(2)

End While randomG.Next(0, 100000) & "')")

(3)

oWatch.Start() jum_angka = '" & txtjumangka.Text & "'", conn)

rd = cmd.ExecuteReader If rd.HasRows Then

insertquery = ("UPDATE waktu_cocktail SET waktu='" & detik & "' WHERE jum_angka='" & txtjumangka.Text & "'")

cmd2 = New OdbcCommand(insertquery, conn) hasil = cmd2.ExecuteNonQuery

Else

insertquery = ("insert into waktu_cocktail values('','" & txtjumangka.Text & "','" & detik & "')")

(4)

End Sub

Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Label2.Click End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click Form2.Show()

End Sub

Private Sub chartbanding_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles chartbanding.Click Form1.Show()

End Sub

Private Sub dgsebelum_CellContentClick(ByVal sender As System.Object,

ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles

dgsebelum.CellContentClick

End Sub

Private Sub txtjumangka_TextChanged(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles txtjumangka.TextChanged End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Label1.Click End Sub

(5)
(6)
(7)

bagi = Math.Ceiling(rd11.Item("jum_angka") / 4) rd12.Item("id_angka") & "','" & rd12.Item("angka") & "')") cmd2 = New OdbcCommand(insertquery, conn) rd13.Item("id_angka") & "','" & rd13.Item("angka") & "')") cmd2 = New OdbcCommand(insertquery, conn) rd14.Item("id_angka") & "','" & rd14.Item("angka") & "')")

cmd2 = New OdbcCommand(insertquery, conn) rd15.Item("id_angka") & "','" & rd15.Item("angka") & "')")

(8)
(9)
(10)

rd = cmd.ExecuteReader If rd.HasRows Then

insertquery = ("UPDATE waktu_4merge SET waktu='" & detik &

"' WHERE jum_angka='" & txtjumangka.Text & "'")

cmd2 = New OdbcCommand(insertquery, conn) hasil = cmd2.ExecuteNonQuery

Else

insertquery = ("insert into waktu_4merge values('','" & txtjumangka.Text & "','" & detik & "')")

cmd2 = New OdbcCommand(insertquery, conn)

As System.EventArgs) Handles chartbanding.Click Form1.Show()

End Sub

Private Sub txtjumangka_TextChanged(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles txtjumangka.TextChanged End Sub

Private Sub dgsebelum_CellContentClick(ByVal sender As System.Object,

ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles

dgsebelum.CellContentClick

(11)

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Label1.Click End Sub

(12)

DAFTAR PUSTAKA

Aulia, R. 2006. Analisis Kecepatan Sorting dengan Notasi Big O. Bandung: Program Studi Teknik Informatika, Institut Teknologi Bandung.

Black, P.E. & Bockholt, B. 2009. "Bidirectional Bubble Sort". Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology.

Cormen, T. H. 2009. Introduction to Algorithms Third Edition. London: MIT Press. Erzandi, M.O. 2009. Algoritma Pengurutan Dalam Pemrograman. Bandung: Program

Studi Teknik Informatika, Institut Teknologi Bandung.

Indrayana & Ihsan, M.F. 2005. Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting).Bandung: Program Studi Teknik Informatika, Institut Teknologi Bandung.

Knuth, D. 1973. "Sorting by Exchanging". Sorting and Searching. The Art of Computer Programming 3 (1st ed.). Addison-Wesley. pp. 110–111. ISBN 0-201-03809-9.

Knuth, D. 1998. "Section 5.2.4: Sorting by Merging". Sorting and Searching. The Art of Computer Programming 3 (2nd ed.). Addison-Wesley. pp. 158–168. ISBN 0-201-89685-0.

Kuswadi & Erna, M. 2004. Delapan Langkah dan Tujuh Alat Statistik untuk Peningkatan Mutu Berbasis Komputer. Elex Media Komputindo : Jakarta. Munir, R. 2005. Diktat Kuliah IF2251 Strategi Algoritmik. Bandung : Lab. Ilmu dan

Rekayasa Komputasi, Departemen Teknik Informatika, Institut Teknologi Bandung.

Putranto, D.D. 2007. Pengkajian Algoritma Pengurutan Tanpa Pembandingan Counting Sort dan Radix Sort. Bandung: Program Studi Teknik Informatika, Institut Teknologi Bandung.

Satzinger J.W., Jackson R.B. & Burd S.D. 2012. System Analysis and Design in a Changing World Seventh Edition. Cengage Learning. ISBN 978-1-305-11720-4. Sedgewick, R. & Wayne, K. 2011. Algorithms Fourth Edition. Boston: Princeton

University.

(13)

Suarga. 2012. Algoritma dan Pemrograman. Andi : Yogyakarta.

Tjaru, S.N.B. 2009. Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort. Bandung: Program Studi Teknik Informatika, Institut Teknologi Bandung. Utami, E. & Raharjo, S. 2004. Logika Algoritma dan Implementasinya dalam bahasa

Python di GNU/Linux. Andi : Yogyakarta.

(14)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem merupakan tahap yang sangat penting karena tahap ini berfungsi untuk menganalisis sistem yang dapat membantu dalam mengevaluasi sistem dan mendeskripsikan pengembangan sistem. Dalam tugas akhir ini, ada dua fase analisis yang dilakukan oleh penulis, yaitu: analisis masalah dan analisis kebutuhan. Analisis masalah dilakukan untuk memahami sebuah permasalahan dan cara memecahkan permasalahan yang akan diteliti. Analisis kebutuhan dilakukan untuk mengidentifikasi data apa dan proses apa yang dibutuhkan pada sistem dan menjelaskan fungsi-fungsi yang mampu dikerjakan oleh sistem.

3.1.1. Analisis Masalah

Analisis masalah berfungsi untuk mempelajari permasalahan yang ada secara terperinci. Masalah dalam penelitian ini adalah bagaimana membandingkan running time dan kompleksistas waktu menggunakan algoritma cocktail shaker sort dan 4 way merge sort.

Gambar 3.1 merupakan diagramIshikawa (fish bone) disebut juga diagram cause and effect. Diagram ishikawa bertujuan untuk mencari faktor-faktor yang mungkin menjadi penyebab dari suatu masalah (Kuswadi & Erna, 2004). Jika diketahui hubungan antara sebab dan akibat dari suatu masalah maka pemecahan masalah akan mudah ditentukan. Terdapat 3 bagian penting dalam diagramishikawa:

1. Bagian kepala berfungsi sebagai akibat (effect), yaitu masalah yang ingin dianalisis.

(15)

3. Bagian panah pada tulang berfungsi sebagai pernyataan sekunder dari penyebab utama.

Gambar 3.1. Diagram Ishikawa

3.1.2. Analisis kebutuhan

Analisis kebutuhan terbagi menjadi dua, yaitu analisis kebutuhan fungsional dan non-fungsional. Kebutuhan fungsional mendeskripsikan aktifitas yang disediakan sistem, sedangkan kebutuhan non-fungsional mendeskripsikan fitur, karakteristik dan batasan lainnya.

3.1.2.1. Kebutuhan fungsional

Kebutuhan fungsional merupakan deskripsi dari aktivitas dan layanan yang sistem harus berikan. Hal yang menjadi kebutuhan fungsional dalam pengurutan data acak ini adalah:

(16)

2. Sistem mampu menghitung runningtime dari algoritma cocktail shaker sort dan 4 way merge sort.

3. Sistem mampu menampilkan grafik jumlah data yang diurutkan vs running time dari algoritma cocktail shaker sort dan 4 way merge sort dan grafik perbandingan kedua algoritma tersebut.

3.1.2.2. Kebutuhan non-fungsional

Kebutuhan non-fungsional mencakup karakteristik-karakteristik sebagai berikut (Whitten and Bentley, 2007):

1. Performa, sistem yang akan dibangun dapat melaksanakan proses/tugas dengan waktu yang efisien.

2. Desain, sistem yang akan dibangun harus sederhana agar memudahkan user dalam menggunakannya.

3. Ekonomi, sistem yang akan dibangun harus bekerja dengan baik dan sederhana sehingga tidak perlu mengeluarkan biaya tambahan dalam menggunakannya. 4. Informasi, sistem harus mampu menyediakan informasi yang dibutuhkan oleh

user (pengguna).

5. Pelayanan, sistem yang akan dibangun harus bisa dikembangkan menjadi sistem yang lebih baik lagi bagi pihak yang ingin mengembangkannya.

3.2. Pemodelan sistem

Pemodelan sistem merupakan proses penyerderhanan dari sebuah sistem nyata agar lebih mudah untuk dianalisis dan dipahami. Pemodelan untuk membangun sistem perangkat lunak yang menggunakan pemrograman berorientasi objek adalah Unified Modelling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak.

UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram. Pemodelan sistem menggunakan UML dalam perancangan sistem ini, yaitu use case diagram, activity diagram dan sequence diagram.

(17)

3.2.1. Use case diagram

Use case adalah sebuah kegiatan yang dilakukan oleh sistem, biasanya berfungsi untuk menanggapi permintaan dari pengguna sistem (Satzinger et al, 2012). Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang tekankan adalah “apa” yang dibuat sistem, dan bukan “bagaimana” sebuah use case menerangkan sebuah interaksi antar actor dengan system. Use case merupakan sebuah pekerjaan tertentu, misalnya: login ke sistem, meng-create sebuah daftar belanja, dan lain-lain. Seorang sebuah actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram algoritma cocktail shaker sort dan 4 way merge sort dapat dilihat pada Gambar 3.2.

user

Input jumlah data Data sebelum diurutkan

Data terurut menggunakan algoritma 4 Way Merge Sort

Running Time Cocktail Shaker Sort Data terurut menggunakan algoritma Cocktail Shaker Sort

Running Time 4 Way Merge Sort

Chart Perbandingan Algoritma

Chart Cocktail Shaker Sort Chart 4 Way Merge Sort

(18)

3.2.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 aktivitas berakhir. Activity diagram sesungguhnya merupakan bentuk khusus dari state machine yang bertujuan memodelkan komputasi-komputasi dan aliran-aliran kerja yang terjadi dalam sistem/perangkat lunak yang sedang dikembangkan. Activity diagram algoritma cocktail shaker sort dan 4 way merge sort dapat dilihat pada Gambar 3.3.

User System

Inputkan jumlah data

Running time algoritma cocktail shaker sort dan 4 way merge sort

Menampilkan data acak

Mengurutkan data berdasarkan algoritma cocktail shaker sort dan 4 way merge sort

Chart algoritma cocktail shaker sort dan 4 way merge sort

Chart perbandingan algoritma

Hasil pengurutan algoritma cocktail shaker sort dan 4 way merge sort

(19)

3.2.3. Sequence diagram

Sequence diagram termasuk kedalam kategori diagram behavior, yaitu diagram yang berfungsi untuk menampilkan prilaku software. Sequence diagram menggambarkan bagaimana objek saling berinteraksi melalui message dalam eksekusi operation, untuk satu buah use case. Diagram ini mengilustrasikan bagaimana message dikirim dan diterima diantara objek, dan di urutan yang mana. Sequence diagram membantu untuk menggambarkan data yang masuk dan keluar sistem. Sequence diagram algoritma cocktail shaker sort dan 4 way merge sort dapat dilihat pada Gambar 3.4.

Gambar 3.4. Sequence Diagram

3.3. Perancangan Sistem

(20)

3.3.1. Flowchart sistem

Flowchart sistem adalah alur proses sistem yang akan dirancang dengan menggunakan kedua algoritma tersebutdi tunjukkan pada Gambar 3.5.

Start

Input banyak data yang ingin

diurutkan

Running Time

Chart Cocktail Shaker Sort dan 4 Way Merge Sort

End

Chart Perbandingan Cocktail Shaker Sort dan

4 Way Merge Sort Data acak dan

terurut

(21)

3.3.2. Flowchart algoritma cocktail shaker sort

(22)

Gambar 3.6. Flowchart Algoritma Cocktail Shaker Sort

3.3.3. Flowchart algoritma 4 way merge sort

Langkah-langkah pengurutan data untuk algoritma 4 way merge sort di tunjukkan pada Gambar 3.7.

Gambar 3.7. Flowchart Algoritma 4 Way Merge Sort

3.4. P

erancangan Struktur Tabel

Perancangan struktur tabel digunakan untuk mempermudah pengembangan dalam merancang database yang akan digunakan dalam sistem. Tabel yang digunakan dalam sistem ini yaitu:

Tabel 3.1. Struktur Tabel Angka

No. Nama Field Tipe Data Field

(23)
(24)

Tabel 3.2. Struktur Tabel Cocktail

No. Nama Field Tipe Data Field

1. id_cocktail int 10

2. angka int 10

Tabel 3.3. Struktur Tabel waktu_cocktail

No. Nama Field Tipe Data Field

1. id_waktu_cocktail int 10

2. jum_angka int 10

3. waktu varchar 10

Tabel 3.4. Struktur Tabel way1

No. Nama Field Tipe Data Field

1. id_way1 int 10

2. id_angka int 10

3. angka int 10

Tabel 3.5. Struktur Tabel way2

No. Nama Field Tipe Data Field

1. id_way2 int 10

2. id_angka int 10

3. angka int 10

Tabel 3.6. Struktur Tabel way3

No. Nama Field Tipe Data Field

1. id_way3 int 10

2. id_angka int 10

(25)

Tabel 3.7. Struktur Tabel way4

No. Nama Field Tipe Data Field

1. id_way4 int 10

2. id_angka int 10

3. angka int 10

Tabel 3.8. Struktur Tabel way_akhir

No. Nama Field Tipe Data Field 1. id_way_akhir int 10

2. angka int 10

Tabel 3.9. Struktur Tabel waktu_4merge

No. Nama Field Tipe Data Field

1. id_waktu4merge int 10

2. jum_angka int 10

3. waktu varchar 10

3.5.

Perancangan Antarmuka

3.5.1. Menu utama

(26)

Gambar 3.8. Perancangan Menu Utama

Keterangan:

Tabel 3.10. Keterangan Rancangan Menu Utama

No Jenis Objek Keterangan

1 Judul Menu

(Label) Judul aplikasi yang akan dirancang 2 Menu File

(Menu Strip) Terdiri dari 2 bagian sub menu yaitu : About us dan keluar 3 Menu Algoritma

(Menu Strip)

Terdiri dari 2 bagian sub menu yaitu : cocktail shaker sort dan 4 way merge sort

4 Menu Chart (Menu Strip)

Terdiri dari 2 bagian sub menu yaitu : cocktail shaker sort dan 4 way merge sort

3.5.2. Menu file

(27)

3.5.3. Menu algoritma

Menu algoritma digunakan untuk mengurutkan data dengan algoritma cocktail shaker sort dan 4 way merge sort. Menu algoritma memiliki beberapa bagian yaitu: cocktail shaker sort dan 4 way merge sort. Perancangan menu algoritma penguna dapat dilihat pada Gambar 3.9 dan Gambar 3.10.

Gambar 3.9. Perancangan Menu Algoritma Cocktail Shaker Sort

Keterangan:

Tabel 3.11. Tabel Perancangan Algoritma Cocktail Shaker Sort

No Jenis Objek Keterangan

1 Judul Sub Menu

Algoritma (Label) Judul sub menu aplikasi yang akan dirancang 2 Jumlah Data (Text

Box)

Inputkan jumlah data yang ingin diurutkan 3 Jalankan (Button) Untuk mulai menjalankan proses pengurutan data 4 Sebelum diurutkan

(Data Grid View)

(28)

Tabel 3.11. Tabel Perancangan Algoritma Cocktail Shaker Sort (Lanjutan)

No Jenis Objek Keterangan

5 Sesudah diurutkan (Data Grid View)

Untuk menampilkan data yang sudah dalam keadaan terurut sesuai dengan jumlah data yang diinputkan

6 Running Time (Label) Untuk menampilkan berapa lama waktu yang dibutuhkan dlama pengurutan data

7 Jumlah data (Label) Untuk menampilkan data yang diinputkan user 8 Chart Perbandingan

(Button)

Untuk menampilkan grafik perbandingan antara cocktail shaker sort dengan 4 way merge sort 9 Chart Cocktail Shaker

Sort (Button)

Untuk menampilkan grafik cocktail shaker sort

.Gambar 3.10. Perancangan Menu Algoritma 4 Way Merge Sort

Keterangan:

Tabel 3.12. Tabel Perancangan Algoritma 4 Way Merge Sort

No Jenis Objek Keterangan

1. Judul Sub Menu

Algoritma (Label) Judul sub menu aplikasi yang akan dirancang 2. Jumlah Data (Text

Box)

(29)

Tabel 3.12. Tabel Perancangan Algoritma 4 Way Merge Sort (Lanjutan)

No Jenis Objek Keterangan

4. Sebelum diurutkan (Data Grid View)

Untuk menampilkan data acak sesuai dengan jumlah data yang diinputkan

5. Sesudah diurutkan (Data Grid View)

Untuk menampilkan data yang sudah dalam keadaan terurut sesuai dengan jumlah data yang diinputkan

6. Running Time (Label) Untuk menampilkan berapa lama waktu yang dibutuhkan dlama pengurutan data

7. Jumlah data (Label) Untuk menampilkan data yang diinputkan user 8. Chart Perbandingan

(Button)

Untuk menampilkan grafik perbandingan antara cocktail shaker sort dan 4 way merge sort 9. Chart 4 Way Merge

Sort (Button)

Untuk menampilkan grafik 4 Way Merge Sort

3.5.4. Menu chart

(30)
(31)

Keterangan:

Tabel 3.13. Tabel Perancangan Chart Algoritma Cocktail Shaker Sort

No Jenis Objek Keterangan

1 Judul Sub Menu

Chart (Label) Judul sub menu aplikasi yang akan dirancang 2 Grafik 4 Way Merge

Sort (Chart)

Untuk membuat dan menampilkan grafik 4 Way Merge Sort

Gambar 3.12. Perancangan Menu Chart Algoritma 4 Way Merge Sort

Keterangan:

Tabel 3.14. Tabel Perancangan Chart Algoritma 4 Way Merge Sort

No Jenis Objek Keterangan

1 Judul Sub Menu

Chart (Label) Judul sub menu aplikasi yang akan dirancang 2 Grafik 4 Way Merge

Sort (Chart)

(32)

Gambar 3.13. Perancangan Menu Chart Perbandingan

Keterangan:

Tabel 3.15. Tabel Perancangan Chart Perbandingan

No Jenis Objek Keterangan

1 Judul Sub Menu

Chart (Label) Judul sub menu aplikasi yang akan dirancang 2 Grafik Perbandingan

(Chart)

Untuk membuat dan menampilkan grafik

(33)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi Sistem

Implementasi merupakan tahapan akhir dari proses pembuatan perangkat lunak. Pada tahap implementasi sistem ini akan dibahas bagaimana penerapan dari analisis dan perancangan sistem yang telah dilakukan dan dipaparkan pada bab sebelumnya dan juga akan dibahas bagaimana jalannya aplikasi, serta perangkat yang dibutuhkan untuk menjalankan aplikasi yang telah dibuat. Sistem yang dibangun menggunakan bahasa pemrograman Microsoft Visual Basic 2010.

4.1.1. Menu utama

(34)

Gambar 4.1. Tampilan Menu Utama

4.1.2. Sorting dengan algoritma cocktail shaker sort

Sorting dengan algoritma cocktail shaker sort merupakan salah satu bagian dari menu utama yaitu algoritma. Pada halaman ini akan dilakukan proses pengurutan data acak menggunakan algoritma cocktail shaker sort dapat dilihat pada Gambar 4.2.

(35)

Pertama-tama user memasukkan jumlah angka yang ingin diurutkan kemudian saat user menekan button ”jalankan”. Dalam hal ini user menginputkan jumlah data sebanyak 10, 50, 100, 500, 1000, 5000, 10000, 50000 dan 100000. Maka sistem akan meng-genarate data setelah itu muncul data sebelum diurutkan, sesudah diurutkan dan waktu eksekusi ditunjukkan pada Gambar 4.3, Gambar 4.4, Gambar 4.5, Gambar 4.6, Gambar 4.7, Gambar 4.8, Gambar 4.9, Gambar 4.10 dan Gambar 4.11.

(36)

Gambar 4.4. Sorting Algoritma Cocktail Shaker Sort n = 50

Gambar 4.5. Sorting Algoritma Cocktail Shaker Sort n= 100

(37)

Gambar 4.7. Sorting Algoritma Cocktail Shaker Sort n=1000

(38)

Gambar 4.9. Sorting Algoritma Cocktail Shaker Sort n = 10000

(39)

Gambar 4.11. Sorting Algoritma Cocktail Shaker Sort n = 100000

Setelah melakukan proses pengurutan dengan jumlah data 10 sampai 100000 maka saat user menekan tombol “Chart Cocktail Shaker Sort” akan muncul grafik algoritma cocktail shaker sort seperti yang ditunjukkan pada Gambar 4.12.

(40)

4.1.3. Sorting dengan algoritma 4 way merge sort

Sorting dengan algoritma 4 way merge sort merupakan salah satu bagian dari menu utama yaitu algoritma. Pada halaman ini akan dilakukan proses pengurutan data acak menggunakan algoritma 4 way merge sort dapat dilihat pada Gambar 4.2.

Gambar 4.13. Tampilan Sorting dengan Algoritma 4 Way Merge Sort

(41)

Gambar 4.14. Sorting Algoritma 4 Way Merge Sort n = 10

(42)

Gambar 4.16. Sorting Algoritma 4 Way Merge Sort n = 100

(43)

Gambar 4.18. Sorting Algoritma 4 Way Merge Sort n = 1000

(44)

Gambar 4.20. Sorting Algoritma 4 Way Merge Sort n = 10000

(45)

Gambar 4.22. Sorting Algoritma 4 Way Merge Sort n = 100000

Setelah melakukan proses pengurutan dengan jumlah data 10 sampai 100000 maka saat user menekan tombol “Chart Cocktail Shaker Sort” akan muncul grafik algoritma cocktail shaker sort seperti yang ditunjukkan pada Gambar 4.23.

(46)

Grafik dari hasil perbandingan antara kedua algoritma tersebut dapat dilihat pada Gambar 4.24 terdapat perbedaan waktu yang cukup jelas di antara algoritma tersebut. Pengurutan data dengan algoritma 4 way mergesort lebih cepat jika dibandingkan dengan cocktail shaker sort. Hal ini dibuktikan dengan keadaan grafik waktu perbandingan antara kedua algoritma tersebut, dimana grafik waktu cocktail shaker sort perubahannya lebih besar jika dibandingkan dengan 4 way mergesort.

Gambar 4.24. Grafik Perbandingan

4.2. Pengujian Sistem

Dalam sistem ini terdapat dua proses utama, antara lain: proses pengurutan dan kompleksitas waktu berdasarkan algoritma cocktail shaker sort dan 4 way merge sort. 4.2.1. Analisis proses algoritma cocktail shaker sort

Langkah-langkah proses pengurutan data dengan algoritma cocktail shaker sort: 1. Data yang ingin diurutkan sebanyak n=10

8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 2. Iterasi pertama mulai dari sebelah kiri dengan membandingkan 2 data awal yang

berwarna merah

(47)

3. Jika data pertama lebih besar dari yang kedua maka ditukar (swap) data tersebut. Data hasil proses swap adalah data yang berwarna biru.

8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 95968 36288 21469 94905 28852 8055 18720 83447 70822 76754 36288 95968 21469 94905 28852 8055 18720 83447 70822 76754 36288 95968 21469 94905 28852 8055 18720 83447 70822 76754 36288 21469 95968 94905 28852 8055 18720 83447 70822 76754 36288 21469 95968 94905 28852 8055 18720 83447 70822 76754 36288 21469 94905 95968 28852 4. Lakukan proses tersebut terus menerus sampai ditemukan nilai terbesar di sebelah

kanan. Kemudian data terbesar yang diperoleh diberi warna hijau sehingga data tersebut disimpan dan tidak ikut lagi dalam proses pengurutan data.

8055 18720 83447 70822 76754 36288 21469 94905 95968 28852

8055 18720 83447 70822 76754 36288 21469 94905 28852 95968

8055 18720 83447 70822 76754 36288 21469 94905 28852 95968 5. Iterasi kedua lakukan dari arah yang berlawanan dan lakukan proses swap.

(48)

8055 18720 83447 70822 76754 21469 36288 28852 94905 95968 8055 18720 83447 70822 21469 76754 36288 28852 94905 95968 8055 18720 83447 70822 21469 76754 36288 28852 94905 95968 8055 18720 83447 21469 70822 76754 36288 28852 94905 95968 8055 18720 83447 21469 70822 76754 36288 28852 94905 95968

6. Lakukan terus proses perbandingan sehingga diperoleh nilai data terkecil di sebelah kiri. Data tersebut akan disimpan dan tidak ikut lagi dalam proses pengurutan data.

8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 8055 18720 21469 83447 70822 76754 36288 28852 94905 95968 7. Ulangi kembali proses tersebut berulang-ulang sehingga diperoleh data dalam

keadaan terurut.

(49)
(50)

8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968 8055 18720 21469 28852 36288 70822 76754 83447 94905 95968

8. Data yang sudah terurut:

(51)

4.2.2. Analisis kompleksitas waktu algoritma cocktail shaker sort

No Code C # C.#

PublicFunction CocktailSortNumber(ByVal ListofNumber

(52)

Cara untuk menganalisis kompleksitas waktu algoritma cocktail shaker sort adalah sebagai berikut:

4.2.3. Analisis proses algoritma 4 way merge sort

Cara untuk menganalisis kompleksitas waktu algoritma 4 way merge sort adalah sebagai berikut:

Langkah-langkah proses pengurutan data dengan algoritma 4 way merge sort: 1. Data yang ingin diurutkan sebanyak n=10

8055 18720 70822 83447 76754 95968 36288 21469 94905 28852 2. Bagi data tersebut menjadi 4

3. Data yang sudah dibagi 4. Pisahkan data tersebut satu per satu. Jika data kurang dari 4 maka data tidak perlu lagi dibagi menjadi 4 bagian.

(53)

4. Kemudian gabungkan dan urutkan data tersebut sesuai dengan pengelompokannya.

(54)

4.2.4. Analisis kompleksitas algoritma 4 way merge sort

(55)

Pada Gambar 4.25. menunjukkan n adalah banyak data yang akan diurutkan, hd adalah tingkatan berapa kali proses divide hc adalah tingkatan berapa kali proses conquer, H adalah gabungan dari proses divide dan conquer dan hd=hc. Oleh karena itu, maka diperoleh Tabel 4.1.

Tabel 4.1. Tabel Proses Algoritma 4 Way Merge Sort

n hd hd‟

10 3 2

4 2 1

1 1 0

(56)

4.3. Hasil Pengujian Sistem

Dalam proses pengujian proses pengurutan (sorting) untuk algoritma cocktail shaker sort menggunakan Intel® Core™ i5-2410M 2.3GHz with Turbo Boost up to 2.9 GHz RAM 4GB dengan jumlah data 10-100000 diperoleh hasil perbandingan dari proses pengurutan algoritma cocktail shaker sort dan 4 way merge sort sebagai berikut: 4.3.1. Hasil pengujian algoritma cocktail shaker sort

Hasil pengurutan data yang diperoleh menggunakan algoritma cocktail shaker sort dapat dilihat pada Tabel 4.2.

Tabel 4.2. Tabel Hasil Pengujian Algoritma Cocktail Shaker Sort

No. Jumlah Data Waktu eksekusi (detik)

1 10 0.006

2 50 0.031

3 100 0.067

4 500 0.368

5 1000 0.695

6 5000 3.565

7 10000 10.658

8 50000 50.017

(57)

4.3.2. Hasil pengujian algoritma 4 way merge sort

Hasil pengurutan data yang diperoleh menggunakan algoritma 4 way merge sort dapat dilihat pada Tabel 4.3.

Tabel 4.3. Tabel Hasil Pengujian Algoritma 4 Way Merge Sort

No. Jumlah Data Waktu eksekusi (detik)

1 10 0

2 50 0

3 100 0

4 500 0.017

5 1000 0.066

6 5000 1.372

7 10000 5.917

8 50000 45.564

(58)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan penelitian yang telah dilakukan, penulis dapat memberikan kesimpulan yaitu sebagai berikut :

1. Running time yang dibutuhkan untuk mengurutkan data bilangan bulat (integer) dengan jumlah data 10-100000 algoritma 4 way merge sort lebih efisien dibandingkan algoritma cocktail shaker sort.

2. Algoritma 4 way merge sort lebih efisien dibandingkan cocktail shaker sort karena algoritma 4 way merge sort memiliki kompleksitas θ(n log n) sedangkan cocktail shaker sort memiliki kompleksitas (n2).

5.2. Saran

Adapun saran-saran yang dapat diberikan penulis untuk pengembangan dan perbaikan sistem ini selanjutnya adalah sebagai berikut:

1. Diharapkan pada peneliti selanjutnya untuk memilih algoritma pengurutan yang baru sehingga para pembaca dapat menambah wawasan tentang jenis-jenis algoritma pengurutan.

(59)

BAB 2

LANDASAN TEORI

2.1. Algoritma

Algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai yaitu seperangkat nilai sebagai input dan output yang menghasilkan nilai (Sedgewick & Wayne, 2011). Secara umum algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma.

Menurut Donald E. Knuth, algoritma yang baik memiliki kriteria sebagai berikut (Sitorus, 2015):

1. Input

Suatu algoritma harus memiliki 0 (nol) atau lebih masukan (input). Artinya, suatu algoritma itu dimungkinkan tidak memiliki masukan secara langsung dari pengguna tetapi dapat juga memiliki beberapa masukan. Algoritma yang tidak memiliki masukan secara langsung dari pengguna, maka semua data dapat diinisialisaikan atau dibangkitkan dalam algoritma.

2. Output

(60)

3. Finiteness

Setiap pekerjaan yang dikerjakan pasti berhenti. Demikian juga algoritma harus dapat dijamin akan berhenti setelah melakukan sejumlah langkah proses.

4. Definiteness

Algoritma tersebut tidak menimbulkan makna ganda (ambiguous). Setiap baris aksi/pernyataan dalam suatu algoritma harus pasti, artinya tidak menimbulkan penafsiran lain bagi setiap pembaca algoritma, sehingga memberikan output yang sesuai dengan yang diharapkan oleh pengguna.

5. Effectiveness

Setiap langkah algoritma harus sederhana sehingga dikerjakan dalam waktu yang wajar.

2.2. Pengurutan

Algoritma pengurutan adalah proses menyusun kembali rentetan objek-objek untuk meletakkan objekdari suatukumpulan data ke dalam urutan yang logis (Cormen, 2009).Pada dasarnya, pengurutan(sorting) membandingkanantar data atau elemen berdasarkan kriteria dankondisi tertentu (Indrayana & Ihsan, 2005).Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar (ascending) atau sebaliknya (descending).

Ada dua kategori pengurutan (Suarga, 2012): 1. Pengurutan internal

Pengurutan internal adalah pengurutan yang dilaksanankan hanya dengan menggunakan memori komputer, pada umumnya digunakan bila jumlah elemen tidak terlalu banyak.

2. Pengurutan eksternal

(61)

2.3. Klasifikasi Algoritma Pengurutan

Klasifikasi algoritma-algoritma pengurutan dibedakan berdasarkan (Erzandi,2009): 1. Kompleksitas perbandingan antar elemen terkait dengan kasus terbaik, rata-rata dan

terburuk

2. Kompleksitas pertukaran elemen, terkait dengan cara yang digunakan elemen setelah dibandingkan

3. Penggunaan memori 4. Rekursif atau tidak rekursif

5. Proses pengurutannya(metode penggunaannya)

Klasifikasi algoritma pengurutan berdasarkan proses pengurutannya sebagai berikut (Putranto, 2007):

1. Exchange Sort

Dalam prosesnya, algoritma-algoritma pengurutan yang diklasifikasikan sebagai exchange sort melakukan pembandingan antar data, dan melakukan pertukaran apabila urutan yang didapat belum sesuai. Contohnya: bubble sort, cocktail sort, comb sort, gnome sort, quick sort.

2. Selection Sort

Prinsip utama algoritma dalam klasifikasi ini adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan. Contohnya: selection sort, heap sort, smooth sort, strand sort.

3. Insertion Sort

Algoritma pengurutan yang diklasifikasikan ke dalam kategori ini mencari tempat yang tepat untuk suatu elemen data yang telah diketahui ke dalam subkumpulan data yang telah terurut, kemudian melakukan penyisipan (insertion) data di tempat yang tepat tersebut. Contohnya: insertion sort, shell sort, tree sort, library sort, patience sorting.

4. Merge Sort

(62)

data tersebut, atau dengan kata lain, pengurutan dilakukan secara rekursif. Contohnya: Merge sort.

5. Non-Comparison Sort

Sesuai namanya dalam proses pengurutan data yang dilakukan algoritma ini tidak terdapatpembandingan antardata, data diurutkan sesuai dengan pigeon hole principle. Dalam kenyataanyaseringkali algoritma non-comparison sort yang digunakan tidak murni tanpa pembandingan, yangdilakukan dengan menggunakan algoritma-algoritma pengurutan cepat lainnya untuk mengurutkan subkumpulan-subkumpulan datanya. Contohnya: Radix sort, Bucket sort, Counting sort, Pigeonhole sort, Tally sort.

Berdasarkan klasifikasi algoritma pengurutanyang sudah dijelaskan maka yang akan dianalisis pada penelitian ini adalah algoritmacocktail shaker sort dan 4 ways mergesort.

2.4. AlgoritmaCocktail Shaker Sort

Algoritma cocktail shaker sort adalah variasi kecil dari bubble sort(Knuth, 1973). Pada cocktail shaker sort setiap iterasi dari algoritma terdiri dari dua arah sedangkan pada bubble sortsetiap iterasi dalam satu arah sehingga bubble sorthanya dapat memindahkan mundur satu langkah setiap iterasi.Oleh karena itu, algoritma cocktail shaker sort disebut jugabidirectional bubble sort(Black &Bockholt, 2009).

Langkah-langkah algoritma cocktailshaker sortsecara ascendingyaitu: 1. Iterasi dari algoritma ini terdiri dari dua arah.

2. Tahap pertama loopdimulai dari data sebelah kiri.

3. Kemudian dibandingkan antara data pertama dengan data kedua yang berada disebelah kanan data pertama. Jika pada nilai di sebelah kiri lebih besar dari nilai di sebelah kanan maka kedua data tersebut ditukar. Sebaliknya jika nilai data sebelah kiri lebih kecil dari data sebelah kanan maka tidak perlu dilakukan pertukaran. 4. Pada akhir iterasi pertama, nilai terbesar akan berada di akhir. Kemudian nilai

tersebut disimpan dan tidak masuk lagi ke dalam data yang ingin diurutkan.

(63)

7. Lakukan pertukaran data jika data sebelah kanan lebih kecil dari data sebelah kiri. Sebaliknya jika data sebelah kanan lebih besar dari data sebelah kiri maka pertukaran data tidak dilakukan.

8. Lakukan kembali proses tersebut sampai bergerak kembali menuju awal data sehingga diperoleh data pertama yang terkecil. Kemudian nilai tersebut disimpan dan tidak masuk lagi ke dalam data yang ingin diurutkan.

9. Ulangi kembali proses tersebut berulang-ulang sehingga diperoleh data dalam keadaan terurut dengan benar.

Contoh proses pengurutan data menggunakan cocktail shaker sort dapat dilihat pada Gambar 2.1.

Data yang ingin diurutkan:

31 98 72 14 8 22

Iterasi pertama mulai dari membandingkan 2 data awal yang berwarna merah

31 98 72 14 8 22

31 98 72 14 8 22

Data yang berwarna biru adalah data yang sudah ditukar(swap)

(64)

Iterasi kedua dari arah yang berlawanan.

31 72 14 8 22 98

Lakukan terus proses perbandingan sehingga diperoleh nilai data terkecil di sebelah kiri.

31 72 14 8 22 98

31 72 8 14 22 98

31 72 8 14 22 98

31 8 72 14 22 98

31 8 72 14 22 98

Maka diperoleh data terkecil di sebeleh kiri yang berwarna hijau. Data tersebut akan disimpan dan tidak ikut lagi dalam proses pengurutan data. Ulangi kembali proses tersebut berulang-ulang sehingga diperoleh data dalam keadaan terurut dengan benar.

8 31 72 14 22 98

8 31 72 14 22 98

8 31 72 14 22 98

8 31 14 72 22 98

8 31 14 72 22 98

8 31 14 22 72 98

8 31 14 22 72 98

8 14 31 22 72 98

8 14 31 22 72 98

(65)

Gambar 2.1. Proses pengurutan data menggunakan cocktail shaker sort

2.5. Algoritma4 WayMerge Sort

Algoritmamerge sort merupakan algoritma yang dicetuskan oleh John von Neuman pada tahun 1945 (Knuth, 1998). Merge sortmenggunakan prinsip divide and conquer. Divide and conquer adalah metode pemecahanmasalah yang bekerja dengan membagi masalah (problem) menjadi beberapa sub-masalah (subproblem) yang lebih kecil, kemudian menyelesaikan masing-masing sub-masalah secara independen dan akhirnya menggabung solusi masing-masing sub-masalah sehingga menjadi solusi masalah semula (Munir, 2005).

Pada umumnya, merge sortmembagi data menjadi 2 bagian. Namun pada algoritma 4 way merge sort membagi datamenjadi 4 bagian sehingga diperoleh subdata yang terpisah. Kemudian subdata tersebut diurutkan secara terpisahlalu menggabungkannya hingga diperoleh data dalam keadaan terurut. Proses pengurutan menggunakan 4 way merge sortdapat dilihat pada Gambar 2.2.

Gambar 2.2. Proses pengurutan menggunakan algoritma 4 way merge sort

2.6. Pseudocode

(66)

Tujuan dari penggunaan pseudocode: 1. Lebih mudah dibaca oleh manusia 2. Lebih mudah dipahami

3. Lebih mudah dalam menuangkan ide/hasil pemikiran

2.6.1. Pseudocode cocktail shaker sort

Pseudocode algortima cocktail shaker sort sebagai berikut:

procedure cocktailShakerSort(A:list of sortable items);

while swapped // jika tidak ada lagi proses swap maka

(67)

2.6.2. Pseudocode 4 way merge sort

Pseudocode algortima4 way merge sort sebagai berikut:

MergeSort (Array(First,FirstOne,Last,LastOne)) Begin

if Array contains only one element then Return Array

Untuk menggambarkan sebuah algoritma yang terstruktur dan mudah dipahamioleh orang lain (khususnya programmer yang bertugas mengimplementasikan program), maka dibutuhkan alatbantu yang bebrbentuk diagram alir (flowchart). Flowchart menggambarkan urutan logika dari suatu prosedur pemecahan masalah, sehingga flowchart merupakan langkah-langkah penyelesaian masalah yang dituliskan dalam simbol-simbol tertentu.Tujuan flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas menggunakan simbol-simbol yang standar.

Simbol-simbol flowchartyang digunakan untuk menggambarkan algoritma dalam bentuk diagram alir dan kegunaan dari simbol-simbol yang bersangkutan dapat dilihat pada Tabel 2.1.

Tabel 2.1. Simbol-Simbol Flowchart

Simbol Nama Fungsi

Terminal Menyatakan permulaan atau akhir program..

(68)

Process Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer.

Decision Menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban yaitu: ya atau tidak.

Tabel 2.1. Simbol-Simbol Flowchart(Lanjutan)

Simbol Nama Fungsi

Connector Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang sama.

Offline Connector Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang berbeda

Prefined Data Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi inisialisasi/harga awal

PredefinedProcess Menyatakan permulaan sub

program/proses menjalankan sub program

2.8. Running Time

(69)

saat algoritma berhenti.Jika prosesor-prosesornya tidak mulai dan selesai pada saat yang

bersamaan, maka running time dihitung mulai saat komputasi pada prosesor pertama

dimulai hingga pada saat komputasi pada prosesor terakhir selesai.

2.9. Kompleksitas Waktu

Kompleksitas Waktu atau T(n) adalah jumlah operasi yang dilakukan untuk melaksanakan algoritma sebagaifungsidari ukuran masukan n (Tjaru, 2009). Oleh karena itu, dalam mengukur kompleksitas waktu dihitunglah banyaknya operasi yangdilakukan oleh algoritma. Idealnya, harusmenghitung semua operasi yang ada dalam suatu algoritma. Namun untuk alasan praktis, cukup menghitungjumlah operasi abstrak yang mendasari suatu algoritma.

Hal–hal yang mempengaruhi kompleksitas waktu (Aulia, 2006): 1. Jumlah masukan data untuk suatu algoritma(n).

2. Waktu yang dibutuhkan untuk menjalankan algoritma tersebut.

3. Ruang memori yang dibutuhkan untuk menjalankan algoritma yang berkaitan dengan strutur data dari program.

Kompleksitas waktu dibedakan atas tiga jenis, yakni :

1. Tmax(n) : kompleksitas waktu untuk kasus terburuk (worst case), kebutuhan

waktumaksimum.

2. Tmin(n) : kompleksitas waktu untuk kasus terbaik (best case),kebutuhan

waktuminimum.

3. Tavg(n): kompleksitas waktu untuk kasus rata-rata (average case), kebutuhanwaktu

secara rata-rata.

2.10. Metode Pemodelan UML

(70)

menyampaikan apa dan kapanmodel yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software.

UML terdiri atas pengelompokan diagram-diagram sistem menurut aspek atau sudut pandang tertentu.Diagram yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai beberapa jenis diagram yaitu:Use Case Diagram, Class Diagram, Package Diagram, Object Diagram, Sequence

Diagram, Collaboration Diagram, StatiChart Diagram, Activity Diagram,

Deployment Diagram, Component Diagram, Composite Structure Diagram,

Interaction Overview Diagram, Timing Diagram.Tetapi yang sering digunakan adalah Use Case Diagram, Activity Diagram, Sequence Diagram dan Class Diagram.

2.10.1.Use case diagram

Use case diagramadalah model fungsional sebuah system yang menggunakan actor dan use case. Use case adalah layanan (service) atau fungsi-fungsi yang disediakan oleh sistem untuk penggunanya yang menjadi persoalan itu apa yang dilakukanbukan bagaimana melakukannya.

Use case diagrammenggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang tekankan adalah “apa” yang dibuat sistem, dan bukan “bagaimana” sebuah use case menerangkan sebuah interaksi antar actor dengan system. Use case merupakan sebuah pekerjaan tertentu, misalnya:login ke sistem, meng-create sebuah daftar belanja, dan lain-lain. Seorang sebuah actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Diagram use case dekat kaitannya dengan kejadian-kejadian. Kejadian (scenario) merupakan contoh apa yang terjadi ketika seseorang berinteraksi dengan sistem.Use case diagram mempunyai beberapa bagian penting seperti: Actor, Use Case, Underectional Association, Generalization. Use case diagram mempunyai pengkasifikasian yang ditunukkan pada Tabel 2.2.

Tabel 2.2. Pengklasifikasian dalam Use Case Diagram

(71)

Actor Menggambarkan semua objek di luar sistem (bukan hanya pengguna sistem/perangkat lunak) yang berinteraksi dengan sistem yang dikembangkan.

Use Case Menggambarkan fungsionalitas yang dimiliki system

Relasi menggambarkan hubungan antara actor dan use case.Pembagian relasi-relasi ini dapat dilihat pada Tabel 2.3.

Tabel 2.3. Tabel Relasi-Relasi dalam Use Case Diagram

Relasi Kegunaan Notasi

Asosiasi (Association)

(72)

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana aktivitas berakhir.Activity diagram sesungguhnya merupakan bentuk khusus dari state machine yang bertujuan memodelkan komputasi-komputasi dan aliran-aliran kerja yang terjadi dalam sistem/perangkat lunak yang sedang dikembangkan. Activity diagrammencakup didalamnya simbol-simbol yang relative mudah digunakan. Simbol-simbol yang sama juga dapat digunakan pada statechart diagram.

Jenis-jenis state diperlihatkan pada Tabel 2.4.

Tabel 2.4. Jenis-Jenis State

Initial state State mendindikasikan awal rangkaian state dalam diagram state

Final state State mengindikasikan akhir rangkaian state dalam diagram state

2.10.3.Sequence diagram

Sequence diagram termasuk kedalam kategori diagram behavior, yaitu diagram yang berfungsi untuk menampilkan prilaku software. Sequence diagram menggambarkan bagaimana objek saling berinteraksi melalui message dalam eksekusi operation, untuk

(73)
(74)

Notasi/simbol sequence diagram dapat dilihat pada Tabel 2.5

Tabel 2.5. Notasi/simbol Sequence Diagram

Actor  Seseorang atau sesuatu yang berinteraksi dengan sistem.

 Berpartisipasi secara berurutan dengan mengirimkan dan/atau menerima pesan.

 Ditempatkan dibagian atas diagram.

System Kotak yang menunjukan sebuah sistem sebagai „black box‟ atau

secara keseluruhan.

Lifeline Garis putus vertikal dibawah aktor dan sistem, menunjukkan berjalannya sistem

Activation bar  Garis membentuk kotak panjang dibawah lifelines.

 Menunjukkan waktu ketika objek aktif di dalam interaksi.

Input message  Garis panah horizontal dari aktor ke sistem yang menunjukkan input.

 Penulisan diawali dengan huruf kapital.

 Jika mengandung parameter, ditulis dengan cara yang sama, dan setiap parameter diawali dengan koma.

Output message Garis panah putus-putus horizontal dari sistem ke aktor yang menunkukkan message yang dikirim dari sistem ke aktor.

Receiver actor Aktor lain diluar sistem yang menerima message dari sistem juga dapat diikutsertakan.

Frame  Sebuah kotak yang dapat menutup satu atau lebih message untuk membagi sequence.

(75)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Perkembangan yang sangat pesat di bidang Teknologi Informasi dan Komunikasi memberikan pengaruh yang signifikan dalam pengelolaan data. Selain lebih mudah, data juga dapat diperoleh dalam jangka waktu yang lebih singkat dengan jumlah yang berlimpah. Karena fungsi data secara umum sebagai acuan dan pertimbangan semua pihak dalam melakukan tindakan, maka tuntutan pengelolaannya secara tepat dan akurat pun semakin meningkat. Oleh sebab itu, pengurutan (sorting) merupakan hal yang sangat penting dalam memecahkan permasalahan tersebut. Pemecahan permasalahan pengolahan data dapat menjadi lebih efektif dan efisien bila data sudah dalam keadaan terurut.

Algoritma pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Algoritma pengurutan (sorting algorithm) adalah algoritma yang menyimpan suatu list pada suatu urutan tertentu secara ascending dan descending. Efisiensi pada pengurutan ini diperlukan untuk mengoptimalkan kecepatan pemrosesan. Semakin efisien suatu algoritma, maka pada saat dieksekusi dan dijalankan akan menghabiskan waktu yang lebih cepat dan bisa menerima lebih banyak masukan dari user.

(76)

Berdasarkan proses pengurutan yang berbeda dari kedua algoritma tersebut, maka masing-masing algoritma yang digunakan mempunyai kelebihan dan kekurangan dari segi running time dan kompleksitasnya. Sehingga untuk dapat mengetahui seberapa efisien suatu algoritma dipakailah teori kompleksitas algoritma sebagai dasar kajian.

Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Algoritma dapat menyelesaikan suatu permasalahan dalam waktu yang singkat jika memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Berdasarkan pembahasan di atas maka penulis memilih judul “Perbandingan Algoritma Cocktail Shaker Sort dan 4 Way Merge Sort dalam Pengurutan Data.”

1.2. Rumusan Masalah

Berdasarkan latar belakang masalah di atas, maka rumusan masalahnya adalah bagaimana membandingkan algoritma cocktail shaker sort dan 4 way merge sort dalam pengurutan data.

1.3. Batasan Masalah

Berdasarkan latar belakang di atas maka ada beberapa hal yang dapat dijadikan batasan masalah yaitu:

1. Perancangan aplikasi menggunakan bahasa pemrograman Microsoft Visual Basic 2010.

2. Data untuk pengujian dibangkitkan secara acak berupa bilangan bulat (integer). 3. Data untuk pengujian n=10, n=50, n=100, n=500, n=1.000, n=5.000, n=10.000,

n=50.000 dan n= 100.000.

4. Analisis dilakukan berdasarkan kompleksitas waktu dan running time.

1.4. Tujuan Penelitian

(77)

1.5. Manfaat Penelitian

Manfaat dari penelitian ini, yaitu:

1. Memahami bagaimana penerapan algoritma cocktail shaker sort dan 4 way merge sort dalam pengurutan data.

2. Memberikan pembelajaran dan menambah wawasan di bidang keilmuan yang terkait.

1.6. Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

1. Studi Literatur

Penulis mengumpulkan bahan dan data referensi dari buku, skripsi dan sumber lain yang berkaitan dengan algoritma cocktail shaker sort dan 4 way merge sort dalam pengurutan data.

2. Analisis dan Perancangan Sistem

Pada tahap ini dilakukan analisis sesuai dengan kebutuhan seperti cara membangun aplikasi yang mengimplementasikan algoritma cocktail shaker sort dan 4 way merge sort, pembuatan flowchart dan desain interface, serta hasil yang diinginkan.

3. Implementasi Sistem

Metode ini dilaksanakan dengan mengimplementasikan rancangan sistem yang telah dibuat pada analisis dan perancangan sistem ke dalam program komputer dengan menggunakan bahasa pemrograman pemrograman Microsoft Visual Basic 2010.

4. Pengujian Sistem

Metode ini dilaksanakan dengan mengimplementasikan algoritma cocktail shaker sort dan 4 way merge sort, dalam pengurutan data yang acak. Hasil program diuji kemudian dianalisis apakah sistem ini bekerja secara efektif dan efisien.

5. Dokumentasi

(78)

1.7. Sistematika Penulisan

Dalam penulisan penelitian ini terdapat beberapa sistematika penulisan, yaitu:

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini berisi teori-teori yang berkaitan dengan algoritma, pengurutan (sorting), algoritma cocktail shaker sort, algoritma 4 way merge sort, dan parameter kinerja pada algoritma cocktail shaker sort dan 4 way merge sort.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi pembahasan analisis sistem dan perancangan sistem, termasuk di dalamnya perancangan flowchart, use case diagram, sequence diagram, activity diagram dan desain interface.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi ulasan dan pengujian terhadap peracangan yang telah diimplementasikan dengan menggunakan bahasa pemrograman Microsoft Visual Basic 2010.

BAB 5 KESIMPULAN DAN SARAN

(79)

PERBANDINGAN ALGORITMA COCKTAIL SHAKER SORT DAN 4 WAY

MERGE SORT DALAM PENGURUTAN DATA

ABSTRAK

Pengurutan merupakan hal yang sangat penting dalam perkembangan Teknologi Informasi dan Komunikasi karena memberikan pengaruh yang besar dalam pengolahan data. Pemecahan permasalahan pengolahan data dapat menjadi lebih efektif dan efisien apabila data sudah dalam keadaan terurut. Oleh karena itu, algoritma pengurutan dibutuhkan untuk mengurutkan data dengan cepat dan tepat. Dalam suatu algoritma perlu diperhatikan efisiensinya karena semakin efisien suatu algoritma, maka saat dieksekusi dan dijalankan akan menghabiskan waktu yang lebih cepat. Efisiensi algoritma dinyatakan dengan kompleksitas algoritma. Maka dibangunlah sistem untuk menganalisis algoritma pengurutan dengan menggunakan cocktail shaker sort dan 4 way merge sort. Berdasarkan sistem yang telah dibuat dengan memasukkan jumlah data yang dinginkan akan diperoleh waktu eksekusi, grafik dan kompleksitas algoritma pengurutan data tersebut sehingga dapat diketahui algoritma mana yang lebih efektif untuk digunakan.

(80)

COMPARISON OF COCKTAIL SHAKER SORT AND 4 WAY MERGE SORT

ALGORITHMS IN DATA SORTING

ABSTRACT

Sorting is very important in the development of Information and Communication Technology for a big impact in data processing. Solving the problems of data processing can be more effective and efficient when data is already in a state of sequences. Therefore, the algorithm is needed to sort data quickly and accurately. An algorithm is needed to consider the efficiency because the more efficient an algorithm, the quickly it generates result. Algorithm efficiency is expressed by the complexity of the algorithm. Thus, system is built for analyzing sorting algorithms by using cocktail shaker sort and 4 way merge sort. Based of the system that has been created by entering the desired amount of data will be obtained by the time of execution, graphics and complexity algorithms of data sorting so it can know which was more effective algorithm to be used.

(81)

PERBANDINGAN ALGORITMA COCKTAIL SHAKER SORT DAN

4 WAY MERGE SORT DALAM PENGURUTAN DATA

SKRIPSI

WINDA PERMATA SARI

131421068

PROGRAM S-1 EKSTENSI ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(82)

PERBANDINGAN ALGORITMA

COCKTAIL SHAKER SORT

DAN

4 WAY MERGE SORT

DALAM PENGURUTAN DATA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

WINDA PERMATA SARI

131421068

`

PROGRAM S-1 EKSTENSI ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(83)

PERSETUJUAN

Judul : PERBANDINGAN ALGORITMA COCKTAIL

SHAKER SORT DAN 4 WAY MERGE SORT DALAM PENGURUTAN DATA

Kategori : SKRIPSI

Nama : WINDA PERMATA SARI

Nomor Induk Mahasiswa : 131421068

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Agustus 2016

Komisi Pembimbing

Pembimbing 2 Pembimbing 1

Drs. Marihat Situmorang, M.Kom Drs. James Piter Marbun, M.Kom NIP. 196312141989031001 NIP. 1958061119860310002

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(84)

PERNYATAAN

ANALISIS PERBANDINGAN ALGORITMA COCKTAIL SHAKER SORT DAN 4 WAY MERGE SORT

DALAM PENGURUTAN DATA

SKRIPSI

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

Medan, Agustus 2016

(85)

PENGHARGAAN

Puji dan syukur penulis ucapkan kehadirat Tuhan Yang Maha Esa yang telah melimpahkan segala rahmat dan berkat-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul: “Perbandingan Algoritma Cocktail Shaker Sort dan 4 Way Merge Sort dalam Pengurutan Data” sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Skripsi ini tidak dapat terselsaikan dengan baik tanpa adanya bantuan dari pihak-pihak lain. Oleh karena itu, penulis ingin menyampaikan rasa terima kasih dan penghargaan yang sebesar-besarnya kepada semua pihak yang telah memberikan bimbingan dan dukungan terutama kepada:

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

2. Bapak Prof. Dr. Opim Sitompul, M.Si., selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Program Studi Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

5. Bapak Drs. James Piter Marbun, M.Kom selaku dosen pembimbing 1 yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan, baik kritik dan saran kepada penulis selama pembuatan sampai penyelesaian skripsi ini. 6. Drs. Marihat Situmorang, M.Kom selaku dosen pembimbing 2 yang telah banyak

meluangkan waktunya dalam memberikan masukan-masukan, baik kritik dan saran kepada penulis selama pembuatan sampai penyelesaian skripsi ini.

7. Bapak Prof. Dr. Iryanto, M.Si, selaku dosen pembanding 1 yang memberikan banyak masukan kepada penulis.

(86)

9. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

10. Orang tua dan seluruh keluarga penulis yang selalu memberikan dukungan, doa, dan motivasi yang tak ternilai harganya.

11. Seluruh teman Ekstensi S1 Ilmu Komputer Stambuk 2013 khususnya KOM

B‟2013 yang selama ini telah menjadi keluarga dan sahabat penulis, teristimewa sahabat penulis Rudy Herbet Sianturi, Ploren Peronica Pasaribu, Kak Rofika, Citra Meidhantine Utami, dan Asrul Tarigan.

Penulis menyadari masih terdapat kekurangan dan masih jauh dari sempurna. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun demi perbaikan dan penyempurnaan skripsi ini. Semoga skripsi ini bermanfaat bagi semua pihak yang membacanya guna menambah wawasan.

Medan, Agustus 2016

(87)

PERBANDINGAN ALGORITMA COCKTAIL SHAKER SORT DAN 4 WAY

MERGE SORT DALAM PENGURUTAN DATA

ABSTRAK

Pengurutan merupakan hal yang sangat penting dalam perkembangan Teknologi Informasi dan Komunikasi karena memberikan pengaruh yang besar dalam pengolahan data. Pemecahan permasalahan pengolahan data dapat menjadi lebih efektif dan efisien apabila data sudah dalam keadaan terurut. Oleh karena itu, algoritma pengurutan dibutuhkan untuk mengurutkan data dengan cepat dan tepat. Dalam suatu algoritma perlu diperhatikan efisiensinya karena semakin efisien suatu algoritma, maka saat dieksekusi dan dijalankan akan menghabiskan waktu yang lebih cepat. Efisiensi algoritma dinyatakan dengan kompleksitas algoritma. Maka dibangunlah sistem untuk menganalisis algoritma pengurutan dengan menggunakan cocktail shaker sort dan 4 way merge sort. Berdasarkan sistem yang telah dibuat dengan memasukkan jumlah data yang dinginkan akan diperoleh waktu eksekusi, grafik dan kompleksitas algoritma pengurutan data tersebut sehingga dapat diketahui algoritma mana yang lebih efektif untuk digunakan.

(88)

COMPARISON OF COCKTAIL SHAKER SORT AND 4 WAY MERGE SORT

ALGORITHMS IN DATA SORTING

ABSTRACT

Sorting is very important in the development of Information and Communication Technology for a big impact in data processing. Solving the problems of data processing can be more effective and efficient when data is already in a state of sequences. Therefore, the algorithm is needed to sort data quickly and accurately. An algorithm is needed to consider the efficiency because the more efficient an algorithm, the quickly it generates result. Algorithm efficiency is expressed by the complexity of the algorithm. Thus, system is built for analyzing sorting algorithms by using cocktail shaker sort and 4 way merge sort. Based of the system that has been created by entering the desired amount of data will be obtained by the time of execution, graphics and complexity algorithms of data sorting so it can know which was more effective algorithm to be used.

(89)
(90)

3.1.1. Analisis masalah 21

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 38

4.1. Implementasi Sistem 38

4.1.1. Menu utama 38

4.1.2. Sorting dengan algoritma cocktail shaker sort 39 4.1.3. Sorting dengan algoritma 4 way merge sort 45

4.2. Pengujian Sistem 51

4.2.1. Analisis proses algoritma cocktail shaker sort 51 4.2.2. Analisis kompleksitas waktu cocktail shaker sort 56 4.2.3. Analisis proses algoritma 4 way merge sort 57 4.2.4. Analisis kompleksitas waktu 4 way merge sort 58

4.3. Hasil Pengujian Sistem 60

4.3.1. Hasil pengujian algoritma cocktail shaker sort 60 4.3.2. Hasil pengujian algoritma 4 way merge sort 61

BAB 5 KESIMPULAN DAN SARAN 62

5.1. Kesimpulan 62

Gambar

Grafik 4 Way Merge SortChart)
Gambar 4.2. Tampilan Sorting dengan Algoritma Cocktail Shaker Sort
Gambar 4.7, Gambar 4.8, Gambar 4.9, Gambar 4.10 dan Gambar 4.11.
Gambar 4.6. Sorting Algoritma Cocktail Shaker Sort n=500
+7

Referensi

Dokumen terkait

Kenyataan ini barangkali cukup sebagai pertimbangan untuk menyatakan bahwa praktik kawin lari Sasak tersebut dari perspektif hukum Islam berpotensi tidak baik dan

Selain itu, mereka mendorong teman –teman mereka agar membeli barang atau jasa peruahaan atau merekomendasikan perusahaan tersebut pada orang lain, dengan begitu

Setelah penuh dengan adukan beton, dilakukan dengan menusuk – nusuk beton tersebut 10x supaya adukan beton tersebut padat dan rata, akan tetapi perlu

Mutu layanan farmasi dapat ditinjau dari 4 aspek yang merupakan indikator minimal dalam menilai mutu di instalasi farmasi yaitu , waktu tunggu pelayanan obat jadi <=15 menit

A fentiekből számos következtetés levonható és számos kérdés fölvethető: Sanders személye és tevékenysége Magyarországon a SZEB mandátumának lejárta

Sikap masyarakat terhadap Program Keluarga Harapan adalah positif dengan nilai 0,91 dilihat dari penilaian dan tanggapan masyarakat yang setuju dengan dilaksanakannya Program

Kesimpulan dari penelitian ini bahwa pemberian silase klobot jagung dalam ransum sampai level 70% dari total ransum domba lokal jantan menghasilakan konsumsi bahan kering,

Hasil penelitian menunjukkan bahwa pengembang berperan aktif dalam mengimplementasikan rekomendasi penanganan dampak lalu lintas, utamanya penanganan dampak lalu lintas