Anda di halaman 1dari 27

LAPORAN 4

Algoritma dan Struktur Data

Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data


Yang Dibimbing oleh Bapak Aji Prasetya Wibawa,S.T.,M.T.,Ph.D.

Oleh:
Rifky Muzaki Nur Salim (140533603559)
Setiawan (140533603042)

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
S1 PENDIDIKAN TEKNIK INFORMATIKA
FEBRUARI 2015
MODUL 4
SEARCHING (PENCARIAN)

A. 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.

B. DASAR TEORI
Pencarian (searching) merupakan proses yang fundamental dalam pemrograman, yang
digunakan untuk menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe
sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi (mencocokkan) data.
Pencarian diperlukan untuk mencari informasi khusus dari tabel pada saat lokasi yang
pasti dari informasi tersebut sebelumnya tidak diketahui. Data pada tabel biasanya
disimpan dengan menggunakan tipe data Array.
1. Metode Pencarian Beruntun/Pencarian Sequensial (Sequential Search)
Konsep yang digunakan dalam metode ini adalah membandingkan data-data yang
ada dalam kumpulan tersebut, mulai dari elemen pertama sampai elemen terakhir, atau
elemen ke-n. Prinsip dari metode ini sebagai berikut : data yang ada di bandingkan satu
persatu secara berurutan dengan yang dicari.
Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai
dengan jumlah data. Pada setiap perulangan, di bandingkan data ke-i dengan yang
dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir
pengulangan, tidak ada yang sama berarti data tidak ada.
2. Metode Pencarian Bagi Dua (Binary Search)
Metode ini diterapkan pada sekumpulan data yang sudah terurut (menaik atau
menurun). Metode ini lebih cepat dibandingkan metode pencarian beruntun. Data
yang sudah terurut menjadi syarat mutlak untuk menggunakan metode ini.
Konsep dasar metode ini adalah membagi 2 jumlah elemennya, dan menentukan
apakah data yang berada pada elemen paling tengah bernilai sama, lebih dari atau
kurang dari nilai data yang akan dicari. Jika bernilai sama, maka langsung data yang
dicari ditemukan. Jika data di elemen terurut naik, maka jika data yang berada di
tengah kurang dari data yang dicari, maka pencarian selanjutnya berkisar di elemen
tengah ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan
sebaliknya untuk nilai data yang berada di tengah lebih dari data yang dicari, maka
pencarian selanjutnya berkisar di elemen tengah kiri, dan begitu seterusnya sampai
ketemu atau tidak sama sekali. Dan demikian sebaliknya untuk data yang terurut
menurun. Dalam hal ini tentukan indeks paling awal dan indeks paling akhir, untuk
membagi 2 elemen tersebut.
Indek awal = I, dimana nilai I, pada awalnya bernilai 0;
Indeks akhir = J, dimana nilai J, pada awalnya bernilai sama dengan jumlah elemen-1.
3. 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, ktia mencoba
menebak letak data yang dicari, dengan perhitungan
 Jika data[posisi] > data yang dicari, high = pos – 1
 Jika dara[posisi] < data yang dicari, low = pos + 1

C. LATIHAN
1. Latihan 1
 Nama Program : Program Searching menerima inputan data ke dalam
