Perbandingan Kompleksitas Waktu Teoretis dan Real Time Algoritma Strand Sort, Sieve Sort, Gnome Sort

1

BAB I

PENDAHULUAN

1.1.

Latar Belakang

Pengurutan atau sorting merupakan suatu proses mengatur susunan dan memiliki
peran penting dan tidak dapat dipisahkan terutama dalam pengolahan data.
Ada dua jenis pengurutan secara umum yaitu ascending (data terurut naik) dan
descending (data terurut turun). Data yang akan diurutkan memiliki berbagai macam
jenis baik dalam hal banyaknya data maupun jenis datanya. Suatu pengolahan data
biasanya akan lebih efisien jika datanya telah terurut. Data yang telah terurut adalah
memudahkan pengguna untuk melakukan penambahan data, pengubahan data, dan
penghapusan data. Dalam kondisi terurut juga akan mempermudah untuk mencari data
yang hilang atau terhapus.
Berdasarkan proses pengurutan yang berbeda dari setiap algoritma yang
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.
Mengingat pentingnya pengurutan dalam penggunaannya dalam hal pencarian
informasi, maka perlu diketahui algoritma mana yang sebenarnya paling efisien untuk
dipakai. Meskipun suatu algoritma pengurutan mempunyai kelebihan dan keterbatasan
masing-masing, kompleksitas dan keefisiensiannya tetap harus dipertimbangkan.
Untuk menjelaskan masalah keefisiensian dari suatu algoritma, digunakanlah teori
kompleksitas algoritma, maka muncul sebuah teori Big ϴ sebagai notasi yang
melambangkan suatu nilai keefisiensian suatu algoritma, salah satunya adalah
kompleksitas waktu.
Kompleksitas Waktu, T(n), adalah jumlah operasi yang dilakukan untuk
melaksanakan algoritma sebagai fungsi dari ukuran masukan n. Maka dalam

Universitas Sumatera Utara


2

mengukur kompleksitas waktu dihitunglah banyaknya operasi yang dilakukan oleh
algoritma. Maka dari itu, penulis membuat suatu ide dan gagasan terbaru menjadi
berguna baik secara kualitas dan kuantitas. Hal ini menjadi dorongan untuk
memberikan manfaat dan kemudahan terhadap pengguna dalam mengenal,
mengetahui dan memahami.
Berdasarkan pembahasan di atas maka penulis memilih judul “Perbandingan
Kompleksitas Waktu Teoretis dan Real Time Algoritma Strand Sort, Sieve Sort,
Gnome Sort.”

1.2.

Rumusan Masalah

Berdasarkan latar belakang masalah yang telah diuraikan, hal yang mendasari
rumusan masalah yaitu bagaimana merancang program untuk menganalisis
kompleksitas waktu dari algoritma Strand Sort, Sieve Sort, dan Gnome Sort pada
pengurutan string.


1.3.

Batasan Masalah

Adapun yang menjadi batasan masalah yaitu :
1. Pembahasan hanya mengenai algoritma Strand Sort, Sieve Sort, dan Gnome
Sort pada pengurutan string.
2. Hanya menganalisis kompleksitas waktu (Big-ϴ) dengan kecepatan proses
(running time) dalam satuan waktu (ms) algoritma Strand Sort, Sieve Sort, dan
Gnome Sort.
3. Data yang digunakan merupakan data yang dibangkitkan secara acak berupa
string (kombinasi huruf dan angka) dengan 8 karakter dan tipe struktur data
yang digunakan adalah list.
4. Jumlah data yang tersedia adalah ≤ 1000 string dengan data pengujian n=10,
n=100, n=1000.
5. Perancangan aplikasi perbandingan ini menggunakan bahasa pemrograman C#
dan file bertipe text (txt) yang berisikan string yang akan diurutkan dengan
pemisah berupa baris (line) yang dianggap sebagai data yang baru.
6. Hasil output berupa pengurutan string secara ascending (dari kecil ke besar)
berdasarkan ASCII dengan data bertipe text (txt).


Universitas Sumatera Utara

3

1.4.

Tujuan Penelitian

Tujuan dari penelitian ini adalah:
1. Mengetahui kompleksitas algoritma dari ketiga algoritma tersebut dalam Big
ϴ.
2. Mengetahui running time ketiga algoritma tersebut dalam satuan waktu (ms).
3. Mengurutkan string berdasarkan pengurutan ASCII menggunakan algoritma
Strand Sort, Sieve Sort, Gnome Sort dari string acak yang dibangkitkan serta
mampu menganalisis kompleksitas ketiga algoritma tersebut.

1.5.

Manfaat Penelitian


Manfaat yang diharapkan dari penelitian ini antara lain:
1. Memahami bangaimana cara menganalisis kompleksitas waktu dari Strand
Sort, Sieve Sort, Gnome Sort dalam pengurutan string acak.
2. Sebagai bahan referensi mengenai algoritma Strand Sort, Sieve Sort, Gnome
Sort pada proses sorting data.

1.6.

Metode 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-θ) dan running time pada
algoritma pengurutan data, yaitu algoritma Strand Sort, Sieve Sort dan Gnome
Sort.
2. Analisis dan Perancangan Sistem
Pada tahap ini dilakukan analisis sesuai dengan kebutuhan seperti cara

membangun program pengurutan algoritma Strand Sort, Sieve Sort dan Gnome
Sort, 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#.

Universitas Sumatera Utara

4

4. Pengujian Sistem
Metode ini dilaksanakan dengan mengimplementasikan algoritma Strand Sort,
Sieve Sort, dan Gnome Sort dalam mengurutkan string 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 skripsi.


1.7.

Sistematika Penulisan

Sistematika Penulisan yang digunakan dalam menyelesaikan penelitian ini adalah
sebagai berikut:
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 membahas mengenai teori-teori yang digunakan untuk memahami
permasalahan yang berkaitan dengan proses pengurutan, yaitu algoritma Strand Sort,
Sieve Sort dan Gnome Sort.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisi pembahasan analisis metode yang digunakan untuk menyelesaikan
masalah dan perancangan dari sistem yang dibangun.
BAB 4 IMPLEMENTASI SISTEM
Bab

ini


berisi

ulasan

dan

pengujian

terhadap

perancangan

yang

telah

diimplementasikan dengan menggunakan bahasa pemrograman C#.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang didapat dalam menjalani penelitian ini serta saran

yang diharapkan dapat bermanfaat dalam usaha untuk melakukan perbaikan dan
pengembangan penelitian ini.

Universitas Sumatera Utara