Kamis, 15 April 2010

Teknik Pencarian (Search Engine)

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 atau 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 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.

Rabu, 07 April 2010

stuktur data

Struktur Data
Objektif
 Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman
 Mengetahui operasi yang terkait dengan struktur data dan metode pemrograman paling umum yang terkait dengan struktur tersebut.
 Mengetahui metode dan notasi yang digunakan untuk menspesifikasi apa-apa yang perlu dikerjakan oleh program dan bagaimana program ini melakukan pekerjaan tersebut.
Jenis/Tipe Data (Data Type)
 Terdiri dari
– Set nilai data
– Set operasi yang bisa diterapkan pada nilai tersebut
Klasifikasi Jenis Data
 Simple Data Type (Jenis Data Sederhana)
– Item data individual
 Data Structures / data aggregates (struktur data)
– Kombinasi dari item data individual
– Membentuk item data lain
Jenis Data Sederhana
 Numerik, terdiri dari :
– Numerik integer (bilangan bulat)
– Numerik real (bilangan riil)
 Karakter, terdiri dari :
– Alfabet : a .. z, A .. Z
– Angka : 0 .. 9
– Simbol khusus : + ? ‘ ! [ ] { } … dll
 Boolean (logika), terdiri dari :
– True
– False
Identifier
 Dalam bahasa pemrograman, item data diidentifikasi menurut namanya, bukan menurut alamat lokasinya dalam memori
 Identifier akan merupakan konstanta jika ia selalu dikaitkan dengan nilai data yang sama
 Identifier akan merupakan variabel jika nilai datanya yang terkait bisa berubah
 Literal, nilai data yang tertera dalam program namun bukan sebagai identifier
Deklarasi Data
 Jenis data konstanta dan variabel harus didefinisikan dalam program sehingga :
– operasi yang tepat dapat dijalankan pada nilai data dan
– Jumlah ruang penyimpanan yang tepat bisa ditentukan
 Statement untuk mendefinisikan jenis data disebut declarative statement
 Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda
 Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code
Struktur Data
 Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit
 Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates
 Beberapa struktur data :
– Array (larik)
– String
– Record
– List (daftar)
– Tree
Array (Larik)
 Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
 Contoh : Nilai = (56 42 89 65 48)
 Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu
– Nilai(1) menunjuk 56
– Nilai(2) menunjuk 42
 Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
 Variabel bisa digunakan sebagai subscript, misalnya Nilai(i).
– Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42
– Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65
 Item data individual dalam suatu array sering disebut elemen
 Matriks
– Array yang hanya berisi bilangan dan tidak ada data alfabetisnya
 Klasifikasi Array
– Array 1 dimensi
– Array multi dimensi