sebuah array.
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi Sequensial Search
6. Membaca Fungsi Binary Search
7. Membaca Fungsi Interpolation Search
8. Membaca Fungsi tambah data
9. Membaca Fungsi utama
10. Memilih metode yang diinginkan
a. Metode Sequential Search
b. Metode Binary Search
c. Metode Interpolation Search
11. Menginputkan data
12. Menginputkan angka yang akan dicari
13. Membandingkan angka-angka yang ada dengan angka yang dicari
14. Menampilkan hasil pencarian
15. Selesai
 Script program :
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <conio.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)
{
flag=1;
break;
}
}
if(flag==1)
printf("Data yang dicari ditemukan pada index ke-
%i\n",i);
else
{
printf("Data yang dicari tidak ditemukan!\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("Masukkan 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;
printf("cari kanan\n");
}
}
if(flag==1) printf("Data Anda ditemukan");
else printf("Data Anda 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("Masukkan 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 Anda ditemukan\n");
else printf("Data Anda tidak ditemukan!\n");
}
void Input_Data() //fungsi input data
{
printf("\nMasukkan data Sebanyak 10\n\n");
for(int i=0;i<10;i++) //data sebanyak 10
{
printf("Data ke-%d = ",(i+1));
scanf("%d",&data[i]);
data2[i] = data[i];
}
}
int main()
{
int pilih, i, a, temp;
cout<<"|=============================|"<<endl;
printf("| Menu Searching |\n");
cout<<"|=============================|"<<endl;
printf("| 1. Sequential Search |\n");
printf("| 2. Binary Search |\n");
printf("| 3. Interpolation Search |\n");
cout<<"|=============================|"<<endl;
printf("\nMasukkan Pilihan 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;
}
}
}
switch(pilih)
{
case 1:
Sequential_Search();
break;
case 2:
Binary_Search();
break;
case 3:
Interpolation_Search();
break;
default:
break;
}
}
 Printscreen Output:

 Deskripsi Program :
Program ini menggunakan fungsi header <stdio.h>, <iostream>, <stdlib.h>,
<string.h>, <math.h>, <conio.h>. <iostream> digunakan untuk fungsi cout dan
cin. <string.h> digunakan untuk fungsi tipe data char. <conio.h> digunakan untuk
fungsi getch();. Program ini menggunakan fungsi array dan prototype fungsi.
Program ini menggunakan fungsi searching sequensial, binary, dan juga
interpolation. Program ini juga menggunakan fungsi percabangan switch.

2. Latihan 2.1
 Nama Program : Program searching array 1 dimensi
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi utama
6. Menginputkan Jumlah Array
7. Menginputkan data pada Array
8. Menginputkan data yang dicari
9. Tampilkan hasil pencarian
10. Cetak hasil
11. Selesai
 Script Program :
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int data[100];
int i, k, n;
cout<<endl;
cout<<"Masukkan jumlah array = ";
cin>>n;cout<<endl;
for(int j=0;j<n;j++)
{
cout<<endl;
cout<<" Data Ke ["<<j<<"] = ";
cin>>data[j];
cout<<endl;
}
printf("Masukkan data Anda yang ingin dicari : ");
scanf("%i",&k);
cout<<endl;
printf("Data %i ditemukan pada indeks ", k);
for(i=0;i<n;i++){
if(data[i]==k)
printf("ke [%i]", i);
}
cout<<endl;
}
 Printscreen Output :

 Deskripsi Program :
Program ini menggunakan fungsi header <stdio.h> dan <iostream>. <stdio.h>
digunakan untuk fungsi standar. <iostream> digunakan untuk mengaktifkan
fungsi cin dan cout. Program ini menggunakan array 1 dimensi. Program ini
juga menggunakn fungsi sequensial search.

3. Latihan 2.2
 Nama Program : Program searching array 2 dimensi
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi utama
6. Menginputkan jumlah baris Array
7. Menginputkan jumlah kolom Array
8. Menginputkan data pada Array
9. Menampilkan isi Array
10. Menginputkan data yang dicari
11. Membandingkan data yang dicari dengan data yang ada
12. Tampilkan hasil pencarian
13. Cetak hasil
14. Selesai
 Script Program :
#include<iostream>
#include<iomanip>
using namespace std;
int main ()
{
int a,b,data[10][10],r,c,s,i;
cout<<endl;
cout<<"Masukkan jumlah baris : ";
cin>>r;
cout<<endl;
cout<<"Masukkan jumlah kolom : ";
cin>>c;
cout<<endl;
for (a=0;a<r;a++)
{
for (b=0;b<c;b++)
{
cout<<"Masukkan angka pada indeks ["<<a<<"]
["<<b<<"] = ";
cin>>data[a][b];
cout<<endl;
}
}
cout<<"Array dua dimensi yang diinputkan :\n";
for (a=0;a<r;a++)
{
for (b=0;b<c;b++)
cout<<setw(3)<<data[a][b]<<" ";
cout<<endl;
}
cout<<endl;
cout<<"Masukkan nilai Anda yang cari : ";
cin>>s;
cout<<endl;
i=0;
for (a=0;a<r;a++)
{
for (b=0;b<c;b++)
{
if (s==data[a][b])
{
cout<<"Data Anda ditemukan pada indeks
["<<a<<"]["<<b<<"]\n";
i++;
}
}
}
if (i==0)
cout<<"Maaf Data Anda tidak ditemukan!"<<endl;
}
 Printscreeen Output :
 Deskripsi Program :
