Searching (Pencarian Data)


🧭 1. Pengertian Searching

https://images.openai.com/static-rsc-4/qnvLwvw6XjrrJgjVieCJYWsSkuIKDWtOriGkq_OTynhjuaTnmQ1Tk-qSyXdEjCmf6w5LotYtkZbgm6PCQbVf0nftAI3xJJm3nFuUZ5WdfkZOEX_BaN2cgtwTxS4UEUDvVHfyzdYT4G-BidUPCTMlRlHCioa1evZXfdt6_5DgkZIXzNnQFf1P9ZrnE7ZkelaS?purpose=fullsize
https://images.openai.com/static-rsc-4/24wp3fzWKcOIgq85Vf_AnyPRNBGhdmKmXRqZ2pyRXzVkPv5axRlGdNBTeUAIh8q1zbLp-Qo-N6QY4Vz1u4JpfK8_UrHHFMIxEhVzLwiYyMjACpE-BfSXcxNpwnlYMQG8qanEFOYI6yI-H-_HJm1Wsr-hJYD-sEkabI84PgDAvYKeBE0mOnrWpac6bfuXErPb?purpose=fullsize
https://images.openai.com/static-rsc-4/aG4LY8Ahu4A50OokBmUJaCcccufa60usGU91v7KRyCN3HRgmRA8zvcgZceWr814dYvJKlLWKkezE9D0twfp5n5p6MloreSaMAPF8ZogAh6VJk7oNe3xautc0s8dLL6iekPQBjYg9gv6RVfAE-pgMmpFEJyi_f94hUqRXpW52pFfqs51kXS4sZygDWOtsm4qq?purpose=fullsize

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

TujuanPenjelasan
Menemukan dataMencari elemen tertentu
EfisiensiMengurangi waktu pencarian
Validasi dataMengecek keberadaan data
Sistem informasiDasar query database

πŸ” 3. Jenis-Jenis Searching

πŸ“Š Tabel Kategori

JenisKondisi DataEfisiensi
Linear SearchTidak terurutO(n)
Binary SearchTerurutO(log n)

πŸ” 4. Linear Search (Pencarian Linear)

https://images.openai.com/static-rsc-4/O_N1rtajthhwfwjxm3Jdk3zfjrJDXxK3pvC8Iyin4b3iRdY02AYb00qDnPX5Xk3H0dYY2a5teJBtSHOfMoc0latfJKlDc8kCql8ETm4NW6VEhktqy0jOvsrBRd7WNosnVHbBU9l0FjLYz31DtypRwV6uviovuzXoxZOridR-t2NHP2PJx5Ct9Ryy179Cv6Wi?purpose=fullsize
https://images.openai.com/static-rsc-4/RSPVYgyWBBw86hISsYkIaZ2f841ett3gDz10IXqTTrE2R8bDZyujb3LOxvK5MZwPF2eaXI3UaaABLr0rT-_5SQC2zTdKswrpl82TnmNM6rWMLolyxnOYPRd4Pm_syz-Y4fvIfgnsh5sRWpQjZrRtmHA72MY7xisI_zYdsXG87McQEyW0T3uJKfHpYNtf1y8T?purpose=fullsize
https://images.openai.com/static-rsc-4/NJ7DTJZ642YNWNsV7_hz5ipwvtgixzpD8fTF2PwIgh0FhkkuxzSP1Lasw9WYOPwzzExa5nTanIlJrLUuVEZwmJVLBtaNdUnc4Uq6NTE_9drEOCszTi_nT5uTzmr6yQSPr8MqTtah5GFMwGBsqnC_JlMAbURyIVz5EArv5oA2Aqesy0KjiAwsGBajHhCsiVU0?purpose=fullsize

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)

