Pencarian beruntun (Sequential) adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.
Sequential adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Sedangkan kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).Sequential search memiliki proses sebagai berikut:
Pencarian beruntun terbadi dua :
1. Pencarian beruntun pada larik tidak terurut;
2. Pencarian beruntun pada larik terurut.
Pencarian Beruntun Pada Larik Tidak Terurut
| 13 | 16 | 14 | 21 | 76 | 21 |
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
Algoritma Pencarian Beruntun Pada Larik Yang Tidak Terurut
Kamus
Const Nmaks : integer = 100
Type Larik100 = array [1..Nmaks] of integer
Procedure CariRuntun(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 ← 0
else
IX ← I
endif
Pencarian Beruntun Pada Larik Yang Terurut
Jika larik sudah terurut (misal terurut menaik, yaitu untuk setiap I=1..N, Nilai[I-1]<Nilai[I] atau terurut mengecil, yaitu untuk setiap I=1..N, Nilai[I-1]>Nilai[I]), maka proses pencarian lebih singkatdibandingkan pencarian larik yang tidak terurut.
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 ← 0contoh Program
#include <stdio.h>
int main()
{
//deklarasi variabel
int A[10],index[10], i,j,k;
//proses penginputan data
for(i=0;i<10;i++)
{
printf("Data ke-%d:",i+1);
scanf("%d",&A[i]);
}
//memasukkan data yang akan dicari ke dalam K
printf("Masukkan data yang akan anda cari:");
scanf("%d",&k);
//proses pencarian data
j=0;
for (i=0;i<10;i++)
{
if(A[i]==k)
{
index[j]=i;
j++;
}
}
//jika data ditemukan dalam array
if (j>0)
{
printf("Data %d yang dicari ada %d buah\n",k,j);
printf("Data tersebut terdapat dalam index ke :");
for(i=0;i<j;i++)
{
printf(" %d ",index[i]);
}
printf("\n");
}
//jika tidak ditemukan
else
{
printf("Data tidak ditemukan dalam array\n");
}
getch();
return 1;
}
hasilnya



