SORTING DAN SEARCHING TUJUAN Praktikum ini bertujuan mendeskripsikan konsep sorting dan searching, mengoperasikan sorting dengan cara selection sort, insertion sort, quick sort, dan merge sort, mengoperasikan searching dengan cara sequential search dan binary search, menerapkan konsep sorting dan searching pada array paralel dan array string dengan metode binary search.
PEMBAHASAN Pengurutan (sorting) diartikan sebagai proses penyusunan kembali sekumpulan elemen kedalam urutan tertentu. Tujuannya adalah adalah untuk memudahkan dalam pencarian dari suatu himpunan, selain itu juga dapat megetahui data terbesar dan terkecil. Pengertian lain dari sorting adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi susunan secara teratur menurut suatu aturan tertentu (Kumalasari 2017). Berdasarkan dua teori diatas dapat disimpulkan bahwa pengurutan (sorting) merupakan susunan data yang diurutkan berdasarkan aturan untuk mempermudah dalam pencarian. 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) (Rahayuningsih 2016). Searching adalah algoritma yang menerima sebuah argumen kunci dengan langkah-langkah tertentu dalam mencari rekaman dengan kunci tersebut. Permasalahan searching pada dasarnya adalah mencari sebuah string yang terdiri dari beberapa karakter (yang biasa disebut pattern) dalam sejumlah besar text. Pencarian juga biasa digunakan untuk mencari pola bit dalam sejumlah besar file binary (Sagita dan Prasetyowati 2013). Searching merupakan kegiatan untuk menemukan atau mencari suatu data yang ditentukan. Setelah pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan atau tidak ditemukan. Terdapat banyak algoritma pengurutan yang disajikan untuk mengurutkan data dan masing-masing algoritma memiliki kelebihan dan kekurangan masingmasing. Beberapa algoritma yang dimakasud diantaranya Bubble sort, Selection sort, Insertion Sort, Merge sort, Quick sort (Kumalasari 2017). Algoritma pengurutan sederhana salah satunya adalah Selection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemenelemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar. Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada
algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut: 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 (Tjaru 2009). Algoritma insertion sort adalah sebuah algoritma sederhana yang cukup efisien untuk mengurutkan sebuah list yang hampir terurut. Algorima ini juga bisa digunakan sebagai bagian dari algoritma yang lebih canggih. Cara kerja algoritma ini adalah dengan mengambil elemen list satu-per-satu dan memasukkannya di posisi yang benar seperti namanya (Tjaru 2009). Sorting parallel array adalah metode sorting yang dipakai pada saat proses paralel. Metode ini biasanya dipakai untuk kebutuhan pemrosesan data yang besar dan cepat. Algoritma quick sort diperkenalkan pertama kali oleh C.A.R Hoare pada tahun 1960 dan dimuat sebagai artikel di “Computer Journal 5” pada April 1962. Quick sort adalah sorting yang berdasarkan perbandingan dengan metode divide and conqueror. Ada tiga hal yang dilakukan oleh divide and conqueror : 1. Membagi (divide) permasalahan yang dihadapi kedalam beberapa subproblems yang lebih kecil. Namun masih mengandung masalah yang sama. 2. Menyelesaikan (conquer) subproblems secara rekursif. Jika ukuran sub-problems sudah cukup. 3. diselesaikan, maka lakukan penyelesaian masalah. 4. Gabungkan (combine) solusi untuk sub-problems yang ada untuk mendapatkan solusi global. Algoritma quick sort ini merupakan metode pengurutan data yang paling efisien dibandingkan dengan metode yang lain (Khreisat 2007). Algoritma merge sort merupakan algoritma yang menggabungkan dua ide utama untuk meningkatkan runtime nya. Algoritma merge sort sebenarnya sederhana yaitu membagi larik menjadi dua sama besar, urutkan bagian pertama, urutkan bagian kedua, lalu gabungkan (Saptadi dan Sari 2012). Dalam ilmu komputer terdapat bermacam–macam algoritma untuk metode pencarian (searching). Beberapa metode pencarian yang dipelajari adalah metode pencarian linier (Linear / Sequential Search), pencarian biner (Binary Search) dan pencarian interpolasi (Interpolation Search). Masing – masing algoritma memiliki persyaratan dan cara serta waktu pelaksanaan yang berbeda. Pemilihan atas metode pencarian dilakukan berdasarkan keadaan dan keinginan pengguna metode yang biasanya tergantung pada jumlah data, jenis data dan struktur data yang digunakan (Ningtyas 2013). Pencarian Linier atau sequential search dapat dilakukan pada semua jenis barisan bilangan baik yang terurut secara menaik (ascending) atau menurun (descending) maupun tidak terurut (data acak). Pencarian Linier dilakukan dengan cara membandingkan data yang dicari (X) dengan data dalam barisan A[1] … A[n] dengan dimulai dari data elemen pertama pada barisan A. Jika perbandingan bernilai sama, maka pencarian dihentikan dan dinyatakan sukses. Jika perbandingan tidak bernilai sama maka akan dilakukan proses sesuai dengan jenis datanya. Binary Search (pencarian biner) dapat dilakukan jika data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian
biner tidak dapat dilakukan. Dalam kehidupan sehari-hari, sebenarnya kita juga sering menggunakan pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus (Syahputra dan Sinurat 2016).
SIMPULAN Sorting adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi susunan secara teratur menurut suatu aturan tertentu. Searching merupakan kegiatan untuk menemukan atau mencari suatu data yang ditentukan. Setelah pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan atau tidak ditemukan. Terdapat banyak algoritma pengurutan yang disajikan untuk mengurutkan data dan masingmasing algoritma memiliki kelebihan dan kekurangan masing-masing. Beberapa algoritma yang dimakasud diantaranya Bubble sort, Selection sort, Insertion Sort, Merge sort, Quick sort. . Beberapa metode pencarian yang dipelajari adalah metode pencarian linier (Linear / Sequential Search), pencarian biner (Binary Search) dan pencarian interpolasi (Interpolation Search). Masing–masing algoritma memiliki persyaratan dan cara serta waktu pelaksanaan yang berbeda. Pencarian Linier atau sequential search dapat dilakukan pada semua jenis barisan bilangan baik yang terurut secara menaik (ascending) atau menurun (descending) maupun tidak terurut (data acak). Binary Search (pencarian biner) dapat dilakukan jika data sudah dalam keadaan urut.
SARAN Praktikum ini sangat panjang dan sulit dibanding praktikum sebelumnya, sehingga dalam penyampaian sebaiknya pelan-pelan dan tidak tergesa-gesa agar
para praktikan lebih memahami dan dapat menguasai materi tersebut serta lebih ditingkatkan latihannya sehingga apabila praktikan diberi tugas oleh asisten praktikum dapat dikerjakan dengan baik dan benar
DAFTAR PUSTAKA Khreisat L. 2007. Quicksort: a historical perspective and empirical study. International Journal of Computer Science and Network Security. 7 (12) : 54-65 Kumalasari D. 2017. Analisa perbandingan kompleksitas algoritma bubble sort, cocktail sort dan comb sort dengan bahasa pemrograman C++. Journal Speed. 9 (2) : 1-7. Ningtyas DR. 2013. Perancangan kamus indonesia – hokkien dengan metode interpolation search. Pelita Informatika Budi Darma. 3 (2) : 14-19. Rahayuningsih PA. 2016. Analisis perbandingan kompleksitas algoritma pengurutan nilai (sorting). Jurnal Evolusi. 4 (2) : 64-75. Sagita V, Prasetiyowati MI. 2013. Studi perbandingan implementasi algoritma boyer-moore, turbo boyer-moore, dan tuned boyer-moore dalam pencarian string. Jurnal Ultimatics. 4 (1) : 31-37. Saptadi Ah, Sari DW. Analisis algoritma insertion sort, merge sort dan implementasinya dalam bahasa pemrograman C++. Jurnal Infotel. 4 (2) : 10-17. Syahputra G, Sinurat B. 2016. Implementasi teknik binary search pada kamus indonesia batak toba. Journal of Informatics Pelita Nusantara. 1 (1) : 2837. Tjaru SN. 2009. Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort : Makalah IF2091 Strategi Algoritmik.