Anda di halaman 1dari 7

TUGAS PENDAHULUAN

PERCOBAAN 3: SEARCHING

Nama : Nani Nuraini


NPM : 2215061032
Kelas : PSTI D

SOAL :
Tugas Pendahuluan Percobaan 3
1. Apa yang kalian ketahui tentang searching (min 100 kata)?
2. Berikan penjelasan Best Case dan Worst Case dari Sequential Searching dan
Binary Searching?

JAWABAN:
1. Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat
pencarian data dapat berupa array dalam memori, bisa juga pada file pada external
storage.

Searching adalah proses mendapatkan retrieval information berdasarkan kunci (key)


tertentu dari sejumlah informasi yang telah disimpan. Kunci (key) digunakan untuk
melakukan pencarian record yang diinginkan di dalam suatu list. Algoritma searching
yang umum terdiri dari 2 macam, yaitu: Sequential searching dan Binary searching.

1. Sequential Search (pencarian Sekuensial) adalah proses membandingkan setiap


elemen array satu per satu secara beruntun dimulai dari elemen pertama hingga
elemen yang dicari ditemukan atau hingga elemen terakhir dari array. Metode
Sequential Search selain dapat digunakan pada struktur data array (1 dimensi) dapat
juga digunakan pada linked-list.
Gambar 1 Sequential Searching

Adapun proses Algoritma Sequential Searching adalah sebagai berikut:


1. Pertama data melakukan perbandingan satu per satu secara berurutan dalam
kumpulan data dengan data yang di cari sampai data tersebut ditemukan atau
tidak ditemukan.
2. Pada dasarnya, pencarian ini hanya melakukan pengulangan data dari 1 sampai
dengan jumlah data (n).
3. Setiap pengulangan, dibandingkan data ke-i dengan data yang sedang dicari.
4. Apabila data sama dengan yang dicari, berarti data telah berhasil di temukan.
Sebaliknya apabila sampai akhir melakukan pengulangan tidak ada data yang
sama dengan yang dicari, berarti data tidak ada yang ditemukan.

Gambar 2 Kode Algoritma Sequential Search

Pada kode program di atas dapat dilihat, Method sequential Search memiliki dua
parameter yaitu array dan key di mana array adalah kumpulan data dengan tipe
integer dan key merupakan kata kunci atau data yang akan di cari pada kumpulan
data tersebut. Berikut proses kerja algoritma Sequential Searching di atas:
1. Menentukan jumlah data yang tersimpan pada array.
intsize = array.length;
2. Melakukan perulangan FOR sebanyak jumlah data dan melakukan pencarian
secara beruntun atau sekuensial terhadap data-data yang tersimpan data array.
for (int i = 0; i <size; i++)
3. Menentukan kecocokan data yang tersimpan di array dengan kata kunci yang di
cari (key) menggunakan perintah IF if (array[i] == key)
4. Jika data yang di cari di temukan atau cocok maka nilai akan di kembalikan
dengan nilai pencarian dan pencarian di hentikan. return array[i];
5. Jika data tidak di temukan, maka nilai akan di kembalikan dengan ke -1 sebagai
indikasi data tidak ada. return -1;

2. Binary Search adalah teknik pencarian data dalam dengan cara membagi data
menjadi dua bagian setiap kali terjadi proses pencarian. Data yang ada harus diurutkan
terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian.
Dengan kata lain apabila data belum dalam keadaan terurut, pencarian Binary tidak
dapat dilakukan. Binary Search ini dilakukan untuk:
1. Memperkecil jumlah operasi perbandingan yang harus dilakukan antara data yang
dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang
sangat besar ukurannya.
2. Beban komputasi lebih kecil karena pencarian dilakukan dari depan, belakang dan
tengah. Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian
secara berulang-ulang sampai data ditemukan atau sampai pencarian tidak dapat
dibagi lagi (berarti terdapat kemungkinan data tidak ditemukan).
3. Binary search merupakan salah satu algoritma pencarian pada array yang sudah
terurut. Hal yang terpenting dalam penggunaan binary search adalah data harus
sudah diurutkan. Untuk mengefisienkan penggunaan binary search maka informasi
bagaimana integer dalam array harus diketahui. Adapun ide dasar binary search
yaitu memulai pencarian dengan cara membagi dua ruang pencarian (T).

