PENGGUNAAN VOLANTEER COMPATING DI PERGURUAN TINGGI
Yustinus Eko Soelistiol, Pujianto Yugopuspito2 lFakultas ICT, Universitas Multimedia Nusantara Scientia Garden, Jl. Boulevard Gading Serpong, Tangerang, Banten 2Research and Development Computer Lab. Universitas Pelita Harapan Jl. M.H. Thamrin Boulevard, Tangerang, Banten t+6221-54220808 Telp.: ext. 2503.,2+622t-SqeO90i, e-mail:
[email protected], 'puj ianto. yugopuspito@uph. edu
Abstract
rumit. Semakin banyqk doto dan/atau semaKn rumit perhitun gan yang dibutuhkan maka semakin
An extremely complex set of problems, such as finding better way to cure diseases, refining astronomical model, discovering new atom, exploring space object, and many more, needs more computation power than ever before. There are two ways as work around this problem, first by cornbining their computation power resources, and second by asking the public to join their effort by lending their computer to be used. This two methods are what we call volunteer computing. Volunteer computing gives the public opportunity to get involved in researches where initially exclusive. This paper discusses on how yolunteer computing can enhance research project in a university in a flexible, budget wise, and secure way. Two examples are discussed: travel sales problem and a soil deformation simulation, by rneans irnplementing BOINC. As a result, volunteer computing can also help nurture creativity and productivity for both lectures and students.
Kqtwords: distributed computing, grid computing, volunteer computing.
1. PENDAHULUAN
Teknologi informasi sudah
sangat
berkernbang. Teknologi komputer sudah bukan merupakan hal baru pada jaman ini. Di Indonesia sendiri terutama di kota besar, komputer sudah hampir dimiliki oleh semua orang baik dalam
bentuk high-powered komputer seperti PC dan laptop, maupun dalam bentuk compact seperti smart-phone dan tablet. Terlebih di lingkungan akademi, dimana komputer digunakan secara
lama waktu yang diperlukan untuk merroses. Komputer umum dalam kategori PC secara rata-
rata dapat melnroses sekitar 1,6 Giga Flops. Sebagai perbandingan, penelitian yang dilakukan
oleh SETI@Home dapat mengumpulkan sekitar 535.169 Giga Flops [1]. Bila dibandingkan maka, seorang peneliti perguruan tinggi yang hanya
diberikan sebuah PC untuk
bekeg'a,
membutuhkan waktu sekitar 334.000 kali lipat lebih lama bila melakukan penelitian seperti yang dilakukan proyek SETI@Home. Keterbatasan ini dapat menghambat kemajuan penelitan di sebuah perguruan tinggi.
Agar dapat melakukan penelitian
yang
membutuhkan sumber daya lebih dari I Giga Flops, peneliti harus memiliki komputer dengan
kemampuan yang lebih besar atau mendapat tambahan komputer. Kedua cara tersebut tentu saja akan membutuhkan dana tambahan. Hal ini juga sering menjadi harnbatan bagi peneliti, terutama peneliti yang bekerl'a secara independent atau peneliti yang bekerja di perguruan tinggi dengan dana terbatas. Untuk itu dibutuhkan sebuah metode untuk mengatasi kedua hal itu. Metode tersebut harus dapat membantu peneliti untuk mendapatkan tambahan computation power dengan biaya yangtidak terlalu tinggr. Salah satu cara untuk meningkatkan computation power adalah dengan menerapkan parallel computing. Yang dimaksud dengan parallel computing adalah sebuah cara untuk melakukan komputasi menggunakan komputer dimana komputasi dilakukan secara bersamaan t1]. Dengan menggunakan cara ini, tugas
kalkulasi yang biasanya dilakukan berurutan (serial) dapat diselesaikan
secara secara
intensif. Walaupun demikian, tidak seluruh kemampuan komputer tersebut digunakan secara
bersamaan.
merata untuk tujuan sebuah perguruan tinggi yaitu pembelajaran dan penelitian.
peke{aan yang biasanya dilakukan oleh sebuah komputer. Parallel computing secara uml]m dibagi meqjadi tiga jenis yaitu multicore
Penelitian yang kompleks
umrururya
Carairi akan mengurangi waklu yang dibutuhkan dan dapat mengurangi beban
melibatkan banyak data dan perhitungan yang
Penggunaan Volunteer Computing... (Y. E. Soelistio, P. Yugopuspito)
191
computing, symmetric multiprocessing, dis
dan
tributed computing -
Multicore computing dan
symmetric
multiprocessing adalah cara untuk melakukan
parallel computing dengan membagi
tugas
2, METODE Pendekatan yang digunakan dalam tulisan ini adalah kajian pustaka dan memberikan pemikiran
cara penerapannya
memberikan
di perguruan tinggi
komputasi di beberapa processor dalam sebuah
mengimplemantasi BOINC, source la].
melakukan parallel computing dengan mernbagi tugas komputasi ke beberapa CPU. Secara umum, parallel computing mempunyai skalabilitas lebih
3.
central processing unit (CPU). Sedangkan distributed computing adalah' cara untuk
tinggi daripada multicore computing
symmetri c mul tipro
c es s
dan
ing.
Distributed computing da;n volunteer computing
Implementasi distributed computing dapat dilakukan dengan tiga cara yaitu cluster computing, massive parallel computing, dan grid computing. Dis tribute d c omputing bekery' a dengan menggabungkan CPU dari beberapa komputer.
grid computing dengan cluster computing dan massive parallel computing adalah grid computing menggonakan
Perbedaan utama antara
koneksi internet sebagai sarana komunikasi antar CPU.
Volunteer computing merupakan salah satu bentuk grid computing. Dasar utama volunteer computing adalah klien secara sukarela ikut serta dalam menyelesaikan persoalan scientific 12,3). Setiap klien pada volunteer computing dapat memilih apakah komputer yang terhubung ke scheduler server merupakan dedicated client atau tidak. Registrasi klien menggunakan sistem terbuka dimana klien dapat dengan bebas mendaftarkan diri, dan demikian juga bebas untuk memisahkan diri. Klien dapat dengan bebas raenentukan kapan dan seberapa besar CPU resource yang dapat digunakan untuk nrenyelesaikan task. Dilain piha( scheduler server menentukan jents task dan validitas dari hasil task yang diselesaikan klien. Klien dapat dengan bebas menolak atau menerima task yang dikirim, tetapi klien tidak dapat melihat secara detil taskyang diterima (black box). Ada dua perbedaan sifat klien antara volunteer computing dengan gridcomputing [4]: 1) Resource komputasi pada grid computing bisa dipercaya sehingga tidak membutuhkan replikasi task, sedangkan pada volunteer computing replikasi /aslr dibutuhkan untuk menghindari hasil yang salah. 2) Implementasi klien pada grid computing biasanya terjadi secara otomatis, sedangkan pada volunteer computing implementasi klien dilakukan sepenuhnya oleh us er.
192
dengan dengan suatu aplikasi open-
dua contoh yaitu
DISKUSI
Skema volunteer computing terdiri dari tiga bagian yaitu aplikasi, server, dan klien. Tidak semua aplikasi bisa diimplementasikan ke dalam skema volunteer computlng. Terdapat tiga syarat sebuah aplikasi bisa diimplemtasikan: 1) Aplikasi tersebut harus bisa dibagi menjadi sub-aplikasi yang lebih kecil dan dapat dij alankan secara mandiri. 2) Aplikasi yang dijalankan harus mendukung proyek yang mempunyai nilai positif di masyarakat.
3) Aplikasi tersebut tidak
menggunakan
resoltrce jaringan dan computation power
yang terlalu besar.
Server pada volunteer computing disebut dengan middleware. Server inimempunyai empat
komponen utama yaitu scheduler, validator, assimilator, dan storage. Scheduler berf,mgsi sebagai pembagi task ke klien. Aplikasi yang telah dibuat akan dibagi menjadi beberapa task dan akan didistribusikan ke klien. Scheduler jlga berfungsi sebagai filtertask mana saja yang akan diberikan ke klien dengan spesifikasi tertentu, sedangkan validator berfungsi sebagai pemeriksa hasil dari klien. Sebuah task hanya akan dikategorikan sukses bila hasil /ask tersebut masih berada di dalam parameter yang ditentukan oleh validator. Pada umumnya sebuah task akan dikirim ke dua atau lebih klien untuk proses validasi, terutama bila task tersebut sensitif terhadap perbedaan sistem operasi. Bila dua atau lebih hasil sebuah task di!,ategorikan valid maka hasil tersebut akan melalui assimilator yang kemudian disimpan ke dalam storage.
Gambar komponen
vo
1
menunjukkan diagram skema
lunt e er c omputing.
Disain implementasi Implementasi
skema
volunteer computing terbagi menjadi tiga bagian
yaitu aplikasi, middleware, dan klien.
Fokus
implementasi aplikasi terjadi pada pembagian struklur aplikasi sehingga bisa dibagi menjadi task yang mandiri dan dapat berjalan secara
paralel, serta plaform dimana task akan dijalankan di klien. Sebuah aplikasi dapat
Jurnal llmiah llmu Komputer, Vol. 9 No. 2 Maret 2013: 191-198
mempunyai beberapa sub-aplikasi yang kemudian dibagr menjadi beberapa /asfr. Sebuah aplikasi juga dapat mempunyai beberapa versi platfurm
sistem operasi, misalnya aplikasi untuk sistem operasi Windows i386, Windows x64, Linux i386, Linux AMD64, Apple i386, Apple x64, danARM. Idealnya sebuah aplikasi mempunyai beberapa versi platform agar dapat menjangkau lebih
banyak klien. Disain aplikasi
juga
harus
memperhatikan struktur sistem operasi terutama aplikasi yang membutuhkan aklarasi fl oating point yang tinggi.
menggunakan aplikasi yang sudah banyak dikembangkan seperti BOINC dan QADpZ. Implementasi volunteer computing pada klien melibatkan instalasi aplikasi agent. Agent ini berfungsi sebagai task manager dan sarana komunikasi antara klien dengan aplikasi. Aplikasi agent didisain agar mudah digunakan dan dapat be{alan di berbagai platfurm agar dapat digunakan di banyak klien. Aplikasi agent jtga harus manageable oleh klien dan memberikan akses penuh ke klien untuk mengatur jalannya task.
Untuk melihat ' bagaimana volunteer computing dapat digunakan sebagai sarana penelitian di perguruan tinggi, maka akan diambil
tiga contoh implementasi. Paper ini akan membahas pseudo disain aplikasi, middleware, dan agent klien. Strukfur aplikasi, middleware, dan agent klien akan menggunakan generalisasi
daiplatftrm BOINC.
Contoh implementasi penelitian
l:
mencari dengan implementa si tr av e lli n g s al e s m an p r o ble m (T Sp) Contoh ini mengambil situasi dimana penelitian akan berusaha mencari n;/,e shortest path untuk berpergian ke beberapa titik lokasi di Jakarta dengan mengimplementasikan TSP. Penelitian akan menggunakan peta Jakarta sebagai sumber informasi rute. Peta tersebut akan dibagi menjadi beberapa bagan yang setiap bagiannya mewakili 500 m2 wilayah Jakarta, sehingga iuar Jakarta yang mencapai 661,52 km2 akan dibagi menjadi 1,324 bag;an Pada setiap bagian dipilih 20-50 titik lokasi, termasuk titik lokasi yang akan digunakan untuk menghubungkan antar bagian wilayah. Maka titik lokasi di selwuh Jakarta dapat menjadi 66.200 titik [b].
rute perjalanan terbaik di Jakarta
Gambar 1. Skema alur volunteer computing
Middleware dapat diimplementasikan dengan mernbuat modul scheduler, validator, as similator, dan storage. Modul validator dan assimilator dapat merupakan bagian dari aplikasi atau cukup berupa script yang berjalan di server, sedangkan
storage dapat menggunakan aplikasi database yang sudah ada seperti MySQL, postgreSel, MSSQL, dan lain sebagainya. Scheduler dapat
Disain aplikasi untuk contoh ini adalah aplikasi TSP, lihat garnbar 2 skema aplikasi. Aplikasi akan mengambil input berupa bagian peta wilayah beserta dengan titik lokasi. Output aplikasi adalah list titik awal dan tujuan, beserta titik-titik diantaranya yarrrg merupakan rute perjalanan. Aplikasi ini akan dijalankan berulang kali untuk semua bagian peta secara paralel. Aplikasi dibuat dengan bahasa pemprograman untuk sistem operasi Microsoft Windows x86. Untuk memperbesar jangkauan klien, aplikasi juga akan disebarkan untuk sistem operasi Microsoft Windows x86_64, Linux x86, Linux x86_64, Apple x86, dan Apple x86_64 dengan menggunakan wrapper yang disediakan BOINC.
193
r
Gambar 2. Skema alur aplikasi mencari rute perjalanan terbaik di Jakarta
Aplikasi akan dimasukan ke
dalam
middleware. Scheduler pada middleware akarr mendistribusikan aplikasi beserta data input
194
dalam bentuk task. Distribusi task akan dikategorikan menjadi tiga kelompok (1) ?as& dengan 40-50 titik lokasi hanya akan diberikan
Jurnal llmiah llmu Komputer, Vol. 9 No. 2 Maret 2013: 191-198
kepada klien yang memiliki Graphics Processing
Unit (GPU), (2) Task dengan 30-40 titik lokasi akan diberikan kepada klien dengan spesifikasi minimum x86_64, dan (3) Task dengan 20-30 titik lokasi dapat diberikan kepada semua klien. Setiap task akan didistribusikan sebanyak tiga kali ke klien yang berbeda. Hasil dari task akan diterima dan diperiksa oleh validator. Sebuah hasil hanya dianggap valid bila setidaknya dua task yang sama memberikan hasil yang masih berada dalam parameter validator. Hasil yang valid akat disimpan oleh assimilator ke dalam storage. Bila sebuah task bel:um menghasilkan setidaknya dua buah hasil yang valid dan task tersebut sedang hanya dikerjakan oleh kurang dari tiga klien, maka scheduler akan memberikan
salinan /asfr tersebut ke klien yang lain untuk dikerjakan. Setiap task memiliki tenggang waktu pengerjaan. Bila task belum selesai dikerjakan oleh klien pada jangka waktu tersebut ma?,a task
di klien itu akan dinyatakan
tidak valid dart salinan task yang sama akan didistribusikan scheduler ke klien lain. Kapasitas aplikasi dan data input akan dibatasi menjadi maksimal20MB, dan data output dibatasi menjadi maksimal
lMB
agar tidak memberatkan 1rJien. File aplikasi dan data input yang diunduh klien akan dihapus oleh
agent klien ketika task telah selesai
(atau
dibatalkan).
Agent klien menggunakan agent yang telah disediakan oleh BOINC. Klien hanya perlu meinstall agent tersebut dan mengarahkan ke situs proyek tempat aplikasi dij alankan. Tabel 1. Hasil uji coba algoritma TSP berdasarkan waktu lamanya proses (detik)
No.
Sequential
Paralel
I
45.619193
2
45.536608
0.0000s2
J
45.542211
0.000061
4
45.533113
0.000079
5
45.648466
0.000064
6
45.918738
0.000051
7
46.08041
0.000068
8
45.504877
0.000087
sehingga membentuk
full
mesh denganjarak antar
terpendek untuk awalan satu kota saja. Uji coba dilakukan sebanyak 10 kali menggunakan MPI pada dua node. Pada percobaan paralel jumiah kota dibagi dua. Setiap bagian dike4'akan oleh
satu node sehingga sebuah node
akan mengerjakan enam kota, dan lainnya mengerjakan
tujuh kota. Hasil percobaan dapat dilihat tabel
pada
1.
Tabel 1 menunjukan rata-rata (mean) proses paralel jauh lebih cepat dibandingkan proses sequential. Hal ini' dapat te{adi karena kompleksitas algorima greedy yang mencapai O(n!). Dengan mernbagi n : 13 menjadi nt : 6 dan n2 : 7, te4adt perbedaan jumlah proses sebesar 6! : 13! danT!: l3!.Walaupun demikiarl percobaan ini tidak memperhitungkan faktor waktu transaksi data arrtar node. Semal
menjadi besar yang pada akhirnya akan memperlama penyelesaian TSP secara keseluruhan.
Contoh implementasi penelitian
2:
simulasi
pengaruh struktur bangunan terhadap
penurunan tanah di Jakarta Contoh penelitian ini mengarnbil situasi dimana peneliti ingin
mendapatkan hasil simulasi pengaruh pembangunan terhadap kondisi penurunann tanah di Jakarta. Peneliti mempunyai parameter dan
variabel untuk struktur bangunan
dan
pengaruhnya terhadap penurunan tanah. Peneliti
menentukan
bahwa struktur bangunan
mempunyai 20 variabel dengan parameter yang merupakan deret hitung 0 sampai 10.000. Setiap variabel saling berhubungan dan variasi tersebut
0.000062
mempunyai pengaruh yang berbeda atas penurunan tanah. Peneliti juga menentukan bahwa penurunan tanah mempunyai 10 variabel dengan parameter deret hitung 0 sampai 1.000. Setiap variabel penunman tanah juga saling
9
45.49829
0.000062
berhubungan.
l0
45.3s8375
0.00006r
Mean
45.6240282
0.0000647
1
Contoh implementasi ini diuji coba untuk melihat perbedaan performa Nfiara aplikasi TSP yang dijalankan secara sequential dengan yang
dijalankan secara paralel.
Percobaan menggunakan algoritma TSP greedy dengan jumlah kota : 13. Setiap kota saling terhubung
Penelitian
ini
menggunakan dua aplikasi,
yaitu aplikasi yang menghitung
pengaruh
perubahan parameter setiap variabel terhadap seluruh variabel penurunan tanah, dan aplikasi
yang menghitung pengaruh masing-masing
variabel penurunan tanah terhadap variabel penurunan tanah yang lain, lihat garnbar 3. Aplikasi pertama akan dibuat secara native untuk sistem operasi Microsoft Windows x86_64,
Penggunaan Volunteer Computing.. (Y. E. Soelistio, P. Yugopuspito)
195
Apple x86_64, dan Linux x86_64. Aplikasi ini akan di porting dengan menggunakan wrapper untuk sistem operasi Microsoft Windows x86, Apple x86, dan Linux x86, sedangkan aplikasi kedua akan dibuat secara native untuk Microsoft Windows x86_64, Apple x86_64, Linux x86_64, Microsoft Windows x86, Apple x86, dan Linux x86. Paramater akan menjadi data input yang dibagi menjadi empat kelas: 1) Untuk klien dengan GPU dan basis x86_64 akan diberikan data input sebesar 8.00010.000.
2) Untuk klien 3)
dengan basis x86_64 akan
diberikan data input sebesar 4.000-8.000. Untuk klien dengan GPU dan basis x86 akan diberikan dala input sebesar 1 .000-4.000.
4) Untuk klien lairurya akan diberikan data input sebanyak 0-1.000.
Setelah sebuah hasil dinyatakan valid, hasil tersebut akan melalui assimilator untuk disimpan ke dalam storage. Bila belum valid, maka scheduler akan mendistribusikan salinan task yang sama ke klien lain. Implementasi agentHien juga menggunakan agent BOINC yang di-install dan diarahkan ke situs proyek tempat aplikasi dijalankan.
Contoh implementasi
ini juga diuji
coba
menggunakan MPI yang berjalan di atas empat node. Percobaan dilakukan dengan melakukan perkalian matriks A dan B dengan dimensi 20 x
20. Setiap elemen matriks A berbeda dengan elemen matriks B, dan masing-masing elemen akan disimulasikan dengan mengubah nilai elemen dari 0 sampai 9. Dengan demikian matriks dan B akan dikalikan sebanyak 20 x 20 x 10
A
kali.
Percobaan paralel dilakukan dengan
Bke node yang berbeda secara bergantian dan FIFO.
mengirim perkalian baris A dan kolom Scheduler akan mendistribusikan aplikasi dan data input berdasarkan p I atfu rm. T abel 2. Pembagian task pada
penelitian simulasi
pengaruh struktur bangunan terhadap penurunan tanah di Jakarta Platform Win x86_64 (GPU), Apple x86_64
(GPLf, Linux x86_64 (GPU)
Win x86 (GPU), Apple x86 (GPU), Linux x86 (GPU)
Apple Linux x86_64 Win x86_64,
x86
64,
Win x86, Apple x86, Linux x86
Aplikasi Bangunan dan tanah Tanah
Data input
8.000-10.000
1.0004.000
Tanah
0-1.000
Tanah
Tabel 3. Hasil uji coba perkalian matriks 20
d""g* p"*buh* -ir, r"b*V.k Percobaan Sequential 66.6s
43.07
J
64.s
42.77
4
64.45
42.71
5
64.51
42.85
6
64.26
42.92
7
66.04
8
66.2
9
66.84
42.86
10
66.38
42.8s
65.611
43.938
Mean
Task yang sudah selesai akan memberikan hasil berupa list vaiabel dan parameter, serta pengaruhnya terhadap variabel dan parameter yang lain. File apllkasi dan data input maksimum yang dikirim ke klien adalah 3MB, dany'le hasil sebesar maksimum 2MB. Hasil yang dikirim kembali ke middleware akan melalui validator. Validator akan menyatakan sebuah /as& sukses bila tasktersebut mempunyai dua buah hasil yang masih berada dalam batasan validator dan dapat diselesaikan dalam jangka waktu yang ditentukan.
196
Paralel 42.95
2
0-1.000
Hasil percobaan
x20
kali
66.28
4.000-8.000
0-1.000
10
I
0-1.000
Bangunan dan tanah
Bangunan dan tanah Tanah
Percobaan dilakukan sebanyak 10 kali dan wakru lamanya proses akan disimpan. Berikut adalah hasil percobaan.
46.29 50.1
I
memperlihatkan proses
paralel lebih cepat 33% daripada
proses
sequential. Percobaan ini tidak memperhitungkan besaran kapasitas data input yang dikirim ke node. Kapasitas akan berpengaruh pada lamanya waktu transaksi data antar node. Semakin besar data yang dikirim ke node maka semakin lama waktu transaksi. Walaupun demikian data yang terlalu kecil juga akan meningkatkan frekuensi transaksi
sehingga
total waktu untuk
simulasi juga dapat semakin lama.
Jurnal llmiah llmu Komputer, Vol. 9 No. 2 Maret 2013: '191-198
menyelesaikan
t
Gambar 3. Skema alur aplikasi simulasi pengaruh struktur bangunan terhadap penurunan tanah di Jakarta
Penggunaan Volunteer Computing... (Y. E. Soelistio, P. Yugopuspito)
197
4. HASIL
jelas dan terbuka mengenai penelitian
Perguruan tinggi bisa mendapatkan berbagai keuntungan ketika menggunakan skema volunteer c omputing dalam penelitian. Keuntungan pertama, perguruan trnggi tersebut dapat memperoleh computational power yang lebih besar dengan dana yang tidak terlalu besar. Hasil dua uji coba di atas memperlihatkan bahwa waktu proses dapat dipersingkat dengan penarnbahan resource node yang digunakan secara paralel. Tambahan
dilakukan dan manfaatnya.
resource tersebut dapat diperoleh baik dari internal perguruan tinggi (desktop grid), atau dari masyarakat umum. Keuntungan kedua, volunteer computing dapat meningkatkan kolaborasi dalam sebuah penelitan. Dengan membuka kesempatan
kepada siapa saja untuk terlibat, volunteer computing dapat menumbuhkan keingintahuan murid dan pengajar lain untuk turut terlibat di dalam penelitian yang sedang dilakukan. Ketiga, perguruan tinggi dapat menggunakan volunteer computing sebagai salah satu fasilitas akademik untuk seluruh anggota perguruan tingg. Dengan demikian dapat meningkatkan mutu dan jumlah penelitian di perguruan tinggi. Untuk mendapatkan hasil yang maksimal dari volunteer computing dibutuhkan beberapa hal. I/olunteer computing bersandar pada sifat sukarela sehingga keterbukaan dan komunikasi sangat dibutuhkan. Menurut Oded Nov et al. [5],
klien dapat lebih berkontribusi lebih terhadap penelitian bila mereka mempunyai sarana berkomunikasi
dan
5. [1]
DAFTAR. PUSTAKA Anderson and G. Fedak, The Computational and Storage Potential of Volunteer Computing, Space Sciences
D. P.
Laboratory, U.C. Berkel ey, 2006.
[2] L. F. G. Sarmenta, Volunteer Computing, Department of Electrical Engineering and Computer Science, Massachusetts Institute
of
Technology,200l. [3] D. P. Anderson and K. Reed, "Celebrating
Diversity in Volunteer Computing", Proceeding in HICSS'09 42'd Hawaii, pp. 1-8, 2009. [4] D.P. Anderson, E. Korpela, R. Walton, HighPerformance Task Distribution for Volunteer Computing, Space Science Laboratory, University of California, Berkeley, 2005. [5] O. Nov, D. Anderson, O. Arary, Yolunteer Computing: A Model of the Factors Determining Contribution to Communitybased Scientific Research, Polytechnic Lrstitute of New York University, New York, NY, USA,2O1O. Websites:
[a] BOINC, (20 I 2), http ://boinc.berkeley. [b] Bank Data Jakarta, (2012),
http ://www j akarta. go. id/web/bankdata
bersosialisasi mengenai penelitian yang sedang berlangsung. Selain itu, peneliti juga harus memberikan informasi yang
198
yang
Jurnal llmiah llmu Komputer, Vol. 9 No. 2 Maret 2013: 191-198
edu/