0% menganggap dokumen ini bermanfaat (0 suara)
56 tayangan4 halaman

BAB VI Searching

Pencarian data merupakan proses penting dalam pemrograman yang digunakan untuk menemukan nilai tertentu dalam kumpulan data. Terdapat dua metode pencarian yaitu pencarian berurutan dan pencarian biner. Pencarian berurutan memeriksa setiap elemen secara berurut, sedangkan pencarian biner membagi ruang pencarian menjadi setengah untuk mempercepat proses pencarian pada data yang terurut. Kedua metode dijelaskan beserta

Diunggah oleh

greza rastafara
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
56 tayangan4 halaman

BAB VI Searching

Pencarian data merupakan proses penting dalam pemrograman yang digunakan untuk menemukan nilai tertentu dalam kumpulan data. Terdapat dua metode pencarian yaitu pencarian berurutan dan pencarian biner. Pencarian berurutan memeriksa setiap elemen secara berurut, sedangkan pencarian biner membagi ruang pencarian menjadi setengah untuk mempercepat proses pencarian pada data yang terurut. Kedua metode dijelaskan beserta

Diunggah oleh

greza rastafara
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 4

BAB VI

SEARCHING

Searching merupakan proses dalam sebuah pemrograman, yang digunakan untuk


menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe sama. Fungsi pencarian
itu sendiri adalah untuk memvalidasi (mencocokkan) data. Ada 2 metode pencarian yang
digunakan pada praktikum ini:

6.1 Pencarian Beruntun (Sequensial Search)


Membandingkan setiap elemen larik satu per satu secara urut (beruntun), mulai dari
elemen pertama sampai dengan elemen yang terakhir. Pencarian beruntun juga diartikan suatu
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. Pencarian
berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu
secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.
Ada 2 macam pencarian beruntun yaitu :
a. Pencarian pada array yang sudah terurut.
b. Pencarian pada array yang belum terurut
Dibawah ini adalah algoritma Pencarian berurutan yang dapat dituliskan sebagai berikut :
1. i ← 0
2. ditemukan ← false
3. Selama (tidak ditemukan) dan (i <= N) kerjakan baris 4
4. Jika (Data[i] = x) maka ditemukan ← true, jika tidak i ← i + 1
5. Jika (ditemukan) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan
Di bawah ini merupakan fungsi untuk mencari data menggunakan pencarian sekuensial.
int SequentialSearch(int x)
{
int i = 0;
bool ditemukan = false;
while ((!ditemukan) && (i < Max))
{
if(Data[i] == x)
ditemukan = true;
else
i++;
}
if(ditemukan)
return i;
else
return -1;
}
Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan
maka fungsi diatas akan mengembalikan nilai –1.

6.1.1 Program Pencarian Beruntun


#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>
void main(){
int A[]={12,24,13,25,10,13,21,15,15,18};
int bil;
for(int i=0;i<10;i++)
{ cout<<setw (4)<<A[i];}
cout<<endl;
cout<<“Angka yang dicari = “;cin>>bil;
cout<<endl;
for(int i=0;i<10;i++){
if(A[i]==bil)
cout<<“angka yang dicari berada di indeks ke-“<<i<<endl;}
getch();
}

6.2. Pencarian Bagi dua (Binary Search)


Salah satu keuntungan data yang terurut adalah memudahkan pencarian, yang dalam hal
ini adalah pencarian bagi dua. Sebenarnya dalam kehidupan sehari-hari kita sering menerapkan
algoritma ini. Untuk mencari kata tertentu dalam kamus (misalnya kamus bahasa Inggris), kita
tidak membuka kamus tersebut dari halaman awal sampai halaman akhir satu persatu, namun
kita mencarinya dengan cara membelah atau membagi halaman-halaman buku tersebut. Begitu
seterusnya sampai kita menemukan kata yang dicari.
Salah satu syarat agar binary search dapat dilakukan adalah data sudah dalam keadaan
urut. Dengan kata lain, apabila data belum dalam keadaan urut, binary search tidak dapat
dilakukan. Prinsip dari binary search dapat dijelaskan sebagai berikut :
a. Mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data
tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari
dibandingkan dengan data tengah.
b. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan
posisi tengah –1.
c. Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan
posisi tengah +1. Jika data sama, berarti ketemu.

6.2.1 Contoh program pencarian bagi dua:


#include <iostream>
#include <conio.h>
main () {
int angka[‘n’];
int n, kiri, kanan, tengah, temp, key;
bool ketemu = false;
cout<<“\n==========================================\n”<<endl;
cout<<” BINARY SEARCHING”<<endl;
cout<<“\n==========================================\n”<<endl;
cout<<“\n\n”;
cout<<“Masukan jumlah data : “;
cin>>n;
cout<<endl;
for(int i=0; i<n; i++)
{
cout<<“Angka ke – [“<<i<<“] : “;
cin>>angka[i];
}

for (int i=0; i<n; i++){


for(int j=0; j<n-i-1; j++){
if(angka [j] > angka [j+1])
{
temp=angka[j];
angka[j]=angka[j+1];
angka[j+1]=temp;
}
}
}
cout<<“\n\n”;
cout<<“Data yang telah diurutkan adalah: “;
for(int i=0; i<n; i++)
{
cout<<angka[i]<<” “;
}
cout<<“\n\n”;
cout<<endl;
cout<<“PENCARIAN DATA”;
cout<<“\n Masukan angka yang dicari : “;
cin>>key;

kiri=0;
kanan=n-1;

while(kiri<=kanan)
{
tengah=(kiri + kanan)/2;
if(key == angka[tengah])
{
ketemu=true;
break;
}
else if (key < angka [tengah])
{
kanan = tengah -1;
}
else
{
kiri = tengah +1;
}
}
if (ketemu == true)
cout<<“Angka ditemukan!”;
else
cout<<“Angka tidak ditemukan”;
cout<<endl;
cout<<“\n\n”;
cout<<“Tekan enter untuk keluar!!!!!!”<<endl;
getch();
}

Anda mungkin juga menyukai