Search engine termasuk media yang pertumbuhan paling cepat dan mempunyai nilai kapital sangat tinggi., Mesin pencari (search engine) adalah sesuatu yang tidak bisa dilepaskan dari budaya nge-net. Dengan bantuan mesin pencari, kita bisa dengan mudah mendapatkan halaman-halaman web yang kita inginkan. Cukup ketikkan kata kunci Anda lalu enter, maka akan ditampilkan untuk Anda sekian banyak weblink yang relevan atau berhubungan dengan kata kunci Anda. Hasil pencarian yang ditampilkan oleh sebuah mesin pencari biasanya berbeda dengan yang ditampilkan oleh mesin pencari yang lainnya. Tergantung pada algoritma pencarian yang dipakai oleh masing-masing mesin pencari. Dengan mempelajari algoritma itulah, para pemilik web melakukan SEO (Search Engine Optimization) untuk menaikkan ranking (urutannya) pada sebuah mesin pencari. kata kunci search engine sebenarnya hanya 3 yaitu relevansi, keberagaman, dan kecepatan. Relevansi menyangkut kesesuain kata kunci pencarian terhadap hasil yang diinginkan oleh pencari(manusia), relevan menjadi sangat rumut bila menyangkut jumlah halaman website dan komposisi kata kuncinya, repotnya lagi perpsepsi kata pada tiap2 bahasa juga berbeda. Keberagaman adalah sebaran hasil pencarian yang beragam tapi tetap relevan, hasil pencarian yang beragam memberikan informasi lebih komplet, bahkan bisa memperluas opini yang sedang kita cari. Kecepatan adalah delay waktu antara mulai pencarian hingga hasil ditampilkan, semakin lambat respon maka pengguna malas memanfaatkannya. Untuk pencarian dan pengurutan nilai terdapat berbagai macam jenis algoritma yang dapat digunakan dengan tingkat keefektifan yang berbeda. Untuk pencarian nilai, ada beberapa jenis metode yaitu pencarian secara linear (sequential search) dan pencarian biner (binary search) untuk table yang telah terurut nilainya (sorted tabel). Pencarian secara linear mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Untuk pengurutan nilai ada beberapa jenis algoritma yaitu count sort (pengurutan dengan mencacah), selection sort (pengurutan dengan menyeleksi), insertion sort (pengurutan dengan penyisipan), quick sort (pengurutan cepat), merge sort (pengurutan dengan penggabungan), heap sort (pengurutan dengan tumpukan), shell sort (pengurutan cangkang), dan bubble sort (pengurutan gelembung). Sequential search 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. Binary search merupakan salah satu metode searching, binary search hanya bisa dilakukan pada data yg telah tersort ato terurut karena proses algoritmanya yg terus menerus membagi data menjadi 2 bagian hingga angka / input yg dicari ditemukan. Selection Sorting adalah teknik atau cara untuk mengurutkan suatu deretan data. Teknik atau algoritma untuk melakukan pengurutan, sesungguhnya ada beberapa, salah satunya: Selection Sort. Selection Sort salah satu algoritma pengurutan yang mudah untuk dipelajari. Konsep dasarnya yaitu : “Melakukan pencarian data terkecil/terbesar pada suatu iterasi. Kemudian data tersebut ditukar dengan data[index]. index=iterasi. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.” Shell Short Tingkat kehandalan suatu algoritma, diukur berdasarkan seberapa baik algoritma itu melakukan pengurutan, dan seberapa cepat prosesnya dilakukan. Shell Sort, salah satu algoritma pengurutan yang lebih handal dibandingkan Selection Sort dan Bubble Sort. Kehandalannya yaitu : “Membagi deret data menjadi dua bagian. Masing-masing bagian diurutkan menggunakan Bubble Sort. Tidak menggunakan iterasi melainkan increment. Perulangan diakukan sesuai nilai increment.” Pengurutan Data ( Sorting ) Teknik Sorting ini dapat digunakan untuk mengurutkan data urut dari kecil ke besar maupun dari besar ke kecil baik unutk data numerik atau alphabetik.Teknik sorting ini sangat banyak sekali caranya, tetapi yang sering digunakan dan relatip mudah yaitu metode “Bubble Sort” dan “Straight Selection“. Metode Bubble Sort Bubble Sort juga salah satu algoritma pengurutan yang mudah untuk dipelajari. Konsep dasarnya yaitu : “Melakukan pembandingan antara ’data[n] dengan data[n+1]’ atau antara ’data[n] dengan data[n-1]’ kemudian jika lebih kecil/besar dilakukan pertukaran. Pada setiap iterasi dapat terjadi beberapa kali pertukaran atau tidak sama sekali. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.” . Metode Straight Selection Metode ini sebenarnya kebalikan dari metode bubble sort. Metode seleksi langsung ini akan memilih nilai yang terkecil dan meletakkannya di urutan terkemuka. Nilai-nilai terkecil berikutnya akan diseleksi dan diletakkan diurutan setelah nilai terkecil pertama, kedua, dan seterusnya sampai akhirnya di dapat nilai yang urut dari kecil ke besar. Program berikut akan mengambil data yang sama dengan metode Bubble sort. Dari hasil output langkah-langkah pengurutan akan tampak perbedaan proses pengurutannya. Merge sort adalah algritma yang digunakan untuk menyusun list yang diberikan dengan cara membagi list yang diberikan menjadi dua bagian yang lebih kecil. Kedua list yang baru ini kemudian akan disusun secara terpisah. Setelah kedua buah list tersusun, maka akan dibentuk list baru yang merupakan hasil penggabungan dua buah list sebelumnya. Menurut keefektifannya, alogaritma ini bekerja dengan tingkat keefektifan O(nlog(n)) Heap Sort Heapsort merupakan salah satu bentuk dari selection sort yang memiliki kompleksitas algorima O(n log(n)) yang menggunakan struktur data heap. Algoritma ini bekerja dengan menentukan elemen terbesar (atau terkecil) dari sebuah daftar elemen, dan diletakkan pada akhir (atau awal) dari daftar tersebut. Heap sort menyelesaikan sebuah pengurutan menggunakan struktur data yang disebut heap.