Anda di halaman 1dari 16

PENCARIAN (SEARCH)

Dosen Pengampu: Mezan el Khaeri, M.T.I

Disusun untuk Melengkapi Tugas Mata Kuliah


Algoritma dan Struktur Data

Disusun Oleh :
KELOMPOK 10
Ahmad Hosam Muzaki (2271020072)
Siful Adha (2271020070)

PRODI SISTEM INFORMASI


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI RADEN INTAN LAMPUNG
2022 M / 1444 H
KATA PENGANTAR

Assalamualaikum Wr.Wb.

Puji syukur ke hadirat Tuhan Yang Maha Esa. Atas rahmat dan hidayah-
Nya, penulis dapat menyelesaikan tugas makalah yang berjudul "Pencarian atau
Search" dengan tepat waktu.
Makalah disusun untuk memenuhi tugas Mata Pelajaran Sejarah. Selain itu,
makalah ini bertujuan menambah wawasan tentang Identitas Nasional bagi para
pembaca dan juga bagi penulis.
Dengan tersusunnya makalah ini kami menyadari masih banyak terdapat
kekurangan dan kelemahan, demi kesempurnaan makalah ini kami sangat
berharap perbaikan, kritik dan saran yang sifatnya membangun apabila terdapat
kesalahan.

Wassalamualaikum Wr.Wb.

Bandar lampung, September


2022

Penyusun

i
DAFTAR ISI
KATA PENGANTAR ............................................................................................................... i

DAFTAR ISI.............................................................................................................................ii

BAB 1 PENDAHULUAN .................................................................................................. 1

1.1 Latar Belakang ............................................................................................................ 1

1.2 Rumusan Masalah ....................................................................................................... 1

1.3 Tujuan.......................................................................................................................... 1

BAB 2 PEMBAHASAN ..................................................................................................... 2

2.1 Pengertian Pencarian (Search) .................................................................................... 2

2.2 Istilah-istilah dalam Algoritma Pencarian ................................................................... 2

2.3 Karakteristik Algoritma Pencarian .............................................................................. 3

2.4 Jenis – Jenis Algoritma Search.................................................................................... 3

2.4.1 Algoritma Binary Search ..................................................................................... 3

2.4.2 Algoritma Interpolation Search............................................................................ 8

BAB 3 PENUTUP ............................................................................................................ 12

3.1 Kesimpulan................................................................................................................ 12

3.2 Saran .......................................................................................................................... 12

DAFTAR PUSTAKA ............................................................................................................. 13

ii
BAB 1
PENDAHULUAN

1.1 Latar Belakang


Algoritma Searching atau algoritma pencarian merupakan algoritma dasar dalam
pengolahan data. Algoritma ini berfungsi untuk menemukan nilai atau indeks tertentu dalam
sekumpulan data yang tipenya sama. Hasil akhir dari proses algoritma searching ini nantinya
akan diperoleh dua kemungkinan, yaitu kemunkinan pertama data dapat ditemukan atau
sebaliknya data tidak di temukan

Ada banyak algoritma pencarian, Namun di materi kali ini hanya akan membahasa dua
algoritma serching. Kedua algoritma searching tersebut yaitu Binary Search dan Interpolation
Search.

1.2 Rumusan Masalah


1. Apa itu Algoritma Pencarian ?
2. Apa itu Binary Search ?
3. Apa itu Interpolation Search ?

1.3 Tujuan
1. Untuk Mengetahui Apa itu Algoritma Pencarian (Search).
2. Untuk Mengetahui Apa itu Binary Dan Interpolation Search
3. Untuk Mengetahui Konsep dan Penggunaan Binary Search dan Interpolation Search

1
BAB 2
PEMBAHASAN

2.1 Pengertian Pencarian (Search)


Pencarian data adalah suatu proses untuk mengumpulkan informasi dalam media
penyimpanan komputer dan kemudian mencari kembali informasi yang diperlukan secepat
mungkin.