Program ini menggunakan fungsi header <iostream> dan <iomanip>. <iostream>
digunakan untuk fungsi cout dan cin. Program ini menggunakan array 2 dimensi.
Program ini menggunakan fungsi sequensial search akan tetapi program ini juga
menampilkan posisi data yang berjumlah lebih dari satu.

4. Latihan 3.1
 Nama Program : Program searching array 1 dimensi
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi utama
6. Menginputkan jumlah baris Array
7. Menginputkan jumlah kolom Array
8. Menginputkan data pada Array
9. Menampilkan isi Array
10. Menginputkan data yang dicari
11. Membandingkan data yang dicari dengan data yang ada
12. Menghitung jumlah data yang dicari pada array
13. Tampilkan hasil pencarian
14. Cetak hasil
15. Selesai
 Script Program :
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int data[100];
int i, s, n, jumlah=0;
cout<<endl;
cout<<"|=======================================|"<<endl;
cout<<"| Program Searching |"<<endl;
cout<<"|=======================================|"<<endl;
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 dicari : ";
cin>>s;
cout<<endl;

printf("Data %i ditemukan pada indeks ", s);


for(i=0;i<n;i++)
{
if(data[i]==s){ //jika data yang dis berada pada data
data[i]
printf("ke [%i], ", i); //tampilkan data beserta
index
jumlah=jumlah+1; //dan penemuan data dijumlahkan
}
}
cout<<endl;
cout<<"\nData yang Anda cari ditemukan sebanyak "<<jumlah<<"
data.";
cout<<endl;
}

 Printscreen Output :

 Deskripsi Program :
Program ini menggunakan fungsi header <stdio.h> dan <iostream>. <stdio.h>
digunakan untuk mengaktifkan fungsi standart. <iostream> digunakan untuk
mengaktifkan fungsi cin dan cout. Program ini mrnggunakan fungsi array 1
dimensi. Program ini menggunakan fungsi sequensial search. Output program ini
adalah posisi data jika ditemukan dan juga jumlah data yang ditemukan.
5. Latihan 3.2
 Nama Program : Program searching dengan data random
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi utama
6. Masukkan jumlah data
7. Membaca fungsi random
8. Tampilan data yang muncul secara random
9. Membaca fungsi
a.Yang termasuk dalam bilangan genap
b. Yang termasuk dalam bilangan ganjil
10. Tampilkan hasil
11. Cetak hasil
12. Selesai
 Script Program :
#include<iostream>
#include <stdlib.h>

using namespace std;


