Belajar C++ Part 6 (Searching)
Pada artikel kali ini saya akan memberikan beberapa penjelasan mengenai metode searching dalam bahasa pemrograman C++. Metode ini bertujuan untuk menemukan data yang diinginkan didalam array. Terdapat 2 metode searching dalam c++, yaitu sequential search dan binary search. Kedua metode searching tersebut memiliki perbedaan masing - masing.
Sequential Search
Metode ini memiliki tujuan yang sama pada umumnya yaitu, menemukan data pada array. Hanya saja, sequential search ini sangat mudah implementasinya dalam pemrograman di banding binary search. Dibawah ini beberapa proses cara kerja metode sequential search.
- Menentukan data yang akan dicari terlebih dahulu.
- Mencari data yang dicari pada array satu persatu dengan cara sekuensial.
- Dari data pertama hingga data terakhir yang terdapat pada array dibandingkan dengan data yang dicari.
- Apabila data ditemukan maka akan muncul statement sukses ditemukan.
- Apabila data tidak ditemukan maka juga akan muncul statement data tidak ditemukan.
Contoh Implementasi Metode Sequential Search
Demo program seperti gambar diatas, kita akan membuat pencarian data menggunakan metode sequential search. Untuk code programnya ada dibawah ini.
#include<iostream>
using namespace std;
int main(){
int array[5],index[5];
int caridata,y,x=0;
for(y=0;y<5;y++){
cout<<"Masukkan Angka Pada Urutan Ke-"<<y<<" : ";
cin>>array[y];
}
cout<<endl;
cout<<"Masukkan Data Yang Ingin Di Cari : ";
cin>>caridata;
for(y=0;y<=5;y++){
if(array[y]==caridata){
index[x]=y;
x++;
}
}
if(x>0){
cout<<"Data "<<caridata<<" Terletak Pada Array Urutan Ke-";
for(y=0;y<x;y++){
cout<<index[y]<<" ";
}
cout<<endl;
} else {
cout<<"Data Tidak Di Temukan";
}
}
Penjelasan Singkat Mengenai Kode Program Sequential Search Di Atas
- for (y=0;y<=5;y++) // Perulangan hingga y bernilai 5 sesuai dengan banyaknya array yaitu 5 elemen.
- if(array[y]==caridata) // Disini terdapat operasi if else dimana berfungsi untuk membandingkan antara data yang tersimpan pada array 0 hingga 4 dengan data yang disimpan pada variabel caridata.
- index[x]=y; // Disini index[x] akan menyimpan hasil dari perulangan di atas yaitu value dari variabel y.
- x++; // Disini apabila statement diatas sudah dijalankan maka variabel x akan melakukan increment yaitu x = x+1.
Binary Search
Kalau metode binary searching ini, berbeda dengan metode sequential search. Perbedaanya pun sangat terlihat, dimana apabila sequential search tanpa melalui proses yang rumit termasuk dapat mencari data secara acak. Berbeda dengan metode binary search, dimana metode ini data harus terurut dengan baik secara ascending ataupun descending yang terdapat pada array. Jadi, metode binary search membutuhkan metode sorting.
Tetapi, pada tutorial kali ini admin tidak akan memberikan metode sorting terlebih dahulu. Karena, metode sorting akan kita bahas di artikel selanjutnya jadi sekarang untuk datanya akan kita urutkan secara manual dan secara statik. Adapun dibawah ini algoritma atau cara kerja binary search dalam menemukan data.
Tetapi, pada tutorial kali ini admin tidak akan memberikan metode sorting terlebih dahulu. Karena, metode sorting akan kita bahas di artikel selanjutnya jadi sekarang untuk datanya akan kita urutkan secara manual dan secara statik. Adapun dibawah ini algoritma atau cara kerja binary search dalam menemukan data.
- Langkah pertama melakukan perulangan dan selanjutnya menentukan posisi terendah yaitu posisi yang dapat menandakan bahwa index tersebut paling rendah. Selanjutnya, menentukan posisi tertinggi dari index array. Apabila sudah maka mencari posisi paling tengah dengan algo seperti ini tengah = (posisiTertinggi + posisiTerendah)/2.
- Selanjutnya, membandingkan value yang dicari dengan value yang ada di tengah.
- Apabila value atau data yang dicari sesuai dengan value atau data array yang berada di tengah, maka proses selesai.
- Apabila value atau data yang dicari lebih kecil dari data yang berada di tengah, maka pencarian akan dilanjutkan elemen pada sisi kiri dari array yang berada di tengah. Dengan kondisi posisi tertinggi berubah menjadi posisiTengah - 1 dan posisiTerendah tetap tidak berubah.
- Apabila value atau data yang dicari lebih besar dari data yang berada di tengah array. Maka, pencarian akan dilanjutkan pada sisi kanan dari elemen array yang berada di tengah. Dengan kondisi posisi tertinggi tetap dan posisi terendah berubah menjadi posisiTengah + 1.
Contoh Implementasi Binary Search
Untuk kode programnya seperti di bawah ini.
#include <iostream>
using namespace std;
int main(){
const int array[5] = {1,2,3,4,5};
int cari;
int posisiTerendah=0, posisiTertinggi=5, posisiTengah;
for(int i=0;i<5;i++){
cout<<"Data "<<array[i]<<" Tersimpan Pada Urutan Ke-"<<i+1<<endl;
}
cout<<endl;
cout<<"Masukkan Angka Yang Akan Di Cari : ";
cin>>cari;
while (posisiTerendah <= posisiTertinggi){
posisiTengah = (posisiTerendah + posisiTertinggi)/2;
if (cari > array[posisiTengah] ){
posisiTerendah = posisiTengah + 1;
}
else if (cari < array[posisiTengah]){
posisiTertinggi= posisiTengah - 1;
}
else {
posisiTerendah = posisiTertinggi +1;
}
}
if (cari == array[posisiTengah]){
cout<<"Data Di Temukan Pada Urutan Ke-"<<posisiTengah+1<<endl;
}
else{
cout<<"Data Yang Anda Cari Tidak Ada."<<endl;
}
}
Penjelasan Singkat Mengenai Kode Program Binary Search Di Atas
Untuk penjelasan, tidak jauh beda dengan algoritma binary search yang saya tulis diatas. Jadi, intinya dari metode binary search ini yaitu seluruh banyaknya array di bagi menjadi 2 kubu yaitu sisi kiri dan kanan. Dimana apabila data yang dicari lebih kecil dari data array yang berada di tengah, maka pencarian akan dilanjutkan ke sisi kiri. Apabila data yang dicari lebih besar dari data yang dicari maka pencarian selanjutnya akan dilanjutkan di sisi kanan.
Post a Comment for "Belajar C++ Part 6 (Searching)"