• Tidak ada hasil yang ditemukan

Kesimpulan Analisis Keseluruhan Algoritma

Dalam penelitian ini, penulis menganalisis algoritma berdasarkan kompleksitas waktu (T(n)) dan running time ketiga algoritma sorting tersebut. Berdasarkan Gambar 4.15, Gambar 4.16, Tabel 4.4, ataupun Tabel 4.5 di bawah, dapat disimpulkan bahwa:

1. Waktu yang diperlukan untuk memproses suatu algoritma tergantung pada input operasi perhitungan atau keseluruhan tahapan algoritma sorting tersebut

QuickSort memiliki kompleksitas waktu T(n) n log n dan Radix Sort dengan T(n) n yang dihitung berdasarkan tahapan penyelesaian proses pengurutan data.

2. Waktu yang diperlukan untuk untuk memproses suatu algoritma tergantung pada platform nya, seperti: proses CPU, processor, bahasa pemrograman, dan RAM. Waktu yang diperlukan ketiga algoritma sorting pada Intel Pentium P6300, RAM 3GB, HDD 320 GB secara rata-rata dapat simpulkan lebih lambat daripada Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB.

3. Perhatikan Tabel 4.4 dan Tabel 4.5. Algoritma QuickSort dan 3 Way QuickSort kurang stabil dalam melakukan percobaan sebanyak 5 kali, namun untuk Algoritma RadixSort cenderung stabil.

4. Kompleksitas waktu tidak tepat persis dengan running time, karena kompleksitas waktu adalah perkiraan kebutuhan algoritma sejalan dengan meningkatnya nilai n sedangkan, running time adalah waktu yang diperlukan oleh komputer untuk melakukan tahapan komputasi. Namun kompleksitas waktu berbanding lurus dengan running time. Hal ini dapat dilihat dari nilai T(n) dan grafik algoritma sorting tersebut. Algoritma QuickSort dan 3 Way QuickSort memiliki kompleksitas waktu yang sama yaitu, T(n) n log n. Namun, grafik yang dihasilkan algoritma tersebut berbeda. Algoritma 3 Way QuickSort lebih unggul dalam proses nya karena sesungguhnya kompleksitas waktu T(n) algoritma 3 Way QuickSort n log n + n dan T(n) algoritma QuickSort n log n + 2n, dimana lebih cepat daripada . Namun, kompleksitas waktu T(n) algoritma RadixSort adalah 6n, yang menunjukkan algoritma RadixSort lebih unggul dari kedua algoritma lain. Oleh sebab itu, urutan algoritma sorting dari yang paling cepat hingga yang paling lambat ialah RadixSort, 3 Way QuickSort, QuickSort.

Gambar 4.15 Grafik Running Time Seluruh Algoritma pada Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB.

Gambar 4.16 Grafik Running Time Seluruh Algoritma pada Intel Pentium P6300, RAM 3GB, HDD 320 GB.

Tabel 4.4 Running Time Seluruh Algoritma pada Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB

a. Algoritma QuickSort

n 60 600 6000 60000

Percobaan ke 1 (satuan waktu milidetik)

1 3 16 58

Percobaan ke 2 (satuan waktu milidetik)

1 2 8 60

Percobaan ke 3 (satuan waktu milidetik)

1 2 11 57

Percobaan ke 4 (satuan waktu milidetik)

1 1 7 55

Percobaan ke 5 (satuan waktu milidetik)

2 2 6 58

b. Algoritma 3 Way QuickSort

n 60 600 6000 60000

Percobaan ke 1 (satuan waktu milidetik)

1 2 7 55

Percobaan ke 2 (satuan waktu milidetik)

2 2 8 56

Percobaan ke 3 (satuan waktu milidetik)

2 2 10 60

Percobaan ke 4 (satuan waktu milidetik)

1 2 7 65

Percobaan ke 5 (satuan waktu milidetik)

c. Algoritma RadixSort

n 60 600 6000 60000

Percobaan ke 1 (satuan waktu milidetik)

0 1 6 47

Percobaan ke 2 (satuan waktu milidetik)

1 1 6 47

Percobaan ke 3 (satuan waktu milidetik)

1 2 7 48

Percobaan ke 4 (satuan waktu milidetik)

2 4 6 57

Percobaan ke 5 (satuan waktu milidetik)

0 2 6 53

Tabel 4.5 Running Time Seluruh Algoritma pada Intel Pentium P6300, RAM 3GB, HDD 320 GB

a. Algoritma QuickSort

n 60 600 6000 60000

Percobaan ke 1 (satuan waktu milidetik)

0 3 31 120

Percobaan ke 2 (satuan waktu milidetik)

0 2 15 156

Percobaan ke 3 (satuan waktu milidetik)

0 2 31 140

Percobaan ke 4 (satuan waktu milidetik)

0 3 15 120

Percobaan ke 5 (satuan waktu milidetik)

