Anda di halaman 1dari 23

Mata Kuliah Desain Algoritma 2

ALGORITMA SEARCHING

Joko Iskandar, M.Kom.


Capaian Pembelajaran
 Setelah mengikuti kuliah ini, mahasiswa dapat
memahami berbagai jenis algoritma searching

 Setelah mengikuti kuliah ini, mahasiswa dapat


mengimplementasikannya algoritma searching dalam
kasus nyata
Introduction

 Pencarian (Searching) merupakan tindakan


untuk mendapatkan suatu data dalam
kumpulan data

 Searching adalah proses mendapatkan


(retrieve) informasi berdasarkan kunci tertentu
dari sejumlah informasi yang telah disimpan

3
KARAKTERISTIK
⬡ Completeness: Algoritma pencarian dikatakan lengkap jika menjamin
untuk mengembalikan solusi jika setidaknya ada solusi untuk setiap
input random.
⬡ Optimality: Jika solusi yang ditemukan untuk suatu algoritma dijamin
sebagai solusi terbaik (biaya jalur terendah) di antara semua solusi
lainnya, maka solusi untuk tersebut dikatakan sebagai solusi optimal.
⬡ Time Complexity: Ukuran waktu bagi suatu algoritma untuk
menyelesaikan tugasnya.
⬡ Space Complexity: Ruang penyimpanan maksimum yang diperlukan
pada setiap titik selama pencarian, sebagai kompleksitas masalah.
4
 Contoh implementasi pencarian dalam kehidupan sehari-
hari :
a. Menemukan nomor telepon seseorang pada buku telepon
b. Mencari istilah dalam kamus

 Contoh implementasi pencarian pada aplikasi komputer :


a. Untuk mendapatkan data dari seseorang mahasiswa (NIM,
Nama, IPK)
b. Mencari informasi suatu kata dalam kamus digital

5
 Untuk keperluan mencari data terdapat beragam
Algoritma Pencarian (Search Algorithma)

 Yang dimaksud Algoritma Pencarian adalah "algoritma


yang menerima sebuah argumen a dan mencoba
untuk menemukan sebuah rekaman yang memilki
kunci a”

6
 Contoh
a. Siapa nama mahasiswa dengan NIM
13102056 ? single match
b. Siapa saja yang mendapat nilai algoritma ≥ 85 ?
multiple matches

7
 Pencarian yang dilakukan terhadap data,
dapat dikelompokan sebagai berikut :
a. Pencarian Internal
Pencarian yang dilakukan terhadap data yang
berada dalam memori komputer

b. Pencarian Eksternal
Pencarian yang dilakukan terhadap data

yang berada dalam penyimpanan eksternal


(hardisk) 8
Istilah yang digunakan dalam Searching:
 Searching: prosedur langkah demi langkah untuk memecahkan masalah pencarian di
ruang pencarian (search space) yang diberikan. Masalah pencarian dapat memiliki
tiga faktor utama:
 Search space: mewakili satu set solusi yang mungkin, yang mungkin dimiliki
sistem.
 Start state: keadaan asal agen saat memulai pencarian.
 Goal test: Sebuah fungsi yang mengamati keadaan saat ini dan mengembalikan
apakah keadaan tujuan tercapai atau tidak.
 Search tree: Sebuah representasi pohon dari masalah pencarian disebut search tree
atau pohon pencarian. Akar dari pohon pencarian adalah simpul akar yang sesuai
dengan keadaan awal.
 Action: Mendeskripsikan semua tindakan yang tersedia untuk agen.
 Transition model: Deskripsi tentang apa yang dilakukan setiap tindakan, dapat
direpresentasikan sebagai model transisi.
 Cost: fungsi yang menetapkan biaya numerik untuk setiap jalur.
 Solution: urutan tindakan yang mengarah dari node awal ke node tujuan.
 Optimal solution: Jika solusi memiliki biaya terendah di antara semua solusi.
9
Jenis-jenis Algoritma Searching:
 Linear/sequential Search
 Binary Search
 Interpolation Search
 Jump Search
 Exponential Search
 Sublist Search
 Fibonacci Search

10
Linear / Sequential Search

11
Pencarian Sekuensial (Linear)
 Pencarian Sekuensial (Linier) merupakan
model pencarian yang paling sederhana yang
dilakukan terhadap kumpulan data

 Secara konsep, dapat dijelaskan


sebagai berikut :
a. Terdapat sebuah larik yang berisi n
buah data ( L[0], L[1], … , L[n-1])
b. k adalah data yang dicari  L[i]=k

12
c. i adalah bilangan indeks terkecil , yang memenuhi kondisi 0 ≤ k ≤
n-1
d. k adalah data yang dicari  L[i]=k

Contoh :
L [10, 9, 4, 6, 4, 3, 2, 5]

Dimanakan posisi 4 yang pertama ? Dalam hal ini k adalah 4 dan


k ditemukan pada posisi dengan indeks berupa 2

13
Catatan Kompleksitas:

Algoritma ini akan mencari data sesuai kata kunci yang diberikan mulai dari elemen
awal pada array hingga elemen akhir array. Kemungkinan terbaik (best case) ketika
menggunakan algoritma ini adalah jika data yang dicari terletak di indeks awal
array sehingga hanya membutuhkan sedikit waktu pencarian. Sedangkan
kemungkinan terburuknya (worst case) adalah jika data yang dicari ternyata terletak
dibagian akhir dari array sehingga pencarian data akan memakan waktu yang lama.

14
Konsep Pencarian Sekuensial:
 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

15
Ilustrasi 1:

Ilustrasi di atas menunjukkan bagaimana proses dari algoritma pencarian Sekuensial.


Algoritma ini mencari angka 2 dengan mengecek setiap elemen pada array. Ketika sudah
ditemukan maka proses pencarian dapat diakhiri.

16
Ilustrasi 2 :

Ilustrasi kedua mirip dengan sebelumnya, perbedaannya yaitu ilustrasi di atas menghitung
berapa banyak angka yang dicari muncul pada data, sedangkan ilustrasi sebelumnya akan
menghentikan pencarian ketika data yang dicari berhasil ditemukan
17
Ilustrasi 2 :

Ilustrasi kedua mirip dengan sebelumnya, perbedaannya yaitu ilustrasi di atas menghitung
berapa banyak angka yang dicari muncul pada data, sedangkan ilustrasi sebelumnya akan
menghentikan pencarian ketika data yang dicari berhasil ditemukan
18
IMPLEMENTASI SEARCHING DENGAN JAVA (latihan 43)

19
KOMPLEKSITAS SEARCHING

20
KOMPLEKSITAS SEARCHING

21
TUGAS INDIVIDU

Modifikasi latihan 43, dimana


data dalam array diinputkan
secara manual menggunakan
fasilitas scanner

22
Thanks!

23

Anda mungkin juga menyukai