π§ 1. Pengertian Searching
7
π Definisi
Searching adalah proses menemukan elemen tertentu dalam kumpulan data (struktur data).
π§ Narasi Konseptual
Bayangkan kamu mencari satu nama di daftar absensi:
- Tanpa metode β membaca satu per satu
- Dengan metode β bisa langsung menuju posisi tertentu
β‘οΈ Searching bertujuan mempercepat proses menemukan data.
π― 2. Tujuan Searching
π Tabel Tujuan
| Tujuan | Penjelasan |
|---|---|
| Menemukan data | Mencari elemen tertentu |
| Efisiensi | Mengurangi waktu pencarian |
| Validasi data | Mengecek keberadaan data |
| Sistem informasi | Dasar query database |
π 3. Jenis-Jenis Searching
π Tabel Kategori
| Jenis | Kondisi Data | Efisiensi |
|---|---|---|
| Linear Search | Tidak terurut | O(n) |
| Binary Search | Terurut | O(log n) |
π 4. Linear Search (Pencarian Linear)
6
π Konsep
Linear Search adalah metode pencarian dengan memeriksa elemen satu per satu dari awal hingga akhir.
π§ Narasi
Seperti mencari nama di daftar:
- Mulai dari atas
- Cek satu per satu
- Berhenti jika ditemukan
π» Contoh Program
for(int i=0; i<n; i++){
if(arr[i] == key){
cout << "Data ditemukan di index " << i;
break;
}
}
β±οΈ Kompleksitas
- Best: O(1)
- Worst: O(n)
β‘ 5. Binary Search (Pencarian Biner)
7
π Konsep
Binary Search adalah metode pencarian pada data yang sudah terurut, dengan cara membagi data menjadi dua bagian.
π§ Narasi
Seperti mencari kata di kamus:
- Tidak membaca satu per satu
- Langsung ke tengah
- Lalu pilih kiri atau kanan
π Langkah Binary Search
- Tentukan middle (tengah)
- Bandingkan dengan data target
- Jika lebih kecil β ke kiri
- Jika lebih besar β ke kanan
- Ulangi sampai ditemukan
π» Contoh Program
int binarySearch(int arr[], int n, int key){
int low = 0, high = n-1; while(low <= high){
int mid = (low + high) / 2; if(arr[mid] == key)
return mid;
else if(arr[mid] < key)
low = mid + 1;
else
high = mid - 1;
}
return -1;
}
β±οΈ Kompleksitas
β‘οΈ O(log n)
π 6. Perbandingan Linear vs Binary Search
π Tabel Perbandingan
| Aspek | Linear Search | Binary Search |
|---|---|---|
| Data | Tidak perlu terurut | Harus terurut |
| Metode | Sequential | Divide & conquer |
| Kecepatan | Lambat | Cepat |
| Kompleksitas | O(n) | O(log n) |
π§ 7. Ilustrasi Perbandingan Searching
8
βοΈ 8. Analisis Kompleksitas Searching
π Tabel Kompleksitas
| Algoritma | Best Case | Worst Case |
|---|---|---|
| Linear Search | O(1) | O(n) |
| Binary Search | O(1) | O(log n) |
π§ Narasi
- Linear Search β semakin besar data, semakin lambat
- Binary Search β sangat efisien untuk data besar
π§ͺ 9. Studi Kasus Nyata
π Sistem Absensi Mahasiswa
- Data kecil β Linear Search cukup
- Data besar β Binary Search lebih efektif
π Mesin Pencari
- Google menggunakan algoritma kompleks (gabungan indexing + searching)
π 10. Hubungan Searching dengan Sorting
π§ Narasi
Binary Search tidak bisa dilakukan tanpa sorting.
β‘οΈ Alur:
Sorting β Searching β Output
π» 11. Implementasi Python Sederhana
# Linear Search
data = [10, 20, 30, 40]
key = 30for i in range(len(data)):
if data[i] == key:
print("Ditemukan di index", i)
β οΈ 12. Kelebihan dan Kekurangan
π Tabel
| Metode | Kelebihan | Kekurangan |
|---|---|---|
| Linear Search | Mudah | Lambat |
| Binary Search | Cepat | Harus sorted |
π§ 13. Kapan Menggunakan Masing-Masing?
π Panduan
| Kondisi | Metode |
|---|---|
| Data kecil | Linear Search |
| Data besar & terurut | Binary Search |
| Data tidak terurut | Linear Search |
π 14. Ringkasan Materi
- Searching adalah proses menemukan data
- Ada dua metode utama: Linear & Binary Search
- Linear Search sederhana tetapi lambat
- Binary Search cepat tetapi butuh data terurut
- Kompleksitas sangat penting dalam pemilihan algoritma
π 15. Latihan / Diskusi
βοΈ Soal Teori
- Jelaskan pengertian searching
- Apa perbedaan linear dan binary search?
- Mengapa binary search harus data terurut?
π» Soal Praktikum
- Implementasikan linear search
- Implementasikan binary search
- Bandingkan hasil keduanya
π― Penutup
Searching adalah fondasi penting dalam struktur data dan sistem informasi modern, karena:
- Digunakan di database
- Digunakan di mesin pencari
- Menjadi dasar algoritma lanjutan