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