Implementasi dan Analisis Algoritma Bucket Sort, Strand Sort dan Quick Sort 2 Pivot Dalam Pensortiran Data yang Berjumlah Banyak

1

BAB 1
PENDAHULUAN

1.1 Latar Belakang
Pencarian sebuah dokumen akan lebih cepat apabila informasi mengenai dokumen
yang dicari tersebut telah diurutkan terlebih dahulu daripada saat kita akan mencari
data yang belum diurutkan. Sehingga proses pengurutan data (sorting) merupakan
salah satu bagian penting dan proses pencarian informasi. Oleh karena itu untuk
memudahkan proses pencarian akan dilakukan terlebih dahulu proses pengurutan data.
Sehingga banyak permintaan untuk membuat program untuk mempermudah
pekerjaan dalam bidang-bidang tertentu, yakni dalam hal pengurutan data. Dari
program pengurutan data terdapat algoritma-algoritma yang digunakan untuk
mengurutkan sebuah data, seperti Bucket Sort, Strand Sort dan Quick Sort 2 Pivot.
Pengurutan data atau sorting merupakan salah satu jenis operasi penting dalam
pengolahan data. Hampir setiap saat dalam kehidupan sehari-hari sering dijumpai
permasalahan-permasalahan yang harus diselesaikan dengan melibatkan operasi
pengurutan data. Begitu pentingnya operasi tersebut, sehingga sampai saat ini telah
banyak dikembangkan metode-metode pengurutan data dan mungkin akan tetap
bermunculan metode-metode baru.

Adapun kelebihan sorting adalah untuk memudahkan dalam pencarian data, dan
juga agar data lebih sistematis karena datanya sudah berurut. Sehingga metode
pengurutan dengan menggunakan sorting sangat bermanfaat dalam pencarian data.
Algoritma Bucket Sort merupakan salah satu bentuk algoritma divide and conquer
melalui metode partisi dan berjalan dalam keadaan waktu linier (Wilkinson & Allen,
2005). Secara teoritis proses pengurutan dilakukan dengan membagi dan memecahkan
himpunan array kedalam beberapa ember virtual secara merata. Algoritma divide and
conquer sudah lama diperkenalkan sebagai sumber dari pengendali proses paralel,

karena masalah-masalah yang terjadi dapat diatasi secara independen. Banyak
arsitektur dan bahasa pemrograman paralel mendesain implementasinya (aplikasi)
dengan struktur dasar dari algoritma devide & conguer

Universitas Sumatera Utara

2

Algoritma Strand sort adalah sebuah algoritma pengurutan yang bekerja dengan
berulang kali menarik sub list dari daftar yang akan diurutkan dan menggabungkan
data dengan array hasil. Pada proses iterasi, data disortir mengeluarkan serangkaian

elemen yang telah tersortir dan menggabungkan serinya menjadi satu. Pada algoritma
strand sort, sangat bermanfaat jika kita menggunakan algoritma tersebut untuk
mengurutkan data yang jumlahnya banyak.
Algoritma Quick Sort 2 Pivot adalah algoritma pengurutan dengan sangat cepat,
namun algoritma ini sangat komplex dan di proses secara rekursif. Quick Sort
merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan
data menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama partition
exchange sort. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen

dipilih dari data, kemudian elemen-elemen data akan diurutkan diatur sedemikian
rupa
Maka dari itu, penulis membuat suatu ide dan gagasan terbaru menjadi berguna
baik secara kualitas dan kuantitas. Seperti penelitian yang pernah dilakukan oleh
Sareen (2013) yang berjudul Komparasi Algoritma Quick sort dan Bucket sort pada
pengurutan data Integer Dimana metode Quick Sort menggunakan memori yang lebih
efisien dibandingkan algoritma yang lain. Penelitian yang juga dilakukan oleh Tjaru &
Setia (2009) yang berjudul Kompleksitas Algoritma Pengurutan Strand Sort dan
selection Sort, yang menerangkan bahwa algoritma pengurutan data dengan selection

sort merupakan algoritma pengurutan paling buruk dari kedua metode pengurutan

tersebut. Hal ini menjadi dorongan untuk memberikan manfaat dan kemudahan
terhadap pengguna dalam mengenal, mengetahui dan memahami. Adapun yang
menjadi penelitian penulis yakni Implementasi dan Analisis Algoritma Bucket Sort,
Strand Sort dan Quick Sort 2 Pivot dalam Pensortiran Data yang berjumlah

