Kompleksitas Algoritma
Kompleksitas Algoritma
Keywords: Algorithm Complexity, Sorting, Quick Sort, Shell Sort, Insertion Sort, Selection
Sort, Bubble Sort
Abstrak - Peran algoritma dalam perangkat lunak atau pemrograman sangat penting,
sehingga perlu untuk memahami konsep dasar dari algoritma. Jadi banyak logika
pemrograman yang telah dibuat, untuk kasus umum dan juga khusus. Data sequencing dapat
digunakan dalam memilah nilai algoritma (pengurutan) yaitu, selection sort (pengurutan
dengan memilih), insertion sort (pengurutan oleh penyisipan), semacam cepat (menyortir
cepat), (menyortir tumpukan), shell sort (pengurutan kerang, dan bubble sort (pengurutan
bubble). nilai ini algoritma pengurutan algoritma untuk menyortir pengolahan menggunakan
tipe data integer. Masing-masing jenis algoritma memiliki berbagai tingkat
efektivitas. efektivitas algoritma dapat diukur dengan berapa banyak waktu dan ruang (space
/ algoritma memori) yang diperlukan untuk menjalankan algoritma. efektif algoritma yang
dapat meminimalkan kebutuhan ruang dan waktu. semakin sedikit ruang yang dibutuhkan
untuk menjalankan sebuah algoritma, yang lebih efektif algoritma. dan sedikit waktu yang
dibutuhkan untuk menjalankan sebuah algoritma, yang lebih efektif algoritma. Namun
membutuhkan waktu dan ruang suatu algoritma bergantung pada jumlah data yang diolah dan
algoritma yang digunakan. kompleksitas ruang tidak akan dibahas pada tulisan ini. tulisan ini
hanya akan membahas dan menganalisis kompleksitas waktu untuk setiap jenis algoritma.
Algoritma ini ditulis dalam makalah ini adalah algoritma yang diimplementasikan dalam
Basic bahasa pemrograman Visual 6.0.
Kata Kunci: Kompleksitas Algoritma, Sorting, Quick Sort, Shell Sort, Insertion Sort,
Selection Sort, Bubble Sort
A. PENDAHULUAN
Salah satu algoritma dasar yang sering dipakai untuk menyelesaikan masalah adalah
algoritma pengurutan atau sorting algorithm. Pengurutan data atau sorting merupakan salah
satu jenis operasi penting dalam pengolahan data. Pengurutan data sangat penting digunakan,
sehinga sampai saat ini telah banyak metode-metode pengurutan data dan mungkin akan tetap
bermunculan metode – metode yang baru. ada banyak metode pengurutan data antara lain :
bubble sort, bi-directional bubble sort, selection sort, shaker sort, insertion sort, inplace
merge sort, double storage merge sort, comb sort 11, shell sort, heap sort, exchange sort,
merge sort, quick sort, quick sort with bubblesort, enhange quick sort, fast quick sort, radix
sort, swap sort, dan lain sebagainya. Untuk membatasi luasnya pembahasan, maka dalam
karya ilmiah ini hanya akan membahas 5 metode, yaitu : quick sort, shell sort, insertion sort,
selection sort dan bubble sort. Pembahasan karya ilmiah ini akan difokuskan untuk
menganalisis seberapa efisien suatu algoritma dengan melakukan pengujian waktu eksekusi
dari ke 5 algoritma tersebut. Dengan sekali inputan data berupa bilangan bulat (integer)
dalam list atau array secara acak (random).
B. TINJAUAN PUSTAKA
1. Algoritma
Menurut Saputra, dkk (2010:1) menjelaskan bahwa algoritma adalah deretan instruksi
yang jelas untuk memecakan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari
suatu masukan. Ada 3 definisi tentang algoritma yang dijelaskan oleh Suarga (2012:1),
diantaranya :
a) Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat
dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis.
b) Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan
langkah-langkah tertentu dan terbatas jumlahnya
c) Susunan langkah yang pasti, yang bila diikuti maka akan mentransformasi data input
menjadi output yang beruapa informasi.
Menurut Yahya (2014:135) Sorting adalah proses pengurutan data yang sebelumnya
disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu.
Biasanya pengurutan terbagi menjadi dua yaitu Ascending (pengurutan dari karakter/angka
kecil ke karakter/angka besar dan Descending (pengurutan dari karakter/angka besar ke
karakter/angka kecil).
Pengurutan data (sorting) adalah suatu proses pengurutan data yang tersusun secara
acak pada suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
pengurutan ini dapat dilakukan dengan cara Ascending dan descending serta digunakan juga
untuk mengurutkan data yang bertipe angka atau karakter.
3. Kompleksitas Waktu
Menurut Traju (2010:1) Kompleksitas waktu, T(n), adalah jumlah operasi yang
dilakukan untuk melaksanakan algoritma sebagai fungsi dari ukuran masukan n. Maka, dalam
mengukur kompleksitas waktu dihitunglah banyaknya operasi yang dilakukan oleh algoritma.
Pada algoritma pengurutan, terutama pada pengurutan dengan perbandingan, operasi dasar
adalah operasi-operasi perbandingan elemen-elemen suatu larik dan operasi pertukaran
elemen. Kedua hal itu dihitung secara terpisah, karena jumlah keduanya tidaklah sama.
Biasanya kompleksitas algoritma dinyatakan secara asimptotik dengan notasi big-O. Jika
kompleksitas waktu untuk menjalankan suatu algoritma dinyatakan dengan T(n), dan
memenuhi
T(n) ≤ C(f(n))
T(n) = O(f(n)
Menurut Tjaru (2010:2) menyatakan bahwa terdapat 2 jenis penggunaan notasi Big O, yaitu:
a) Infinite asymptotics
b) Infinitesimal asymptotics
Perbedaan kedua jenis penggunaan notasi ini hanya pada aplikasi. Sebagai contoh, pada
infinite asymptotics dengan persamaan
T(n) = 2n2 -2n +2
Untuk n yang besar, pertumbuhan T(n) akan sebanding dengan n2 dan dengan mengabaikan
suku yang tidak mendominasi kita, maka kita tuliskan
T(n) = O(n2)
O (x3) , x 0
4. Quick Sort
Menurut Saputra, dkk (2010:1) menjelaskan bahwa Quick Sort adalah sebuah
algoritma sorting dari model Divide and Conquer yaitu dengan cara mereduksi tahap demi
tahap sehingga menjadi 2 bagian yang lebih kecil.
Quick Sort merupakan algoritma yang sangat cepat dibandingkan dengan algirtma
sorting lainnya, karena algoritma quick sort ini melakukan sorting dengan membagi masalah
menjadi sub masalah dan sub masalah dibagi lagi menjadi sub-sub masalah sehingga sorting
tersebut menjadi lebih cepat walaupun memakan ruang memori yang besar.
5. Shell Sort
Menurut Atrinawati (2007:6) menjelaskan Shell Sort adalah
algoritma dengan kompleksitas algoritma O(n2) dan yang paling efisien dibandingkan
algortima-algoritma lain dengan kompleksitas algoritma yang sama. Algortima shell sort lima
kali lebih cepat dibandingkan algoritma pengurutan gelembun dan dua kali lebih cepat
dibandingkan algoritma pengurutan dengan penyisipan.
Algortima shell sort merupakan metode pengurutan data yang lebih efisien dan
memiliki kompleksitas algoritma yang sama dengan algoritma yang lain. Cara kerja shell sort
yaitu dengan cara membandingkan suatu data lain yang memiliki jarak tertentu sehingga
membentuk sebuah sub-list.
6. Insertion Sort
Insertion Sort adalah sebuah algortima sederhana yang cukup efisien untuk
mengurutkan sebuah list yang hampir terurut. Algoritma ini juga bisa digunakan sebagai
bagian algoritma yang lebih canggih (Traju, 2010:3). Cara kerja algoritma ini adalah dengan
mengambil elemen list satu-per-satu dan memasukkannya di posisi yang benar seperti
namanya. Pada array, list yang baru dan elemen sisanya dapat berbagi tempat di array,
meskipun cukup rumit. Untuk menghemat memori, implementasinya menggunakan
pengurutan di tempat yang membandingkan elemen saat itu dengan elemen sebelumnya yang
sudah diurut, lalu menukarnya terus sampai posisinya tepat. Hal ini terus dilakukan sampai
tidak ada elemen tersisa di input (Traju, 2010:3).
7. Selection Sort
Menurut Yahya (2014:136) menjelaskan bahwa selection sort adalah suatu metode
pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya sampai
ke elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang
maka dicatat posisinya dan langsung ditukar.
Metode selection sort adalah melakukan pemilihan dari suatu nilai yang terkecil dan
kemudian menukarnya dengan elemen paling awal, lalu membandingkan dengan elemen
yang sekarang dengan elemen berikutnya sampai dengan elemen terakhir, perbandingan
dilakukan terus sampai tidak ada lagi pertukaran data.
8. Bubble Sort
Menurut Yahya (2014:136) menjelaskan bubble sort adalah suatu metode pengurutan
yang membandingkan elemen yang sekarang dengan elemen berikunya, jika elemen sekarang
> elemen berikutnya maka posisinya ditukar, kalau tidak, tidak perlu ditukar, misalnya untuk
n = 7 maka akan dilakukan ( n – 1 ) = 6 tahap (mulai dari 0 sampai dengan n - 2).
Algoritma bubble sort ini melakukan perbandingan antara setiap elemen, kemudian
melakukan penukaran jika terdapat elemen yang tidak sesuai urutannya atau salah.
Perbandingan akan terus dilakukan sehingga tidak ada lagi pertukaran data.
9. Bahasa Pemrograman Visual Basic 6.0
C. METODE PENELITIAN
1. Quick Sort
a) Konsep Quick Sort
Sistem algoritma Quick Sort sendiri adalah membagi kumpulan suatu
data menjadi beberapa sub bagian/partisi. Pembagian partisi ini berdasarkan letak
dari suatu pivot yang dapat dipilih secara acak. Akan tetapi justru penentuan pivot
inilah yang sangat mempengaruhi dalam proses kecepatan sorting. Pemilihan pivot
bisa dengan berbagai cara. Bisa dari elemen pertama, elemen tengah, elemen
terakhir atau secara acak. Cara yang diangap paling bagus dan lazim adalah
pemilihan pivot pada elemen tengah dari suatu tabel. Karena dengan memilih
elemen tengah, tabel tersebut akan dibagi menjadi 2 partisi yang sama besar.
Penentuan elemen tengah dapat dirumuskan sebagai berikut:
Pivot = a[(indeks awal + indeks akhir) div 2]
Langkah-langkah mempartisi tabel dalam Quick Sort adalah sebagai berikut:
1) p ebagai elemen pivot
2) pindai (scan) tabel dari kiri sampai ditemukan elemen ap ≥ x
3) pindai tabel dari kanan sampai ditemukan elemen aq ≤ x
4) pertukarkan ap dan aq
5) ulangi langkah 2 dari posisi p+1, dan langkah 3 dari posisi q-1, sampai kedua
pemindaian bertemu di tengah table
b) Algoritma dan Pseudocode Quick Sort Algoritma Quick Sort adalah sebagai berikut:
Deklarasi :
K : integer;
Algoritma :
If ( i < j ) then
Partisi ( a, i, j, k ) { ukuran (a) > 1 }
Quicksort ( a, i, k )
Quicksort ( a, k + 1, j )
Endif
Kompleksitanya :
1 , n =1 (initial
cond)
T(n ) =
2T (n/2) + cn , n>1
T(n) = 2T(n/2) + cn
= 2(2T(n/4) + cn/2) + cn = 4(T(n/4) + 2cn
= 4(2(T(n/8) + cn/4) + 2cn = 8T(n/8) + 3cn
=..
= 2k(T(n/2k) + kcn
Pemartisisan tabel pada akhirnya akan menghasilkan tabel berukuran 1. Sedangkan
n=1 adalah kondisi inisial yang menghasilkan T(n)=1, sehingga :
n/2k = 1 k = 2log n
maka:
T(n) = nT(1) + cn 2log n
= n.1 + cn 2log n
T(n) = O(n 2log n)
Kasus terburuk (worst case) terjadi jika terdapat kondisi dimana komposisi sub
masalah adalah (n-1). Hal ini terjadi apabila pemilhan pivot adalah elemen pertama
atau elemen terakhir sehingga partisi pertama sebesar 1 dan partisi kedua sebesar n-
1.
Kompleksitasnya:
T(n) =
T(n-1) + cn , n>1
T(n) = cn + T(n-1)
= cn + { c.(n-1) + T(n-2) }
= c(n+(n-1)+(n-2)..+2) +1
= c{(n-1)(n+2)/2} + 1
= cn2/2 + cn/2 + (1-c)
T(n) = O(n2)
Kasus rata-rata (average case) terjadi jika pivot dipilih secara acak dari unsur tabel,
dan peluang setiap unsur dipilih menjadi pivot adalah sama. Rata-rata jumlah
tingkatan perbandingan diatas semua permutasi urutan masukan dapat diperkirakan
dengan teliti dengan pemecahan hubungan perulangan.
Tavg (n) = O(n n)= O(n log n)
algoritma ini adalah algoritma yang terlalu kompleks untuk mengurutkan tabel yang
berukuran kecil (hanya puluhan elemen misalnya). Dengan interval data antara 100
sampai dengan 1.000 elemen. Waktu eksekusi diukur dengan satuan Second (s).
Tabel 1. Waktu eksekusi algoritma Quick Sort
Kompleksitas algoritma quick sort dapat di gambarkan seperti grafik dibawah ini:
2. Shell Sort
a) Konsep Shell Sort
Data pertama (i=0) dibandingkan dengan data jarak (N/2)+1. Apabila data pertama
lebih besar dari data ke (N/2)+1 tersebut maka kedua data tersebut ditukar.
Kemudian data kedua (i=1) dibandingkan dengan jarak yang sama yaitu (N/2)+1) =
elemen ke-(i+N/2)+1.
Demikian seterusnya sampai seluruh data dibandingkan sehingga semua data ke-i
selalu lebih kecil dari pada data ke-(i+N/2)+1.
2) Ulangi langkah-langkah diatas untuk jarak = (N/4)+1 kemudian lakukan
perbandingan dan pengurutan sehingga semua data ke-i lebih kecil daripada data
ke-(i+N/4)+1.
4) Demikian seterusnya samapi jarak yang digunakan adalah I atau data sudah terurut.
b) Algoritma dan Pseudocode Shell Sort Algoritma shell sort adalah sebagai
berikut:
void ShellSort (int *T, int Nmax)
/*I.S. T tabel dgn elemen bertipe*/
/* integer, T tidak kosong*/
/*F.S. T terurut menaik*/
/*Proses : melakukan pengurutan*/
/* dengan metode shell sort*/
{
/*kamus lokal*/
int i, j, increment, temp;
/*algoritma*/
increment = 3;
while (increment > 0)
{
for (i=0; i < Nmax; i++)
{
j = i;
temp = *T[i];
while ((j >= increment) && (*T[j-increment] > temp))
{
*T[j] = *T[j - increment]; j = j - increment;
} *T[j] = temp;
}
if (increment/2 != 0) increment = increment/2; else if (increment == 1)
increment = 0;
else
increment = 1;
}
}
c) Kompleksitas Shell Sort
Algoritma shell sort adalah algoritma dengan kompleksitas algoritma O(n2) dan yang
paling efisien dibandingkan algoritma – algoritma yang lain dengan kompleksitas
algoritma yang sama. Algoritma shell sort lima kali lebih cepat dibandingkan algoritma
pengurutan bubble sort dan dua kali lebih cepat dibandingkan algoritma pengurutan
dengan insertion sort. Dan algoritma shell sort juga merupakan algoritma yang paling
kompleks dan sulit dipahami.
Algoritma shell sort melalukan pass atau traversal berkali-kali, dan setiap kali pass
mengurutkan sejumlah nilai yang sama dengan ukuran set menggunakan insertion sort.
Ukuran dari set yang harus diurutkan semakin membesar setiap kali melakukan pass
pada tabel, sampai set tersebut mencakup seluruh
elemen tabel. Ketika ukuran dari set semakin membesar, sejumlah nilai yang harus
diurutkan semakin mengecil. Ukuran dari set yang digunakan untuk setiap kali iterasi
(iteration) mempunyai efek besar terhadap efisiensi pengurutan. Algoritma shell sort
adalah algoritma yang relatif sederhana. Hal ini menjadikan algoritma shell sort adalah
pilihan yang baik dan efisien untuk mengurutkan nilai dalam suatu tabel berukuran
sedang. Dengan interval data antara 100 sampai dengan 1.000 elemen. Waktu eksekusi
diukur dengan satuan Second (s).
Tabel 2. Waktu eksekusi algoritma Shell Sort
Kompleksitas algoritma Shell sort dapat di gambarkan seperti grafik dibawah ini:
Cara kerja algoritma ini yaitu pengurutan dengan penyisipan bekerja dengan cara
menyisipkan masing-masing nilai di tempat yang sesuai (di antara elemen yang lebih
kecil atau sama dengan nilai tersebut. Untuk menghemat memori, implementasinya
menggunakan pengurutan di tempat yang membandingkan elemen saat itu dengan
elemen sebelumnya yang sudah diurut, lalu menukarnya terus sampai posisinya tepat.
Hal ini terus dilakukan sampai tidak ada elemen tersisa di input. Contoh dari algoritma
ini dapat kita ambil dalam kehidupan sehari-hari, misalnya mengurutkan kartu remi.
Langkah-langkah pengurutannya adalah:
1) Elemen awal di masukkan sembarang, lalu elemen berikutnya dimasukkan
dibagian paling akhir.
2) Elemen tersebut dibandingkan dengan elemen ke (x-1). Bila belum terurut posisi
elemen sebelumnya digeser sekali ke kanan terus sampai elemen yang sedang
diproses menemukan posisi yang tepat atau sampai elemen pertama.
3) Setiap pergeseran akan mengganti nilai elemen berikutnya, namun hal ini tidak
menjadi persoalan sebab elemen berikutnya sudah diproses lebih dahulu.
b) Algoritma dan Pseudocode Insertion Sort
Kondisi terbaik (best case) tercapai jika data telah terurut. Hanya satu perbandingan
dilakukan untuk setiap posisi i, sehingga terdapat n – 1 perbandingan, atau O (n).
Kondisi terburuk (worst case) tercapai jika data telah urut namun dengan urutan yang
terbalik. Pada kasus ini, untuk setiap i, elemen data[i] lebih kecil dari elemen data[0],
…, data[i-1], masing-masing dari elemen dipindahkan satu posisi. Untuk setiap iterasi i
pada kalang for terluar, selalu ada perbandingan i, sehingga jumlah total perbandingan
untuk seluruh iterasi pada kalang ini adalah:
Untuk kasus terbaik algoritma ini berjalan 1 kali, yaitu jika elemen dalam tabel telah
terurut. Kalang (loop) while tidak pernah dijalankan. Untuk kasus terburuk algoritma
ini berjalan Nmax kali. Sehingga, seperti pengurutan gelembung, pengurutan dengan
penyisipan mempunyai kompleksitas algoritma O(n2 ). Walaupun mempunyai
kompleksitas algoritma yang sama, namun jika dijalankan dengan data input yang
sama, algoritma pengurutan dengan penyisipan dua kali lebih cepat dan efisien
dibandingkan dengan pengurutan gelembung. Namun, algoritma ini tetap kurang efisien
untuk tabel berukuran besar (menyimpan banyak nilai). Dengan interval data antara 100
sampai dengan 1.000 elemen. Waktu eksekusi diukur dengan satuan Second (s).
Tabel 3. Waktu eksekusi algoritma Insertion Sort
Kompleksitas algoritma Insertion sort dapat di gambarkan seperti grafik dibawah ini:
4. Selection Sort
a) Konsep Selection Sort
1) Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam
sebuah list
2) Menukarkan nilai ini dengan elemen pertama list
3) Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua.
Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan,
yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan
bagian list yang elemennya akan diurutkan.
Algoritma di dalam Selection Sort terdiri dari kalang bersarang. Dimana kalang tingkat
pertama (disebut pass) berlangsung N-1 kali. Di dalam kalang kedua, dicari elemen
dengan nilai terkecil. Jika didapat, indeks yang didapat ditimpakan ke variabel min.
Lalu dilakukan proses penukaran. Begitu seterusnya untuk setiap Pass. Pass sendiri
makin berkurang hingga nilainya menjadi semakin kecil. Berdasarkan operasi
perbandingan elemennya:
= = O(n2)
Sama seperti algoritma pengurutan gelembung, algoritma ini mempunyai dua buah
kalang, satu kalang di dalam kalang yang lainnya. Banyaknya perbandingan yang harus
dilakukan untuk siklus pertama adalah n, perbandingan yang harus dilakukan untuk
siklus yang kedua n-1, dan seterusnya. Sehingga jumlah keseluruhan perbandingan
adalah n(n+1)/2-1 perbandingan. Menggunakan algoritma pengurutan seleksi, hindari
pengurutan nilai dengan data pada tabel lebih besar dari 1000 buah, dan hindari
mengurutkan tabel lebih dari beberapa ratus kali. Berikut Dengan interval data antara
100 sampai dengan 1.000 elemen. Waktu eksekusi diukur dengan satuan Second (s).
Tabel 4. Waktu eksekusi algoritma Selection Sort
Kompleksitas algoritma Selection sort dapat di gambarkan seperti grafik dibawah ini:
5. Bubble Sort
a) Konsep Bubble Sort
Dalam melakukan pengurutan data algoritma Bubble Sort bekerja sebagai berikut :
1) Bandingkan A [1] dengan A [2] dan susun sehingga A [1] < A [2]
2) Bandingkan A [2] dengan A [3] dan susun sehingga A [2] < A [3]
3) Bandingkan A [n-1] dengan A [n] dan susun sehingga A [n-1] < A [n] setelah (n-1)
kali perbandingan, A [n] akan merupakan elemen terbesar peratama terurut.
Langkah ke-2
4) Ulangi step 2 sampai kita telah mebandingkan dan kemungkinan menyusun A [n- 2],
A [n-1]. Setelah (n-2) perbandingan, (n-1) akan merupakan elemen terbesar kedua.
6) Bandingkan A [1] dengan A [2] dan susun sehingga A [1] < A[2].
7) Sesudah (n-1) langkah, array akan tersususn dalam urutan naik.
b) Algoritma dan Pseudocode Bubble Sort Algoritma Bubble Sort adalah sebagai berikut:
Kompleksitas algoritma Bubble sort dapat di gambarkan seperti grafik dibawah ini:
Gambar 5. Grafik kompleksitas algoritma bubble sort
e) Perbandingan Kompleksitas Waktu
Masing-masing metode mempunyai kelebihan dan kekurangan, dari panjang pendeknya
kode, kompleksitas kode, waktu pemrosesan, memori yang digunakan, kompatibilitas,
dan lain sebagainya. Namun kompleksitas waktu yang dibutuhkan tetap menjadi
masalah utama yang harus menjadi pertimbangan untuk menentukan algoritma mana
yang lebih baik dan tepat untuk digunakan. waktu tiap algoritma, maka digunakan
perangkat lunak penghitung kecepatan algoritma dalam bahasa pemograman visual
basic. Hal ini digunakan untuk mendukung analisis kecepatan sorting data. Dengan
mengatur perangkat lunak agar banyaknya jumlah n sesuai yang diinput secara acak,
sehingga kemunculan data setiap kali program dijalankan tidak sama dan tidak dapat
diprediksi dan interval data antara 100 -– 1000. Pengujian dilakukan disebuah laptop
Asus X200MA dengan spesifikasi : Windows 8.1 Pro 64-bit, processor Intel®,
Celeron® CPU N2840 2.16Ghz, dan 2GB RAM.
Dari gambar hasil program diatas bisa kita lihat perbedaan waktu yang cukup jelas di
antara algoritma-algoritma tersebut. Pengurutan data dengan metode quicksort lebih
cepat jika dibandingkan dengan algritma yang lain. Hal ini dibuktikan dengan
keadaan grafik waktu perbandingan setiap algoritma.
1. Kesimpulan
Teknik – teknik pengurutan data memang cukup beragam, namun tentunya dalam
proses ada metode yang tercepat. masing-masing metode mempunyai kelebihan dan
kelemahan. Apalagi dalam pembuatan program komputer tidak lepas dari algoritma,
karena program yang dibuat sangat kompleks. Program dapat dibuat tanpa
menggunakan algoritma, akan tetapi program tersebut memiliki akses yang lambat atau
memakai banyak memori. Berdasarkan logika proses pengurutan data dengan
menggunakan algoritma Quick Sort, Shell Sort, Insertion Sort, Selection Sort
danBubble Sort, maka dapat disimpulkan sebagai berikut :
a) Algoritma Quick Sort lebih cepat dalam melakukan pengurutan data jika dibandingkan
dengan Shell Sort, Insertion Sort, Selection Sort dan Bubble Sort.
b) Dalam Pengurutan data, algoritma shell sort yang paling efisien dibandingkan
algoritma – algoritma yang lain dengan kompleksitas algoritma yang sama.
c) Algoritma pengurutan dengan insertion sort dua kali lebih cepat dan efisien
d) dibandingkan dengan pengurutan bubble sort. Namun, algoritma ini tetap kurang efisien
untuk tabel berukuran besar (menyimpan banyak nilai).
e) Selection Sort lebih cepat mengurutkan data dibandingkan algoritma bubble Sort. Hal
ini ditunjukkan kecilnya nilai yang didapat oleh algoritma tersebut.
f) Algoritma bubble Sort mempunyai algoritma yang sederhana sehingga lebih mudah
untuk dipahami. Untuk kasus-kasus sederhana dengan jumlah data sedikit, selection Sort
dapat diunggulkan bila dibandingkan dengan bubble Sort.
2. Saran
Adapun saran yang penulis berikan untuk pengembangan penelitian ini sebagai berikut :
[1] Atrinawati, Lovinta Happy. 2007. Analisis Kompleksitas Algoritma Untuk Berbagai Macam
Metode Pencarian Nilai (Searching) Dan Pengurutan Nilai (Sorting) Pada Tabel
(http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2006-2007/Makalah/Makalah0607-77.pdf,
diakses 20 Januari 2016)
[2] Budi. 2010. Programming With Microsoft Visual Basic 6.0. Yogyakarta: Skripta Media Creative.
[6] Yahya, Sofyansyah Yusari. 2014. Analisa Perbandingan Algoritma Bubble Sort dan
Selection Sort Dengan Metode Perbandingan Eksponensial. Jurnal Pelita Informatika Budi
Darma, Vol : VI, No : 3, April 2014 (http://pelita-informatika.com/berkas/jurnal/28.%20Sofy
ansayah.pdf, diakses 20 Januari 2016)
[7] Wahyu Eko Susanto, Pendekatan Keamanan Serta Kecepatan Akses Data Pada Cloud
Dengan Algoritma Huffman Dan Aes, Vol 2, No 2 (2014): Jurnal Bianglala Informatika 2014
[8] Saifudin, Penerapan Algoritma C4.5 Dalam Prediksi Penyewa Sepeda, Vol 2, No 2 (2014):
Jurnal Evolusi 2014
[9] Pudji Widodo, Rule-Based Classifier Untuk Mendeteksi Penyakit Liver, Vol 2, No 1 (2014):
Jurnal Bianglala Informatika 2014
[10] Sardiarinto, Aplikasi Sistem Pendukung Keputusan Kelayakan Peminjaman Kredit Nasabah
Koperasi Berbasis Android, Vol 1, No 1 (2013): Jurnal Bianglala Informatika 2013