Anda di halaman 1dari 12

Pencarian (Searching)

Informatika SMA Kelas X


Bab 2. Berpikir Komputsional
Oleh : Sarifah Ermawati, S.Kom
SMAN 10 Kota Jambi

ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts


Tujuan Pembelajaran
1. Siswa memahami algoritma proses searching
2. Siswa mampu menerapkan strategi algoritmik untuk menemukan
cara yang paling efisien dalam proses searching

Kata Kunci
Algoritma, Strategi algoritmik,Searching
Pencarian (Searching)
1. Pengertian Pencarian secara umum
Pencarian adalah sebuah aktivitas yang sering kita lakukan dalam kehidupan sehari-hari,
Misalnya:
• Mencari buku dengan judul tertentu di rak perpustakaan
• Mencari seragam batik sekolah di dalam lemari pakaian
• Mencari file tugas mata pelajaran tertentu di dalam penyimpanan di komputer
• Mencari judul lagu di youtube
• Mencari resep masakan di google
• Dll

Dalam pencarian tersebut tentu kita melakukan suatu langkah yang terurut
bukan? Ya.
Misalnya langkah mencari buku dengan judul tertentu di rak buku perpustakaan
dari cntoh di atas :
1. Tentukan judul buku yang akan dicari
2. Periksa buku di rak perpustakaan satu persatu Algoritma
3. Ketemu bukunya (kemungkinan)
4. Tidak ketemu bukunya (kemugkinan)
5. Selesai
Lanjutan....
Dalam pencarian tersebut tentu kita mempunyai cara berfikir untuk
menemukannya dengan cara yang paling efisien dan efektif bukan?
Ya

Misalnya dari contoh diatas untuk mencari buku judul tertentu di rak
perpustakaan, kita bisa saja mencari satu persatu dari semua buku yang ada di rak
perpustakaan, tetapi kita akan berfikir untuk mencari buku yang kita inginkan
tersebut sesuai dengan katalognya bukan? Sesuai dengan kategri buku apa yang
rak nya terletak dimana dan barisan keberapa sehingga kita lebih cepat
menemukan buku tsb

Strategi
Algoritmik
Pencarian (Searching)
1. Pengertian Pencarian dalam Informatika
Searching adalah metode pencarian informasi dalam suatu aplikasi, dengan suatu
kunci (key).
• Pencarian diperlukan untuk mencari informasi khusus dari table pada saat lokasi
yang pasti dari informasi tersebut sebelumnya tidak diketahui.
• Pencarian selalu dinyatakan dengan referensi pada adanya sekelompok data yang
tersimpan secara terorganisasi, kelompok data tersebut kita sebut table.

Pada metode searching (pencarian) ada 2 teknik yang digunakan yaitu:


• Pencarian sekuensial (sequential search) dan
• Pencarian biner (Binary search).
A. Algoritma Pencarian sekuensial (sequential search)

Algoritma sequential search atau sering disebut Algoritma linier search

Algoritma sequential search adalah algoritma yang searching yang paling


sederhana, dimana kita akan mencari sebuah nilai dari dalam list dengan cara
membandingkannya satu per satu dari index ke 0 sampai index ke n.

Menggunakan prinsip sebagai berikut:


data yang ada di bandingkan satu persatu secara berurutan dengan yang
dicari.
Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai
dengan jumlah data. Pada setiap perulangan, dibandingkan data ke-i dengan
yang dicari. Apabila sama , berarti data telah ditemukan . Sebaliknya apabila
sampai akhir pengulangan , tidak ada yang sama berarti data tidak ada.
Lanjutan....

Contoh Algoritma sequential search

1. Mencari data 5 dari array [1,2,4,3,5]


