SORTING ARRAY
Bagi
sebagian orang,
mungkin terlintas pertanyaan “Buat apa kita susah-susah mempelajari atau
bahkan menulis program hanya untuk melakukan proses sorting. Bukankah pada MS
Excel sudah ada fasilitas sorting yang sangat handal dan cepat?â€. Ya… tepat sekali, saya sendiri
masih terus bertanya-tanya, algoritma sorting apa yang dipakai oleh Excel
untuk melakukan proses sorting tsb, sehingga bisa melakukannya dengan sangat
cepat bahkan untuk data yg banyak sekalipun. Buat saya setidaknya ada beberapa
alasan mengapa sorting array ini masih cukup berharga untuk kita pelajari.
- Ketika kita sedang bekerja dengan array, dan apabila elemen-elemen array tersebut belum tersusun baik ascending maupun descending, maka dengan menggunakan Algoritma Sort tertentu, proses eksekusinya bisa lebih cepat daripada menggunakan Excel Worksheet Sorting
- Jika jumlah data yang akan di-sort pada worksheet hanya sedikit (kurang dari 1000) proses sorting dengan menggunakan algoritma yang akan kita bahas nanti, dapat dilakukan dalam waktu yang relatif cepat
- Paling tidak, dapat menjadi bahan untuk belajar.
Sorting array
yg akan kita bicarakan ini, akan dibatasi pada :
- Single Dimesional Array
- Sort Ascending,
- Text Compare, artinya jika terdapat numeric data pada elemen array yg akan di sort, maka data numeric tsb akan diperlakukan sebagai data text. Saya sengaja membatasi sorting ini hanya untuk data text saja, karena menurut saya…. ini menurut saya lho ya… sorting text sedikit lebih rumit jika dibanding dengan sorting numeric.
Ada begitu
banyak alrgoritma sort yang sudah dikembangkan oleh para pakar, antara lain,
bubble sort, selection sort, insertion sort, heap sort, dll.
Pada tulisan
ini, Algoritma Sorting yg akan kita bicarakan adalah :
- Bubble Sort
- Selection Sort
- Quick Sort
- Merge Sort
- Bucket Sort
Workbook
vbaSortArray terdiri dari 3 Module, modSortArray_1, modSortArray_2, serta
modSysInfo. modSortArray_1 dan modSortArray 2 pada dasarnya adalah sama,
yaitu berisi prosedur-prosedur yg sesuai dengan algoritma sort di atas. Bedanya
pada modSortArray_2, pada saat program dieksekusi seluruh operasi (instruksi)
akan dihitung jumlahnya, sehingga kita bisa mengetahui berapa jumlah
operasi/instruksi yang harus dilalui untuk menyelesaikan proses sorting dengan
menggunakan algoritma tertentu, sedangkan pada modSortArray_1, tanpa menghitung
jumlah operasi. Untuk modSysinfo berisi prosedur yang dapat menghasilkan
informasi memory dan prosesor komputer yang dipakai.
Pada
sheet “Testâ€
kita dapat membandingkan kecepatan proses dari masing-masing algoritma sort.
Pada sheet “Testâ€
ini terdapat :
1. Tombol untuk membangkitkan random
text yg terdiri dari 8 karakter yang akan diisi pada kolom A. Banyaknya text
sesuai dengan angka yang kita isi pada cell G4. Pada saat tombol ini ditekan,
program juga akan menghasilkan text yang sudah terurut Ascending pada kolom B.
Proses sortingnya menggunakan Excel Worksheet Sorting. Tujuanya adalah untuk
membandingkan hasil sorting dengan algoritma tertentu sudah menghasilkan hasil
yang benar atau tidak.
2. Tombol untuk menjalankan proses
sorting, algoritmanya sesuai dengan algoritma yg kita pilih pada cell G6.
Selain itu juga, masih ada pilihan apakah proses sortingnya dengan menghitung
jumlah operasi atau tidak, pilihannya ada pada cell G8. Hasil sorting akan
ditampilkan dikolom C. Sebenarnya hasil tersebut tidak perlu ditampilkan,
karena kita kan sedang bekerja dengan array, tetapi karena tujuannya adalah
untuk proses pembelajaran dan untuk perbandingan apakah hasilnya sudah benar,
maka hasilnya perlu ditampilkan.
3. Tabel untuk mencatat hasil
pengukuran dari proses sorting, jumlah operasi/instruksi yang dilalui untuk
proses eksekusi.