PERTEMUAN 11
TEHNIK SEARCHING
• Dalam proses pemrograman serching/pencarian
biasanya digunakan untuk proses update atau
penghapusan data  sebelumnya melakukan proses
pencarian data.
• Penyisipan data pada sekumpulan data, jika data
sudah ada maka proses penyisipan tidak
diperkenankan.
• Jika data tidak ada maka proses penyisipan dilakukan
tujuan digunakan agar tidak terjadi duplikasi data
DEFINISI SEARCHING
Merupakan algoritma pencarian yang sangat sederhana.
Proses pencarian beruntun adalah proses
membandingkan setiap elemen larik satu per satu secara
beruntun, mulai dari elemen pertama sampai elemen
yang dicari ditemukan dan seluruh elemn sudah
diperiksa.
1. Tehnik Sequential Search / Linier Search
• 13 16 14 21 76 21
Nilai yang dicari: 21
Maka elemen yang diperiksa : 13 16 14 21
Index ketemu : 4
Nilai yang dicari: 13
Maka elemen yang diperiksa : 13
Index ketemu : 1
Nilai yang dicari: 15
Maka elemen yang diperiksa : 13 16 14 21 76 21
Index ketemu : 0
1. Algoritma dari proses Pencarian diatas adalah:
2. Tentukan i=1, Ketemu = 0.
3. Masukan Nilai X  nilai yang dicari.
4. Jika Nilai[i] <> X maka i=i+1, kembali kelangkah 2.
5. Jika Nilai[i] = X maka Ketemu =i.
6. Jika Ketemu = 0 maka Cetak “nilai X tidak ketemu”
7. Jika tidak (Ketemu <>0)Cetak “nilai X ketemu pada
posisi Ketemu”.
8. Selesai.
Algoritma :
1. Low = 1 , High = N
2. Ketika Low <= High Maka kerjakan langkah No .3,
Jika tidak Maka kerjakan langkah No.7
3. Tentukan Mid dengan rumus mid = ( Low + High ) Div 2
4. Jika X < Mid Maka High = Mid –1
5. Jika X > Mid Maka Low = Mid +1
6. Jika X = Mid Maka Nil. Tengah = Nil. Yg
dicari
7. Jika X > High Maka Pencarian GAGAL
2. Tehnik Binary Search
Contoh Data:
Misalnya data yang dicari X= 17
Kerjakan dengan menggunakan teknik pencarian data dengan
metode binary search
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
3 9 11 12 15 17 23 31 35
1. L= 0 , H= 8
2. 2. Ketika L <= H yaitu 0 <= 8, maka ke langkah 3
3. Tentukan Mid rumus = ( Low + High ) Div 2
Mid =(0+8) div 2
Mid = 8 div 2
Mid = 4 -> data pada index tersebut 15
.:. Data Mid =15 Jika X > Mid ke langkah 5
* Yang dimasukkan kedalam rumus adalah indexnya
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
3 9 11 12 15 17 23 31 35
L Mid X H
5. Jika X > Mid Maka Low = Mid +1
17>15, maka L=4+1
L= 5 -> data pada index tersebut 17
.:. Mid = Nil. Yg dicari
• Menentukan / mencari elemen max & min.
• Pada Himpunan yg berbentuk array linear.
• Waktu tempuh/time complexity yg digunakan untuk
menyelesaikan pencarian hingga mendapatkan solusi yg
optimal terbagi atas best case,average case dan worst case.
• BEST CASE (Data diurutkan scr naik/ ascending  n-1)
• WORST CASE (data diurutkan scr turun/ desc 2n-1)
• AVERAGE CASE(data tersusun scra acak3n/2-1)
3. Tehnik Binary MAXMIN
Best Case
• Terjadi jika elemen dalam himpunan disusun secara
increasing (menaik). Dengan perbandingan waktu
n – 1 kali satuan operasi.
• Contoh:
Terdapat himpunan A yang berisi 4 buah bilangan
telah tersusun secara decreasing dengan:
Tentukan/cari bilangan Max & Min serta jumlah
operasi perbandingan yang dilakukan ?
A[0] A[1] A[2] A[3]
2 4 5 10
• Untuk masalah tersebut dapat digunakan procedure
STRAIT MAXMIN yang menghasilkan bilangan Min=2
& bilangan Max=10
• Operasi perbandingan data mencari bilangan
MaxMin dari himpunan tersebut (n-1) = 3 kali operasi
perbandingan.
Worst Case
• Terjadi jika elemen dalam himpunan disusun secara
decreasing (menurun). Dengan operasi perbandingan
sebanyak 2(n-1) kali satuan operasi.
• Contoh:
Terdapat himpunan A yang berisi 4 buah bilangan
telah tersusun secara decreasing dengan:
Tentukan/cari bilangan Max & Min serta jumlah
operasi perbandingan yang dilakukan ?
A[0] A[1] A[2] A[3]
80 21 6 10
• Untuk masalah tersebut dapat digunakan procedure
STRAIT MAXMIN yang menghasilkan bilangan
Max=80 & bilangan Min=10
• Operasi perbandingan data mencari bilangan
MaxMin dari himpunan tersebut 2 (n-1) = 6 kali
operasi perbandingan.
Average Case
• Terjadi jika elemen dalam himpunan disusun secara acak .
Dengan operasi perbandingan yang dilakukan adalahrata-rata
waktu tempuh best case & worst case yaitu 1
2 [(n-1) + 2(n-1)]
• Contoh:
Terdapat himpunan A yang berisi 4 buah bilangan telah
tersusun secara decreasing dengan:
Tentukan/cari bilangan Max & Min:
1. Berapa elemen MaxMin yang didapatkan ?
2. Berapa jumlah operasi perbandingan yang dilakukan ?
A[0] A[1] A[2] A[3]
5 -4 9 7
• Untuk masalah tersebut dapat digunakan procedure
STRAIT MAXMIN yang menghasilkan bilangan Max=9
& bilangan Min=-4
• Operasi perbandingan data mencari bilangan
MaxMin dari himpunan tersebut 1
2 [(n-1) + 2(n-1)] =
3.𝑛
2
− 1 kali operasi perbandingan.
•
3.4
2
− 1
•
12
2
− 1
• 5
Latihan
Latihan
Terdapat urutan bilangan sebagai berikut :
10 4 11 28 12 9 15 2 6
1. Urutkan bilangan tersebut menggunakan
metode :
• Insertion Sort
• Merge Sort
• Selection Sort
• Bubble Sort
• Quick Sort
Latihan
2. Gunakan Binary Search (hasil dari data
yang telah terurut) untuk mencari :
– Angka 10
– Angka 28
– Angka 2

