Anda di halaman 1dari 18

MAKALAH ALGORITMA

& STRUKTUR DATA


“Algoritma Searching (Pencarian) dalam C++”

KELOMPOK 3

Elshday Batlajery (200102045)

Evi Triani Samida (200102129)

Farid Adil Yatim (200102046)

Fitriyatur Rosyidah Payapo (200102047)

Imanuela P. Tehupuring (200102049)

INSTITUT TEKNOLOGI DAN BISNIS

( ITB-STIKOM AMBON )

PROGRAM STUDI SISTEM INFORMASI

AMBON

2021
KATA PENGANTAR

Segala puji syukur kami panjatkan kepada Allah SWT. Salawat dan salam tak lupa kami
sanjungkan kepada Nabi Muhammad SAW, keluarga serta sahabnya yang melimpahkan rahmat
dan karunianya sehingga makalah ini sanggup tersusun hingga selesai. Tidak lupa kami
mengucapkan terimakasih kepada dosen pembimbing kami yang telah memberikan tugas ini
dengan judul Searching(pencarian) dalam Struktur Data.
Dan kita semua berharap semoga makalah ini mampu menambah pengalaman serta ilmu
bagi para pembaca. Sehingga untuk ke depannya sanggup memperbaiki bentuk maupun
tingkatan isian makalah sehingga menjadi makalah yang miliki wawasan yang luas dan lebih
baik lagi.
Karena keterbatasan ilmu maupun pengalaman kami, Kami percaya masih banyak
kekurangan dalam makalah ini, oleh karena itu kami sangat mengharapkan saran dan kritik yang
membangun berasal dari pembaca demi kesempurnaan makalah ini.

Ambon, 26 Agustus 2021

i
DAFTAR ISI

KATA PENGANTAR .................................................................................................... i


DAFTAR ISI ................................................................................................................... ii
BAB I PENDAHULUAN ............................................................................................... 1
A. Latar Belakang ..................................................................................................... 1
B. Rumusan Masalah ................................................................................................ 2
C. Tujuan .................................................................................................................. 2
BAB II KAJIAN PUSTAKA ......................................................................................... 3
A. Pengertian Searching ............................................................................................ 3
B. Jenis-jenis Searching ............................................................................................ 4
BAB III PEMBAHASAN .............................................................................................. 8
A. Contoh Pemrograman Searching dalam Algoritma ............................................. 8
BAB IV PENUTUP ........................................................................................................ 14
A. Kesimpulan .......................................................................................................... 14
B. Saran ..................................................................................................................... 14
DAFTAR PUSTAKA ..................................................................................................... 15

ii
BAB I
PENDAHULUAN

A. Latar Belakang
Dalam ilmu logika dan algoritma sering kali menemui masalah tentang bagaimana
mendapatkan suatu data dalam kumpulan data. Dalam keperluannya untuk mencari data, terdapat
beragam algoritma pencarian (search algoritm). Searching adalah pencarian data dengan
menelusuri tempat pencarian data tersebut. Tempat pencarian data tersebut dapat berupa array
dalam memori, bisa juga pada file pada external storage. Bila jumlah data sudah demikian besar,
dibutuhkan suatu metode untuk mendapatkan data yang dibutuhkan. Beberapa metode
pengorganisasian data telah membuat proses pencarian data menjadi lebih efisien.
Pencarian (searching) merupakan suatu pekerjaan yang sering dikerjakan dalam
kehidupan sehari – hari. Ada kalanya kita mencari sesuatu dengan tujuan hanya untuk
mengetahui apakah data tersebut ada dalam sekumpulan data atau tidak, sementara di lain waktu
mungkin kita menginginkan posisi dari data yang dicari tersebut.

Dalam Algoritma pencarian (searching,) ada Beberapa metoda pencarian Seperti:

 Metode linier (Linear Search.) adalah teknik pencarian data dimana data dicari secara
urut dari depan ke belakang atau dari awal sampai akhir secara Sequen
 pencarian biner (Binary Search) adalah sebuah teknik untuk menemukan nilai tertentu