Algoritma Pencarian adalah algoritma yang menerima sebuah argumen kunci dan
langkah-langkah tertentu akan mencari data yang disimpan dengan kunci tersebut. Setelah
proses dilaksanakan, kemungkinannya adalah data ditemukan (successful) atau tidak
ditemukan (unsuccessful).

Dalam ilmu komputer, Algoritma Pencarian adalah algoritma yang dirancang untuk
memecahkan masalah pencarian. Algoritma pencarian bekerja untuk mengambil informasi
yang disimpan dalam struktur data tertentu, atau dihitung dalam ruang pencarian domain
masalah, baik dengan nilai diskrit atau kontinu.

Algoritma pencarian berupa prosedur langkah demi langkah yang digunakan untuk
menemukan data tertentu di antara kumpulan data. Algoritma ini dapat dianggap sebagai
metode mendasar dalam operasi komputasi. Ketika sebuah sistem mencari data, perbedaan
antara aplikasi yang cepat dan yang lebih lambat seringkali terletak pada penggunaan algoritma
pencarian yang tepat.

Dalam kecerdasan buatan, teknik atau algoritma pencarian adalah metode pemecahan
masalah yang universal. Agen rasional atau agen pemecah masalah dalam AI sebagian besar
menggunakan strategi atau algoritma pencarian ini untuk memecahkan masalah tertentu dan
memberikan hasil terbaik.

2.2 Istilah-istilah dalam Algoritma Pencarian


Berikut adalah beberapa istilah yang ada dalam algoritma pencarian:

1. Searching: prosedur langkah demi langkah untuk memecahkan masalah pencarian di


ruang pencarian (search space) yang diberikan. Masalah pencarian dapat memiliki tiga
faktor utama:

2
 Search space: mewakili satu set solusi yang mungkin, yang mungkin dimiliki
sistem.
 Start state: keadaan asal agen saat memulai pencarian.
 Goal test: Sebuah fungsi yang mengamati keadaan saat ini dan mengembalikan
apakah keadaan tujuan tercapai atau tidak.
2. Search tree: Sebuah representasi pohon dari masalah pencarian disebut search tree atau
pohon pencarian. Akar dari pohon pencarian adalah simpul akar yang sesuai dengan
keadaan awal.
3. Action: Mendeskripsikan semua tindakan yang tersedia untuk agen.
4. Transition model: Deskripsi tentang apa yang dilakukan setiap tindakan, dapat
direpresentasikan sebagai model transisi.
5. Cost: fungsi yang menetapkan biaya numerik untuk setiap jalur.
6. Solution: urutan tindakan yang mengarah dari node awal ke node tujuan.
7. Optimal solution: Jika solusi memiliki biaya terendah di antara semua solusi.

2.3 Karakteristik Algoritma Pencarian


Berikut adalah empat sifat penting dari algoritma pencarian untuk membandingkan
efisiensi dari sebuah algoritma:

1. Completeness: Algoritma pencarian dikatakan lengkap jika menjamin untuk


mengembalikan solusi jika setidaknya ada solusi untuk setiap input random.
2. Optimality: Jika solusi yang ditemukan untuk suatu algoritma dijamin sebagai solusi
terbaik (biaya jalur terendah) di antara semua solusi lainnya, maka solusi untuk tersebut
dikatakan sebagai solusi optimal.
3. Time Complexity: Ukuran waktu bagi suatu algoritma untuk menyelesaikan tugasnya.
4. Space Complexity: Ruang penyimpanan maksimum yang diperlukan pada setiap titik
selama pencarian, sebagai kompleksitas masalah.

2.4 Jenis – Jenis Algoritma Search


2.4.1 Algoritma Binary Search
Algoritma Binary Search adalah algoritma pencarian nilai pada array/list
dengan elemen yang terurut. Cara kerja algoritma ini adalah dengan memotong array
menjadi dua bagian secara terus menerus hingga nilai yang dicari dapat ditemukan.
Nama lain dari algoritma ini adalah half interval search, logarithmic search, atau binary
chop.

