Hallo semua kali ini kita akan belajar apa itu searching ????
haaaaaah searching ??
ya searching. Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat pencarian data dapat berupa array dalam memori(pencarian internal), bisa juga pada file pada external storage(pencarian external). yah itu saya kutip dari blog made yoga ,
dan kali ini saya akan jelasin 2 macam methode searching , apa itu ???
pertama adalah Metode Pencarian Beruntun (Sequential Search) dan
kedua adalah metode Pencarian Bagi Dua (Binary Search).
Oke mari Kita Bahas , langsung ke prakteknya
1. Sequential Search (Pencarian berurutan)
Adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.
Adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.
Algoritma pencarian berurutan dapat dituliskan sebagai berikut :
kita mencari data 5 dari array [,1,2,4,3,5]
maka akan mengecek dari awal sampai data ketemu, jadi akan di periksa satu persatu ,
dengan cara membandingkan seperti ini
apakah 5 = 1 False
apakah 5 = 2 False
apakah 5 = 4 False
apakah 5 = 3 False
apakah 5 = 5 True
jika ada ada di tengah maka akan berhenti ketika kondis menjadi true, dan tidak akan di ualang lagi contoh kita mencari data 5 dari array [,1,2,5,3,4]
apakah 5 = 1 False
apakah 5 = 2 False
apakah 5 = 5 True
Jika data sudah ketemu maka tdk akan diproses lagi :-)
oke kita cari dengan perulangan ekarang dengan soal di bawah , carilah data 40
didefinisikan
diatas adalah aray X
x[0] = 100
x[1] = 50
x[2] = 40
x[3] = 66
x[4] = 20x[5] = 10
kita cari dengan cara mengurutkan dengen perulangan
i=0;
while(i <= 5){
if(x[i]==40){
alert("Data Ketemu");
}else{
i++;
}
}
dari perulangan di atas akan mengecek satu persatu data array dan menyamakannya dengan data yg akan di cari .......
oke itu sedikit penjelasan tentang Sequential Search (Pencarian berurutan)
2. Pencarian Bagi Dua (Binary Search)
Merupakan salah satu metode pencarian yang menangani kasus terburuk (worst case) pada pencarian secara berurutan. Proses pencarian binary search hanya dapat dilakukan pada data yang sudah berurutan. Cara pencarian binary ini adalah dengan membagi dua elemen penampung nilai dan membandingkan nilainya.
Algoritma dari binary search adalah:
Algoritma dari binary search adalah:
1. Tentukan posisi awal = 0 dan posisi akhir = N – 1
2. Hitung posisi tengah = (posisi awal + posisi akhir) / 2
3. Bandingkan data yang dicari dengan elemen posisi tengah
· Jika data yang dicari sama maka catat posisi dan cetak kemudian berhenti
· Jika lebih besar maka akan dilakukan pencarian kembali ke bagian kiri dengan nilai posisi awal = posisi tengah + 1 dan posisi akhir tetap kemudian ulangi mulai poin 2
· Jika nilai datanya lebih kecil maka akan dilakukan pencarian kembali ke bagian kiri dengan nilai posisi awal tetap dan nilai posisi akhir = posisi tengah – 1 kemudian ulangi mulai poin 2.
1. Mencari x[17]
Kesimpulan :
Dari pembahasan contoh soal di atas dapat disimpulkan bahwa jika mencari data yang sudah terurut maka metode yang paling efisien digunakan adalah metode Binary Search dan sebaliknya jika kita ingin mencari data yang teracak metode yang sebaiknya digunakan adalah metode Sequantial Search
Contoh soal
Carilah dengan menggunakan metode Sequansial search dan Binary search
1. Mencari x[17]
· Sequansial Search
1. 17 != x[0] = yes = indeks ++
2. 17 != x[1] = no = Temukan x[1] x[1] = 17
1. 17 != x[0] = yes = indeks ++
2. 17 != x[1] = no = Temukan x[1] x[1] = 17
· Binary Search
2. Mencari x[23]
· Sequensial Search
1. 23 != x[0] = yes = indeks ++
2. 23 != x[1] = yes = indeks ++
3. 23 != x[2] = no = Temukan x[2] x[2] = 23
1. 23 != x[0] = yes = indeks ++
2. 23 != x[1] = yes = indeks ++
3. 23 != x[2] = no = Temukan x[2] x[2] = 23
3. Mencari x[78]
· Sequansial Search
1. 78 != x[0] = yes = indeks ++
2. 78 != x[1] = yes = indeks ++
3. 78 != x[2] = yes = indeks ++
4. 78 != x[3] = yes = indeks ++
5. 78 != x[4] = yes = indeks ++
6. 78 != x[5] = no = Ketemu x[5]
1. 78 != x[0] = yes = indeks ++
2. 78 != x[1] = yes = indeks ++
3. 78 != x[2] = yes = indeks ++
4. 78 != x[3] = yes = indeks ++
5. 78 != x[4] = yes = indeks ++
6. 78 != x[5] = no = Ketemu x[5]
Kesimpulan :
Dari pembahasan contoh soal di atas dapat disimpulkan bahwa jika mencari data yang sudah terurut maka metode yang paling efisien digunakan adalah metode Binary Search dan sebaliknya jika kita ingin mencari data yang teracak metode yang sebaiknya digunakan adalah metode Sequantial Search
penjeleasan binary search di dapat dari laman berikut INi
Oke guys kali ini cukup penjelasan saya untuk searching Terimakasih dan salam ShareCode
sourch kodenya mana ka?
ReplyDeletegan itu kalo ada inputan angka yang sama terus mau menampilkan kedua angka itu gimana ya
ReplyDeleteMAKASIHHH BANGETTT KAKKKK TUGASKU JADI KEBANTU
ReplyDelete^_^
Bagaimana kalau yang dicari ternayata terfapat 2 elemen??
ReplyDeleteBagaimna cara menampilkan keduanya??