Sequential Search C++ #2 – Index Ganda
By
Unknown
—
Selasa, 17 Desember 2013
—
Struktur Data
Contoh Program Sequential Search - Index Ganda |
Pada postingan sebelumnya SequentialSearch C++ #1 jika dicermati data dibuat tidak sama, karena program tersebut hanya menyimpan satu index saja. Jika data sudah ditemukan maka pencarian dihentikan tanpa mempertimbangkan adanya data kembar.
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:
/*
Mencari data dengan sequential search
Compiler : Microsoft Visual Studio 2012
N.N. Blog
*/
#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 kemudian flag 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 kemudian flag 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 kondisi for 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.
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih