twitter




Nama : Meta Lara Pandini
NIM    : 0907055058


#include
#include
void binary_search(int tabel1[], int max, int cari, int &indeksnya);
void seq_search(int tabel1[], int max);
main()
{
     int a, imax, nilainya, indeksnya;
     cout << "Input Banyaknya Nilai : ";
     cin >> imax;
     int tabelnya[100];
     for (a=1;a<=imax;a++)
     {
         cout << "Nilai ke-" << a << " : ";
         cin >> tabelnya[a];
     }
     seq_search(tabelnya, imax);
     cout << "\nTabel setelah diurutkan " << endl;
     for (a=1;a<=imax;a++)
     {
         cout << "Nilai ke-" << a << " = " << tabelnya[a] << endl;
     }
     cout << "Nilai yang ingin dicari = ";
     cin >> nilainya;
     binary_search(tabelnya, imax, nilainya, indeksnya);
     if (indeksnya != 0)
        cout << "Indeks = " << indeksnya;
     else
         cout << "Data tidak ditemukan";
     getch();
     return 0;
}
void seq_search(int tabel1[], int max)
{
     int a, b, temp;
     for (a=2;a<=max;a++)
     {
         temp = tabel1[a];
         b = a - 1;
         while ((b>=1) && (temp < tabel1[b]))
         {
               tabel1[b+1] = tabel1[b];
               b--;
         }
         tabel1[b+1] = temp;
     }
}

void binary_search(int tabel1[], int max, int cari, int &indeksnya)
{
     int atas, bawah, tengah;
     bool ketemu;
     bawah = 1;
     atas = max;
     ketemu = false;
     while ((bawah < atas) && (!ketemu))
     {
           tengah = ((bawah+atas)/2);
           if (tabel1[tengah] == cari)
              ketemu = true;
           else if (tabel1[tengah] < cari)
                bawah = tengah+1;
           else
               atas = tengah-1;
          
           if (ketemu)
              indeksnya = tengah;
           else
               indeksnya = 0;       
     }
}