Sorting dan Searhing

Kali ini saya akan menjelaskan secara singkat apa itu Sorting dan Searching, materi ini berguna dalam pemrograman apabila digunakan untuk mengurutkan data maupun mencari data dari banyak data.

Sorting

Sorting sendiri bisa didefinisikan sebagai suatu proses pengurutan data yang sebelumnya data tersebut disusun seara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu. Dalam Sorting ini, yang kita terapkan menggunakan tipe data array agar lebih mudah dalam implementasinya. Pada umumnya terdapat dua jenis pengurutan/ sorting :
  • Ascending (naik)
  • Descending (turun)
Contoh :
Data : Array [1..5] of Byte = (33, 12, 19, 7, 4);
Data Acak : 33, 12, 19, 7, 4
Terurut Ascending : 4, 7, 12, 19, 33
Terurut Descending : 33, 19, 12, 7, 4
Dari contoh diatas terdapat proses pengurutan dengan berbagai macam metode/ cara. Beberapa metode yang sudah umum digunakan yaitu :
  1. Bubble/ Exchange Sort, metode ini merupakan metode yang paling sederhana dan paling tidak efisien, karena memerlukan waktu yang relatif lebih lama dibandingkan dengan metode-metode yang lainnya. Konsep dasar dari Bubble sort ialah membandingkan elemen yang sekarang degan elemen yang berikutnya, jika elemen sekarang > elemen berikutnya (untuk ascending), maka dilakukan proses penukaran. Proses sorting dapat dimulai dari data awal atau data akhir.
  2. Selection Sort, cara kerja metode ini didasarkan pada pencarian elemen dengan nilai terkecil, kemudian dilakukan penukaran dengan elemen ke-I. Secara singkat, metode ini bisa dijelaskan sebagai berikut. Pada langkah pertama, dicari data yang terkecil dari data pertama sampai data terakhir. Kemudian data tersebut kita tukar dengan data pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil dibanding data lain. Pada langkah kedua, data terkecil kita cari mulai dari data kedua sampai data terakhir. Data terkecil yang kita peroleh kita tukar dengan data kedua.
  3. Shell Sort, metode ini dikembangkan oleh Donald L. Shell pada tahun 1959. Dalam metode ini jarak antara dua elemen yang dibandingkan dan ditukarkan tertentu. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dengan elemen pada jarak tertentu dari elemen pertama tersebut. Kemudian elemen kedua kita bandingkan dengan elemen lain dengan jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu.
  4. Quick Sort, metode ini dikembangkan oleh C.A.R Hoare. Secara garis besar metode ini dijelaskan sebagai berikut. Misalnya kita ingin mengurutkan data A yang mempunyai N elemen. Kita pilih sembarang elemen dari data tersebut, bisanya elemen pertama, misalnya X. kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa sehingga elemen ke 1 sampai ke J-1 mempunyai nilai lebih kecil dari X dan elemen J+1 sampai ke N mempunyai nilai lebih besar dari X. Sampai saat ini kita sudah mempunyai dua sub data (kiri dan kanan). Langkah berikutnya diulang untuk setiap sub data.
Searching
Searching merupakan suatu proses pencarian data dari sejumlah data yang ada. Pencarian data dapat dilakukan pada sejumlah data yang sudah terurut atau juga pada data yang sama sekali belum terurut. Kali ini mencoba menggunakan dua metode pencarian yaitu :
  1. Pencarian Berurutan (Sequential Searching), metode ini merupakan metode paling sederhana, secara garis besar metode ini bisa dijelaskan sebagai berikut. Dari data yang diketahui, data yang dicari dibandingkan satu per satu sampai data tersebut ditemukan atau tidak ditemukan. Pada saat data yang dicari sudah ditemukan, maka proses pencarian langsung dihentikan. Tetapi jika belum ditemukan, maka pencarian diteruskan sampai seluruh data dibandingkan. Dalam kasus paling buruk, untuk data dengan N elemen harus dilakukan pencarian sebanyak N kali pula. Ada baiknya jika data yang dicari tidak ditemukan maka data ditambahkan pada posisi terakhir.
  2. Pencarian Biner (Binary Search), metode ini digunakan jika sejumlah data telah diurutkan. Jika dibandingkan dengan metode awal tadi metode ini jauh lebih cepat. Secara garis besar metode ini bisa dijelaskan sebagai berikut. Urutkan dahulu sejumlah data. Lalu bagi dua data-data tadi dengan jumlah data yang sama pada masing- masingnya. Kemudian data dibandingkan dengan data terakhir dari subdata yang pertama. Jika data yang dicari lebih keci, pencarian dilanjutkan pada sub data pertama dengan terlebih dahulu membagi dua lagi data-data tersebut dengan jumlah yang sama. Tetapi jika data yang dicari lebih besar dari data terakhir subdata pertama, berarti data yang dicari kemungkinan terletak pada subdata yang kedua.

Komentar

Postingan populer dari blog ini

Masalah Kependudukan Yang Terjadi di Indonesia