Mencoba Aktivitas Belajar Siswa

2.1.2.4. Mengasosiasi

Secara umum, algoritma pencarian data berjalan lambat. Waktu pencarian sebanding dengan banyaknya jumlah data yang ada. Misalkan pada array berukuran n elemen. Maka, pada kasus dimana pencarian x pada array tesebut, x tidak terdapat di dalam array atau x ditemukan pada elemen yang terakhir, kita harus melakukan perbandingan dengan seluruh elemen array, yang berarti jumlah perbandingan yang terjadi sebanyak n kali. Kita katakan bahwa waktu pencarian dengan algoritma pencarian linier sebanding dengan n. Algoritma pencarian linier akan sangat berguna bila digunakan untuk mencari data pada sekumpulan data yang sedikit. Kelemahan dari algoritma pencarian linier adalah mencari data pada sekumpulan data yang banyak, maka membutuhkan waktu yang lama. Pada algoritma liniersearch1 di atas, perbandingan x dengan elemen array dilakukan pada kondisi pengulangan. Apabila elemen array yang ke-i tidak sama dengan x dan i belum sama dengan n, aktivitas perbandingan diteruskan berikutnya i ← i + 1. Perbandingan dihentikan apabila A[i] = xatau indeks i sudah mencapai akhir array i = n. Perhatikan juga bahwa jika i sudah mencapai akhir array. Elemen terakhir ini belum dibandingkan dengan dengan x. Perbandingan elemen terakhir dilakukan bersama-sama dengan menyimpulkan hasil pencarian. Hasil pencarian disimpulkan di luar kalang while-do dengan if A[i] = x then ... Pernyataan if-then ini juga sekaligus memeriksa apakah elemen terakhir, A[n], sama dengan x. Jadi, pada algoritma liniersearch1 di atas, elemen terakhir diperiksa secara khusus. Jika pada array tidak terurut jumlah perbandingan elemen array array maksimum n kali, maka pada array terurut dengan asumsi distribusi elemen-elemen array adalah seragam atau uniform hanya dibutuhkan rata-rata n2 kali perbandingan. Hal ini dikarenakan pada array terurut kita dapat segera menyimpulkan bahwa array x tidak terdapat di dalam array bila ditemukan elemen array yang lebih besar dari x pada larray yang terurut menaik. Jadi dengan begitu, array yang elemen-elemennya sudah terurut dapat meningkatkan kinerja algoritma pencarian linier. menjadi elemen yang ditambahkan ke dalam array. Sebaliknya, jika idx n+1 yang berarti x ditemukan sebelum sentinel, maka hal itu berarti bahwa x sudah ada di dalam array A semula.

2.1.3. Rangkuman

Jadi pada dasarnya algoritma pencarian merupakan langkah-langkah dalam suatu proses pencarian data tertentu dalam sekumpulan data yang mempunyai tipe yang sama. Algoritma pencarian dengan data yang dicari lebih dari satu, maka pencarian selesai bila salah satu data sudah ditemukan. Algoritma pencarian linier adalah proses pencarian dengan membandingkan atau mencari data satu persatu secara linier. Algoritma pencarian linier tidak bagus untuk volume data yang besar. Array yang sudah terurut dapat meningkatkan kinerja lgoritma pencarian linier. Algoritma pencarian linier dengan sentinel adalah melakukan penambahan data pada elemen array. Data dapat simpulkan terdapat pada array jika idx n+1.

2.1.4. Tugas

1. Carilah algoritma pencarian di kehidupan sehari-hari, kemudian tulis algoritmanya Dari algoritma yang diperoleh, tunjukkan algoritma mana yang merupakan algoritma pencarian linier 2. Prosedur algoritma pencarian dapat dipanggil dari program utama atau dari prosedur lain. Misalkan kita asumsikan prosedur liniersearch1 dipanggil dari program utama yang bertujuan untuk memeriksa keberadaan x di dalam array. Jika x terdapat di dalam array maka ditampilkan pesan “ditemukan”, sebaliknya jika x tidak terdapat di dalam array maka ditampilkan pesan “tidak ditemukan”. Lembar Kreativitas Siswa. Buatlah program sederhana untuk mencari data string yang terimpan dalam array of string.