Tehnik Searching
Tehnik Pencarian :
1. Tehnik Pencarian Tunggal :
A. Tehnik Sequential Search / Linier Search
B. Tehnik Binary Search
2. Tehnik Pencarian Nilai MAXMIN:
A. Tehnik StraitMAXMIN
A. Tehnik Sequential Search / Linier Search
•
Sequential search adalah metode pencarian sebuah data dari suatu kumpulan data dimana
data dicari dari depan ke belakang atau dari awal sampai akhir data tanpa harus data
tersebut terurut. Konsepnya yaitu dengan melakukan perbandingan data satu per satu
secara berurutan sampai data tersebut ditemukan ataupun tidak ditemukan.
•
Proses dalam sequential search :
•
Pertama, data melakukan perbandingan satu per satu secara berurutan dalam kumpulan
data dengan data yang dicari sampai data tersebut ditemukan atau tidak ditemukan
•
Pada dasarnya, pencarian ini hanya melakukan pengulangan data dari 1 sampai dengan
jumlah data (n)
•
Setiap pengulangan dibandingkan data ke-i dengan data yang sedang dicari
B. Tehnik Binary Search (Binary Search)
•
Binary Search
•
Adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data
dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada sekumpulan
data yang sudah diurutkan terlebih dahulu dari angka terbesar ke kecil atau sebaliknya.
•
Contoh deret elemen array : 10, 44, 25, 88, 97, 55, 16, 27, 42, 23
•
Urutkan elemen secara menaik, sehingga diperoleh : 10, 16, 23, 25, 27, 42, 44, 55, 88, 97
•
Algoritma dari binary search terhadap N elemen dapat dijelaskan seperti berikut:
•
1. Low = 1 , High = N
•
2. Ketika Low <= High Maka kerjakan langkah No .3, Jika tidak Maka kerjakan langkah No.7
•
3. Tentukan Nilai Tengah dengan rumus mid = ( Low + High ) Div 2
•
Keterangan : div 2(dibagi 2)
•
4. Jika X < Nil. Tengah Maka High = Mid –1
•
5. Jika X > Nil. Tengah Maka Low = Mid +1
• Misalkan kita mempunyai sederatan data dalam array nilai sebanyak 10 elemen seperti deret elemen array di atas dan akan dilakukan pencarian data 88 terhadap array.
• Deret : 10, 16, 23, 25, 27, 42, 44, 55, 88, 97 (sudah diurutkan)
• Indeks: 1 2 3 4 5 6 7 8 9 10
• 1. Tentukan low dan high. Low = 1(didapat dari indeks pertama) High = 10 (indeks terakhir array/n). Jadi low = 1
• high = 10
• x = 88(nilai yg dicari)
• 2. Low<=High 1<=10 maka kerjakan langkah no 3 diatas.
• 3. Mid(Nil.Tengah) = (low+high) div 2
• mid = (1+10) div 2
• mid =5(dibulatkan)
• jika x > mid maka low = mid+1
• 88 > 27(mid/indeks 5) low = 5+1
• low = 6
• jadi x=88 low = 6 high = 10 karena x belum sama dengan Nil.Tengah maka dilanjutkan langkah no 3 diatas lagi
A. Tehnik StraitMAXMIN :
BEST CASE
STUDI KASUS :
Diketahui sebuah data yaitu 2,6,8, dan 10. Tentukan / cari bilangan Max&Min
serta jumlah operasi perbandingan yang dilakukan!!!
Jawab: Diketahui 2 6 8 10 Data
0 1 2 3 Urutan Deretnya
Kemudian samakan Max dan Minnya agar mendapat nilai minnya :
Max Min A[0] = 2
2 2
Langkah Pertama masukkan rumus :
i=1
A[1] > Max Min = 2
6 > 2 Max = 6
Setelah membandingkan urutan deretnya yaitu (6) dengan Maxnya yaitu (2),
kita mendapatkan Max yg lebih besar yaitu (6). Maka dari itu kita tulis Minnya
: 2 (didapat dari penyamaan awal Max&Min), dan Maxnya : 6 (didapat dari
hasil perbandingan).
i=2
A[2] > Max Min = 2 8 > 6 Max = 8
Setelah membandingkan urutan deretnya yaitu (8) dengan Maxnya yaitu (6), kita mendapatkan Max yg lebih besar yaitu (8). Maka dari itu kita tulis Minnya : 2 (didapat dari penyamaan awal Max&Min), dan Maxnya : 8 (didapat dari hasil perbandingan).
Langkah ketiga, Ulangi proses sama seperti langkah sebelumnya, hanya mengganti Urutan deretnya saja :
i=3
A[3] > Max Min = 2 10 > 8 Max = 10
Setelah membandingkan urutan deretnya yaitu (10) dengan Maxnya yaitu (8), kita mendapatkan Max yg lebih besar yaitu (10). Maka dari itu kita tulis Minnya : 2 (didapat dari penyamaan awal Max&Min), dan Maxnya : 10 (didapat dari hasil perbandingan).
Maka untuk masalah tersebut dapat digunakan procedure STRAITMAXMIN yang menghasilkan bilangan Min=2 dan bilangan Max=10, Operasi perbandingan data mencari bilangan Max&Min Dri himpunan tersebut (4-1) = 3 kali operasi
Worst Case
Pengertian dari WORST CASE :
Terjadi jika elemen dalam himpunan disusun secara decreasing ( menurun
). Dengan Operasi perbandingan sebanyak 2 ( n-1) kali satuan operasi.
Contoh :
Cari elemen MaxMin dan jumlah Operasi perbandingan yang dilakukan
terhadap himpunan A yang disusun decreasing. A(1) = 25, A(2) = 21, A(3) =
17, A(4) = 15, A(5) = 13.
Penyelesaian :
Average Case
Jika pencarian elemen MaxMin dilakukan pada elemen dalam himpunan yang tersusun secara acak ( tidak decreasing / tidak increasing )jumlah operasi. Perbandingan yang dilakukan adalah rata – rata waktu tempuh best case dan worst case yaitu ½[(n-1) + 2(n-1)]=(3n/2 – 1)kali
• Contoh
• Pada Himpunan A(1) = 15, A(2) = 7, A(3) = 11, A(4) = 3, A(5) = 5,A(6) = -2 dilakukan pencarian elemen max & min dengan menggunakan proses STRAIT MAXMIN. Berapa elemen maxmin yang didapat dan jumlah operasi perbandingan yang dilakukan.
• Penyelesaian :
• Elemen Max = 15, dan elemen min = -2 Jumlah operasi perbandingan adalah (3 (6/2)-1)=8 kali satuan operasi.
• DEFINISI SEARCHING STRAIT MAKSMIN
• Shearcing strait maksmin adalah program untuk mencari data atau nilai yang lebih besar atau lebih kecil dari data yang lain. Dalam program ini inputan berupa kumpulan data, maksutnya bahwa data yang dimasukkan lebih dari satu.
Langkah-langkah dari proses hamper mirip yang berbeda hanya nilai yang dicari. Penggunaan operator (<, lebih kecil) dan (>, lebih besar) sering digunakan dalam proses ini. Operator diatas digunakan sebagai pembanding antara data pertama dan selanjutnya.
• Prose awal pada searching strait maksmin ini adalh inisial, elemen pertama dari suatu data disimpan dan diinisialkan terlebih dahulu lalu dijadikan sebagai pembanding pertama. Jika ada elemen yang bernilI lebih rendah atau lebih tinggi dari elemen pertama, maka elemen kedua inilah yang akan disimpan dan diinisialkan, yang selanjutnya akan dibandingkan dengan elemen data yang lain sampai elemen data ke-N.