Pertemuan 11 Tehnik Searching

  • 1.
  • 2.
    • Dalam prosespemrograman serching/pencarian biasanya digunakan untuk proses update atau penghapusan data  sebelumnya melakukan proses pencarian data. • Penyisipan data pada sekumpulan data, jika data sudah ada maka proses penyisipan tidak diperkenankan. • Jika data tidak ada maka proses penyisipan dilakukan tujuan digunakan agar tidak terjadi duplikasi data DEFINISI SEARCHING
  • 3.
    Merupakan algoritma pencarianyang sangat sederhana. Proses pencarian beruntun adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan dan seluruh elemn sudah diperiksa. 1. Tehnik Sequential Search / Linier Search
  • 4.
    • 13 1614 21 76 21 Nilai yang dicari: 21 Maka elemen yang diperiksa : 13 16 14 21 Index ketemu : 4 Nilai yang dicari: 13 Maka elemen yang diperiksa : 13 Index ketemu : 1 Nilai yang dicari: 15 Maka elemen yang diperiksa : 13 16 14 21 76 21 Index ketemu : 0
  • 5.
    1. Algoritma dariproses Pencarian diatas adalah: 2. Tentukan i=1, Ketemu = 0. 3. Masukan Nilai X  nilai yang dicari. 4. Jika Nilai[i] <> X maka i=i+1, kembali kelangkah 2. 5. Jika Nilai[i] = X maka Ketemu =i. 6. Jika Ketemu = 0 maka Cetak “nilai X tidak ketemu” 7. Jika tidak (Ketemu <>0)Cetak “nilai X ketemu pada posisi Ketemu”. 8. Selesai.
  • 6.
    Algoritma : 1. Low= 1 , High = N 2. Ketika Low <= High Maka kerjakan langkah No .3, Jika tidak Maka kerjakan langkah No.7 3. Tentukan Mid dengan rumus mid = ( Low + High ) Div 2 4. Jika X < Mid Maka High = Mid –1 5. Jika X > Mid Maka Low = Mid +1 6. Jika X = Mid Maka Nil. Tengah = Nil. Yg dicari 7. Jika X > High Maka Pencarian GAGAL 2. Tehnik Binary Search
  • 7.
    Contoh Data: Misalnya datayang dicari X= 17 Kerjakan dengan menggunakan teknik pencarian data dengan metode binary search A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] 3 9 11 12 15 17 23 31 35
  • 8.
    1. L= 0, H= 8 2. 2. Ketika L <= H yaitu 0 <= 8, maka ke langkah 3 3. Tentukan Mid rumus = ( Low + High ) Div 2 Mid =(0+8) div 2 Mid = 8 div 2 Mid = 4 -> data pada index tersebut 15 .:. Data Mid =15 Jika X > Mid ke langkah 5 * Yang dimasukkan kedalam rumus adalah indexnya A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] 3 9 11 12 15 17 23 31 35 L Mid X H
  • 9.
    5. Jika X> Mid Maka Low = Mid +1 17>15, maka L=4+1 L= 5 -> data pada index tersebut 17 .:. Mid = Nil. Yg dicari
  • 10.
    • Menentukan /mencari elemen max & min. • Pada Himpunan yg berbentuk array linear. • Waktu tempuh/time complexity yg digunakan untuk menyelesaikan pencarian hingga mendapatkan solusi yg optimal terbagi atas best case,average case dan worst case. • BEST CASE (Data diurutkan scr naik/ ascending  n-1) • WORST CASE (data diurutkan scr turun/ desc 2n-1) • AVERAGE CASE(data tersusun scra acak3n/2-1) 3. Tehnik Binary MAXMIN
  • 11.
    Best Case • Terjadijika elemen dalam himpunan disusun secara increasing (menaik). Dengan perbandingan waktu n – 1 kali satuan operasi. • Contoh: Terdapat himpunan A yang berisi 4 buah bilangan telah tersusun secara decreasing dengan: Tentukan/cari bilangan Max & Min serta jumlah operasi perbandingan yang dilakukan ? A[0] A[1] A[2] A[3] 2 4 5 10
  • 12.
    • Untuk masalahtersebut dapat digunakan procedure STRAIT MAXMIN yang menghasilkan bilangan Min=2 & bilangan Max=10 • Operasi perbandingan data mencari bilangan MaxMin dari himpunan tersebut (n-1) = 3 kali operasi perbandingan.
  • 13.
    Worst Case • Terjadijika elemen dalam himpunan disusun secara decreasing (menurun). Dengan operasi perbandingan sebanyak 2(n-1) kali satuan operasi. • Contoh: Terdapat himpunan A yang berisi 4 buah bilangan telah tersusun secara decreasing dengan: Tentukan/cari bilangan Max & Min serta jumlah operasi perbandingan yang dilakukan ? A[0] A[1] A[2] A[3] 80 21 6 10
  • 14.
    • Untuk masalahtersebut dapat digunakan procedure STRAIT MAXMIN yang menghasilkan bilangan Max=80 & bilangan Min=10 • Operasi perbandingan data mencari bilangan MaxMin dari himpunan tersebut 2 (n-1) = 6 kali operasi perbandingan.
  • 15.
    Average Case • Terjadijika elemen dalam himpunan disusun secara acak . Dengan operasi perbandingan yang dilakukan adalahrata-rata waktu tempuh best case & worst case yaitu 1 2 [(n-1) + 2(n-1)] • Contoh: Terdapat himpunan A yang berisi 4 buah bilangan telah tersusun secara decreasing dengan: Tentukan/cari bilangan Max & Min: 1. Berapa elemen MaxMin yang didapatkan ? 2. Berapa jumlah operasi perbandingan yang dilakukan ? A[0] A[1] A[2] A[3] 5 -4 9 7
  • 16.
    • Untuk masalahtersebut dapat digunakan procedure STRAIT MAXMIN yang menghasilkan bilangan Max=9 & bilangan Min=-4 • Operasi perbandingan data mencari bilangan MaxMin dari himpunan tersebut 1 2 [(n-1) + 2(n-1)] = 3.𝑛 2 − 1 kali operasi perbandingan. • 3.4 2 − 1 • 12 2 − 1 • 5
  • 17.
  • 18.
    Latihan Terdapat urutan bilangansebagai berikut : 10 4 11 28 12 9 15 2 6 1. Urutkan bilangan tersebut menggunakan metode : • Insertion Sort • Merge Sort • Selection Sort • Bubble Sort • Quick Sort
  • 19.
    Latihan 2. Gunakan BinarySearch (hasil dari data yang telah terurut) untuk mencari : – Angka 10 – Angka 28 – Angka 2