1
BAB I PENDAHULUAN
1.1. Latar Belakang Teknologi informasi sudah berkembang sangat pesat pada masa ini. Pencarian informasi yang berjumlah besar dalam waktu yang singkat sangat dibutuhkan sebagai upaya efisiensi waktu. Pencarian sebuah dokumen akan lebih efektif apabila informasi-informasi mengenai dokumen yang dicari tersebut diurutkan terlebih dahulu, dibandingkan pencarian dokumen tanpa pengurutan. Sehingga proses pengurutan data (sorting) merupakan salah satu bagian penting dalam proses pencarian informasi. Pengurutan data telah menjadi bidang penelitian yang sangat besar bagi para peneliti algoritma, banyak sumber daya yang diinvestasikan untuk membuat algoritma pengurutan data bekerja lebih baik. Untuk tujuan ini banyak algoritma pengurutan yang diamati dalam hal efisiensi kompleksitas algoritma (Friend, 1956). Algoritma pengurutan data yang efisien sangat penting untuk mengoptimalkan penggunaan algoritma lain yang memerlukan daftar data yang sudah diurutkan untuk dapat bekerja dengan benar (Deitel & Deitel, 2001). Sejak awal digunakannya teknologi komputer, masalah pengurutan data telah menarik minat banyak peneliti, untuk menciptakan algoritma yang memiliki kompleksitas waktu penyelesaian paling efisien (Kruse & Ryba, 1999). Menurut Cormen et al (2001), pengurutan data telah dianggap sebagai masalah mendasar dalam bidang ilmu algoritma, dikarenakan alasan-alasan berikut : (a) Kebutuhan untuk pengurutan informasi yang terdapat dalam banyak aplikasi. (b) Algoritma lain banyak menggunakan pengurutan data sebagai subrutin kunci. (c) Dalam mendesain algoritma banyak teknik penting direpresentasikan dalam tubuh algoritma pengurutan.
Universita Sumatera Utara
2
(d) Banyak isu rekayasa yang timbul ketika menerapkan algoritma pengurutan. Banyak algoritma yang sangat terkenal untuk pengurutan data, dan salah satu dari algoritma yang terkenal tersebut yang menjadikan proses pengurutan data menjadi lebih ekonomis dan efisien adalah algoritma Quicksort yang ditemukan Hoare R pada tahun 1962. Algoritma Quicksort menggunakan teknik pendekatan divide-andconquer,
pada algoritma yang menggunakan teknik divide-and-conquer, suatu
masalah dibagi menjadi beberapa masalah kecil, kemudian memecahkan masalahmasalah kecil tersebut secara rekursi (conquer), dan kemudian mengumpulkan semua solusi untuk mendapatkan solusi utama untuk input awal (combine). Prinsip desain algoritma yang menggunakan teknik divide-and-conquer adalah bahwa lebih mudah untuk memecahkan beberapa kasus masalah kecil daripada satu masalah besar (Dean, 2006). Kemudian pada tahun 2010, Rami Mansi menggagas algoritma SMS (Scan, Move and Sort), yang merupakan pengembangan dari algoritma Quicksort (Mansi, 2010). Algoritma SMS meningkatkan algoritma Quicksort dalam membagi array masukan. Quicksort menggerakkan pivot untuk berada di tempat yang benar dan kemudian membagi array menjadi dua bagian, dan secara rekursif membuat prosedur yang sama untuk kedua bagian array tersebut, hingga mencapai hasil pengurutan yang benar. Algoritma SMS membagi array menjadi tiga bagian (array), yakni array yang menampung nilai positif, menampung nilai negatif, dan menampung nilai yang sering muncul, lalu kemudian memindahkan setiap elemen ke tempat yang benar sesuai urutan. Dalam kasus terbaik, algoritma quicksort membutuhkan kompleksitas waktu O(n log n), sementara algoritma SMS membutuhkan kompleksitas waktu O(n). Dalam kasus rata-rata, algoritma quicksort membutuhkan kompleksitas waktu O(n log n), algoritma SMS membutuhkan kompleksitas waktu O(n + f * (nilai maksimum + |nilai minimum|)), di mana f adalah jumlah elemen yang sering muncul. Peningkatan pada kasus rata-rata terjadi ketika n adalah jauh lebih besar dari pada nilai maksimum dan |nilai minimum|, di mana kompleksitas waktu mendekati O(n). Ketika berurusan dengan berbagai elemen yang berbeda, algoritma SMS lebih efisien dari pada algoritma quicksort. Dalam kasus terburuk, algoritma Quicksort membutuhkan kompleksitas waktu O(n2), sedangkan algoritma SMS membutuhkan kompleksitas waktu O(n + f * (nilai maksimum + |nilai minimum|)) (Mansi, 2010). Pada penelitian
Universita Sumatera Utara
3
ini, Penulis akan membangun suatu algoritma baru yang merupakan pengembangan dari algoritma SMS.
1.2. Penelitian Sebelumnya Terdapat beberapa riset yang telah dilakukan oleh peneliti sebelumnya yang berkaitan dengan penelitian ini. Pada tabel 1.1 berikut akan terlihat beberapa riset tersebut. Tabel 1.1. Riset Terkait Nama Peneliti dan Tahun Hoare (1962)
Judul Quicksort
Pembahasan Menyajikan algoritma Quicksort dan cara kerjanya.
Mansi (2010)
Enhanced Quicksort
Menyajikan
Algorithm
(Scan, Move, dan Sort) yang merupakan
algoritma
SMS
peningkatan
dari
algoritma Quicksort, berikut cara kerjanya
dan
membandingkan
kompleksitas waktu yang dicapai dengan algoritma quicksort. Dean (2006)
A Simple Expected
Menganalisa
waktu
proses
Running Time
algoritma-algoritma
Analysis for
menggunakan metode divide and
Randomized Divide
conquer
yang
and Conquer Algorithms Deependra & Dwivedi (2011)
Comparison Analysis of Best Sorting Algorithms
Memberikan beberapa kasus data yang
akan
memberikan yang
terbaik
diurutkan solusi untuk
dan
algoritma masalah
tersebut Pada penelitian ini akan dibangun/disajikan algoritma pengurutan baru yang merupakan pengembangan dari algoritma SMS, cara kerja algoritma tersebut dan melakukan perbandingan kompleksitas waktu yang dicapai dengan algoritma SMS,
Universita Sumatera Utara
4
serta melakukan pengujian untuk jumlah data 50.000 (lima puluh ribu) dan 100.000 (seratus ribu) data integer, dimana masing-masing jumlah data tersebut akan diuji untuk 20 set data.
1.3. Rumusan Masalah Algoritma SMS sebenarnya telah berhasil melakukan pengurutan data dengan baik, namun melihat kompleksitas waktu yang dibutuhkan algoritma SMS pada kasus ratarata dan kasus terburuk yang masih sangat besar, maka dalam penelitian ini penulis membangun algoritma pengurutan yang merupakan pengembangan dari algoritma SMS, dengan kompleksitas waktu yang lebih efisian dibandingkan algoritma SMS untuk kasus rata-rata dan kasus terburuk.
1.4. Batasan Masalah Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah ditetapkan dalam rumusan masalah, maka dibentuk batasan terhadap permasalahan yaitu : 1. Pengurutan yang dilakukan untuk bilangan integer 2. Perbandingan yang dilakukan berdasarkan efisiensi kompleksitas waktu
1.5. Tujuan Penelitian Tujuan penelitian tesis ini adalah membangun algoritma pengurutan yang merupakan pengembangan dari algoritma SMS, dengan kompleksitas waktu yang lebih efisien dibandingkan algoritma SMS untuk kasus rata-rata dan terburuk.
1.6. Manfaat Penelitian Melalui penelitian ini penulis lebih memahami mengenai algoritma pengurutan data, cara kerjanya serta
cara pengaplikasiannya
pada komputer. Penulis
juga
mengharapkan manfaat yang sama pada orang-orang yang membaca dan memahami penelitian ini. Penulis juga berharap hasil penelitian ini juga dapat menjadi suatu
Universita Sumatera Utara
5
acuan dalam pengembangan ilmu pengetahuan bidang informatika, khususnya mengenai algoritma pengurutan. Aplikasi dari penelitian ini diharapkan dapat membantu para pelaku pekerjaan dalam bidang pengurutan data dan bidang lain yang memerlukan pengurutan data dalam subrutin pekerjaannya.
Universita Sumatera Utara