int main()
{
int n,data[50],a,ganjil,genap,odd[50],even[50];
cout<<endl;
cout<<"Inputkan jumlah data : ";
cin>>n;
cout<<endl;
cout<<" Data random : \n";
cout<<endl;
for (a=0;a<n;a++)
{
data[a]=rand();

cout<<data[a];
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<<" yaitu :\n";
for (a=1;a<=genap;a++)
cout<<even[a]<<endl;
cout<<endl;
cout<<" Data ganjil ada "<<ganjil<<" yaitu :\n";
for (a=1;a<=ganjil;a++)
cout<<odd[a]<<endl;
}
 Printscreen Output :

 Deskripsi Program :
Program ini menggunakan fungsi header <iostream> dan <stdlib>. <iostream>
digunakan untuk mengaktifkan fungsi cin dan cout. Program ini menggunakan
fungsi interpolation search. Program ini membuat data secara random/acak. Lalu
program akan mencari angka ganjil dan genap pada data acak tadi. Jika data
ditemukan maka akan ditampilkan jumlah dan daftar bilangan genap dan bilangan
ganjilnya.

D. TUGAS PRAKTIKUM
1. Tugas Praktikum 1
 Nama Program : Program searching huruf
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi Sequential Search
6. Membaca Fungsi utama
7. Masukkan sebuah kalimat yang diinginkan
8. Membaca fungsi huruf vokal
9. Membaca fungsi numerik
10. Membaca fungsi huruf konsonan
11. Menampilkan kelompok huruf vokal
12. Menampilkan kelompok numerik
13. Menampilkan kelompok huruf konsonan
14. Membaca fungsi banyak kalimat
15. Menampilkan banyak kalimat
16. Masukkan data yang ingin dicari
17. Hasil
18. Selesai
 Script Program :
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <iostream>
using namespace std;

void sequential_search(char data[],int cari, const int size);


int main()
{
char kata[100],data1[50],data2[50],data3[50],cari;
int i,vokal=0,numerik=0,konsonan=0,size,jml;
cout<<endl;
printf(" Masukkan Sebuah Kalimat : ");
gets(kata);
size=strlen(kata);
for (int a=0;kata[a];a++)
{
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 Kelompok Huruf Vokal = %d = ",vokal);
for (i=0;i<vokal;i++)
{
printf("%c ", data1[i]);
}
cout<<endl;
printf("\n Kelompok Numerik = %d = ",numerik);
for (i=0;i<numerik;i++)
{
printf("%c ", data2[i]);
}
cout<<endl;
printf("\n Kelompok Huruf Konsonan = %d = ",konsonan);
for (i=0;i<konsonan;i++)
{
printf("%c ", data3[i]);
}
cout<<endl;
jml=vokal+numerik+konsonan;
printf("\n Banyak Kalimat = %d ",jml);
cout<<endl;
printf("\n Data Yang Ingin Anda Cari : ");
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 (" Data yang Anda di cari ada pada index ke-%d\n",
i);
}
}
cout<<endl;
if (flag!=1)
{
cout<<endl;
printf(" Maaf Data yang Anda dicari tidak
ditemukan !!!\n");
}
cout<<endl;
}
 Printscreen Output :
 Deskripsi Program :
Program ini menggunakan fungsi header <stdio.h>, <ctype.h>, <string.h>, dan
<iostream>. <stdio.h> digunakan untuk mengaktifkan fungsi standar. <string.h>
digunakan untuk mengolah tipe data char yaitu menghitung jumlah karakter pada
kalimat yang diinputkan. <iostream.h> digunakan untuk mengaktifkan fungsi cin
dan cout. <ctype.h> digunakan untuk menghitung jumlah tipe data angka pada
kalimat yang diinputkan. Program ini menggunakan fungsi array 1 dimensi.
Program ini menggunakan fungsi prototype fungsi. Program ini juga
menggunakan fungsi interpolation search. Output dari program ini adalah jumlah
huruf dan angka pada kalimat, dan juga posisi huruf’/angka yang kita cari.

2. Tugas Praktikum 2
 Nama Program : Program searching huruf
 Bahasa Pemrogramam : C++
 Compiler : MinGW Studio Developer
 Algoritma :
1. Mulai
2. Mendefinisikan Header
3. Mendefinisikan tipe data
4. Mendefinisikan array [ ]
5. Membaca Fungsi Sequential Search
6. Membaca Fungsi Interpolation Search
7. Membaca Fungsi utama
8. Masukkan jumlah data
9. Pilihan menampilkan data
a. Jika Y data akan ditampilkan
b. Jika T data tidak tampilkan. Data yang tampilkan secara random
10. Masukkan data yang dicari
11. Pilihan mengurutkan data
a. Jika Y data akan diurutkan
b. Jika T data tidak diurutkan
12. Pilih metode search, akan masuk ke pilihan metode pilihan jika pada pilihan
mengurutkan data user memilih Y jika user memilih T maka data yang dicari
langsung ditampilkan
13. Hasil pencarian
14. Selesai
 Script Program :
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <cmath>

using namespace std;

int data[100];
int flag = 0, i, banyak, metode;
int a, b=0;
int awal, akhir, tengah, pos, cari, posisi;
int temp;
char urutkan;
char tampil;

int binary()
{
while(awal<=akhir && flag==0)
{
tengah=(awal+akhir)/2;
if(data[tengah]==cari)
{
flag=1;
break;
}
else if(data[tengah]<cari)
{
awal=tengah+1;
printf("cari kiri\n");
}
else
{
akhir=tengah-1;
printf("cari kanan\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-data[awal])/(data[akhir]-
data[awal]))*(akhir-awal)+awal);
pos = floor(posisi);
if(data[pos] == cari){
flag = 1;
break;
}
if(data[pos] > cari) akhir = pos - 1;
else if (data[pos] < cari) awal = pos + 1;
}
while(cari >= data[awal] && cari <= data[akhir]);
}
main()
{
cout<<endl;
cout<<"Masukkan jumlah data : ";
cin>>banyak;
cout <<endl;
cout<<"Tampilkan Data [Y/T] : ";
cin>>tampil;
cout<<endl;
if (tampil == 'Y' || tampil == 'y')
{
for(int j=0; j<banyak;j++)
{
data[j] = rand()%banyak;
cout <<" "<<data[j]<<" ";
}
}
else
{}
cout<<endl<<endl;
cout<< "\nUrutkan data [Y/T] : ";
cin>>urutkan;
cout<<endl;
if(urutkan == 'Y' || urutkan == 'y')
{
for(int ii=0; ii<banyak; ii++)
{
if(data[ii] >= data[ii+1])
{
temp = data[ii];
data[ii] = data[ii+1];
data[ii+1] = temp;
metode = 1;
}
}
}
else
{
metode = 0;
}
cout<<"Masukkan data yang akan dicari : ";
cin>>cari;
cout<<endl;
if(metode != 0){
cout<<"Pilih metode pencarian : "<<endl;
cout<<"[1] Binary "<<endl;
cout<<"[2] Interpolation "<<endl;
cout<<"Pilihan metode : ";
cin>>metode;
}
if(metode == 0)
{
for(i = 0;i<banyak;i++)
{
if(data[i] == cari)
{
flag = 1;
break;
}
}
}
else if(metode == 1)
{
binary();
}
else if(metode == 2)
{
interpolation();
}
if(flag == 0)
cout<<endl<<"Data Ditemukan";
else
cout<<endl<<"Data Ditemukan";
getch();
return 0;
}
 Printscreen Output :
 Deskripsi Program :
