Anda di halaman 1dari 9

Praktikum Pemrograman I

SEARCHING
<<
Diyah Utami Kusumaning Putri, S.Kom., M.Sc., M.Cs.
Pencarian data diperlukan untuk mencari informasi khusus dari
sekumpulan data tetapi informasi mengenai lokasi dari data
yang dicari belum diketahui sebelumnya

Metode Linear atau Beruntun Metode Biner atau Bagi Dua


(Sequential Search) (Binary Search)
Pencarian Linear (Sequential Search)
● Pencarian linear dapat dilakukan pada data
yang belum terurut maupun yang sudah terurut.
● Pencarian linear dilakukan dengan melakukan
penelusuran data satu persatu kemudian
dicocokkan dengan data yang dicari, jika
tidak sama maka penelusuran dilanjutkan, jika
sama maka penelusuran dihentikan dan berarti
data telah ditemukan.
Pencarian Linear (Sequential Search)

StudentID Name Score


10101 Adi 64.75
10103 Budi 75.11
10105 Charli 84.63
10102 Dodi 77.07
10104 Edi 66.70
Program Pencarian Linear (Sequential Search)
#include <iostream>
using namespace std;

int main(){
bool found = false;
string key;
struct Student {
string studentID;
string name;
float score;
};

Student studentList[] = {{"10101", "Adi", 64.75}, {"10103", "Budi", 75.11},


{"10105", "Charli", 84.63}, {"10102", "Dodi", 77.07},
{"10104", "Edi", 66.70}};
cout << "Insert key of StudentID: ";
cin >> key;

for(int i=0; i<5; i++){


if(studentList[i].studentID==key){
found = true;
cout << "Student ID: "<< studentList[i].studentID << endl;
cout << "Student Name: "<< studentList[i].name << endl;
cout << "Score: "<< studentList[i].score << endl;
break;
}
}

if(!found){
cout<<"The data is not found";
}
return 0;
}
Pencarian Biner (Binary Search)
● Pencarian dengan metode biner atau bagi dua (binary
search) hanya dapat dilakukan pada data yang sudah
terurut.
● Pendekatan yang dilakukan adalah dengan membagi
jangkauan (range) nilai yang akan dicari.
● Metode biner akan mencari data pada kelompok
sebelah kiri elemen tengah apabila lebih kecil dari
nilai elemen di tengah, dan akan mencari data pada
kelompok sebelah kanan elemen tengah apabila lebih
besar dari nilai pada elemen di tengah.
● Keuntungan metode ini berupa waktu pencarian yang
lebih cepat, namun memiliki kerugian dimana metode
ini hanya dapat diterapkan pada data yang telah
diurutkan saja.
Pencarian Biner (Binary Search)
5 3 7 2 0 9 4 1 8 6

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9
Program Pencarian Biner (Binary Search)
#include <iostream>
using namespace std;

int main(){
bool found = false;
int data [] = {0,1,2,3,4,5,6,7,8,9};
int i=0;
int j = sizeof(data)/sizeof(data[0]);
int mid, key;

cout << "Insert key of data: ";


cin >> key;
cout << endl;

while(!found && i<=j){


mid = (i+j)/2;
if(data[mid] < key){
i = mid+1;
}else if(data[mid] == key){
found = true;
}else{
j = mid-1;
}
}

if(!found){
cout << "The data is not found";
}else{
cout << "The data is found";
}
return 0;
}
“Life is trying things to see if
they work”

—Ray Bradbury

Anda mungkin juga menyukai