dalam sebuah larik (array) , Prinsip pencarian Biner yaitu dengan membagi data atas dua
bagian kemudian membandingkannya.
 dan pencarian interpolasi (Interpolation Search) adalah menentukan posisi yang
diestimasi dari sisa rekaman yang belum diperiksa.

Masing – masing algoritma memiliki prasyarat dan cara serta waktu pelaksanaan yang berbeda.
Pemilihan atas metoda pencarian dilakukan berdasarkan keadaan dan keinginan pengguna
metoda yang biasanya tergantung pada jumlah data, jenis data dan struktur data yang digunakan.

1
B. Rumusan Masalah
Berdasarkan uraian pada latar belakang masalah diatas, maka permasalahan yang diteliti dapat
dirumuskan:
1. Apa pengertian searching/pencarian?
2. Apa saja jenis-jenis algoritma pencarian?
3. Bagaimana algoritma dan contoh programnya?

C. Tujuan
Berdasarkan rumusan masalah diatas, makan tujuan disusunnya makalah ini yaitu:
1. Untuk mengetahui pengertian searching/pencarian.
2. Untuk mengetahui apa saja jenis-jenis algoritma pencarian.
3. Untuk mengetahui algoritma dan contoh program searching.

2
BAB II
KAJIAN PUSTAKA
           
A.  Pengertian Searching

Pencarian (searching) merupakan proses fundamental dalam pengelolaan data. Proses


pencarian adalah menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama
(baik bertipe dasar atau bertipe bentukan). Search algoritma adalah algoritma yang menerima
argument adan mencoba untuk mencari record yang mana key-nya adalah Algoritma bisa
mengembalikan nilai record, atau pointer ke record. Record sendiri adalah tipe data yang terdiri
atas kumpulan variabel yang dapat berbeda tipenya. Setiap variabel disebut field. Sequensial
Search (penelusuran sequensial) yaitu proses mengunjungi melalui suatu pohon dengan cara
setiap simpul di kunjungi hanya satu kali yang disebut tree transversal / kunjungan pohon.
Sedangkan Binary Search adalah penelusuran pohon biner dimana data yang dimasukkan atau
yang sudah ada diurutkan terlebih dahulu.
            Data dapat di simpan secara temporer dalam memori utama atau di simpan secara
permanen di dalam memori sekunder (tape atau disk). Di dalam memori utama, struktur
penyimpanan data yang umum adalah berupa larik atau tabel (array), sedangkan di dalam
memori sekunder berupa arsip (file). 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 keberadaaan 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 ditambahkan, tetapi jika belum ada, maka tambahkan.
           
Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang paling
sederhana yaitu pencarian beruntun atau Sequential Search sampai pada algoritma pencarian
yang lebih maju yaitu pencarian bagi dua (Binary Search).

3
B. Jenis-jenis Searching

1. Sequential Searching
Sequential Searching dalah 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.

4
Sequential search memiliki proses sebagai berikut:
1. Tentukan banyaknya data yang akan di olah, misal banyak data adalah N.
2. Tentukan data apa yang akan dicari, misal data yang akan dicari adalah C.
3. Deklarasikan sebuah counter untuk menghitung banyak data yang ditemukan, missal
counternya adalah K.
4. Inisialisasikan K =0
5.   Lakukanlah perulangan sebanyak N kali
6. Dalam tiap proses perulangan tersebut periksalah apakah data yang sedang diolah sama
dengan data yang dicari.
7. Jika ternyata sama K=K+1
8. Jika tidak, lanjutkan proses perulangan .
9. Setelah proses perulangan berhenti, periksalah nilai K.
10. Jika nilai K lebih dari 0, artinya data yang dicari ada dalam data /array dan
tampilkan   nilai K ke layer sebagai jumlah data yang ditemukan.
11. Jika nilai K=0, artinya data yang dicari tidak ditemukan dalam data / array dan tampilkan
ke layar bahwa data tidak ditemukan
12. Prosesselesai.

Dapat disimpulkan bahwa sequential search, akan mencari data dengan cara membandingkannya
satu-persatu dengan data yang ada. Prosesnya tentu saja akan singkat jika data yang diolah
sedikit, dan akan lama jika data yang diolah banyak. Disarankan proses ini digunakan pada
jumlah data yang sedikit saja.

