LISTING PROGRAM COCKTAIL SHAKER SORT
End While randomG.Next(0, 100000) & "')")
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 & "')")
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
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") & "')")
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
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Label1.Click End Sub
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.
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.
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.
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:
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.
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
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
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
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
3.3.2. Flowchart algoritma cocktail shaker sort
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
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
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
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
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)
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)
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
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)
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
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
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.
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.
Gambar 4.4. Sorting Algoritma Cocktail Shaker Sort n = 50
Gambar 4.5. Sorting Algoritma Cocktail Shaker Sort n= 100
Gambar 4.7. Sorting Algoritma Cocktail Shaker Sort n=1000
Gambar 4.9. Sorting Algoritma Cocktail Shaker Sort n = 10000
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.
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
Gambar 4.14. Sorting Algoritma 4 Way Merge Sort n = 10
Gambar 4.16. Sorting Algoritma 4 Way Merge Sort n = 100
Gambar 4.18. Sorting Algoritma 4 Way Merge Sort n = 1000
Gambar 4.20. Sorting Algoritma 4 Way Merge Sort n = 10000
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.
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
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.
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.
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:
4.2.2. Analisis kompleksitas waktu algoritma cocktail shaker sort
No Code C # C.#
PublicFunction CocktailSortNumber(ByVal ListofNumber
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.
4. Kemudian gabungkan dan urutkan data tersebut sesuai dengan pengelompokannya.
4.2.4. Analisis kompleksitas algoritma 4 way merge sort
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
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
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
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.
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
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
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
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.
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)
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
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
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
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..
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
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
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
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)
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
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.
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.
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
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
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
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.
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.
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
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
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,
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
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.
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
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.
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.
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