Sequential Search C++ #2 – Index Ganda - nblognlife

Sequential Search C++ #2 – Index Ganda

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.

Baca juga:
Sequential Search C++ #1

[RS]

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