akan menjadi tujuan crawling. Setelah data dengan sekumpulan URL, kemudian men-
yang diinginkan telah ditemukan, maka data download setiap halamannya, mendapatkan
tersebut akan disimpan di database dan akan link dari setiap page yang dikunjungi
digunakan untuk proses selanjutnya. kemudian mengulangi kembali proses
Selain itu, aplikasi ini juga memanfaatkan crawling pada setiap link halaman tersebut.
Google Gears agar web berjalan secara offline
sehingga web tetap dapat diakses walaupun 3. Google Gears
tanpa koneksi internet. Dengan menggunakan Google Gears adalah sebuah open source
Google Gears, aplikasi akan berjalan lebih untuk browser yang memungkinkan seorang
cepat sehingga proses pencarian informasi developer dapat membuat web yang mampu
semakin cepat pula karena proses crawling berjalan secara offline. Yang dimaksud
akan dijalankan di background process. dengan berjalan secara offline adalah sebuah
web tetap dapat diakses di komputer lokal
2. Web Crawler tanpa terhubung dengan koneksi internet.
Web Crawler merupakan program yang Tidak semua aplikasi dapat dijalankan secara
pengumpul informasi yang hasilnya akan offline, hanya website yang telah didesain
disimpan pada sebuah database. Sebuah web secara khusus untuk google gears yang dapat
crawler akan berjalan menelusuri halaman menggunakan seluruh fitur dan kemampuan
web dan mengumpulkan dokumen-dokumen gears ini secara maksimal. Google gears
atau data-data di dalamnya. Selanjutnya web merupakan software open source yang berada
crawler akan membangun sebuah daftar dibawah lisensi New BSD, dimana dengan
indeks untuk memudahkan proses pencarian. lisensi ini memungkinkan seorang user untuk
meng-install gears ke software milik pribadi
tanpa ada batasan apapun. Ada 2 cara yang
dapat dilakukan dalam menggunakan aplikasi
gears, yang pertama adalah dengan
menambahkan API atau software yang
tersedia pada aplikasi yang akan
didistribusikan kepada end user. Cara yang
kedua adalah dengan menulis sebuah web
yang memerlukan instalasi gears pada
komputer user.
Gambar 2.1 Arsitektur Web Crawler
Sebuah aplikasi dapat me-manage cache digunakan antara worker dan halaman HTML.
dengan menggunakan 2 class, yaitu: HttpRequest API menyediakan fitur agar
• ResourceStore, untuk meng-capture ad- dapat mengakses objek dokumen dan
hoc URL dengan menggunakan kemampuan untuk mengirimkan request
JavaScript. Dengan class ini, secara sikron.
memungkinkan aplikasi untuk
mendapatkan data file user yang 4. Algoritma Greedy
dibutuhkan untuk dikirimkan bersamaan Algoritma greedy merupakan sebuah
dengan URL, seperti file PDF atau file algoritma untuk menentukan solusi optimum
image. dari sebuah persoalan. Solusi optimum adalah
• ManagedResourceStore, class yang sebuah solusi yang bernilai maksimum atau
digunakan untuk mengambil minimum dari sekumpulan alternatif solusi
sekumpulan URL yang dideklarasikan yang memungkinkan untuk dipilih. Algoritma
di manifest file. Manifest file adalah greedy menggunakan metode langkah per
sebuah file yang berisi data file yang langkah dimana pada setiap langkah akan
dapat diakses ketika aplikasi berjalan membentuk solusi. Setiap langkah solusi
offline. Data file tersebut bisa berupa memiliki banyak pilihan. Oleh karena itu,
link URL, image, PDF dan lainnya. harus dibuat keputusan yang terbaik dalam
menentukan pilihan di setiap langkahnya.
3.2. Database Keputusan yang telah diambil pada suatu
Modul ini digunakan untuk menyimpan langkah tidak dapat diubah lagi pada langkah
data-data aplikasi web pada komputer user. selanjutnya.
Setelah dilakukan sikronisasi dari internet ke Algoritma greedy memiliki 5 elemen
komputer lokal, maka data hasil sinkronisasi penting, antara lain:
akan disimpan ke database lokal komputer. 1. Himpunan kandidat, berisi elemen-
Database yang dibuat oleh aplikasi google elemen pembentuk solusi.
gears akan disimpan di direktori komputer 2. Himpunan solusi, berisi kandidat-
user dimana lokasi penyimpanannya kandidat yang terpilih sebagai solusi
tergantung pada browser dan platform yang persoalan.
digunakan. 3. Fungsi seleksi (selection function),
memilih kandidat yang paling
3.3. WorkerPool memungkinkan mencapai solusi
Modul ini digunakan untuk membuat web optimal. Kandidat yang sudah dipilih
dapat beroperasi di background proses, seperti pada suatu langkah tidak pernah
adanya sinkronisasi data antara server dengan dipertimbangkan lagi pada langkah
komputer user. Penggunaan WorkerPool selanjutnya.
memungkinkan user untuk menjalankan 4. Fungsi kelayakan (feasible function),
banyak file JavaScript secara bersamaan di memeriksa apakah suatu kandidat
background process tanpa menurunkan yang telah dipilih dapat memberikan
kinerja user interface. WorkerPool dapat solusi yang layak, yakni kandidat
diasumsikan sebagai sekumpulan proses. Jika tersebut bersama-sama dengan
ada perubahan variabel di salah satu proses, himpunan solusi yang sudah terbentuk
maka tidak akan mengubah variabel di proses tidak melanggar batasan (constraints)
yang lain. Dan jika sebuah worker di-create, yang ada. Kandidat yang layak
maka tidak akan secara otomatis mewarisi dimasukkan ke dalam himpunan
kode script dari parent-nya. Sekumpulan solusi, sedangkan kandidat yang tidak
proses dari WorkerPool saling berhubungan layak dibuang dan tidak pernah
satu dengan lainnya dengan cara mengirimkan dipertimbangkan lagi.
objek yang berisi pesan menggunakan fungsi 5. Fungsi obyektif (objective function),
sendMessage(). yaitu fungsi yang memaksimumkan
atau meminimumkan nilai solusi
3.4. HttpRequest API (misalnya panjang lintasan,
HttpRequest API mengimplementasikan keuntungan, dan lain-lain).
kumpulan XMLHttpRequest sehingga dapat