Modul 8 - Algoritma Searching
Modul 8 - Algoritma Searching
ALGORITMA SEARCHING
A. TUJUAN PRAKTIKUM
B. DASAR TEORI
Pencarian (Searching) yaitu proses menemukan suatu nilai tertentu pada
kumpulan data. Hasil pencarian adalah salah satu dari tiga keadaan ini: data ditemukan,
data ditemukan lebih dari satu, atau data tidak ditemukan. Searching juga dapat
dianggap sebagai proses pencarian suatu data di dalam sebuah array dengan cara
mengecek satu persatu pada setiap index baris atau setiap index kolomnya dengan
menggunakan teknik perulangan untuk melakukan pencarian data. Terdapat 2 metode
pada algoritma Searching, yaitu:
a. Sequential Search
Sequential Search merupakan salah satu algoritma pencarian data yang biasa
digunakan untuk data yang berpola acak atau belum terurut. Sequential search juga
merupakan teknik pencarian data dari array yang paling mudah, dimana data dalam
array dibaca satu demi satu dan diurutkan dari index terkecil ke index terbesar, maupun
sebaliknya. Konsep Sequential Search yaitu:
● Membandingkan setiap elemen pada array satu per satu secara berurut.
● Proses pencarian dimulai dari indeks pertama hingga indeks terakhir.
● Proses pencarian akan berhenti apabila data ditemukan. Jika hingga akhir
array data masih juga tidak ditemukan, maka proses pencarian tetap akan
dihentikan.
● Proses perulangan pada pencarian akan terjadi sebanyak jumlah N elemen
pada array.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1) i ← 0
Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data
tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1.
b. Binary Search
Binary Search termasuk ke dalam interval search, dimana algoritma ini
merupakan algoritma pencarian pada array/list dengan elemen terurut. Pada metode
ini, data harus diurutkan terlebih dahulu dengan cara data dibagi menjadi dua bagian
(secara logika), untuk setiap tahap pencarian. Dalam penerapannya algoritma ini
sering digabungkan dengan algoritma sorting karena data yang akan digunakan harus
sudah terurut terlebih dahulu. Konsep Binary Search:
● Data diambil dari posisi 1 sampai posisi akhir N.
● Kemudian data akan dibagi menjadi dua untuk mendapatkan posisi data
tengah.
● Selanjutnya data yang dicari akan dibandingkan dengan data yang berada di
posisi tengah, apakah lebih besar atau lebih kecil.
● Apabila data yang dicari lebih besar dari data tengah, maka dapat dipastikan
bahwa data yang dicari kemungkinan berada di sebelah kanan dari data
tengah. Proses pencarian selanjutnya akan dilakukan pembagian data menjadi
dua bagian pada bagian kanan dengan acuan posisi data tengah akan menjadi
posisi awal untuk pembagian tersebut.
● Apabila data yang dicari lebih kecil dari data tengah, maka dapat dipastikan
bahwa data yang dicari kemungkinan berada di sebelah kiri dari data tengah.
Proses pencarian selanjutnya akan dilakukan pembagian data menjadi dua
bagian pada bagian kiri. Dengan acuan posisi data tengah akan menjadi posisi
akhir untuk pembagian selanjutnya.
● Apabila data belum ditemukan, maka pencarian akan dilanjutkan dengan
kembali membagi data menjadi dua.
● Namun apabila data bernilai sama, maka data yang dicari langsung
ditemukan dan pencarian dihentikan.
Algoritma pencarian biner dapat dituliskan sebagai berikut :
1) L 🡨 0
#include <iostream>
using namespace std;
int main(){
int n = 10;
int data[n] = {9, 4, 1, 7, 5, 12, 4, 13, 4, 10};
if (ketemu){
cout << "\n angka "<< cari << " ditemukan pada indeks
ke-" << i << endl;
} else {
cout << cari << " tidak dapat ditemukan pada data."
<< endl;
}
return 0;
void selection_sort()
{
int temp, min, i, j;
for(i=0; i<7;i++)
{
min = i;
for(j = i+1; j<7; j++)
{
if(data[j]<data[min])
{
min=j;
}
}
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
}
void binarysearch()
{
//searching
int awal, akhir, tengah, b_flag = 0;
awal = 0;
akhir = 7;
while (b_flag == 0 && awal<=akhir)
{
tengah = (awal + akhir)/2;
if(data[tengah] == cari)
{
if(b_flag == 1)
cout<<"\n Data ditemukan pada index ke-
"<<tengah<<endl;
else
cout<<"\n Data tidak ditemukan\n";
}
int main()
{
cout<<"\t BINARY SEARCH "<<endl;
cout<<"\n Data : ";
//tampilkan data awal
for(int x = 0; x<7; x++)
cout<<setw(3)<<data[x];
cout<<endl;
cout<<endl;
binarysearch();
_getche();
return EXIT_SUCCESS;
Output:
1. Buatlah sebuah program untuk mencari sebuah huruf pada sebuah kalimat yang
sudah di input dengan menggunakan Binary Search!
2. Buatlah sebuah program yang dapat menghitung banyaknya huruf vocal dalam
sebuah kalimat!
3. Diketahui data = 9, 4, 1, 4, 7, 10, 5, 4, 12, 4. Hitunglah berapa banyak angka 4
dengan menggunakan algoritma Sequential Search!
E. DAFTAR PUSTAKA