Program ini menggunakan fungsi header <iostream>, <iomanip>, <conio.h>,
<stdio.h>, <stdlib.h>, dan <cmath>. <stdio.h> digunakan untuk mengaktifkan
fungsi standar. <conio.h> digunakan untuk mengaktifkan fungsi getch();.
<iostream> digunakan untuk mengaktifkan fungsi cin dan cout. Program ini
menggunakan fungsi array dan prototype fungsi. Program ini menggunakan fungsi
sequensial, binary, dan interpolation search untuk mencari data yang diinginkan.
Program ini menggunakan fungsi percabangan if-else, fungsi perulangan for, dan
juga fungsi sorting untuk mengurutkan data. Ourput dari program ini adalah data
yang dicari ditemukan atau tidak.

E. KESIMPULAN
 Pencarian (searching) merupakan proses yang fundamental dalam pemrograman, yang
digunakan untuk menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe
sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi (mencocokkan) data.
 Pencarian diperlukan untuk mencari informasi khusus dari tabel pada saat lokasi yang
pasti dari informasi tersebut sebelumnya tidak diketahui. Data pada tabel biasanya
disimpan dengan menggunakan tipe data Array.
 Terdapat 3 metode searching, yaitu :
1. Sequential Search
2. Binary Search
3. Interpolation Search
 Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari
depan ke belakang atau dari awal sampai akhir.
 Binary search metode pencarian ini, data harus diurutkan terlebih dahulu. Setelah
diurutkan data akan dibagi menjadi 2, lalu akan dilakukan perbandingan elemen yang
berada pada posisi tengah.
1. Jika ditemukan, maka pencarian selesai
2. Jika tidak data akan dibagi dua dan dibandingkan lagi
 Interpolation search. 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
1. Jika data[posisi] > data yg dicari, high = pos – 1
2. Jika data[posisi] < data yg dicari, low = pos + 1

F. DAFTAR PUSTAKA
 Tim Asisten Dosen. 2014. Modul 3 Searhing (Pencarian). Malang: Unversitas Negeri
Malang.

Anda mungkin juga menyukai