Anda di halaman 1dari 18

TUGAS STRUKTUR DATA

SEARCHING

Di Susun Oleh :
Kelompok 3

Iman Abdul Rohman 432007006160142


Ina Purwati 432007006160144
Tiara Vennasya Ryadi 432007006160211
Yaman Cahyaman 432007006140061

SEKOLAH TINGGI MANAJEMEN INFORMATIKA


DAN KOMPUTER
TASIKMALAYA
2017
LEMBAR PENILAIAN
TUGAS STRUKTUR DATA SEARCHING

Tasikmalaya, Agustus 2017

Penilaian Makalah Penilaian Presentasi

Mengetahui :

Dosen Pembimbing
STMIK Tasikmalaya,

Susanto, S.Kom., M.Kom


NIK.

1 Struktur Data
KATA PENGANTAR

Assalamualaikum Wr. Wb.


Puji syukur kami ucapkan kepada Tuhan Yang Maha Esa yang telah memberikan rahmat
dan karunia Nya kepada penulis, sehingga penulis dapat menyusun dan menyelesaikan tugas
Struktur Data ini sesuai dengan harapan.
Makalah ini penulis buat dalam rangka memperdalam pemahaman tentang
SEARCHING pada mata kuliah Struktur Data sehingga nantinya dapat bermanfaat bagi
kita semua.
Dengan tersusunnya tugas Struktur Data ini maka penulis mengucapkan terima kasih
kepada Bapak Dosen Susanto, M.Kom atas bimbingan beliau penulis bisa menyelesaikan
tugas Struktur Data ini tepat waktu.
Tak lupa penulis mengucapkan terima kasih kepada pihak yang telah memberikan
dorongan, motivasi dan saran yang telah diberikan sehingga tugas Struktur Data ini dapat
terselesaikan dengan baik.
Penulis menyadari bahwa dalam penyusunan makalah ini masih terdapat banyak
kekurangan dan jauh dari kesempurnaan. Oleh karena itu, penulis mengharapkan kritik serta
saran yang membangun guna menyempurnakan tugas Struktur Data ini dan dapat menjadi
acuan dalam menyusun makalah-makalah atau tugas-tugas selanjutnya.
Penulis juga memohon maaf apabila dalam penulisan makalah ini terdapat kesalahan
pengetikan dan kekeliruan sehingga membingungkan pembaca dalam memahami maksud
penulis.

Tasikmalaya, Agustus 2017

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.1. Latar Belakang


Pencarian (searching) merupakan proses yang sering digunakan dalam pengelolaan data.
Proses pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang
bertipe sama (baik bertipe dasar atau bertipe bentukan). Data dapat disimpan secara temporer
dalam memori utama atau disimpan secara permanen di dalam memori sekunder (tape atau
disk). Didalam memori utama, struktur penyimpanan data yang umum adalah berupa larik
atau tabel (array), sedangkan di dalam memori sekunder berupa arsip (file).
Dalam kehidupan sehari-hari sebenarnya kita sering melakukan pencarian data. Sebagai
contoh, jika kita menggunakan Kamus untuk mencari kata-kata dalam Bahasa Inggris yang
belum diketahui terjemahannya dalam Bahasa Indonesia. Contoh lain saat kita menggunakan
buku telepon untuk mencari nomor telepon teman atau kenalan dan masih banyak contoh
yang lain.
Pencarian data sering juga disebut table look-up atau storage and retrieval information
adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer
dan kemudian mencari kembali informasi yang diperlukan secepat mungkin.
Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah
argument kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci
tersebut.
Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan,
yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful).
Metode pencarian data dapat dilakukan dengan dua cara yaitu pencarian internal
(internal searching) dan pencarian eksternal (external searching). Pada pencarian internal,
semua rekaman yang diketahui berada dalam pengingat komputer sedangakan pada pencarian
eksternal, tidak semua rekaman yang diketahui berada dalam pengingat komputer, tetapi ada
sejumlah rekaman yang tersimpan dalam penyimpan luar misalnya pita atau cakram magnetis.
Selain itu metode pencarian data juga dapat dikelompokan menjadi pencarian statis
(static searching) dan pencarian dinamis (dynamic searching). Pada pencarian statis,
banyaknya rekaman yang diketahui dianggap tetap, pada pencarian dinamis, banyaknya
rekaman yang diketahui bisa berubah-ubah yang disebabkan oleh penambahan atau
penghapusan suatu rekaman.

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.

