Dokumen ini membahas tiga algoritma utama pencarian data dalam array: sequential search, binary search, dan interpolation search. Sequential search membandingkan data secara berurut dari awal hingga akhir array. Binary search membagi ruang pencarian menjadi setengah pada setiap iterasi. Interpolation search mencari posisi estimasi berikutnya tempat data dicari berada. Dokumen ini juga berisi contoh kode dan penjelasan alur kerja dari ketiga algoritma tersebut.
2. Pendahuluan
• Pencarian data bertujuan untuk mencari
dan mendapatkan data yang terdapat
dalam sekelompok data array, baik dalam
array 1 dimensi maupun array 2 dimensi.
• Algoritma pencarian data yaitu :• Algoritma pencarian data yaitu :
1. Sequential search
2. Binary search
3. Interpolation search
3. 1. Algoritma Pencarian Sequential
• Teknik pencarian data dari array yang paling
mudah adalah sequential search.
• Data yang dicari dibandingkan dengan data mulai
dari index terkecil ke index terbesar, maupun
sebaliknya.
• Jika data ditemukan, maka proses pencarian• Jika data ditemukan, maka proses pencarian
selesai.
• Keunggulan : Jika data yang dicari terletak di awal
maka waktu pencarian datanya sangat cepat.
• Kelemahan : Jika data yang dicari paling belakang,
maka waktu pencarian datanya sangat lama
• Cocok digunakan untuk mencari data dalam
jumlah yang kecil.
4. 1 2 3 4 5 Posisi indeks
A = 0 3 6 10 1
Carilah 6 dari data A! Proses pencarian adalah
sebagai berikut :
• Apakah a[1]=6? Jika sama, maka data• Apakah a[1]=6? Jika sama, maka data
ditemukan. Jika tidak sama, maka lanjutkan
pencarian ke index berikutnya. Hasilnya tidak
sama.
• Apakah A[2]=6?. Hasilnya tidak sama, maka
lanjutkan pencarian ke index berikutnya.
• Apakah A[3]=6?. Hasilnya sama berarti data
ditemukan, maka kita keluar dari loop
pencarian.
5. Algoritma
• Mulai
• Input data array
• Tentukan data yang dicari
Cari data dalam loop• Cari data dalam loop
• Informasikan hasil pencarian data. (Ada atau
tidak).
• Selesai
7. 2. Pencarian Biner (Binary search)
• Pencarian Biner adalah pencarian data secara eliminasi
biner berulang/terus-menerus.
• Artinya adalah pada saat pencarian data, 1 kelompok
data yang sudah berurutan dibagi menjadi 2
subkelompok.
• Lalu salah satu subkelompok dieliminasi, sehingga
ruang lingkup pencarian data menjadi lebih sedikit.ruang lingkup pencarian data menjadi lebih sedikit.
• Kemudian subkelompok yang tersisa dibagi lagi
menjadi 2 subkelompok lagi, demikian dilakukan secara
berulang-ulang.
• Cocok digunakan untuk mencari data dalam jumlah
yang besar
• Beban komputasinya kecil.
8. Algoritma Binary Search
– Cari posisi atau indeks data tengah dengan rumus:
(posisi awal + posisi akhir) div 2
– Bandingkan data yang dicari dengan data yang di
tengah, apakah sama atau lebih kecil, atau lebih
besar?
– Jika data cari lebih besar, maka proses pencarian– Jika data cari lebih besar, maka proses pencarian
dicari dengan posisi awal adalah posisi tengah + 1
– Jika data cari lebih kecil, maka proses pencarian
dicari dengan posisi akhir adalah posisi tengah – 1
– Ulangi proses pencarian hingga selesai Jika data
sama, berarti data ditemukan. Jika tidak, berarti data
tidak ditemukan.
9. Contoh : Diketahui data :
1 2 3 4 5 6 7 8 9 (Posisi)
[ 21, 25, 28, 33, 38, 39, 48, 49, 69]
Carilah data 28?
1. Awal =1, akhir=9
Posisi = (awal+ akhir) div 2 = 5
Data[5]=28? TidakData[5]=28? Tidak
Data[5]<28? Tidak
Data[5]>28? Ya, akhir=posisi - 1 = 4,awal =1
2. Posisi = (awal+ akhir) div 2 = 2
Data[2]=28? Tidak
Data[2]<28? Ya. Awal = posisi +1 = 3, akhir =4
3. Posisi = (awal+ akhir) div 2 = 3
Data[3]=28? Ya. Data ditemukan
10. 3. Algoritma Pencarian Interpolasi
• Interpolation search (Pencarian Interpolasi) adalah
metode pencarian dengan cara mencari letak/posisi
data yang akan dicari.
• Data harus diurutkan lebih dahulu
• Rumus mencari posisi :
Kunci adalah data yang dicari
Jika data[posisi] > data yg dicari, Akhir = posisi – 1
Jika data[posisi] < data yg dicari, Awal = posisi + 1
Jika Awal<Akhir, ulangi pencarian posisi
11. • Pencarian interpolasi tidak mencari posisi
TENGAH seperti halnya algoritma pencarian
biner, melainkan mencari posisi berikutnya
dimana data yang dicari berada.
Contoh :Contoh :
Diketahui data :
1 2 3 4 5 6 7 8 9 (Posisi)
[ 21, 25, 28, 33, 38, 39, 48, 49, 69]
Carilah data 27 dan 49?
12. Cari Data 27
Awal = 1, Akhir =9
Cari data selama awal < Akhir
Data[2]=27? Tidak
Data[2]<27? Ya, awal = Posisi +1 = 3, akhir = 9
Data[3]=27? Tidak
Data[3]<27? Tidak. Akhir = posisi -1 = 2, Awal = 3
Hasil : Data tidak ditemukan karena awal>akhir
13. Cari data 49
Awal =1, Akhir =9
Cari data selama awal < Akhir
Data[6]=49? TidakData[6]=49? Tidak
Data[6]<49? Ya. Awal=posisi +1 =7, Akhir =9
Data[8]=49? Ya. Data ditemukan.
15. TUGAS
Buat program pencarian data dengan algoritma :
1. Sequential search
2. Binary search
3. Interpolation search
Kerja kelompok : 1 kelompok terdiri dari 2 tau 3 orang.
NO 2 Untuk No Absen Genap
No 3 Untuk No Absen Ganjil
Hasilnya dikirim ke email, paling lambat 27 Mei 2015.