Pencarian berurutan sering disebut pencarian linear merupakan metode pencarian
yang paling sederhana. 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.
Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai
dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang
dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling
buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula.
- Pencarian beruntun pada larik tidak terurut :
Pencarian dilakukan dengan memeriksa setiap elemen larik mulai dari
elemen pertama sampai elemen yang dicari ditemukan atau sampai
seluruh elemen sudah diperiksa.
Contoh:
Misal nilai yang dicari adalah X = 21, maka elemen yang
diperiksa : 13, 16, 14, 21 (ditemukan!)
Indeks larik yang dikembalikan: IX = 4
Misal nilai yang dicari adalah X = 15, maka elemen yang
diperiksa : 13, 16, 14, 21, 76, 21 (tidak ditemukan!)
Indeks larik yang dikembalikan: IX = 0.
- Procedur Pencarian Terurut
Procedure CariRuntunurut(input L: larik, input n:integer,
input X: integer, input/output IX:integer)
Algoritma
I ← 1
while (I < N) and (L[I] < X) do
I ← I + 1
endwhile
if (L[I] = X) then
IX ← I
else
IX ← 0
endif
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1. i ← 0
2. ketemu ← false
3. Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
4. Jika (Data[i] = x) maka ketemu ← true, jika tidak i ← i + 1
5. Jika (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak
ditemukan
Di bawah ini merupakan fungsi untuk mencari data menggunakan pencarian sekuensial.
int SequentialSearch(int x)
{
int i = 0;
bool ketemu = false;
while ((!ketemu) && (i < Max)){
if(Data[i] == x)
ketemu = true;
else
i++;
}
if(ketemu)
return i;
else
return -1;
}
Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1.
0 komentar:
Posting Komentar