Pengertian Algoritma Search
Algoritma search adalah serangkaian langkah atau instruksi yang digunakan untuk mencari elemen atau informasi tertentu di dalam suatu dataset. Tujuannya adalah untuk menemukan posisi atau keberadaan elemen yang dicari. Dalam pemrograman, algoritma search menjadi salah satu teknik penting dalam menyelesaikan berbagai masalah.
Jenis-Jenis Algoritma Search
1. Linear Search
Linear Search, atau pencarian linear, adalah algoritma pencarian yang paling sederhana. Ini bekerja dengan cara memeriksa setiap elemen dalam kumpulan data secara berurutan hingga elemen yang dicari ditemukan atau sampai seluruh kumpulan data telah diperiksa.
Contoh Program:
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
2. Depth First Search (DFS)
Depth First Search (DFS) adalah algoritma pencarian yang digunakan dalam struktur data seperti graf. Ia mengikuti jalur sejauh mungkin sebelum kembali dan mengeksplorasi cabang lain.
Contoh Program DFS:
class Graph:
def __init__(self):
self.graph = {}
def add_edge(self, node, neighbor):
if node not in self.graph:
self.graph[node] = []
self.graph[node].append(neighbor)
def dfs(graph, start, visited=[]):
visited.append(start)
for neighbor in graph[start]:
if neighbor not in visited:
dfs(graph, neighbor, visited)
3. Binary Search
Pencarian Binary adalah algoritma pencarian yang efisien digunakan untuk mencari elemen dalam kumpulan data yang sudah terurut. Algoritma ini membagi data menjadi dua bagian dan membandingkan elemen tengah dengan elemen yang dicari.
Contoh Program Pencarian Binary:
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
4.Jump Search
Pencarian Jump adalah algoritma pencarian yang efisien digunakan untuk mencari elemen dalam kumpulan data yang sudah terurut. Ia melompati beberapa langkah sekaligus dalam pencarian, memungkinkan efisiensi yang lebih baik daripada pencarian linear.
Contoh Program pencarian Jump:
import math
def jump_search(arr, target):
n = len(arr)
step = int(math.sqrt(n))
prev = 0
while arr[min(step, n)-1] < target:
prev = step
step += int(math.sqrt(n))
if prev >= n:
return -1
while arr[prev] < target:
prev += 1
if prev == min(step, n):
return -1
if arr[prev] == target:
return prev
return -1
Penerapan dalam kehidupan sehari hari
Algoritma pencarian memiliki banyak penerapan dalam kehidupan sehari-hari, terutama dalam dunia digital dan teknologi. Berikut ini beberapa contoh penerapannya:
- Mesin Pencari (Search Engine)
Salah satu contoh penerapan yang paling terkenal adalah mesin pencari seperti Google. Ketika melakukan pencarian di mesin pencari, algoritma pencarian di baliknya akan mencari dan mengurutkan halaman web yang paling relevan dengan kata kunci yang masukkan. - Pencarian dalam Aplikasi e-Commerce
Ketika berbelanja online di platform e-commerce seperti Amazon atau Tokopedia, algoritma pencarian digunakan untuk mencari produk yang sesuai dengan preferensi dan kebutuha. Ini membantu Anda menemukan produk dengan cepat. - Sistem Rekomendasi
Algoritma pencarian juga digunakan dalam sistem rekomendasi seperti Netflix atau Spotify. Mereka mencari konten atau musik yang sesuai dengan sejarah penelusuran Anda atau preferensi yang telah di tentukan. - Pencarian dalam Aplikasi Navigasi
Aplikasi navigasi seperti Google Maps menggunakan algoritma pencarian untuk mencari rute tercepat atau alternatif menuju tujuan Anda. Mereka juga dapat menemukan lokasi berdasarkan nama atau alamat yang di masukkan. - Pencarian dalam Basis Data
Dalam bisnis, algoritma pencarian digunakan dalam pencarian data dalam basis data. Ini membantu perusahaan menemukan informasi yang relevan dari database mereka, seperti mencari catatan pelanggan atau transaksi.
Dalam pemrograman, pemilihan algoritma pencarian yang tepat dapat memengaruhi kinerja program secara signifikan.