SEARCHING (PENCARIAN)
Tujuan Umum
1. Mahasiswa mampu melakukan perancangan aplikasi menggunakan
Struktur Searching (Pencarian).
2. Mahasiswa mampu melakukan analisis pada algoritma Searching
yang dibuat.
3. Mahasiswa mampu mengimplementasikan algoritma Searching
pada sebuah aplikasi secara tepat dan efisien
Tujuan Khusus
1. Mahasiswa mampu menjelaskan mengenai algoritma Searching.
2. Mahasiswa mampu membuat dan mendeklarasikan struktur
algoritma Searching.
3. Mahasiswa mampu menerapkan dan mengimplementasikan
algoritma Searching.
DASAR TEORI
Sequential Search (Linear Search)
Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari
depan ke belakang atau dari awal sampai akhir. Kelebihan dari proses pencarian secara
sequential ini jika data yang dicari terletak didepan, maka data akan ditemukan dengan
cepat. Tetapi dibalik kelebihannya ini, teknik ini juga memiliki kekurangan. Pertama, jika
data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu
yang lama dalam proses pencariannya. Kedua, beban komputer akan semakin bertambah
jika jumlah data dalam array sangat banyak. Disini IT Programmer akan memberikan
contoh sintaks dari Sequential Search dalam C++. Tidak ada penginputan data oleh user
dalam program ini, karena data telah dideklarasikan terlebih dahulu. Kalian dapat
mengubahnya sendiri jika kalian telah lebih menguasai bagian ini.
Teknik pencarian data dari array yang paling mudah adalah dengan cara
sequential
search
, dimana data dalam array dibaca 1 demi satu, diurutkan dari index terkecil ke
index terbesar, maupun sebaliknya.
Contoh :
Array :
a) dari array index ke-0, yaitu 0, dicocokan dengan bilangan yang akan dicari, jika
tidak sama, maka mencari ke index berikutnya
b) pada array index ke-1, juga bukan bilangan yang dicari, maka kita mencari lagi
pada index berikutnya
c) pada array index ke-2, ternyata bilangan yang kita cari ada ditemukan, maka kita
keluar dari looping pencarian.
Contoh source :
Output:
Binary search
Metode pencarian yang kedua adalah
binary search
, pada metode pencarian ini, data
harus diurutkan terlebih dahulu. Pada metode pencarian ini, data dibagi menjadi dua
bagian (secara logika), untuk setiap tahap pencarian
Pencarian Biner (Binary Search) dilakukan untuk :
Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data
yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data
yang sangat besar ukurannya.
Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara
berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat
dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
Algoritma binary search :
1. Data diambil dari posisi 1 sampai posisi akhir N
2. Kemudian cari posisi data tengah dengan rumus: (posisi awal +
posisi akhir) / 2
3. Kemudian data yang dicari dibandingkan dengan data yang di
tengah, apakah sama atau lebih kecil, atau lebih besar?
4. Jika lebih besar, maka proses pencarian dicari dengan posisi
awal adalah posisi tengah + 1
5. Jika lebih kecil, maka proses pencarian dicari dengan posisi
akhir adalah posisi tengah – 1
6. Jika data sama, berarti ketemu.
Keunggulan Binary Search
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang
lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan
waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam
sebuah tabel lebih kecil daripada waktu yang dibutuhkan algoritma sequential search.
Output :
Interpolation Search
Interpolation search
merupakan salah satu metode pencarian yang dapat
digunakan. Seperti pada binary search, data yang harus diurutkan terlebih dahulu,
sebelum dapat dilakukan pencarian dengan metode ini. Pada metode pencarian ini, kita
mencoba menebak letak data yang kita cari, dengan perhitungan
Jika data[posisi] > data yg dicari, high = pos – 1
Jika data[posisi] < data yg dicari, low = pos + 1
Output:
Percobaan 1
Algoritma dan Struktur Data
Nama Program
: Program Searching
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks
Script program
:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <math.h>
using namespace std;
int data[10],data2[10];
void Sequential_Search() //fungsi pencarian dengan sequential
{
int i,cari,flag=0;
printf("Masukan data yang ingin dicari : ");
scanf("%i",&cari);
for(i=0;i<10;i++)
{
if(data[i]==cari)
{
break;
}
}
if(flag==1)
printf("Data yang anda cari ditemukan pada index ke-%i\n",i);
else
{
printf("Data yang anda cari tidak ditemukan, mohon maaf!\n");
printf("\n");
}
}
void Binary_Search() //fungsi pencarian dengan binary
{
int temp,awal,tengah,akhir,cari,a,i,flag=0;
awal=0;
akhir=9;
printf("Data yang anda cari :");
scanf("%i",&cari);
while(awal<=akhir && flag==0)
{
tengah=(awal+akhir)/2;
if(data2[tengah]==cari)
{
flag=1;
break;
}
else if(data2[tengah]<cari)
{
awal=tengah+1;
printf("cari kiri\n");
}
else
{
akhir=tengah-1;
}
}
if(flag==1) printf("Data ditemukan");
else printf("Data tidak ditemukan");
}
void Interpolation_Search() //fungsi pencarian dengan interpolation
{
int data[10];
int low,high,pos,cari,flag=0;
float posisi;
low=0;
high=9;
printf("Data yang anda cari :");
scanf("%i",&cari);
do
{
posisi=(float)((cari-data2[low])/(data2[high]-data2[low]))*(high-low) +low;
pos=floor(posisi);
if (data2[pos]==cari)
{
flag=1; //data ditemukan
break;
}
if(data2[pos]>cari) high=pos-1;
else if(data2[pos]<cari) low=pos+1;
}while(cari>=data2[low] && cari<=data2[high]);
if(flag==1)printf("Data ditemukan\n");
else printf("Data tidak ditemukan, mohon maaf!\n");
}
void Input_Data() //fungsi input data
{
printf("\nInputkan data sebanyak 10\n\n");
for(int i=0;i<10;i++) //data sebanyak 10
printf("Masukkan data ke-%d = ",(i+1));
scanf("%d",&data[i]);
data2[i] = data[i];
}
}
int main()
{
int pilih,i,a,temp;
cout<<"|============================|"<<endl;
printf("| Pilihan Searching |\n");
cout<<"|---|"<<endl;
printf("| 1. Sequential Search |\n");
printf("| 2. Binary Search |\n");
printf("| 3. Interpolation Search |\n");
cout<<"|============================|"<<endl;
printf("\nPilihan Anda = ");
scanf("%d",&pilih);
Input_Data();
for (a=0;a<=4;a++)
{
data2[a]=data[a];
}
for (a=0;a<4;a++)
{
for (i=a+1;i<=4;i++)
{
if (data2[i]<data2[a])
{
temp = data2[i];
data2[i] = data2[a];
data2[a] = temp;
Output Program :
Algoritma :
1. Mulai.
2. Membaca header file
3. Mendeklarasikan fungsi searching
4. Pilihan Searching
a). Jika pilih 1 maka akan memanggil fungsi sequentil search
b). Jika pilih 2 maka akan memanggil fungsi binary search
c). Jika pilih 3 maka akan memanggil fungsi interpolation search
5. Input data sebanyak yang telah ditentukan
6. Masukkan data yang akan dicari
}
}
switch(pilih)
{
case 1:Sequential_Search();
break;
case 2:Binary_Search();
break;
case 3:Interpolation_Search();
break;
default:
break;
}
7. Cetak hasil sesuai dengan pilihan searching
a). Searching dengan fungsi sequential search
b). Searching dengan fungsi binary search
c). Searching dengan fungsi intepolation search
8. Selesai
Deskripsi:
Program diatas mencari bilangan yang akan diinputkan oleh user. Dan ada beberapa
pilihan searching pada program ini. Yang pertama adalah sequential search adalah teknik
pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai
akhir. Dan data yang dicari akan ditampilkan pada index keberapa data tersebut berada. Yang
kedua adalah binary search pada metode pencarian ini, data harus diurutkan terlebih dahulu.
Dan yang ketiga adalah interpolation search, Seperti pada
binary search
, data yang harus
diurutkan terlebih dahulu, sebelum dapat dilakukan pencarian dengan metode ini.
Percobaan 2.1
Algoritma dan Struktur Data
Nama Program
: Program
array 1 dimensi
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks
Script program
:
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int data[100];
int i, cari, n;
Output Program:
Algoritma :
1. Mulai.
2. Membaca header file
3. Deklarasi fungsi array
4. Masukkan banyak array
5. Input data sesuai dengan banyak data yang telah dimasukkan
6. Masukkan data yang ingin dicari
7. Hasil pencarian
“Data (yang dicari) ditemukan pada indeks ke []
8. Selesai
Deskripsi :
Program diatas berfungsi untuk mencari data yang telah diinputkan dan
ditunjukan pada indeks keberapa. Program diatas menggunakan fungsi array.
Untuk menampilkan hasil dari data yang dicari adalah sbb:
printf("Data %i ditemukan pada indeks ", cari);
for(i=0;i<n;i++){
if(data[i]==cari)
printf("ke [%i], ", i);
maka hasil nya akan seperti “ Data (yang dicari) ditemukan pada indeks ke [].
Percobaan 2.2
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks
Script program
:
Output Program :
#include<iostream>
#include<iomanip>
using namespace std;
int main ()
{
int a,b,data[10][10],baris,kolom,cari,i;
cout<<endl;
cout<<" Inputkan data baris array : ";
cin>>baris;
cout<<endl;
cout<<" Inputkan data kolom array : ";
cin>>kolom; cout<<endl; for (a=0;a<baris;a++) { for (b=0;b<kolom;b++) {
cout<<"Inputkan angka pada indeks ["<<a<<"]["<<b<<"] = ";
cin>>data[a][b];
cout<<endl;
}
}
cout<<"Array dua dimensi yang diinputkan berisi\n";
for (a=0;a<baris;a++) { for (b=0;b<kolom;b++) cout<<setw(3)<<data[a][b]<<" "; cout<<endl; } cout<<endl;
cout<<"Inputkan nilai yang dicari : ";
cin>>cari; cout<<endl; i=0; for (a=0;a<baris;a++) { for (b=0;b<kolom;b++) { if (cari==data[a][b]) {
cout<<"Data ditemukan pada indeks ["<<a<<"]["<<b<<"]\n";
i++;
}
}
}
if (i==0)
cout<<"Data tidak ditemukan, mohon maaf!"<<endl;
Algoritma :
1. Mulai
2. Membaca header file
3. Deklarasi fungsi array
4. Masukkan banyak baris pada array
5. Masukkan banyak kolom pada array
6. Masukkan data sebanyak yang telah ditentukan sesuai dengan banyak baris dan
kolom array
7. Tampilan array 2 dimensi yang telah diinputkan
8. Masukkan data yang akan dicari
9. Cetak hasil “data ditemukan pada indeks [ ] [ ]”
10. Selesai.
Deskripsi :
Percobaan 3.1
Algoritma dan Struktur Data
Nama Program
: Program array 1 dimensi
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks.
Script program :
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int data[100];
int i, cari, n, jumlah=0;
cout<<endl;
cout<<" Masukkan jumlah array = ";
cin>>n;
cout<<endl;
for(int j=0;j<n;j++)
{
cout<<"Masukkan data ke ["<<j<<"] = ";
cin>>data[j];
cout<<endl;
}
cout<<" Masukkan data yang ingin dicari : ";
cin>>cari;
cout<<endl;
printf(" Data %i ditemukan pada indeks ", cari);
for(i=0;i<n;i++)
{
Output Program :
Algoritma :
1. Mulai
2. Membaca header file
3. Deklarasi Fungsi Array
4. Masukkan banyaknya jumlah array yang diingikan
5. Masukkan data array sebanyak yang telah ditentukan sebelumnya
6. Masukkan data yang ingin dicari
7. Cetak hasil seperti “ data ( . . . ) ditemukan pada indeks ke [ ], data ditemukan
sebanyak ( . . . ) data
8. Selesai
Deskripsi :
Program diatas akan mencari sebuah data dan banyak data yang dicari tersebut. Sama seperti
program-program sebelumnya program ini menggunakan fungsi array. Untuk menentukan
jumlah data yang di cari menggunakan script seperti berikut :
if(data[i]==cari){ //jika data yang dicari berada pada data data[i]
printf("ke [%i], ", i); //tampilkan data beserta index
jumlah=jumlah+1; //dan penemuan data dijumlahkan
Percobaan 3.2
Algoritma dan Struktur Data
Nama Program
: Program input number secara random
}
cout<<endl;
cout<<"\nData ditemukan sebanyak "<<jumlah<<" data.";
cout<<endl;
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks.
Script program :
Output Program :
#include<iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int n,data[50],cari,a,i,ganjil,genap,odd[50],even[50];
cout<<endl;
cout<<" Inputkan data :";
cin>>n;
cout<<endl;
cout<<" Data random : \n";
cout<<endl; for (a=0;a<n;a++) { data[a]=rand(); cout<<endl; cout<<data[a]<<endl; cout<<endl; } ganjil=0;
genap=0;for (a=0;a<n;a++)
{ if(data[a]%2==0) { genap++; even[genap]=data[a]; } else { ganjil++; odd[ganjil]=data[a]; } } cout<<endl;
cout<<" Data genap ada "<<genap<<" itu adalah\n";
for (a=1;a<=genap;a++)
cout<<even[a]<<endl;
cout<<endl;
cout<<"Data ganjil ada "<<ganjil<<" itu adalah\n";
for (a=1;a<=ganjil;a++)
cout<<odd[a]<<endl;
Algoritma :
1. Mulai
2. Membaca header file
3. Deklarasi array
4. Data akan muncul secara random
5. Membaca fungsi
a. Termasuk dalam genap
b. Termasuk dalam genjil
6. Cetak hasil
7. Selesai
Deskripsi :
Program diatas menampilkan data yang akan muncul secara random. Pertama user
memasukkan jumlah atau banyak data. Setelah itu akan muncul data secara random sesuai
dengan yang telah ditentukan secara random. Kemudian data akan dengan sendiri nya
mengelompokkan sesuai dengan genap atau ganjilnya data .
Tugas Rumah 1
Algoritma dan Struktur Data
Nama Program
: Program Kata
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks.
Script program :
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <iostream>
for (int a=0;kata[a];a++)
{ //Fungsi toupper adalah merubah huruf kecil menjadi huruf kapital
if(toupper(kata[a])=='A'||toupper(kata[a])=='I'||toupper(kata[a])=='U'|| toupper(kata[a])=='E'||toupper(kata[a])=='O')
{
data1[vokal]=kata[a];
vokal++;
}
else if (isdigit (kata[a]))
{
data2[numerik]=kata[a];
numerik++;
}
else if (isspace (kata[a])) {}
else
{
data3[konsonan]=kata[a];
konsonan++;
}
}
printf("\n Huruf Vokal = %d = ",vokal);
for (i=0;i<vokal;i++)
{
printf("%c ", data1[i]);
}
cout<<endl;
printf("\n Numerik = %d = ",numerik);
for (i=0;i<numerik;i++)
{
printf("%c ", data2[i]);
}
cout<<endl;
printf("\n Huruf Konsonan = %d = ",konsonan);
OutProgram :
{
printf("%c ", data3[i]);
}
cout<<endl;
jml=vokal+numerik+konsonan;
printf("\n Total Kalimat = %d ",jml);
cout<<endl;
printf("\n Data Yang Ingin Dicari : ");
scanf("%c",&cari);
sequential_search(kata,cari,size);
}
void sequential_search(char data[],int cari, const int size)
{
int i, flag=0;
for(i=0;i<size;i++)
{
if (data[i]==cari)
{
flag=1;
cout<<endl;
printf ("\nData yang di cari ada pada index ke-%d", i);
}
}
cout<<endl;
if (flag!=1)
{
cout<<endl;
printf("Data yang dicari tidak ditemukan !!!\n");
}
cout<<endl;
Algoritma :
1. Mulai
2. Membaca header file
3. Membaca fungsi array
4. Pendeklarasian
5. Masukkan sebuah kalimat yang diinginkan
6. Menampilkan dan menghitung huruf vokal sbb
if(toupper(kata[a])=='A'||toupper(kata[a])=='I'||toupper(kata[a])=='U'|| toupper(kata[a])=='E'||toupper(kata[a])=='O')
{
data1[vokal]=kata[a]; //jika kata a,i,u,e,o berarti termasuk dalam huruf vokal
vokal++; }
7. Menampilkan dan menghitung Numerik sbb
else if (isdigit (kata[a])) {
data2[numerik]=kata[a]; numerik++;
}
8. Menampilkan dan menghitung Huruf Konsonan sbb
else if (isspace (kata[a])) {}
else
{
data3[konsonan]=kata[a];
konsonan++;
}
9. Menampilkan dan menghitung total kalimat sbb
jml=vokal+numerik+konsonan;
10. Tampilan Huruf Vokal, Numerik, Huruf Konsonan, dan Total Kalimat
11. Masukkan data yang ingin dicari
12. Gunakkan fungsi sequential search
a). Jika data yang dicari ditemukan akan muncul kalimat seperti berikut “
Data yang dicari ada pada index ke-%d
“ %d membaca pada index keberapa data tersebut berada
b). Jika data yang dicari tidak ditemukan akan muncul kalimat seperti berikut “
Datayang dicari tidak ditemukan !!!
”
Deklarasi :
Program ini akan menampilkan Huruf Vokal, Huruf Konsonan, Numerik, dan total kata dari
kalimat yang telah diinputkan oleh user. Program ini memanfaatkan fungsi searching yaitu
sequential search. Program ini juga menggunakan fungsi toupper. Fungsi Toupper sendiri
berguna untuk mengubah huruf kecil menjadi huruf Kapital.
Tugas Rumah 2
Algoritma dan Struktur Data
Nama Program
:Program searching number dengan input random
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks.
Script program :
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
using namespace std;
int array[100];
int flag = 0, i, banyak, metode;
int a, b=0;
int awal, akhir, tengah, pos, cari, posisi;
int temp;
else {
akhir = tengah - 1;
printf("cari kiri\n");
}
}
}
int interpolation(){
int awal, akhir, pos, cari, flag=0;
float posisi;
awal=0;
akhir=9;
printf("Data yang anda cari :");
scanf("%i",&cari);
do {
posisi = (float)(((cari-array[awal])/(array[akhir]-array[awal]))*(akhir-awal) +awal);
pos = floor(posisi);
if(array[pos] == cari){
flag = 1;
break;
}
if(array[pos] > cari) akhir = pos - 1;
else if (array[pos] < cari) awal = pos + 1;
} while(cari >= array[awal] && cari <= array[akhir]);
}
main(){
cout<<endl;
cout<<" +++++++++++++++++++++++++++++++++++++++++++"<<endl;
cout<<" Masukkan jumlah data yang digunakan : ";
cin>>banyak;
cout <<endl;
cout<<">>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<"<<endl;
cout<<" Tampilkan Data [Y/T] : ";
cout<<endl;
cout<<">>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<"<<endl;
if (tampil == 'Y' || tampil == 'y'){
for(int j=0; j<banyak;j++){
array[j] = rand()%banyak;
cout << " " << array[j] << " ";
}
}
else
{
}
cout<<endl<<endl;
cout<<"==========================================="<<endl;
cout<< "\n\nUrutkan data [Y/T] : ";
cin>>urutkan;
cout<<endl;
cout<<"==========================================="<<endl;
if(urutkan == 'Y' || urutkan == 'y'){
for(int ii=0; ii<banyak; ii++){
if(array[ii] >= array[ii+1]){
temp = array[ii];
array[ii] = array[ii+1];
array[ii+1] = temp;
metode = 1;
}
}
}
else {
metode = 0;
}
cout<<endl;
cout<<" Masukkan data yang akan dicari : ";
cin>>cari;
if(metode != 0){
cout<<"|=========================|"<<endl;
cout<<"|Pilih metode pencarian : |"<<endl;
cout<<"|---|"<<endl;
cout<<"|[1] Binary |"<<endl;
cout<<"|[2] Interpolation |"<<endl;
cout<<"|=========================|"<<endl;
cout<<"Pilihan metode : ";
cin>>metode;
}
if(metode == 0){
for(i = 0;i<banyak;i++){
if(array[i] == cari){
flag = 1;
break;
}
}
}
else if(metode == 1){
binary(); }
else if(metode == 2){
interpolation();
}
if(flag == 1) cout << "Data Ditemukan ";
else cout << "Data Ditemukan ";
getch();
return 0;
OutProgram :
Algoritma :
1.
Mulai
2.
Membaca header file
3.
Pendeklarasian dan Deklarasi Array
4.
Deklarasi Fungsi searching
b). Interpolation search
5.
Masukkan banyak data
6.
Data akan muncul secara random tidak diinputkan oleh user
7.
Pilihan menampilkan data [Y/T]
a.
If pilih Y maka data akan ditampilkan
b.
If pilih T maka data tidak akan ditampilkan
8.
Pilihan urutkan data [Y/T]
a.
If pilih Y maka data akan diurutkan
b.
If pilih T maka data tidak akan diurutkan dan tidak bisa dioperasikan dengan
binary search atau interpolation search hanya bisa dioperasikan dengan sequential
search.
9.
Masukkan data yang akan dicari
10.
Pilihan menu.
a.
Binary search
b.
Interpolation search
Dapat kemenu pilihan ini jika pada pilihan urutkan data user memilih [Y], jika
memilih [T] maka menu pilihan ini tidak muncul.
11.
Cetak Hasil
12.
Selesai
Deklarasi :
Program diatas akan menampilkan sebuah data yang banyak data nya diinputkan oleh
user tetapi data-data yang akan muncul tidak diinputkan oleh user atau akan muncul secara
random. Kemudian pada pilihan urutkan data, jika user ingin mengurutkan data maka user
akan menuju kemenu metode searching diantaranya binary dan interpolation seacrh, jika user
tidak mengurutkan data akan langsung dicari menggunakan sequential search.
Tugas Rumah 3
Algoritma dan Struktur Data
Nama Program
: Program mengubah kata
Bahasa Pemrogramam
: C++
Compiler
: Code Blocks.
Script program :
#include <stdio.h>
#include <iostream>
#define N 255
using namespace std;
/* prototype fungsi */
void replace(char*, char, char);
int main(){
char data[N], find, ganti;
cout<<endl;
cout<<" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
OutProgram :
Algoritma :
1. Mulai
2. Membaca header file
3. Masukkan sebuah kalimat
4. Masukkan karakter yang dicari
5. Masukkan karakter pengganti
6. Memanggil fungsi merubah karakter sbb
*data=((*data == find)?replace:*data); data++;
i++;
7. Cetak Hasil replace atau hasil merubah karakter
8. Selesai
void replace(char *data, char find, char replace){
int i=0;
while(*data !='\0'){
/* fungsi merubah karakter */
*data=((*data == find)?replace:*data);
data++;
i++;
}
Deklarasi :
KESIMPULAN
1.
Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari
depan ke belakang atau dari awal sampai akhir.
2.
Kelebihan dari proses pencarian secara sequential ini jika data yang dicari terletak
didepan, maka data akan ditemukan dengan cepat.
3.
Binary search metode pencarian ini, data harus diurutkan terlebih dahulu.
4.
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya
yang lebih kecil daripada kompleksitas algoritma sequential search.
5.
Pencarian Biner (Binary Search) dilakukan untuk :
Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data
yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data
yang sangat besar ukurannya.
Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara
berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat
dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut,
misalkan terurut menaik.
6.
Interpolation search
. Seperti pada binary search, data yang harus diurutkan
terlebih dahulu, sebelum dapat dilakukan pencarian dengan metode ini.
7.
Pada metode pencarian ini, kita mencoba menebak letak data yang kita cari, dengan
perhitungan
Jika data[posisi] > data yg dicari, high = pos – 1
Jika data[posisi] < data yg dicari, low = pos + 1
DAFTAR RUJUKAN
1.
Tim Asisten Dosen. 2014. Modul 3 Searhing (Pencarian). Malang: Unversitas Negeri
Malang.
2.
http://blog.creanivate.com/2010/08/sequential-search-program-in-c.html