Adapun proses Algoritma Binary Searching adalah sebagai berikut:


1. Data diambil dari posisi awal 1 dan posisi akhir n
2. Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
3. Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah
sama atau lebih kecil, atau lebih besar?
4. Jika data sama, berarti ketemu.
5. Jika lebih besar, maka ulangi langkah 2 dengan posisi awal adalah posisi tengah
+1
6. Jika lebih kecil, maka ulangi langkah 2 dengan posisi akhir adalah posisi tengah -
1

Gambar 3 Binary Searching

Prosedur algoritma binary search yaitu :


1. L > R, Jika L lebih besar dari pada R maka proses pencarian gagal. Menentukan
median dari array (L+R) / 2
2. Jika A[middle] < T, maka pencarian akan dilakukan hanya pada sisi kanan dari
A[middle] saja
3. Jika A[middle] > T, maka pencarian akan dilakukan hanya pada sisi kiri dari
A[middle] saja 4. Jika A[middle] = T, maka pencarian selesai[4].

Flowchart Binary Search merupakan alur proses dalam pembuatan sistem dalam
mengolah aplikasi yang akan dibuat. Flowchart berguna untuk mengatur langkah awal
sampai hasil akhir .
Gambar 4 Flowchart Binary Search

2. Best Case,Worst Case dari Sequential Searching dan Binary Sequential


1. Sequential Searching:
Best Case : Kasus terbaik terjadi ketika elemen yang dicari berada di posisi pertama
dalam kumpulan data. Dalam hal ini, hanya satu perbandingan perlu dilakukan, dan
pencarian selesai, sehingga hanya membutuhkan sedikit waktu pencarian.

Worst Case : Kasus terburuk terjadi ketika elemen yang dicari berada di posisi terakhir
dalam kumpulan data atau bahkan tidak ada dalam kumpulan data sama sekali. Dalam
hal ini, pencarian akan melibatkan perbandingan antara elemen yang dicari dan semua
elemen dalam kumpulan data hingga elemen terakhir.

Contoh : DATA = 5 6 9 2 8 1 7 4
bestcase ketika x = 5 worst case ketika x = 4
*x = key/data yang dicari
2. Binary Sequential
Best Case : Kasus terbaik terjadi ketika elemen yang dicari berada tepat di tengah
kumpulan data yang sudah diurutkan. Dalam hal ini, pencarian selesai setelah satu
perbandingan, dan best case memiliki kompleksitas T(n) = 1atau konstan.

Worst Case : Kasus terburuk terjadi ketika elemen yang dicari tidak ada dalam
kumpulan data atau berada di salah satu ujung kumpulan data yang besar. Jadi, worst
case dari binary search memiliki kompleksitas waktu T(n) = n/2 (n dibagi 2, karena
setidaknya setengah data harus diperiksa sebelum data yang dicari dinyatakan tidak
ditemukan).

Contoh : DATA = 5 6 9 2 8 1 7 4 3
bestcase ketika x = 8 (T(n)=1) worst case ketika x = 25 (T(n) = 5 atau n/2)
*x = key/data yang dicari
DAFTAR PUSTAKA

Muhammad, Meizano, Ardhi. 2018. Modul Mata Kuliah Stuktur Data.


Bandarlampung: Universitas Lampung.

Yuniar. Lita, Wenni., Fathkul, Amin. 2021. Sistem Pencarian Naskah Dinas Pada
Polres Kendal Dengan Algoritma Sequential Search. Jurnal Manajemen
Informatika & Sistem Informasi. 4(2): 92-100.

Sulistio, Bayu., Salkin, Lutfi., Ridwan. 2019. Aplikasi Kamus Bahasa Taliabu Berbasis
Android Dengan Menggunakan Metode Binary Searc. Jurnal Informatika dan
Komputer. 2(2): 67-72.

Anda mungkin juga menyukai