Senin, 22 April 2019

SEQUENTIAL SEARCH PADA C++





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)
       {
              forint 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.






Diberdayakan oleh Blogger.

About me

Instagram : kvinrzkyxd
Wa : 082148535913

Email: kevinrizkyanya@gmail.com

Formulir Kontak

Nama

Email *

Pesan *

Total Tayangan Halaman


Cari Blog Ini

Sponsor

AD BANNER