Algoritma Pencarian
Þ Pencarian merupakan proses yang
fundamental dalam pengolahan data. Proses pencarian adalah menemukan nilai
(Data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar
atau bertipe bentukan). Sebagai contoh untuk mengubah (update) data tertentu,
langkah pertam ayang harus dilakukan adalah mencari keberadaan data tersebut di
dalam kumpulannya. Jika data yang dicari ditemukan, maka data tersebut dapat
diubah dinilainya dengan data yang baru.. Aktivitas awal yang sama juga
dilakukan pada prose penambahan (insert) data baru.
Spesifikasi Masalah
|
10
|
31
|
47
|
89
|
1
|
51
|
87
|
90
|
12
|
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
Terdapat 2 Metode Algoritma Pencarian
1. Algoritma Pencarian Beruntun (sequential search)
2. Algoritma Pencarian Bagi Dua (Binary Search)
Algortima Pencarian Beruntun
Algoritma pencarian yang paling
sederhana.
Nama lainnya adalah linear search
Proses membandingkan setiap elemen
larik satu per satu secara beruntun, mulai dari elemen pertama, sampai elemen
yang dicari ditemukan, atau seluruh elemen sudah diperiksa
Contoh Algoritma
#include<stdio.h>
int main()
{
int
nilai[5];nilai[0]=12;nilai[1]=51;nilai[2]=2;nilai[3]=34;nilai[4]=90;
int nilai_yang_dicari=45;
int
i;
int
hasil=0;
{
for
(int i=0;i<=4;i++)
{
if
(nilai[i]==nilai_yang_dicari)
{
hasil=i;
}
}
printf("Nilai
%d ditemukan di index ke %d",nilai_yang_dicari,hasil);
return
0;
}
}
Output :
Algoritma Pencarian Bagi Dua
Þ Algoritma Pencarian Bagi dua
dilakukan dengan cara membagi array menjadi 2, lalu proses pencarian dimulai,
baik dari sisi sebelah kiri atau sebelah kanan .
|
13
|
21
|
45
|
80
|
2
|
31
|
41
|
|
13
|
21
|
45
|
80
|
2
|
31
|
41
|
Misalkan yng dicari adalah 31
i+j/2 =1 + 7/2 = 4
Apakan indeks yang ketujuh adalah 31
(!=)
|
13
|
21
|
45
|
80
|
2
|
31
|
41
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
· Putuskan apakah mencari dari kiri atau kanan
· Misal dari kanan
|
80
|
2
|
31
|
41
|
|
1
|
2
|
3
|
4
|
Cont :
i=1;
J=4;
i+j/2
(1+4)/2=2
|
80
|
2
|
31
|
41
|
|
1
|
2
|
3
|
4
|
Putuskan mencari dari kiri atau kanan
i=1;
J=2
1+2/2=1
|
31
|
41
|
|
3
|
4
|
Sequential vs Binary
Þ
Algoritma
Beruntun dapat digunakan baik untuk data yang belum terurut maupun untuk data
yang sudah terurut. Sedangkan algoritma bagi dua hanya cocok digunakan untuk
mencari data yang sudah terurut saja.
No comments:
Post a Comment