Tugas Kelompok 5 Searching
Pertanyaan Apa itu Searching ? Metode apa yang di lakukan untuk pencarian Searching ? Buatlah contoh program Searching menggunakan C++ ? Ada berapa macam teknik pencarian Searching ? Bagaimana bentuk rumus posisi relatif kunci pencarian beserta keterangannya ?
Apa itu searching ? Searching adalah proses menemukan data dengan cara mencocokkan sekumpulan data yang bertipe sama
Metode Searching Sequential Search (Pencarian berurutan) Binary Search
Sequential Search (Pencarian berurutan) Teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data- data tidak perlu diurutkan terlebih dahulu. Data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.
Binary Search Teknik pencarian yang mengurutkan daya terlebih dahulu Dengan kata lain, apabila data belum dalam keadaan urut, binary search tidak dapat dilakukan.
Contoh Program : Sequential Search #include <iostream> using namespace std; main() { int data[8] = {8,10,6,-2,11,7,1,100}; int cari; int tanda=0;
Contoh Program : Sequential Search cout<<"masukkan data yang ingin dicari = "; cin>>cari; for(int i=0;i<8;i++){ if(data[i] == cari) tanda=1; } if(tanda==1) cout<<"Data ada!\n"; else cout<<"Data tidak ada!\n";
Contoh Program : Binary Search #include <iostream> using namespace std; main() { int data[7] = {10,13,17,34,58,67,99}; int N = 7 int kiri=0,kanan=N-1,tengah,cari; int tanda=0;
Contoh Program : Binary Search cout<<”Masukan data yang di cari?”;cin>>cari; while((kiri<=kanan)&&(tanda==0)) { tengah=(kiri+kanan)/2; cout<<”data tengah = ”<<tengah<<endl; if(data[tengah]==cari) tanda=1; else if(cari < data[tengah]) { cout<<”cari di kiri\n”; kanan=tengah-1; }
Contoh Program : Binary Search else { kiri=tengah+1; cout<<”cari di kanan\n”; } if(tanda==1) cout<<”Data ada\n”; else cout<<”Data tidak ada\n”;
Teknik Searching Line Search Binnary Search Fibonachi Search
Line Search Teknik searching ini dibuat dengan cara melakukan pengecek’an 1 persatu, yaitu antara data yang di cari dengan kumpulan data yang di miliki, Keuntungan metode ini adalah kita tidak perlu mengurutkan data yang ada, bila mencari data pada kumpulan data yang tidak urut hanya terdapat metode ini yang dapat di lakukan.
Binnary Search Teknik ini hanya dapat digunakan hanya pada kumpulan data yang sudah di urutkan, karena teknik ini melakukan pencarian dengan mencari data pada index yang tengah, apakah lebih besar/lebih kecil/sama dengan. bila hasil sama dengan maka nilai yang di cari telah di temukan. bila lebih kecil/lebih besar maka akan di buang setengah data dari yang salah, dan mencari dari indeks yang tengah dari sisanya. demikian samapi data ditemukan atau tidak di temukan.
Fibonachi Search Teknik ini hanya dapat digunakan hanya pada kumpulan data yang sudah di urutkan, karena teknik ini melakukan pencarian dengan mencari data melalui pola bilangan fibonachi
Interpolation Search Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu. Teknik searching ini dilakukan dengan perkiraan letak data.
Rumus posisi relatif kunci pencarian – Jika data[posisi] > data yg dicari, high = pos – 1 – Jika data[posisi] < data yg dicari, high = pos + 1
Implementasi kode #include <iostream.h> #include <math.h> main() { int data[7] = {10,13,17,34,58,67,99}; int low, high, cari, posisi; float posisi1; int N = 7, flag=0; low=0, high=N-1;
Implementasi kode cout<<"Masukan data yang di cari?”;cin>>cari; do { posisi1 = (cari-data[low])/(data[high]-data[low])*(high-low)+low; posisi = floor(posisi1); //pembulatan ke bawah if(data[posisi] == cari) { flag =1; break; } if(data[posisi]>cari){ high=posisi-1; else if (data[posisi]=data[low]&&cari<=data[high]); if(flag==1){ cout<<"Data ditemukan\n"; } else{ cout<<"Data tidak ada\n"; }
End of slide Arigatou