3
Algoritma pencarian ini bekerja berdasarkan prinsip menemukan nilai tengah
(M) pada array kemudian membagi menjadi dua bagian. Selanjutnya menentukan
apakah nilai yang dicari lebih kecil (L) atau lebih besar (H) dari nilai yang ingin dicari.
Apabila ditemukan kecocokan nilai maka akan mengembalikan output, jika tidak
pencarian akan terus berlanjut hingga akhir dari pembagian jumlah elemen tersebut.

Contoh Ilustrasi Binary Search pada gambar berikut.

Cara mencari Algoritma binary search :

1. Data diambil dari posisi awal 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.

4
Berikut ini program C++ Binary Search

*/
#include <iostream>
using namespace std;
#include <conio.h>
#include <iomanip>

int data[9] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
int cari;

void selection_sort()
{
int temp, min, i, j;

for(i=0; i<9;i++)
{
min = i;
for(j = i+1; j<9; j++)
{
if(data[j]<data[min])
{
min=j;
}
}
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
}

void binarysearch()
{

5
//searching
int awal, akhir, tengah, b_flag = 0;
awal = 0;
akhir = 9;
while (b_flag == 0 && awal<=akhir)
{
tengah = (awal + akhir)/2;
if(data[tengah] == cari)
{
b_flag = 1;
break;
}
else if(data[tengah]<cari)
awal = tengah + 1;
else
akhir = tengah -1;
}

if(b_flag == 1)
cout<<"\nData ditemukan pada index ke-"<<tengah<<endl;
else
cout<<"\nData tidak ditemukan\n";
}

int main()
{
cout<<"\t 'BINARY SEARCH'"<<endl;
cout<<"\t====================="<<endl;
cout<<"\nData : ";
//tampilkan data awal
for(int x = 0; x<9; x++)
cout<<setw(5)<<data[x];

6
cout<<endl;

cout<<"\nMasukkan data yang ingin Anda cari : ";


cin>>cari;
cout<<"\nData diurutkan : ";
//urutkan data dengan selection sort
selection_sort();
//tampilkan data setelah diurutkan
for(int x = 0; x<9;x++)
cout<<setw(5)<<data[x];

cout<<endl;

binarysearch();

_getche();
return EXIT_SUCCESS;

Output

'BINARY SEARCH'
=====================

Data : 2 5 8 12 16 23 38 56 72 91

Masukkan data yang ingin Anda cari : 23

Data diurutkan : 2 5 8 12 16 23 38 56 72 91

Data ditemukan pada index ke-5

7
2.4.2 Algoritma Interpolation Search
Interpolation Search adalah pengembangan dari binary search, persamaan
keduanya yaitu sama sama digunakan untuk mencari suatu nilai pada data yang telah
terurut, sedangkan perbedaan keduanya terletak pada cara kerjanya. Binary search
mencari data dengan membagi array secara terus menerus, sedangkan pada binary
search interpolation ini mencari data dengan menggunakan Formula
Proses pencarian interpolasi (interpolation search) hampir sama dengan proses
pencarian dbinary search, dimana pencarian juga dilakukan pada kumpulan data yang
sudah urut. Akan tetapi jika pada binary search data dibagi menjadi dua bagian tiap
prosesnya.

Contoh Ilustrasi Interpolation Search Sebagai Berikut :

Cara mencari Algoritma Interpolation search :


1. Data diambil dari posisi awal sampai posisi akhir n
2. Kemudian cari posisi dengan rumus :
(𝑑𝑎𝑡𝑎 𝑑𝑖𝑐𝑎𝑟𝑖−𝑑𝑎𝑡𝑎 𝐴𝑤𝑎𝑙)
Posisi = Awal + × (Akhir –Awal)
(𝑑𝑎𝑡𝑎 𝐴𝑘ℎ𝑖𝑟−𝑑𝑎𝑡𝑎 𝐴𝑤𝑎𝑙)

3. Kemudian data yang dicari dibandingkan, apakah sama atau lebih kecil, atau
lebih besar?
4. Jika Data lebih besar dengan data yang dicari, maka posisi Akhir adalah - 1
5. Jika Data lebih kecil dengan data yang dicari, maka posisi Awal adalah + 1
6. Jika data sama, berarti ketemu.

8
Berikut ini Program C++ Interpolation Search

#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;

int main() {
int data[10];
int x;
int cari_data, posisi, awal, akhir, proses;
bool berhenti = false;

cout<<" I N T E R P O L A T I O N \n";
cout<<" SEARCH \n";
cout<<"==============================\n";
cout<<"Masukan jumlah data : ";
cin>>x;
cout<<"input data :"<<endl;
for (int i=0;i<x;i++)
{
cin>>data[i];
}
cout<<"Data: ";
for(int i = 0; i<x; i++)
cout<<setw(28)<<data[i];
cout<<endl<<endl;

cout << "Data yang dicari : ";


cin >> cari_data;

awal = 0;

9
akhir = x-6;
proses = 0;

while(berhenti != true) {
proses++;
posisi =(((cari_data-data[awal])*(akhir-awal))/(data[akhir]-
data[awal])+awal);

if(data[posisi] == cari_data) {
cout << "Data " << cari_data << " pada posisi indeks ke-" <<
posisi <<endl;
cout << "Proses pencarian sebanyak " << proses <<endl;
berhenti = true;
} else if(data[posisi] < cari_data) {
awal = posisi + 1;
} else {
cout << "Data " << cari_data << " tidak ditemukan.\n";
berhenti = true;
}
}
return 0;
}

Output

'INTERPOLATION SEARCH'
=====================

Masukan Jumlah data : 6


Input data :
12
14

10
15
19
28
31
Data : 12 14 15 19 21 28 31
Data yang dicari : 28
Data 28 pada posisi indeks ke-5
Proses Pencarian Sebanyak 1

11
BAB 3
PENUTUP

3.1 Kesimpulan
Algoritma Pencarian adalah algoritma yang menerima sebuah argumen kunci dan
langkah-langkah tertentu akan mencari data yang disimpan dengan kunci tersebut. Setelah
proses dilaksanakan, kemungkinannya adalah data ditemukan (successful) atau tidak
ditemukan (unsuccessful).

Algoritma Binary Search adalah algoritma pencarian nilai pada array/list dengan
elemen yang terurut. Algoritma ini digunakan untuk mencari elemen tertentu pada array/list
dengan elemen yang berurutan yang mana elemen yang berada di dalam array harus diurutkan
terlebih dahulu.

Interpolation Search merupakan sebuah teknik pengembangan dari binary search.


Teknik binary search akan selalu memeriksa nilai tengah dari setiap array, sedangkan
interpolation search dapat pergi ke lokasi yang berbeda berdasarkan key yang didapat.

3.2 Saran
Demikianlah yang dapat kami sampaikan mengenai materi yang menjadi bahasan
dalam makalah ini, tentunya banyak kekurangan dan kelemahan kerena terbatasnya
pengetahuan kurangnya rujukan atau referensi yang kami peroleh hubungannya dengan
makalah ini. Penulis banyak berharap kepada para pembaca memberikan kritik dan saran yang
membangun kepada kami demi sempurnanya makalah ini. Semoga makalah ini dapat
bermanfaat bagi penulis dan para pembaca

12
DAFTAR PUSTAKA
Rahadian Ilham, (2021), Mengenal Algoritma Pencarian (searching) dan Implementasinya, sumber:
https://www.ilmusekolahan.com/2021/04/algoritma-pencarian-dan-implementasinya.html

Muhammad Waffa, (2021), Interpolation Search, sumber: https://mikirinkode.com/interpolation-


search/

Trivusi, (2022), Algoritma Pencarian Pengertian, Karakteristik, dan Jenis-Jenisnya, sumber:


https://www.trivusi.web.id/2022/11/pengertian-algoritma-pencarian.html

Paul Deitel & Harvey Deitel, (2016), C how to program : with an introduction to C++. United States

13

Anda mungkin juga menyukai