maka akan mengecek dari awal sampai data ketemu, jadi akan di periksa satu persatu , 
dengan cara membandingkan seperti ini  :
apakah 5 = 1 False
apakah 5 = 2 False
apakah 5 = 4 False
apakah 5 = 3 False
apakah 5 = 5 True
jika ada ada di tengah maka akan berhenti ketika kondisi menjadi true, dan tidak akan di
ualang lagi  contoh  kita mencari data 5 dari array [1,2,5,3,4]
apakah 5 = 1 False
apakah 5 = 2 False
apakah 5 = 5 True

Jika data sudah ditemukan maka tidak akan di proses dan program akan berhenti.
B. Algoritma Pencarian biner (Binary search).

Algoritma Binary search ini menggunakan metode devide and conquer


dimana sebuah list akan dipecah menjadi 2 bagian dan kembali
menentukan nilai tengah dan membandingkannya secara terus menerus,
hingga ditemukan bahwa nilai tengahnya adalah angka yang dicari.

Untuk melakukan pembagian list tersebut, diperlukan sebuah angka


tengah, bila angka yang dicari lebih kecil daripada angka ditengah list,
maka algoritma ini akan fokus ke serangkaian index yang berada di sebelah
kiri list, begitu juga sebaliknya.

Untuk menjalankan algoritma ini, kita harus mengurutkan terlebih dahulu


value dari array yang ingin kita cari secara ascending.

1-100
30
35=angka saya lebih kecil dari 35
15= angka saya lebih besar dari 15
Lanjutan...

Penjelasan algoritma binary search


• Pertama-tama diambil posisi awal 0 dan posisi akhir = N - 1,
kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi
akhir) / 2. Kemudian data yang dicari dibandingkan dengan data
tengah.
• Kemudian kita cari posisi data tengah dengan rumus posisi tengah
yaitu = (posisi awal + posisi akhir ) div 2.
• Lalu data yang di cari akan dibandingkan dengan data tengah
• Jika sama, data ditemukan, Proses selesai.
• Jika lebih kecil, maka proses akan dilakukan kembali tetapi, posisi akhir
dianggap sama dengan posisi tengah -1.
• Jika lebih besar pun proses akan dilakukan kembali tetapi posisi awal
dianggap sama dengan posisi tengah +1.
• Mengulang dari langkah kedua sampai data ditemukan, atau tidak
ditemukan.
• Searching 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 ditemukan.
Lanjutan....

• Contoh Algoritma Binary search

1. Mencari nilai dari data yang telah terurut sebanyak 8 data


A 2 5 8 12 15 25 37 57

1 2 3 4 5 6 7 8

Kasus 1 : cari = 12
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2= 4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan

Kasus 2 : cari = 15
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2= 4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5

Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 8 ) div 2=6


A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah – 1 = 6 – 1 = 5

Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 5 ) div 2=5


A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan
Lanjutan....

1. Mencari nilai dari data yang telah terurut sebanyak 8 data

A 2 5 8 12 15 25 37 57

1 2 3 4 5 6 7 8

Kasus 3 : cari = 10
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah – 1 = 4 – 1 = 3

Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 3 ) div 2=2


A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3

Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 3 + 3 ) div 2=3


A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan

Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n )
kali. Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak
3 kali.
Kesimpulan
Dari pembahasan contoh soal di atas dapat disimpulkan bahwa
jika mencari data yang sudah terurut maka metode yang
paling efisien digunakan adalah metode Binary Search dan
sebaliknya jika kita ingin mencari data yang teracak metode
yang sebaiknya digunakan adalah metode Sequantial Search

Sumber referensi

Buku Pedoman Guru Informatika kelas X Kemendikbudristek


http://onlyvista.blogspot.com/2017/07/pengertian-searching-jenis-jenis.html
https://andikafisma.wordpress.com/algoritma-pencarian-biner-binary-search/
https://anaktik.com/algoritma-sequential-search-cpp/
https://
rexdevpro.blogspot.com/2018/03/searching-sequential-search-dan-binarry.htm
l

Anda mungkin juga menyukai