2. Pencarian Data Searching


Pencarian terbagi Dua :
a. Pencarian Internal adalah pencarian terhadap sekumpulan data yang disimpan di
dalam memori utama, struktur penyimpanan data yang umum adalah berupa
larik atau tabel (array);
b. Pencarian Eksternal adalah pencarian terhadap sekumpulan data yang disimpan
di dalam memori sekunder seperti tape atau disk, struktur penyimpanan data
berupa arsip (file).
Data searching (pencarian data) meliputi;
a. FETCH (pencarian lokasi posisi record dan pembacaan rekaman )
b. NEXT ( memperoleh rekaman berikutnya dan membaca seluruh record dalam
berkas Algoritma searching sangat erat hubungannya dengan sistem berkas )

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.

Tampilan ketika dijalankan :

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.

Syarat Pencarian Biner :


Data sudah urut, jika data belum urut pencarian tidak dapat dilakukan. Teknik ini hanya
dapat digunakan hanya pada kumpulan data yang sudah di urutkan, karena teknik ini
melakukan pencarian dengan mencari data pada index yang tengah, apakah lebih besar/lebih
kecil/sama dengan. bila hasil sama dengan maka nilai yang di cari telah di temukan. bila lebih
kecil/lebih besar maka akan di buang setengah data dari yang salah, dan mencari dari indeks
yang tengah dari sisanya. demikian sampai data ditemukan atau tidak di temukan.
Contoh: Misalnya saat ingin mencari suatu kata dalam kamus.

Pencarian Biner (Binary Search) dilakukan untuk :


a) Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari
dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar
ukurannya.
b) Beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan
tengah.
c) Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-
ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti
ada kemungkinan data tidak ditemukan).
d) Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut.

Binary Search memiliki beberapa kelebihan dan kekurangan yaitu :


1. Kelebihannya :
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya
yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini
menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah

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 )

Langkah dalam pencarian biner adalah :

1. Mula-mula diambil dari posisi awal=1 dan posisi akhir = n


2. Kemudian kita cari posisi data tengah dengan rumus
posisi tengah = (posisi awal + posisi akhir ) / 2
3. Kemudian data yang di cari dibandingkan dengan data tengah
a. Jika sama, data ditemukan, Proses selesai
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.
4. Ulangi langkah kedua hingga data ditemukan , atau tidak ditemukan.
5. Pencarian biner ini akan berakhir jika data ditemukan posisi awal lebih besar dari pada
posisi akhir. Jika posisi awal sudah lebih besar dari posisi akhir berarti data tidak
diketemukan.
Untuk lebih jelasnya perhatikan contoh berikut. Misalnya ingin mencari data 17 pada
sekumpulan data berikut :
Indek
0 1 2 3 4 5 6 7 8 9
s

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.

Algoritma pencarian biner dapat dituliskan sebagai berikut :

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

Contoh Program Binary Search pada Bahasa Pascal :


program Bseacrh;
uses wincrt;
var
A : Array[1..100] of integer;
N,I,aw,ak,mid,ind,k,min,j,y,l :integer;
begin
clrscr;
writeln('**************************************************');
writeln('**************************************************');
writeln('** =========BINARY SEARCH========= **');
writeln('** =========KELOMPOK 3========== **');
writeln('**************************************************');
writeln('**************************************************');
writeln;
write ('Masukan Batas : '); readln(n);
writeln;
for I:= 1 to N do
begin
write ('Bilangan ',I,' = '); readln (A[I]);
end;

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.

Tampilan ketika Contoh Program Binary Search dijalankan :

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

Mita, S. 2014. Binarry Search. Diakses pada tanggal 18 Agustus 2017 di


mita.staff.gunadarma.ac.id/Downloads/files/.../BINARY-SEARCH.doc

Anonim. 2014. Binary Search. Diakses tanggal 18 Agustus 2017 pada


www.informatika.unsyiah.ac.id/tfa/ds/binarysearch.pdf

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

Anda mungkin juga menyukai