Sequential Search atau juga dikenal dengan Linear Search merupakan metode pencarian data yang paling mudah. Metode ini membaca
satu per satu data yang mulai dari indek kecil ke indek besar, atupun
sebaliknya.
Berikut ini program C++ untuk mencari data dengan metode Sequential
Search() :
#include <iostream>
using namespace std;
#include <conio.h>
#include <iomanip>
int main()
{
int dataku[10] = {7,9,2,10,15,4,5,6,13,11};
int caridata, i, flag = 0;
cout<<"PENCARIAN
DENGAN SEQUENTIAL SEARCH"<<endl;
cout<<"----------------------------------"<<endl;
cout<<"Data
: ";
for(int n=0; n<10; n++)
cout<<setw(4)<<dataku[n];
cout<<endl;
cout<<"\nMasukkan
data yang ingin Anda cari : ";
cin>>caridata;
//cari dengan metode
sequential search()
for(i = 0; i<10; i++)
{
if(dataku[i]==caridata)
{
flag = 1;
break;
}
}
//cetak hasil
if(flag==1)
cout<<"Data ditemukan pada indek
ke-"<<i<<endl;
else
cout<<"Data tidak ditemukan"<<endl;
_getche();
return EXIT_SUCCESS;
}
Output
PENCARIAN DENGAN SEQUENTIAL SEARCH
----------------------------------
Data : 7 9 2 10 15 4 5
6 13 11
Masukkan data yang ingin Anda cari : 13
Data ditemukan pada
indek ke-8
Algoritma
& penjelasan :
1) dari
array index
ke-0, dicocokan dengan bilangan yang dicari
(13), karena tidak sama maka menuju index selanjutnya
2) pada
array index
ke-1, dicocokan dengan bilangan yang
dicari (13), karena tidak sama maka menuju index selanjutnya
3) pada
array index
ke-2, dicocokan dengan bilangan yang
dicari (13), karena tidak sama maka menuju index selanjutnya
.
.
.
9)
pada array index
ke-8, ternyata sama dengan bilangan yang
dicari (13), maka data ditemukan kemudian keluar dari looping pencarian.
· Indeks
awal pada C++ dimulai dari 0(nol)
·
Saat berada pada index ke-8 maka
kondisi if akan
terpenuhi sehingga semua penyataan yang ada di dalam blok if akan dijalankan
:
flag akan
diberi nilai 1 -> mengindikasikan data ditemukan, pemberian nilai 1 akan
digunakan pada kondisi untuk mencetak string data ditemukan atau tidak.
break ->
digunakan untuk keluar dari suatu blok kode, disini break digunakan untuk
keluar dai perualangan for
Lalu, bagaimana jika terdapat data kembar?
Pada program di bawah ini, kita dapat menyimpan dua
index atau lebih. Program ini digunakan jika ada kemungkinan terdapat data yang
kembar. Caranya adalah dengan membuat variabel baru dengan untuk
menyimpan index saat data ditemukan, dalam program ini variabel merupakan array
karena nantinya akan kita gunakan untuk menyimpan beberapa index.
Berikut ini program C++ untuk mencari data dengan metode Sequential
Search() – index ganda:
#include <iostream>
using namespace std;
#include <conio.h>
#include <iomanip>
int main()
{
int dataku[10] = {7,9,2,5,15,2,5,6,13,11};
int caridata, i, flag = 0;
int simpanindex[10];
int jum_index=0;
cout<<"PENCARIAN DENGAN SEQUENTIAL SEARCH"<<endl;
cout<<"----------------------------------"<<endl;
cout<<"Data : ";
for(int n=0; n<10; n++)
cout<<setw(4)<<dataku[n];
cout<<endl;
cout<<"\nMasukkan data yang ingin Anda cari : ";
cin>>caridata;
//cari dengan metode
sequential search()
for(i = 0; i<10; i++)
{
while(dataku[i]==caridata)
{
flag = 1;
simpanindex[jum_index] = i;
jum_index++;
break;
}
}
//cetak hasil
if(flag==1)
{
for( int y = 0; y < jum_index; y++ )
cout<<"Data ditemukan pada index
ke-"<<simpanindex[y]<<endl;
}
else
cout<<"Data tidak ditemukan"<<endl;
_getche();
return EXIT_SUCCESS;
}
Output
PENCARIAN DENGAN SEQUENTIAL SEARCH
----------------------------------
Data : 7 9 2 5 15 2 5
6 13 11
Masukkan data yang ingin Anda cari : 2
Data ditemukan pada index ke-2
Data ditemukan pada
index ke-5
Algoritma
& penjelasan :
1) dari
array index
ke-0, dicocokan dengan bilangan yang dicari
(2), karena tidak sama maka menuju index selanjutnya
2) pada
array index
ke-1, dicocokan dengan bilangan yang
dicari (2), karena tidak sama maka menuju index selanjutnya
3) pada
array index
ke-2, ternyata sama dengan data
yang dicari (2), maka data ditemukan kemudianflag diberi
nilai 1, index disimpan dalam variabel simpanindex,
break dijalankan
dan keluar dari looping while saja.
Kemudian looping for dijalankan
lagi. Ini artinya ketika data sudah ditemukan maka pencarian akan terus
dilakukan sampai index terakhir.
4) pada
array index
ke-3, dicocokan dengan bilangan yang dicari
(2), karena tidak sama maka menuju index selanjutnya
5) pada
array index
ke-4, dicocokan dengan bilangan yang
dicari (2), karena tidak sama maka menuju index selanjutnya
6) pada
array index
ke-5, ternyata sama dengan data
yang dicari (2), maka data ditemukan kemudianflag diberi
nilai 1, index disimpan dalam variabel simpanindex,
break dijalankan
dan keluar dari looping while saja.
Kemudian looping for dijalankan
lagi. Ini artinya ketika data
sudah ditemukan maka pencarian akan terus dilakukan sampai index terakhir.
7) pada
array index
ke-6, dicocokan dengan bilangan yang dicari
(2), karena tidak sama maka menuju index selanjutnya
.
.
.
10) pada
array index
ke-9, dicocokan dengan bilangan yang
dicari (2). Karena tidak sama maka pencarian dilanjutkan ke iterasi
selanjutnya. Kembali lagi menuju perulangan for, karena kondisifor telah bernilai
salah, maka proses pencarian dihentikan.
Kemudian
index yang sudah disimpan pada variabel simpanindex ditampilkan
ke layar sebanyak index yang ditemukan dengan menggunakan perulangan for.