https://images.openai.com/static-rsc-4/u6iDeTtLEDtJ_PeUPrBEYKMCJX0t89DfWmhafLAYRUBXX01B1tY2LQ6F-JfRarcBG6Mda4y2Gt1MK697jRo0_y9N0HMgdu36p0aesriXbS_6LHNgMTcEnLiiuVVPs4kvpq3299_n9WQEfON9X92IkwzVNPJRPIPDuuCt5iyhfvExZJmk7HCiQpEQS-5lrc0O?purpose=fullsize
https://images.openai.com/static-rsc-4/8Z9r0IfAz8qb86LjlVvDBzgFXIGlXDI3A_pkVvQ1QHliK_8kFb8QcP-LsLZC9Pxr4DUDjch8y9gWWCagc28PdjPEB7ZqDB70sZx3TuBM3OgaLNTl8z6Xxc-LUta4g80Ko7EtZgh2kH4Z9vmxMY6panYcr1hX_ImtmfNQEdW7XwaJ_0-USI1j6OyfVSxdGjcT?purpose=fullsize
https://images.openai.com/static-rsc-4/1Oy54YSi9gBiJpDN3zSMBlvwLF2qEyRz8838UXm21hm4UmqUcAVEdeTI9uCK57Ig5H40gWgamWeLJxFx-VSJnEzMeNdQlKUZJHKcT6a_kWlf8QRaE_emlCGn312lmVlRcF0qBu-CGTmGdx2uVWG1LfVhCHBil_lnVijQ_RjXR6xH1DV3aivzgkUMgDETv_n1?purpose=fullsize

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

  1. Tentukan middle (tengah)
  2. Bandingkan dengan data target
  3. Jika lebih kecil β†’ ke kiri
  4. Jika lebih besar β†’ ke kanan
  5. 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

AspekLinear SearchBinary Search
DataTidak perlu terurutHarus terurut
MetodeSequentialDivide & conquer
KecepatanLambatCepat
KompleksitasO(n)O(log n)

🧠 7. Ilustrasi Perbandingan Searching

https://images.openai.com/static-rsc-4/JolJDbipFDufyaqvFQhhppiLDBhGkpOd1FKl1s1wOoqhi8qHvaaQH68FD_dpxL7hLzS5sshYx_27U154vAJ-i_6xv9hBWwHP8tCS1zj3Wz1Bpq41OAVsmUW8ygeDJa9ANojxrcgG1Ho2UtFeG8b7VlMofzbQSAqw88Fb2X_Lr1cqLV1nLiqI-MZeyjle04fS?purpose=fullsize
https://images.openai.com/static-rsc-4/mJ5_vU8yUmnbzJY64knYzlekIl7i-fTAnN18gnZiToqAFHm2s99oufUaUMNi1yegxueo0uu45DoIrfV7hPnYzw7Kr3kzOOwOGfkqOLfqpffYgt4ZJrt9mcgs2AVIgH1Rtp4Fhd7_bJ31XWr96cfmSje9hN6dtq1PhCxbjrOgxr23HnYhzM4IYo7ZMJ38XnI5?purpose=fullsize
https://images.openai.com/static-rsc-4/fJF3DmghWB20TJUlmC_fWxMBOcXcLE6FwTYkbJciOyqILEPKoNydHs24fzXZ5Z1eItV5MJV9pn1_rQLAB3buTQ3VttWk9Lfs-jZvnWCBBrMFBiLZgHObIcAMCRkDL1WvYcZdfx-5so2ptLe_UYjxP_mZmJ5yELM7c_cycWrB8WMKQomVie3gbNhv42zOYqjk?purpose=fullsize

8


βš™οΈ 8. Analisis Kompleksitas Searching

πŸ“Š Tabel Kompleksitas

AlgoritmaBest CaseWorst Case
Linear SearchO(1)O(n)
Binary SearchO(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

MetodeKelebihanKekurangan
Linear SearchMudahLambat
Binary SearchCepatHarus sorted

🧠 13. Kapan Menggunakan Masing-Masing?

πŸ“Œ Panduan

KondisiMetode
Data kecilLinear Search
Data besar & terurutBinary Search
Data tidak terurutLinear 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

  1. Jelaskan pengertian searching
  2. Apa perbedaan linear dan binary search?
  3. Mengapa binary search harus data terurut?

πŸ’» Soal Praktikum

  1. Implementasikan linear search
  2. Implementasikan binary search
  3. 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