BAB 1
PENDAHULUAN
1.1. Latar Belakang
Sorting atau pengurutan merupakan proses mengatur susunan data menurut kriteria tertentu. Meskipun sepertinya hanya sebuah masalah klasik, pengurutan memiliki peranan penting dalam mengolah data. Dengan adanya metode pengurutan ini, data yang disajikan secara acak dapat disusun dengan teratur.
Data merupakan informasi yang telah diterjemahkan ke dalam bentuk yang lebih sederhana untuk melakukan suatu proses. Pencarian informasi yang berjumlah besar dalam waktu yang cepat sangat dibutuhkan sebagai upaya efisiensi waktu.
Untuk mengurutkan data tersebut, algoritma sorting merupakan metode yang mampu menyelesaikannya. Algoritma pengurutan ini dapat diklasifikasikan berdasarkan teknik proses pengurutan data, yaitu: Divide and Conquer dan bukan Divide and Conquer. Secara kompleksitas waktu, RadixSort termasuk ke dalam Divide and Conquer. Namun dari segi algoritma untuk melakukan proses pengurutan, RadixSort tidak termasuk dalam Divide and Conquer. Sedangkan QuickSort dalam melakukan proses pengurutan data menggunakan teknik Divide and Conquer.
Divide and Conquer adalah teknik pemecahan masalah dengan membagi dan menggabungkan. Membagi masalah menjadi bagian yang lebih kecil, kemudian menyelesaikan masalah yang telah dibagi tersebut secara independen, lalu menggabungkan solusi dari masalah yang telah diselesaikan tersebut menjadi solusi dari masalah semula. Algoritma RadixSort adalah algoritma sorting yang cepat, unik, dan efektif dan algoritma QuickSort memiliki proses yang cepat dan mudah diimplentasikan. Dengan memanfaatkan kelebihan dari kedua jenis algoritma tersebut, maka penulis ingin menganalisis kompleksitas waktu algoritma sorting tersebut (QuickSort dan RadixSort) terhadap penelitian penulis.
2
Namun, untuk algoritma QuickSort, penulis ingin menganalisis satu algoritma lainnya dari Quick Sort, yakni 3 Way QuickSort yang lebih unggul dalam pengurutan data yang duplikat. Berdasarkan hal yang telah dipaparkan, maka penulis memilih judul “Analisis Perbandingan Algoritma QuickSort, 3 Way QuickSort, dan RadixSort. ”
1.2. Rumusan Masalah
Rumusan masalah dalam penelitian ini adalah bagaimana merancang program pengurutan untuk menganalisis kompleksitas waktu dari algoritma QuickSort, 3 Way QuickSort, dan RadixSort pada pengurutan string.
1.3. Batasan Masalah
Adapun batasan masalah pada penelitian ini adalah:
1. Hanya membahas mengenai algoritma QuickSort, 3 Way QuickSort dan RadixSort dalam pengurutan string
2. Hanya menganalisis perbandingan kompleksitas waktu (big-O) algoritma QuickSort, 3 Way QuickSort dan RadixSort
3. Data yang digunakan merupakan data yang dibangkitkan secara acak berupa string (kombinasi huruf dan angka) dengan 6 karakter
4. Pengurutan data acak dengan data<=10.000 string
5. Hasil output berupa pengurutan string ascending berdasarkan ASCII 6. Aplikasi yang dirancang menggunakan bahasa pemrograman C++ 7. Menggunakan laptop dengan spesifikasi:
a. Intel Core I5 2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB. b. Intel Pentium P6300, RAM 3GB, HDD 320 GB.
3
1.4. Tujuan Penelitian
Tujuan dari penelitian ini adalah mampu mengurutkan string berdasarkan pengurutan ASCII menggunakan algoritma QuickSort, 3 Way QuickSort dan RadixSort dari string acak yang dibangkitkan serta mampu menganalisis kompleksitas ketiga algoritma tersebut.
1.5. Manfaat Penelitian
Adapun manfaat dari penelitian ini yaitu:
1. Memahami bagaimana cara menganalisis kompleksitas waktu algoritma QuickSort, 3 Way QuickSort dan RadixSort dalam pengurutan string acak. 2. Dapat dijadikan pembelajaran dan menambah pengalaman 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 kompleksitas waktu (big-O) dan running time. 2. Analisis dan Perancangan Sistem
Pada tahap ini dilakukan analisis sesuai dengan kebutuhan seperti cara membangun program pengurutan algoritma QuickSort, 3 Way QuickSort dan RadixSort, pembuatan flowchart, input, serta output 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 C++.
4. Pengujian Sistem
Metode ini dilaksanakan dengan mengimplementasikan algoritma QuickSort, 3 Way QuickSort, dan RadixSort dalam mengurutkan string yang dibangkitkan.
4
Hasil program diuji kemudian dianalisis apakah sistem ini bekerja secara efektif dan efisien.
5. Dokumentasi
Metode ini berisi laporan dan kesimpulan akhir dari hasil analisis dan pengujian dalam bentuk skripsi.
1.7. Sistematika Penulisan
Sistematika penulisan dalam penelitian ini, yaitu:
BAB 1: PENDAHULUAN
Bab ini berisi latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan skripsi.
BAB 2: LANDASAN TEORI
Bab ini membahas mengenai teori-teori yang digunakan untuk memahami permasalahan yang berkaitan dengan proses pengurutan algoritma QuickSort, 3 Way QuickSort dan RadixSort.
BAB 3: ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini berisi analisis mengenai metode yang digunakan untuk menyelesaikan masalah dan perancangan dari sistem yang dibangun.
BAB 4: IMPLEMENTASI SISTEM
Bab ini berisi tentang pengujian program yang telah diimplentasikan dengan menggunakan bahasa pemograman C++.
BAB 5: KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang telah dirangkum dalam penelitian ini dan berisi saran yang berguna dalam usaha untuk melakukan perbaikan dan pengembangan penelitian ini.