SEARCHING
Di Susun Oleh :
Kelompok 3
Mengetahui :
Dosen Pembimbing
STMIK Tasikmalaya,
1 Struktur Data
KATA PENGANTAR
Kelompok 3
2 Struktur Data
DAFTAR ISI
Kata Pengantar......................................................................................................................... i
Daftar Isi................................................................................................................................... ii
BAB I Pendahuluan.................................................................................................................. 1
1.1. Latar Belakang.............................................................................................................. 1
1.2. Batasan.......................................................................................................................... 2
BAB II Pembahasan................................................................................................................. 3
1.1. Definisi Searching........................................................................................................ 3
1.2. Pencarian Data Searching............................................................................................. 3
1.3. Metode Pencarian Data................................................................................................. 4
BAB III Penutup.......................................................................................................................12
1.1. Kesimpulan...................................................................................................................12
1.2. Saran.............................................................................................................................12
Daftar Pustaka..........................................................................................................................13
3 Struktur Data
BAB I
PENDAHULUAN
1 Struktur Data
Ada dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner.
Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan
apabila data dalam keadaan acak atau tidak terurut. Sebaliknya, pencarian biner digunakan
pada data yang sudah dalam keadaan urut.
1.2. Batasan
Dalam penyusunan tugas Struktur Data ini penulis memberikan batasan supaya setiap
informasi yang dihasilkan dapat sesuai yang diharapkan, dan dalam penerapannya dapat
terarah dan sesuai dengan data yang di butuhkan sehingga dapat terorganisir dengan baik.
Penulis melakukan penelitian ini di batasi pada masalah :
1. Bagaimana kita sebagai Mahasiswa dan umumnya untuk pembaca dapat mengenal dan
mengetahui apa itu Searching.
2. Memahami metode pencarian dengan 2 teknik searching yakni pencarian berurutan
(sequential search) dan pencarian biner (Binary search).
2 Struktur Data
BAB II
PEMBAHASAN
1. Definisi Searching
Searching merupakan suatu proses pencarian data pada sejumlah data yang ada atau
Searching juga dapat diartikan sebagai metode pencarian informasi dalam suatu aplikasi,
dengan suatu kunci ( key ). Dalam Proses searching tersebut adalah untuk menemukan nilai
(data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar atau bertipe
bentukan). Search algoritma adalah algoritma yang menerima argument A dan mencoba untuk
mencari record yang mana keynya adalah A.
Algoritma bisa mengembalikan nilai record, atau pointer ke record. Record sendiri
adalah tipe data yang terdiri atas kumpulan variabel yang disebut field.
Aktivitas yang berkaitan dengan pengolahan data ini sering di dahului dengan proses
pencarian. Sebagai contoh, untuk mengubah (update) data tertentu, langkah pertama yang
harus dilakukan adalah mencari keberadaan data tersebut di dalam kumpulannya. Aktivitas
yang awal sama juga dilakukan pada proses penambahan (insert) data yang baru. Proses
penambahan data dimulai dengan mencari apakah data yang ditambahkan sudah terdapat di
dalam kumpulan. Jika sudah dan mengasumsikan tidak boleh ada duplikasi data, maka data
tersebut tidak perlu di tambahkan, tetapi jika belum ada, maka tambahkan.
3 Struktur Data
3. Metode Pencarian Data
a) Sequential Search (Pencarian Berurutan)
Adalah 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. Algoritma pencarian secara linear digunakan untuk mencari
sebuah nilai pada tabel sembarang. Ada dua macam cara pencarian pada tabel. Algoritma ini
mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Algoritma pencairan
secara linear melakukan pengulangan sebanyak 1 kali untuk kasus terbaik (value sama dengan
elemen pertama dalam tabel) dan Nmax kali untuk kasus terburuk. Sehingga algoritma ini
mempunyai kompleksitas algoritma O(n).
Proses pencarian data dengan metode ini cukup sederhana dan mudah dipahami. Dalam
pencarian ini proses dilakukan dengan cara mencocokan data yang akan dicari dengan semua
data yang ada dalam kelompok data. Proses pencarian data dilakukan dengan cara
mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses
pencocokan data dilakukan secara berurut satu demi satu dimulai dari data ke-1 hingga data
pada ururtan terakhir. Jika data yang dicari mempunyai harga yang sama dengan data yang
ada dalam kelompok data, berarti data telah ditemukan. Tetapi jika data yang dicari tidak ada
yang cocok dengan data-data dalam sekelompok data, berarti data tersebut tidak ada dalam
sekelompok data.Selanjutnya kita tinggal menampilkan hasil yang diperoleh tersebut.
Sequential Search (Pencarian Berurutan) memiliki beberapa kelebihan dan kekurangan yaitu :
1. Kelebihannya :
Relatif lebih cepat dan efisien untuk data yang terbatas
Algoritma sederhana
2. Kekuranganya :
Kurang cepat untuk data dalam jumlah besar
Beban komputasi cenderung lebih besar
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
1. i 0
2. Ketemu false
3. Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
4. Jika (Data[i] = x) maka ketemu true, jika tidak i i + 1
4 Struktur Data
5. Jika (ketemu) 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 ketemu = false;
while ((!ketemu) && (i < Max))
{
if(Data[i] == x)
ketemu = true;
else
i++;
}
if(ketemu)
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.
Contoh program Bahasa Pascal:
Program Seq_Search;
uses wincrt;
const
batas=100;
var
n,i,k,ind,pos:integer;
a: array[1..batas] of integer;
begin
clrscr;
writeln('-------------------------------');
writeln('. PROGRAM SEQUENTIAL SEARCH .');
writeln('-------------------------------');
writeln;
writeln('Program Created By Kelompok 3');
writeln;
write('Masukkan Batas : ');readln(n);
writeln;
for i:=1 to n do
begin
write('Bilangan ke ',i,': ');readln(a[i]);
end;
ind:=0;
writeln;
write('Masukan data yang akan anda cari : ');readln(k);
pos:=1;
for i:=1 to n do
begin
5 Struktur Data
if k=a[i] then
begin
ind:=1; pos:=i;i:=n;
end;
end;
if (ind = 1) then
writeln(k,' Ditemukan pada indeks ke : ',pos)
else
writeln('Data tidak ditemukan');
readln;
end.
b) Binary Search
Binary search adalah sebuah algoritma pencarian dengan cara membagi data menjadi
dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu dalam sebuah
larik (array) linear. Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah
pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya,
kemudian mencari setengah sisanya dengan cara yang sama. Pada intinya, algoritma ini
menggunakan prinsip divide and conquer, dimana sebuah masalah atau tujuan diselesaikan
dengan cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini membagi
sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu saja. Algoritma ini bekerja
dengan cara memilih record dengan indeks tengah dari tabel dan membandingkannya dengan
record yang hendak dicari. Jika record tersebut lebih rendah atau lebih tinggi, maka tabel
6 Struktur Data
tersebut dibagi dua dan bagian tabel yang bersesuaian akan diproses kembali secara rekursif.
Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu
dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah
permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list)
nilai.
Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh karena
nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di
tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara
yang sama.
7 Struktur Data
record dalam sebuah table, lebih kecil daripada waktu yang dibutuhkan algoritma
sequential search. Intinya untuk data dalam jumlah besar, waktu searching lebih cepat.
Beban komputasi lebih kecil
2. Kekuranganya :
Data harus sudah di-sorting lebih dulu ( dalam keadaan terurut )
Mula-mula dicari data tengah, dengan rumus (0 + 9) / 2 = 4. Berarti data tengah adalah data
ke-4, yaitu 15. Data yang dicari, yaitu 17, dibandingkan dengan data tengah ini. Karena 17 >
15, berarti proses dilanjutkan tetapi kali ini posisi awal dianggap sama dengan posisi tengah +
1 atau 5.
Indek
0 1 2 3 4 5 6 7 8 9
s
8 Struktur Data
Data tengah yang baru didapat dengan rumus (5 + 9) / 2 = 7. Berarti data tengah yang baru
adalah data ke-7, yaitu 23. Data yang dicari yaitu 17 dibandingkan dengan data tengah ini.
Karena 17 < 23, berarti proses dilanjukkan tetapi kali ini posisi akhir dianggap sama dengan
posisi tengah 1 atau 6.
Indek
0 1 2 3 4 5 6 7 8 9
s
Data tengah yang baru didapat dengan rumus (4 + 6) / 2 = 5. Berarti data tengah yang baru
adalah data ke-5, yaitu 17. data yang dicari dibandingkan dengan data tengah ini dan ternyata
sama. Jadi data ditemukan pada indeks ke-5.
Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar daripada
posisi akhir. Jika posisi sudah lebih besar daripada posisi akhir berarti data tidak ditemukan.
Untuk lebih jelasnya perhatikan contoh pencarian data 16 pada data diatas. Prosesnya hampir
sama dengan pencarian data 17. Tetapi setelah posisi awal 5 dan posisi akhir 6, data tidak
ditemukan dan 16 < 17, maka posisi akhir menjadi posisi tengah 1 atau = 4 sedangkan posisi
awal = 5.
Indek
0 1 2 3 4 5 6 7 8 9
s
Disini dapat dilihat bahwa posisi awal lebih besar daripada posisi akhir, yang artinya data
tidak ditemukan.
1. L0
2. RN1
3. ketemu false
4. Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8
5. m (L + R) / 2
6. Jika (Data[m] = x) maka ketemu true
7. Jika (x < Data[m]) maka R m 1
8. Jika (x > Data[m]) maka L m + 1
9. Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak
9 Struktur Data
ditemukan
for i := 1 to (n-1) do
begin
min := A[i]; L := i;
for j :=(i+1) to n do
begin
if min>a [j] then
begin
min := a[j];
L := j;
end;
end;
Y := a[i];
A[i] := A[l];
a[l] := Y;
end;
writeln;
writeln('Data Setelah Diurutkan : ');
for i:=1 to n do
begin
write(a[i],' ');
end;
10 Struktur Data
aw :=1; ak :=n; ind :=1;
writeln;
writeln;
writeln ('Masukan Nilai yang ingin dicari : '); readln (k);
while (aw<=ak) and (ind=1) do
begin
mid := (aw+ak) div 2;
if (k=A[mid]) then
begin
ind :=0;
end
else
begin
IF k>A [mid] then
begin
aw := mid + 1;
end
else
begin
ak := mid-1;
end;
end;
end;
if (ind=0) then
writeln ('Keterangan : Data Ditemukan')
else
writeln ('Keterangan : Data Tidak Ditemukan');
readln;
end.
11 Struktur Data
12 Struktur Data
BAB III
PENUTUP
Kesimpulan
Berdasarkan dari hasil laporan makalah mengenai Searching, maka kami dapat mengambil
keesimpulan yaiut :
1. Pencarian berurutan (Sequential Search) digunakan untuk mencari data pada sekumpulan
data atau rekaman yang masih acak.
2. Pada prosesnya sequential search (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.
3. Pada dasarnya, pencarian ini hanya melakukan pengulangan 1 kali yaitu dari index awal
(i) sampai dengan jumlah data terakhir (N). Pada setiap pengulangan, dibandingkan data
ke-I dengan yang dicari (x). Apabila sama, berarti data telah ditemukan. Sebaliknya
apabila sampai akhir pengulangan tidak ada data yang sama, berarti data tidak ditemukan.
Pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian sebanyak
N kali pula.
4. Algoritma pencarian biner digunakan untuk mencari data pada sekumpulan data atau
rekaman yang sudah dalam keadaan terurut baik menaik ataupun menurun.
Saran
Saran yang bisa dijabarkan terkait dengan makalah mengenai Searching yang dibuat maka
kami memberikan beberapa masukan ataupun saran-saran sebagai berikut :
1. Untuk menggunakan program Searching terkait Sequential Search sebaiknya mencari
indeks array yang terletak didepan atau pertengahan karena apabila kita mencari data
yang terletak dibelakang, maka akan membutuhkan waktu yang lama.
13 Struktur Data
DAFTAR PUSTAKA
Anonim. 2014. Struktur Data pencarian berurut sequential seacrh. Diakses tanggal
18 Agustus 2017 pada http://xbasicpro.com/struktur-data/pencarian/struktur-data-
pencarian-berurut-sequential-search-vbnet.aspx
14 Struktur Data