Berikut ini kelebihan dan kekurangan dari Sequential Search :

 Proses pencarian menggunakan Sequential Search cenderung lebih cepat dan efisien
untuk jumlah data yang terbatas atau tidak terlalu banyak.
 Algoritma yang digunakan juga lebih sederhana atau tidak terlalu rumit.
 Kekurangan yang paling mendasar Sequential Search adalah kurang efisien dan kurang
cepat untuk mencari suatu data dalam jumlah yang besar

5
2. Binarry 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.

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.

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 ) div 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.

6
5. Pencarian biner ini akan berakhir jika data ditemukan posisi awal lebih besar dari pada
posisi akhir. Jika posisi awal sudah lebih besar dari posisis akhir berarti data tidak
diketemukan.
Berikut kelebihan dan kekurangan dari Binary Search:

 Efisien dan lebih cepat jika mencari suatu nilai dalam jumlah data yang besar. Karena
data-data tersebut sudah diurutkan terlebih dahulu.
 Kekurangan Binary Search yang pertama adalah data harus diurutkan terlebih dahulu
agar proses pencarian bisa berjalan dengan baik.
 Kekurangan kedua adalah algoritma Binary Search lebih rumit daripada Sequential
Search

3. Interpolation search
(Pencarian Interpolasi) adalah metode pencarian dengan cara mencari letak/posisi data yang akan
dicari.  Data harus diurutkan secara ascending  lebih dahulu sebelum melakukan pencarian data.

 Rumus mencari posisi :

 Jika data[posisi] > data yg dicari, Akhir = posisi – 1

 Jika data[posisi] < data yg dicari, Awal = posisi + 1

 Jika Awal

Pencarian interpolasi tidak mencari posisi TENGAH seperti halnya algoritma pencarian biner,
melainkan mencari posisi berikutnya dimana data yang dicari berada.

7
BAB III
PEMBAHASAN

1. Sequential Search adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan
menelusuri semua elemen array dari awal hingga yang paling akhir, dimana data-data tidak
perlu diurutkan terlebih dahulu.

CONTOH PEMROGRAMAN :

Coding pemrogram sequential search :

8
Tampilan ketika contoh program sequential search di jalankan:

9
2. Binary Search adalah suatu metode pencarian suatu data yang ada didalam kumpulan data
dimana data-data tersebut sudah berurut. Karena, proses pencarian tidak akan terjadi jika data-
data yang berada didalam kumpulan data tersebut tidak berurut. Dalam proses pencarian
dengan metode ini data akan dibagi menjadi dua bagian untuk setiap tahap pencariannya.

Coding pemrogram Binary Search :

10
Tampilan ketika contoh program sequential search di jalanakan :

11
3. Interpolation search (Pencarian Interpolasi) adalah metode pencarian dengan cara mencari
letak/posisi data yang akan dicari.  Data harus diurutkan secara ascending  lebih dahulu
sebelum melakukan pencarian data.

Coding pemrogram Interpolation search :

12
Tampilan ketika contoh program interpolation search di jalanakan :

13
BAB III
PENUTUP
A. Kesimpulan
Sequential search lebih efektif jika digunakan pada sekumpulan data yang sedikit, sedangkan
binary search efektif jika digunakan pada sekumpulan data yang berjumlah banyak.
Sequential search dapat digunakan pada sekumpulan data yang urut ataupun tidak urut,
sedangkan binary search harus pada data yang sudah urut. Sedangkan proses pencarian
interpolation search hampir mirip dengan proses pencarian kata dikamus, yaitu kita mencari data
yang dimaksud dengan cara memperkirakan letak data.

B. Saran
Gunakanlah teknik pencarian data yang efisien dan mudah tetapi sesuai dengan kebutuhan.

14
DAFTAR PUSTAKA

http://yumiu.blogspot.com/2016/04/interpolation-search.html

https://spatabang.blogspot.com/2015/05/algoritma-pencarian-data-dengan-metode.html

http://www.nblognlife.com/2013/12/binary-search-c.html

https://makalahsearching.blogspot.com/2019/05/makalah-searching.html

15

Anda mungkin juga menyukai