Senin, 23 Mei 2011

PENCARIAN

Pencarian Sekuensel

Sequential search atau Pencarian sekuensial bisa disebut dengan pencarian linear yang
merupakan model pencarian yang paling simpel dan sederhana banget deh yang dapat dilakukan terhadap suatu kumpulan data. Suatu tekhnik pencarian dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.


Biar kalian lebih paham secara konsep, penjelasannya adalah sebagai berikut :
Keunggulan dari pencarian sekuensial ini adalah jika data yang dicari terletak di indeks array terdepan maka waktu dalam pencarian nya sangat cepat, dalam artian waktu yang minim sekali. Keburukannya adalah kalau jika data indeks array nya yang dicari paling belakang, maka waktu yang dicari tuh lama banget (maksimal).

Terdapat L yang merupakan larik yang berisi n buah data ( L[0],L[1]…….L[n-1]) dan k adalah data yang akan dicari. Pencarian dilakukan untuk menemukan L[i] = k dengan i adalah bilangan indeks terkecil yang memenuhi kondisi 0<= k <=n-1. Tentu saja bahwa data yang di cari tidak ditemukan.
Jika misalnya terdapat angka 4, maka ditulis ada, sedangkan jika dimunculkan angka 6, namun angka 6 tidak ada maka akan muncul tulisan tidak ada.

Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampaidengan jumlah data.Pada setiap pengulangan, dibandingkan data ke-i dengan yangdicari.Apabila sama, berarti data telah ditemukan.Sebaliknya apabila sampai akhirpengulangan tidak ada data yang sama, berarti data tidak ada.Pada kasus yang palingburuk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula.

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

Pencarian Biner

Salah satu syarat agar pencarian biner dapat dilakukan adalah 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 pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1. Jika lebih besar, porses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1. Demikian seterusnya sampai data tengah sama dengan yang dicari.

Algoritma pencarian biner dapat dituliskan sebagai berikut :

1 L ← 0

2 R ← N - 1

3 ketemu ← false

4 Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8

5 m ← (L + R) / 2 83

6 Jika (Data[m] = x) maka ketemu ← true

7 Jika (x < Data[m]) maka R ← m – 1

8 Jika (x > Data[m]) maka L ← m + 1

9 Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak

ditemukan


Referensi

http://lecturer.eepis-its.edu/~entin/Struktur%20Data%20&%20Algoritma/buku/Data%20Structure%20-%20Bab%208.pdf




Tidak ada komentar:

Posting Komentar