Banyak.

1.2 Rumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan, hal yang mendasari
rumusan masalah yaitu bagaimana proses pengurutan data dengan ketiga algoritma
tersebut dan kompleksitas dari ketiga algoritma tersebut.

Universitas Sumatera Utara

3

1.3 Batasan Masalah
Adapun yang menjadi batasan masalah yaitu :
1. Algoritma yang dikaji hanya Bucket Sort, Strand Sort dan Quick Sort 2 Pivot.
2. Implementasi Algoritma dengan menggunakan C#.

3. Pengujian yang dilakukan yaitu dengan membandingkan kompleksitas algoritma
dari ketiga algoritma pengurutan tersebut dalam big O.
4. Tipe struktur data yang digunakan adalah Array dan list
5. Data yang diinputkan adalah Bilangan Integer
6. Data diurutkan secara Ascending (dari kecil ke besar).
7. Pengujian dibatasi dan hanya dilakukan sesuai dengan spesifikasi perangkat keras
dan perangkat lunak yang disebutkan

1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah:
Untuk membuat implementasi dari algoritma Bucket Sort, Strand Sort dan Quick Sort
2 Pivot sebagai teknik untuk pengurutan (sorting) data serta Mengetahui Kompleksitas

algoritma dari ketiga algoritma tersebut dalam big Tetha (ϴ) dan Running time ketiga
algoritma tersebut dalam Microsecond.

1.5 Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini antara lain:
1. Untuk menghasilkan sebuah perangkat lunak yang mampu melakukan proses
pengurutan (sorting) data dengan algoritma Bucket Sort, Strand Sort dan Quick

Sort 2 Pivot.

2. Untuk mengetahui Kompleksitas Algoritma dan Running Time dari Bucket Sort,
Strand Sort dan Quick Sort 2 Pivot.

3.

Untuk mempermudah proses pencarian data dengan mengurutkannya terlebih
dahulu.

4. Sebagai bahan referensi mengenai algoritma Bucket Sort, Strand Sort dan Quick
Sort 2 Pivot pada proses sorting data.

Universitas Sumatera Utara

4

1.6 Metodologi Penelitian
Metodologi yang digunakan dalam tugas akhir ini adalah:
1. Studi Literatur

Penelitian ini dimulai dengan mengumpulkan informasi tentang algoritma Sorting
data, yaitu algoritma Bucket Sort, Strand Sort dan Quick Sort 2 Pivot yang
diperlukan

menggunakan metode Library Research. Penulis mengumpulkan

informasi sebagai referensi baik dari buku, paper, jurnal, makalah, dan sumbersumber lain yang berkaitan dan beberapa referensi lainnya untuk menunjang
pencapaian penelitian.
2. Perancangan Sistem
Merancang sistem dari Bucket Sort, Strand Sort dan Quick Sort 2 Pivot dalam
pensortiran data yang berjumlah banyak.
3. Pengujian dan Analisis
Melakukan pengujian dan analisis terhadap sistem yang sudah dirancang, untuk
memperoleh hasil yang lebih baik.
4. Pengujian Sistem
Metode ini dilaksanakan dengan mengimplementasikan algoritma Bucket Sort,
Strand Sort dan Quick Sort 2 Pivot dalam mengurutkan integer yang dibangkitkan.

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 sikripsi.

Universitas Sumatera Utara

5

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
sikripsi.

BAB 2: LANDASAN TEORI
Bab ini membahas mengenai teori-teori yang digunakan untuk memahami dan
mengetahui permasalahan-permasalahan yang berkaitan dengan proses pengurutan
algoritma Bucket Sort, Strand Sort dan Quick Sort 2 Pivot.


BAB 3: ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini berisi analisis mengenai metode yang digunakan untuk menyelesaikan
masalah dan perancangan dari sistem yang dibentuk.

BAB 4: IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi tentang pengujian program yang telah diimplementasikan dengan
menggunakan bahasa pemrograman C#.

BAB 5: KESIMPULAN DAN SARAN
Bab ini berisikan kesimpulan yang telah dirangkum dalam penelitian ini dan berisi
saran yang gunanya untuk melakukan perbaikan dalam pengembangan penelitian ini.

Universitas Sumatera Utara