Pengertian Searching
Searching atau pencarian merupakan proses yang
sering digunakan dalam pengelolaan data. Proses pencarian adalah menemukan
data tertentu dalam sekumpulan data. Algoritma searching adalah algoritma yang
menerima argumen A dan mencoba untuk mencari record yang mana kuncinya adalah A.
Algoritma
bisa mengembalikan nilai record atau
pointer ke record. Record sendiri adalah tipe data yang
terdiri atas kumpulan variable yang disebut field.
Sequential search yaitu proses
mengunjungi melalui suatu pohon dengan cara setiap simpul di kunjungi hanya
satu kali yang disebut dengan tree
transversal atau kunjungan pohon.
Data dapat disimpan secara temporer dalam memori utama atau
disimpan secara permanen di dalam memori sekunder. Di dalam memori utama,
struktur penyimpanan data yang umum adalah berupa tabel atau array, sedangkan
di dalam memori sekunder berupa arsip.
Aktivitas yang berkaitan dengan pengolahan data ini sering
di dahului dengan proses pencarian. Sebagai contoh, untuk mengubah atau
memperbarui data tertentu, langkah pertama yang harus dilakukan adalah mencari
keberadaan data tersebut di dalam kumpulannya. Aktivitas yang awal sama juga
dilakukan pada proses penambahan atau insert
data yang baru. Proses penambahan data dimulai dengan mencari apakah data
yang ditambahkan sudah terdapat di dalam kumpulan. Jika sudah dan mengasumsikan
tidak boleh ada duplikasi data,maka data tersebut tidak perlu di tambahkan,
tetapi jika belum ada, maka akan ditambahkan.
Algoritma
pencarian yang akan dibahas terdapat dua cara yaitu:
- Pencarian Berurutan (Sequential Search).
- Pencarian Biner (Binary Search).
Sequential
Search
Sequential Search adalah suatu teknik pencarian data dalam array satu dimensi
yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana
data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan
prinsip sebagai berikut: data yang ada dibandingkan satu per satu secara
berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak
ditemukan. Algoritma pencarian secara linear digunakan untuk mencari sebuah
nilai pada tabel sembarang. Ada dua macam cara pencarian pada tabel. Algoritma
ini mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean.
Algoritma pencairan secara linear melakukan pengulangan sebanyak satu kali
untuk kasus terbaik atau nilai sama dengan elemen pertama dalam tabel.
Proses pencarian data dengan metode ini cukup sederhana dan
mudah dipahami. Dalam pencarian ini proses dilakukan dengan cara mencocokan
data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses
pencarian data dilakukan dengan cara mencocokan data yang akan dicari dengan
semua data yang ada dalam kelompok data. Proses pencocokan data dilakukan
secara berurut satu demi satu dimulai dari data kesatu hingga data pada ururtan
terakhir. Jika data yang dicari mempunyai harga yang sama dengan data yang ada
dalam kelompok data, berarti data telah ditemukan. Tetapi jika data yang dicari
tidak ada yang cocok dengan data-data dalam sekelompok data, berarti data
tersebut tidak ada dalam sekelompok data.Selanjutnya kita tinggal menampilkan
hasil yang diperoleh tersebut.
Binary Search
Binary Search adalah algoritma pencarian untuk data
yang terurut. Pencarian dilakukan dengan cara menebak apakah data yang dicari
berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan
data yang ada ditengah. Bila data yang ditengah sama dengan data yang dicari,
berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari data
yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada
disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat
diabai. Upper bound dari bagian data kiri yang baru adalah indeks
dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil
dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan
besar berada disebelah kanan dari data tengah. Lower bound dari
data disebelah kanan dari data tengah adalah indeks dari data tengah itu
sendiri ditambah saru, demikian seterusnya.
Sebuah algoritma pencarian biner adalah sebuah teknik untuk
menemukan nilai tertentu dalam sebuah array linear, dengan menghilangkan
setengah data pada setiap langkah, dipakai secara luas tetapi tidak secara
ekslusif dalam ilmu komputer.
Sebuah
pencarian biner mencari nilai tengah atau median, melakukan sebuah pembandingan
untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian
mencari setengah sisanya dengan cara yang sama. Pada intinya, algoritma ini
menggunakan prinsip divide and conquer,
dimana sebuah masalah atau tujuan diselesaikan dengan cara mempartisi masalah
menjadi bagian yang lebih kecil. Algoritma ini membagi sebuah tabel menjadi dua
dan memproses satu bagian dari tabel itu saja.Algoritma ini bekerja dengan cara
memilih record dengan indeks tengah
dari tabel dan membandingkannya dengan record
yang hendak dicari. Jika record
tersebut lebih rendah atau lebih tinggi, maka tabel tersebut dibagi dua dan
bagian tabel yang bersesuaian akan diproses kembali secara rekursif.
Penerapan terbanyak dari pencarian biner adalah untuk
mencari sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan,
pencarian biner dapat dilihat sebagai sebuah permainan tebak-tebakan, kita
menebak sebuah bilangan, atau nomor tempat, dari daftar atau list nilai.
Pencarian diawali dengan memeriksa nilai yang ada pada
posisi tengah list, oleh karena nilai-nilainya
terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang
di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah
bagian dengan cara yang sama.
Metode pencarian biner atau binary search hanya bisa diterapkan jika data array sudah terurut. Pengurutan array bisa menggunakan
jenis sorting descending atau asscending.
Keunggulan
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah table lebih kecil daripada waktu yang dibutuhkan algoritma sequential search.
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah table lebih kecil daripada waktu yang dibutuhkan algoritma sequential search.
Kelemahan
Data
harus disorting dahulu dan algoritma lebih rumit, tidak baik untuk data
berantai.algoritma ini hanya bisa digunakan pada tabel yang elemennya sudah
terurut baik menaik maupun menurun.
Fungsi
Pencarian Biner atau Binary Search dilakukan untuk:
Pencarian Biner atau Binary Search dilakukan untuk:
- Memperkecil
jumlah operasi pembandingan yang harus dilakukan antara data yang dicari
dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang
sangat besar ukurannya.
- Prinsip dasarnya
adalah melakukan proses pembagian ruang pencarian secara berulang-ulang
sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi
atau berarti ada kemungkinan data tidak ditemukan.
- Syarat utama
untuk pencarian biner adalah data di dalam tabel harus sudah terurut,
misalkan terurut menaik.
Prinsip dari pencarian biner dapat
dijelaskan sebagai berikut:
- Data diambil dari posisi 1 sampai posisi akhir N.
- Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) atau 2.
- Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar.
- Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1.
- Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1.
- Jika data sama, berarti ketemu.
No comments:
Post a Comment