Anda di halaman 1dari 12

STRUKTUR DATA

Searching

Pencarian (Searching)
Pencarian data sering juga disebut table look-up atau
storage and retrieval information adalah suatu proses
untuk mengumpulkan sejumlah informasi di dalam memori
komputer dan kemudian mencari kembali informasi yang
diperlukan secepat mungkin.

Algoritma Pencarian (Searching Algorithm)


:: algoritma yang menerima sebuah argumen kunci dan dengan
langkah-langkah tertentu akan mencari rekaman dengan kunci
tersebut.
Metode pencarian dapat dilakukan dengan dua cara:

Pencarian Internal (internal searching)


=> Semua rekaman yang diketahui berada dalam memori komputer

Pencarian Eksternal (external searching)


=> Tidak semua rekaman yang diketahui disimpan dalam memori
komputer, tetapi ada sebagian yang tersimpan di luar memori, misal
pita atau cakram magnetis.

Algoritma Pencarian (Searching Algorithm)


Selain metode, pencarian juga dikelompokkan menjadi:

Pencarian Statis (static searching)


=> Rekaman yang diketahui dianggap tetap.

Pencarian Dinamis (dynamic searching)


=> Rekaman yang diketahui dapat berubah-ubah yang
disebabkan oleh penambahan atau penghapusan suatu
rekaman.

Teknik Pencarian (search techniques)


Ada dua macam teknik pencarian (search techniques)
yaitu:

Pencarian Linier atau Pencarian Berurutan (Sequential


Searching)
Pencarian Biner (Binary Search)

Linier Search atau Sequential Search


:: Merupakan metode pencarian data di dalam suatu
struktur data linier dengan cara membaca setiap data satu
persatu.

Metode ini tidak beda dengan proses untuk menampilkan


seluruh data.
Suatu deret data dapat disimpan dalam bentuk array
maupun linked list.

Algoritma Sequential Search

i0

Ditemukan false

Selama (tidak ditemukan) dan (i < N) kerjakan baris 4

Jika (Data[i] = key) maka


ketemu true
jika tidak
ii+1

Jika (ditemukan) maka


i adalah indeks dari data yang dicari
jika tidak
data tidak ditemukan

Contoh
0

10

indeks

100

Kemudian program akan meminta data yang akan dicari,


misal 9

Iterasi :
9 = 6 (tidak!)
9 = 8 (tidak!)
9 = 4 (tidak!)
9 = 9 (Ya!) => output: 3 (index)

Binary Search
:: Merupakan metode pencarian pada sebuah struktur data
linier yang sudah terurut. Dalam hal ini, tidak semua data
yang dibaca, namun cukup dengan membandingkan data
yang ada di tengah dari suatu range.

Analogi dari binary search dapat dianalogikan dengan


metode pencarian suatu kata di dalam kamus.

Algoritma Binary Search


1. Data diambil dari posisi 1 sampai posisi akhir N
2. Kemudian cari posisi data tengah dengan rumus: (posisi
awal + posisi akhir) / 2
3. Kemudian data yang dicari dibandingkan dengan data
yang di tengah, apakah sama atau lebih kecil, atau lebih
besar?
4. Jika lebih besar, maka proses pencarian dicari dengan
posisi awal adalah posisi tengah + 1
5. Jika lebih kecil, maka proses pencarian dicari dengan
posisi akhir adalah posisi tengah 1
6. Jika data sama, berarti ketemu.

Contoh
Misalnya data yang dicari 19
0 1
2
3
4
5
6
7
8
3 10
11
12
13
19
29
33
35
A
B
C
Karena 19 > 13 (data tengah), maka: awal = tengah + 1
0
3

1
10

2
11

3
12

4
13

5
19

6
29

7
33

8
35

A
B
C
Karena 19 < 29 (data tengah), maka: akhir = tengah 1
0
3

1
10

2
11

3
12

4
13

5
19

6
29

A=B=C
Karena 19 = 19 (data tengah), maka KETEMU!

7
33

8
35

Pustaka

Lafore, Robert. 2003. Data Structures and Algorithms in


Java, Second Edition. Sams Publishing.
Sartaj, Sahni. Data Structures & Algorithms. Presentation
L20-24.
Mitchell Waite. Data Structures & Algorithms in Java.
SAMS. 2001.

Anda mungkin juga menyukai