b. Algoritma 3 Way QuickSort

n 60 600 6000 60000

Percobaan ke 1 (satuan waktu milidetik)

0 3 15 109

Percobaan ke 2 (satuan waktu milidetik)

15 14 15 124

Percobaan ke 3 (satuan waktu milidetik)

0 0 15 109

Percobaan ke 4 (satuan waktu milidetik)

0 0 15 124

Percobaan ke 5 (satuan waktu milidetik)

0 15 15 124

c. Algoritma RadixSort

n 60 600 6000 60000

Percobaan ke 1 (satuan waktu milidetik)

0 2 15 78

Percobaan ke 2 (satuan waktu milidetik)

15 3 15 109

Percobaan ke 3 (satuan waktu milidetik)

0 0 15 78

Percobaan ke 4 (satuan waktu milidetik)

0 2 15 93

Percobaan ke 5 (satuan waktu milidetik)

Bab ini berisi kesimpulan dari seluruh bab sebelumnya, serta saran yang diharapkan dapat bermanfaat dalam proses pengembangan penelitian selanjutnya.

5.1. Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi, dan pengujian sistem, maka kesimpulan yang penulis sampaikan adalah sebagai berikut:

1. Kompleksitas waktu diperlukan sebagai acuan dalam menentukan perhitungan secara teori untuk mendapatkan satuan waktu yang diperlukan dalam pengurutan data.

2. Pengurutan data yang penulis lakukan berdasarkan pengurutan ascending (menaik). Data acak yang disajikan diurutkan berdasarkan string 6 karakter sesuai tabel ASCII.

3. Waktu pengurutan ketiga algoritma sorting (QuickSort, 3 Way QuickSort RadixSort) dengan spesifikasi laptop Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB lebih cepat daripada Intel Pentium P6300, RAM 3GB, HDD 320 GB. Rata-rata waktu pengurutan dengan spesifikasi laptop Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB 2 kali lebih cepat untuk setiap n data.

4. Waktu pengurutan algoritma RadixSort lebih cepat daripada algoritma QuickSort dan 3 Way QuickSort. Kompleksitas waktu (Tn) RadixSort c.n, dimana c merupakan panjang bit data yang menyebabkan algoritma ini begitu cepat dibandingkan algoritma QuickSort dan 3 Way QuickSort n log n. Oleh karena itu, waktu pengurutan algoritma RadixSort jauh lebih efisien daripada algoritma QuickSort dan 3 Way QuickSort.

Hal ini membuktikan bahwa, waktu pengurutan tergantung pada algoritma, jumlah data, dan platform yang digunakan.

5.2. Saran

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

1. Penelitian ini dapat dikembangkan dengan desain yang lebih user friendly. 2. Diharapkan pada penelitian selanjutnya untuk memilih algoritma yang lain, baru

dan unik, seperti Cocktail ShakerSort, 2 Way QuickSort, RadixQuickSort, Radix3WayQuickSort, dan lain sebagainya.

3. Dalam penelitian selanjutnya, juga diharapkan untuk menggunakan spesifikasi laptop/komputer yang lebih tinggu untuk melihat signifikan perbedaan masing- masing algoritma yang berpengaruh pada jumlah data dan jenis data.

2.1. Algoritma

Secara informal, sebuah algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai, atau seperangkat nilai sebagai input dan menghasilkan nilai, atau seperangkat nilai sebagai output[2].

Algoritma yang akan dianalisis dan dibandingkan pada penelitian ini adalah algoritma Sorting (pengurutan) yaitu algoritma QuickSort, 3 Way QuickSort, dan RadixSort. Algoritma pengurutan adalah algoritma yang menyusun kembali rentetan objek-objek untuk meletakkan objek suatu kumpulan data tersebut ke dalam urutan yang logis [9]. Algoritma adalah prosedur komputasi yang didefinisikan dengan baik yang mengambil beberapa nilai yaitu seperangkat nilai sebagai input dan output yang menghasilkan nilai. Algoritma juga merupakan pola pikir terstruktur yang berisi tahapan penyelesaian, yang nantinya akan diimplementasikan ke dalam suatu bahasa pemrograman [6]. Berdasarkan pengertian algoritma tersebut, dapat disimpulkan bahwa algoritma merupakan suatu istilah yang luas, yang tidak hanya berkaitan dengan dunia komputer.

Menurut Donald E. Knuth, algoritma yang baik memiliki kriteria sebagai berikut:

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 diinisialisasikan atau dibangkitkan dalam algoritma.

2. Output

Suatu algoritma harus memiliki satu atau lebih algoritma. Suatu algoritma yang tidak memiliki keluaran (output) adalah suatu algoritma yang sia-sia, yang tidak perlu dilakukan. Algoritma dibuat untuk tujuan menghasilkan sesuatu yang diinginkan, yaitu berupa hasil keluaran.

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.[10]

Dokumen terkait