SEARCHING

Linear Search
Analisis(Mencari NIM mahasiswa dari suatu data array menggunakan linear search dengan membandingkan kata kunci dengan data NIM)
    Input      : data(variable array), i(banyak data), cari(variabel data yang dicari)
    Proses    : Membandingkan data pertama sampai data terakhir
    Output    : data yang dicari

Algoritma(Mencari data sebuah array dari data pertama sampai data terakhir)
    Deklarasi
        Data             : array[10] integer
        i, n, a, cari    : integer
        ketemu         : boolean
    Deskripsi
        ketemu <= false
        read(a)
            a<=1
            for a to i do
                read(data[a])
            end for
        n<--1
        while((n<=i) and (not ketemu)) do
            if(data[n] = cari) then 
                ketemu <=true
                write(data[n])
            end if
        end while

Program C++
#include <iostream>
using namespace std;

int main(){
int i, n, a, data[20], cari;
bool ketemu=false;
cout<<"Banyak data = ";
cin>>i;
for(int a=1; a<=i; a++){
cout<<"Masukkan NIM ke-"<<a<<" = ";
cin>>data[a];
}
cout<<"\nNIM yang dicari = ";
cin>>cari;
n=1;
while((n<=i) && (ketemu==false)){
if(data[n]==cari){
ketemu=true;
cout<<"\nNIM "<<data[n]<<" terdapat pada data ke-"<<n<<endl;
}
else{
n++;
}
}
return 0;
}

Hasil Run


=========================================================================

Binary Search

Analisis(Mencari NIM mahasiswa dari suatu data array menggunakan linear search dengan membandingkan kata kunci dengan data NIM)
    Input      : data(variable array), i(banyak data), cari(variabel data yang dicari)
    Proses    : Membandingkan data pertama sampai data terakhir
    Output    : data yang dicari

Algoritma(Mencari data sebuah array dari data pertama sampai data terakhir)
    Deklarasi
        Data             : array[10] integer
        i, n, a, cari    : integer
        ketemu         : boolean
    Deskripsi
        ketemu<--false
        read(a)
            a<--1
            for a to i do
                read(data[a])
            end for

        read(cari)
        low<--1
        high<--i
        while((low<=high) and (not ketemu)) do
            middle <-- (low + high) div 2
            if(cari == data[middle]) then
                ketemu = true
            else if(cari<data[middle]) then
                 high <-- middle - 1
            else
                low <-- middle + 1
            end if
        end while

Program C++
#include <iostream>
using namespace std;

int main(){
int i, a, data[10], cari;
bool ketemu=false;
int low,high, middle;
cout<<"Banyak data = ";
cin>>i;
for(int a=1; a<=i; a++){
cout<<"Masukkan NIM ke-"<<a<<" = ";
cin>>data[a];
}
cout<<"\nNIM yang dicari = ";
cin>>cari;
low=1; 
high=i;
while((low<=high) && (ketemu==false)){
middle = (low+high)/2;
if(cari==data[middle]){
ketemu=true;
cout<<"\nNIM "<<data[middle]<<" terdapat pada data ke-"<<middle<<endl;
}
else if(cari<data[middle]){
high=middle=1;
}
else{
low=middle+1;
}
}
return 0;
}

Hasil Run





Komentar