IMPLEMENTASI JARINGAN PEER-TO-PEER TAK TERSTRUKTUR MENGGUNAKAN PROTOKOL JXTA
CATUR PURBO YUWONO
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
IMPLEMENTASI JARINGAN PEER-TO-PEER TAK TERSTRUKTUR MENGGUNAKAN PROTOKOL JXTA
CATUR PURBO YUWONO
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
ABSTRACT CATUR PURBO YUWONO. Unstructured Peer-to-Peer Network Implementation Using JXTA Protocol. Supervised by SRI WAHJUNI. Internet is useful for communication, exchanging information, and businesses. Most internet network is based on client-server system, which is a centralized network. The server acts as the center of network and has the ability to transfer data as requested by the client. In a client-server system, the network will be down if the server is busy or interrupted. This disadvantage can be solved by Peer-toPeer (P2P) network. In P2P network, client or “peer” can communicate with other peers without relying on the server. One of the P2P network protocols is JXTA protocol, an open source protocol that can connect mobile devices or computers to P2P network. The objective of this research was to implement the unstructured P2P application by using JXTA protocol and additional peer group. In this research, the features of investigated P2P application were chatting within peer group, searching for files, and downloading files. It was found that these features can only be performed by peers that were directly connected to other peers in the same subnet. Furthermore, this research showed that the highest percentage of overhead file was 10.13% and the percentage of overhead protocol did not exceed 0.5%. Keywords: file sharing, JXTA, Peer-to-Peer
Judul Skripsi : Implementasi Jaringan Peer-to-Peer Tak Terstruktur Menggunakan Protokol JXTA Nama : Catur Purbo Yuwono NRP : G64080088
Menyetujui: Pembimbing
Ir. Sri Wahjuni, M.T NIP 196805012005012001
Mengetahui: Ketua Departemen Ilmu Komputer
Dr. Ir. Agus Buono, M.Si, M.Kom NIP. 19660702 199302 1 001
Tanggal Lulus :
KATA PENGANTAR Segala puji serta syukur ke hadirat Allah subhanahu wata’ala yang telah melimpahkan rahmat dan karunia-Nya. Salawat beserta salam tercurahkan kepada Nabi Muhammad shallallahu ‘alaihi wa sallam dengan petunjuk dan bimbingan-Nya, penelitian yang berjudul Implementasi Aplikasi Peer-toPeer Tak Terstruktur Menggunakan Protokol JXTA berhasil diselesaikan. Atas terselesainya penelitian ini penulis ingin mengucapkan terima kasih yang tulus kepada: 1 Orang tua tercinta, Ir. H. Sugijono dan Hj. Dwi Retno Hetty Purweni serta kakakku, Purbo Cahyono, Dewi Angraeini, Dwi Cahyani Purbaningtyas, Yudi Aditya, Tri Hapsari Purbaningrum, yang selalu memberikan kasih sayang, doa, dan dukungan yang tiada henti. 2 Ibu Ir. Sri Wahjuni, M.T selaku pembimbing, yang selalu memberikan nasihat, petunjuk, bimbingan hingga penelitian ini selesai. 3 Bapak Dr. Heru Sukoco, S.Si, M.T dan bapak Ahmad Ridha, S.Kom, M.S sebagai dosen penguji atas segala masukan yang diberikan. 4 Seluruh dosen pengajar dan staf Departemen Ilmu Komputer FMIPA IPB untuk semua yang telah mereka berikan selama mengikuti proses perkuliahan. 5 Melati Seisira yang selalu memberikan semangat dan motivasi dalam menyelesaikan penelitian ini. 6 Teman-teman seperjuangan Halim, Irvan, Melki, Asrori, Dipo, Putra, Ryan, Panji, Dani, Dayat, Yansen, Pradit, Jaka, Momi, Firman, Elbie, Williardi, dan teman-teman Ilmu Komputer IPB angkatan 45, atas segala kebersamaan, bantuan, dukungan, serta kenangan bagi penulis selama menjalani masa studi. Semoga kita bisa berjumpa kembali kelak sebagai orang-orang sukses. 7 Rekan-rekan satu bimbingan Zola, Fitra, dan Hasrul yang telah berjuang bersama-sama dalam melakukan penelitian. Penulis juga mengucapkan terima kasih kepada semua pihak yang telah membantu selama pengerjaan penyelesaian tugas akhir ini yang tidak dapat disebutkan satu per satu. Semoga penelitian ini bermanfaat.
Bogor, Februari 2013
Catur Purbo Yuwono
RIWAYAT HIDUP Penulis dilahirkan di Surabaya pada tanggal 18 Oktober 1990, anak keempat dari empat bersaudara dari pasangan Ir. H. Sugijono dan Hj. Dwi Retno Hetty Purweni. Penulis lulus dari Sekolah Menengah Atas Negeri 2 Bogor tahun 2008 dan diterima di Departemen Ilmu Komputer Institut Pertanian Bogor melalui jalur Beasiswa Utusan Daerah IPB. Selama aktif sebagai mahasiswa, penulis juga aktif mengikuti organisasi Himpunan Mahasiswa Ilmu Komputer sebagai pengurus .NET Divisi Komunitas. Penulis juga aktif di beberapa kegiatan kepanitian antara lain MPD Ilmu Komputer 2010, IT Today 2010, ISEE 2010, IDEA 2011, dan ISEE 2011. Pada tahun 2011, penulis melaksanakan kegiatan praktik kerja lapang di PT. Telekomunikasi Indonesia dengan judul Analisis dan Implementasi pada Sistem Informasi Monitoring Planning and Delivery Cycle (MPDC) Sub Sistem Delivery.
DAFTAR ISI Halaman DAFTAR TABEL ................................................................................................................................ vi DAFTAR GAMBAR ............................................................................................................................ vi PENDAHULUAN Latar Belakang .................................................................................................................................. 1 Tujuan Penelitian .............................................................................................................................. 1 Ruang Lingkup .................................................................................................................................. 1 TINJAUAN PUSTAKA Peer to peer (P2P) ............................................................................................................................ 1 JXTA ................................................................................................................................................. 2 METODE PENELITIAN Analisis Sistem .................................................................................................................................. 3 Perancangan Aplikasi ........................................................................................................................ 4 Implementasi ..................................................................................................................................... 4 Pengujian ........................................................................................................................................... 4 HASIL DAN PEMBAHASAN Analisis Protokol JXTA .................................................................................................................... 4 Analisis Sistem .................................................................................................................................. 6 Perancangan Penambahan dan Perubahan Fungsi ............................................................................. 7 Implementasi Aplikasi ...................................................................................................................... 8 Jaringan Untuk Pengujian ............................................................................................................... 10 Hasil Pengujian ............................................................................................................................... 10 KESIMPULAN DAN SARAN Kesimpulan ..................................................................................................................................... 15 Saran ............................................................................................................................................... 15 DAFTAR PUSTAKA .......................................................................................................................... 15 LAMPIRAN ........................................................................................................................................ 17
v
DAFTAR TABEL Halaman 1 Prosedur pengujian fungsional ......................................................................................................... 13 2 Rata-rata delay antar paket dan overhead file yang dikirim berdasarkan hari ................................. 13 3 Data untuk total paket yang dikirim, waktu yang ditempuh, kecepatan mengunduh ....................... 14 4 Data untuk overhead protokol dan persentase overhead protokol ................................................... 15
DAFTAR GAMBAR Halaman 1 Arsitektur jaringan terpusat (Morkved 2005). ................................................................................... 2 2 Arsitektur jaringan desentralisasi (Morkved 2005)............................................................................ 2 3 Arsitektur jaringan P2P hybrid (Morkved 2005). .............................................................................. 2 4 JXTA layer (Gradecki 2002). ............................................................................................................ 2 5 Metode penelitian. ............................................................................................................................. 3 6 Diagram alir peer masuk ke peer group. ........................................................................................... 5 7 Sequence diagram pengenalan dan pengiriman pesan antar peer. ..................................................... 5 8 Diagram alir chatting protokol JXTA. ............................................................................................... 5 9 Sequence diagram proses mengunduh pada protokol JXTA. ............................................................. 6 10 Diagram alir utama aplikasi Saeed (Saeed 2007). ............................................................................. 6 11 Diagram alir utama aplikasi. .............................................................................................................. 7 12 Class StartJXTA. ............................................................................................................................... 8 13 Pipe Advertisement. ........................................................................................................................... 9 14 Class ModifyXMLFile. ..................................................................................................................... 9 15 Class SaeedSharing............................................................................................................................ 9 16 Class frmMain. ................................................................................................................................ 10 17 Ilustrasi jaringan IPB untuk pengujian. ............................................................................................ 10 18 Syarat dan kententuan aplikasi. ........................................................................................................ 11 19 Peringantan pengguna tidak memiliki file "config.ini". ................................................................... 11 20 Pengguna memilih folder yang akan dibagi. .................................................................................... 11 21 Antarmuka konfigurasi JXTA.......................................................................................................... 11 22 Antarmuka pemilihan peer group. ................................................................................................... 12 23 Keterangan dari aplikasi peer Catur berhasil memasuki peer group A. .......................................... 12 24 Chatting antar peer pada peer group yang sama. ............................................................................ 12 25 Keterangan peer Catur memasuki peer group A. ............................................................................ 12 26 Keterangan peer Irvan memasuki peer group B. ............................................................................. 12 27 Chatting peer Catur di peer group A. .............................................................................................. 12 28 Chatting peer Irvan di peer group B................................................................................................ 12 29 Hasil pencarian file. ......................................................................................................................... 13 30 Status proses mengunduh. ................................................................................................................ 13 31 Grafik antara hari dengan rata-rata delay antar paket. ..................................................................... 14 32 Grafik antara hari dengan overhead file yang dikirim. .................................................................... 14 33 Grafik antara hari dengan total paket yang dikirim.......................................................................... 14 34 Grafik antara hari dengan waktu yang ditempuh untuk mengunduh. .............................................. 14 35 Grafik antara hari dan kecepatan mengunduh. ................................................................................. 15 36 Grafik antara hari dan persetase overhead protokol......................................................................... 15
vi
1
PENDAHULUAN Latar Belakang Pada era globalisasi, ini banyak orang yang sudah tidak asing lagi dengan internet. Saat ini, internet sangat berguna untuk komunikasi, bertukar informasi, dan bahkan ada yang memanfaatkannya untuk bisnis. Banyak orang berpikir jaringan internet yang digunakan adalah jaringan client-server. Client-server merupakan jaringan terpusat, server bertindak sebagai pusat jaringan dan mempunyai data-data yang dapat diberikan ke client sesuai dengan permintaan client. Seiring dengan perkembangan teknologi, client akan terus bertambah dan server pun akan sibuk dengan permintaan client yang banyak sehingga server pun akan kesulitan menanganinya dan apabila server mengalami gangguan maka jaringan tersebut akan terganggu. Peer-to-peer (P2P) adalah sebuah pendekatan untuk medistribusikan file yang ingin dikirim antar peer dapat melalui jaringan internet. Server menyimpan konten dan akan mengirim konten tersebut ke client dengan model distribusi oneto-many. Pada P2P, client atau biasa disebut peer dapat berkomunikasi langsung dengan peer lainnya tanpa bergantung pada server pusat sehingga jaringan P2P cenderung lebih cepat dan lebih dipercaya, asalkan peer tersebut memiliki file dan dapat mengaksesnya (Educause 2009). Jaringan tradisional ini merupakan salah satu solusi untuk menangani permasalahan yang terjadi pada client-server apabila server mengalami gangguan. Suatu jaringan P2P dapat menghubungkan antar komputer baik software maupun hardware tanpa memerlukan server. Aplikasi yang populer seperti uTorrent1, Frostwire2, BitTorrent3, dan sebagainya merupakan aplikasi file sharing dengan menggunakan jaringan P2P. Client dalam teknologi jaringan P2P dapat mengunduh dan mengunggah suatu file. Pada akhirnya paradigma P2P berubah menjadi “people-to-people”. Dari paradigma tersebut banyak orang mengembangkan aplikasi P2P dengan tujuan membentuk suatu komunitas dan saling berbagi file baik itu file musik atau video (Mitchell 2008).
1
http://www.utorrent.com http://www.frostwire.com 3 http://www.bittorrent.com 2
Hingga saat ini banyak peneliti mengembangkan jaringan P2P, salah satunya menggunakan protokol JXTA. JXTA merupakan proyek open source yang dapat menghubungkan pada jaringan P2P mulai dari perangkat ponsel hingga komputer (Gradecki 2003). Tsai et al. (2009) dan Saeed (2007) berhasil mengembangkan aplikasi P2P dengan jaringan terdesentralisasi (tidak menggunakan server sebagai pusat jaringan). Jaringan P2P yang dipakai oleh keduanya menggunakan teknologi JXTA. Dengan merujuk apa yang dilakukan oleh kedua peneliti tersebut, aplikasi yang akan dikembangkan dalam penelitian kali ini ialah aplikasi P2P dengan jaringan desentralisasi (tidak memerlukan server utama) dengan menggunakan protokol JXTA. Perubahan dan penambahan fungsi yang dilakukan pada penelitian kali ini ialah penambahan fungsi pada peer group. Tujuan Penelitian Tujuan dari penelitian ini ialah mengimplementasikan dan menganalisis kinerja sebuah aplikasi P2P dengan jaringan tak terstruktur menggunakan protokol JXTA dan penambahan peer group agar pengguna dapat memilih peer group. Ruang Lingkup Aplikasi yang dikembangkan menggunakan protokol JXTA dengan jaringan Local Area Network (LAN) dan menggunakan jaringan kampus IPB Dramaga untuk pengujian penelitian. Aplikasi ini berfokus pada fungsi chatting dan file sharing ke peer lainnya.
TINJAUAN PUSTAKA Peer to peer (P2P) Sebuah jaringan P2P setiap simpul dapat berfungsi sebagai client dan server pada saat yang sama. Jaringan P2P dapat menyediakan dan mengkonsumsi layanan atau sumber daya. Jaringan P2P tidak memiliki simpul pusat yang untuk mengatur komunikasi antar komputer atau peer, namun akan berkomunikasi langsung antar peer. Ada dua jenis utama dari arsitektur jaringan P2P, yaitu murni dan hibrida. P2P murni sepenuhnya tidak memiliki simpul pusat yang mengkoordinasi sebuah jaringan, sedangkan P2P hybrid menggunakan simpul pusat yang hanya berfungsi sebagai pengidentifikasi dari simpul-simpul yang ingin berkomunikasi (Tsai et al. 2009).
2
Sampai saat ini sudah ada tiga model jaringan P2P, yaitu terpusat, desentralisasi, dan hibrida. Contoh dari aplikasi P2P yang menggunakan arsitektur jaringan yang pertama adalah Napster1. Arsitektur jaringan terpusat menggunakan server sebagai pusat indeks untuk menadah alamat IP dan isi file setiap pengguna. Alamat IP dan isi file akan diperbaharui setiap kali peer akan memasuki jaringan P2P tersebut. Ilustrasinya pada Gambar 1 (Morkved 2005).
Lebih jelasnya akan diilustrasikan melalui Gambar 3 (Morkved 2005).
Gambar 3 Arsitektur jaringan P2P hybrid (Morkved 2005). JXTA Gambar 1 Arsitektur jaringan terpusat (Morkved 2005). Contoh aplikasi P2P generasi kedua yang menggunakan arsitektur jaringan desentralisai adalah Gnutella. Arsitektur ini dirancang untuk menghindari kelemahan dari arsitektur terpusat. Masing-masing peer dari arsitektur ini dapat bertindak sebagai server ataupun client. Ilustrasinya terlihat pada Gambar 2 (Morkved 2005).
JXTA berasal dari kata Juxtapose, yang bearti berdampingan. Teknologi JXTA adalah sebuah open protocols yang dapat dihubungkan pada jaringan P2P mulai dari perangkat ponsel hingga komputer. Saat ini JXTA dibawah lisensi open source sehingga banyak developer yang tertarik dalam pengembangan aplikasi P2P. Sebuah peer JXTA dapat membuat jaringan virtual tempat setiap peer dapat berkomunikasi dengan peer lainnya secara langsung bahkan apabila peers tersebut berada di belakang firewall dan NAT (Morkved 2005). Ada tiga lapisan yang berbeda pada perangkat lunak JXTA yaitu core layer, services layer, dan application layer. Ketiga lapisan tersebut digambarkan pada Gambar 4.
Gambar 2 Arsitektur jaringan desentralisasi (Morkved 2005). Generasi ketiga adalah gabungan dari arsitektur jaringan terpusat dan desentralisasi, dengan mengambil arsitektur terbaik yang biasa disebut dengan arsitektur jaringan hybrid. Pada saat peer client masuk ke dalam jaringan, peer tersebut akan membuat koneksi langsung ke peer pusat dan akan menyimpan informasi peer lainnya yang terhubung dengan pusat. Apabila peer yang satu ingin berhubungan dengan peer lainnya, peer tersebut bisa mengambil alamat informasi dari pusat. Contoh dari arsitektur hibrida ini adalah Direct Connect (DC) network. 1
http://www.napster.com/
Gambar 4 JXTA layer (Gradecki 2003). 1 Core Layer Lapisan ini terbentuk dari semua faktor utama pada jaringan P2P seperti peer, peer group, security, dan monitoring. Dalam lapisan ini terdapat fungsi yang memungkinkan antar peer dapat memasuki dan membuat peer group sehingga antar peer dapat saling mengirimkan pesan melalui pipe.
3
2 Services Layer Lapisan ini berada di atas core layer, untuk menyelesaikan tugas yang diberikan dari core layer. Layanan yang ada pada lapisan ini adalah file sharing, instant messenger. 3 Application Layer Pada lapisan ini, aplikasi perangkat lunak dapat dilihat sebagai layanan bagi peer lainya. Akibatnya, lapisan ini dapat dikembangkan oleh pengembang aplikasi JXTA dan dapat digunakan untuk membuat lapisan service bagi peer lainnya. JXTA menggunakan konsep baru dalam komunikasi P2P, yaitu mengunakan dokumen XML yang akan menjelaskan layanan yang tersedia di jaringan JXTA (Brookshier et al. 2002). Pada JXTA, semua peralatan yang terhubung ke dalam jaringan dapat bertukar pesan dalam format XML dan bekerja sama. JXTA tidak bergantung kepada topologi jaringan yang mendasari (underlying). JXTA berbasiskan format XML dan dapat digunakan pada berbagai bahasa pemrograman modern seperti Java, C#, dan C/C++. Tujuan dari protokol JXTA ialah agar setiap peer dapat membagi sumber daya tanpa mengkhawatirkan tentang topologi jaringan (Saeed 2007). Tujuan dasar yang dicapai platform JXTA meliputi. 1 Setiap peer dapat saling menemukan satu sama lain tanpa ada server terpusat. 2 Peer harus login ke group default JXTA. 3 Peer kemudian dapat mencari, membuat, dan bergabung dengan group yang telah ditentukan. Selain itu, peer harus mengorganisir diri ke dalam peer group. 4 Peer dapat mengiklankan dan mencoba untuk menemukan sumber daya pada jaringan yang tersedia. 5 Peer harus dapat berkomunikasi satu sama lain. 6 Peer dapat memantau satu sama lain. 7 Setiap Peer dalam jaringan JXTA tidak diharuskan mengetahui topologi jaringan untuk dapat berkomunikasi satu sama lain. Protokol JXTA dirancang menjadi jaringan yang dapat berdiri sendiri dan tidak memerlukan penggunaan proses pengesahan apapun, keamanan, atau model enkripsi. JXTA sangat sederhana dan platform umum yang dirancang dengan fungsi dasar untuk menjadi host bagi semua jenis layanan jaringan. Protokol ini juga dapat diimplementasikan pada protokol jaringan lainnya seperti TCP/IP, Bluetooth, dan HTTP. Terdapat enam protokol yang terdapat pada sistem JXTA (Gradecki 2003).
1 Peer Resolver Protocol (PRP) digunakan untuk mengirimkan query ke sejumlah peer lain dan untuk menerima respon. 2 Peer Discovery Protocol (PDP) digunakan untuk mencari resource yang diinginkan. 3 Peer Information Protocol (PIP) digunakan untuk memperoleh informasi status peer (uptime, trafic load, capabilities, state, dsb). 4 Pipe Binding Protocol (PBP) digunakan untuk membuat jalur komunikasi dan pertukaran data antara peer. 5 Peer Endpoint Protocol (PEP) digunakan untuk menemukan rute dari satu peer ke peer yang lain. 6 Rendezvous Protocol (RVP) digunakan untuk menyebarkan pesan dalam jaringan.
METODE PENELITIAN Penelitian ini dikembangkan melalui beberapa tahap yaitu seperti terlihat pada Gambar 5. Analisis Sistem
Perancangan Aplikasi
Implementasi
Pengujian Gambar 5 Metode penelitian. Analisis Sistem Protokol yang digunakan dalam jaringan P2P pada penelitian ini adalah protokol JXTA. Analisis protokol JXTA sangat diperlukan untuk mengetahui cara antar peer dapat berkomunikasi, chatting, dan proses mengunduh. Pada tahap ini analisis sistem juga mencakup pembahasan penelitian sebelumnya yang dilakukan oleh Saeed (2007), yaitu membangun aplikasi P2P dengan menggunakan protokol JXTA. Pada penelitian sebelumnya, aplikasi tersebut hanya bisa chatting dan file sharing dalam satu peer group saja. Penelitian ini akan melakukan perubahan pada chatting dan file sharing yang dapat memilih lebih dari satu peer group.
4
Perancangan Aplikasi Pada penelitian Saeed (2007), aplikasi P2P tersebut tidak bisa memilih peer group mana yang akan pengguna pilih. Melalui penelitian kali ini aplikasi diharapkan bisa memilih peer group mana yang akan pengguna pilih. Pada perancangan penelitian kali ini peer group yang tersedia ada dua. Pengguna dapat memilih salah satu dari peer group yang tersedia. Dalam satu peer group, pengguna bisa chatting dan file sharing ke pengguna lainnya. Pengguna yang berbeda peer group tidak bisa chatting dan filesharing. Implementasi Lingkungan implementasi yang digunakan adalah sebagai berikut: Perangkat lunak: Sistem operasi Windows 7 IDE Netbeans 7.1 JXTA sebagai protokol P2P Bahasa pemograman Java Perangkat keras: Prosessor AMD E-350 1.60 GHz RAM 4 GB Hardisk 500 GB D-LINK Wireless-N Router [DIR-600] Selama implementasi menggunakan DIR-600 sebagai Local Area Network (LAN) untuk mencoba aplikasi P2P. Pengujian Pengujian dilakukan setelah aplikasi selesai diimplementasikan. Aplikasi ini akan dilihat dari segi fungsionalitas. Perangkat uji yang akan digunakan adalah dua komputer. Jaringan yang digunakan untuk pengujian yaitu jaringan kampus IPB Dramaga dengan satu subnet dan beda subnet. Skenario yang dilakukan untuk pengujian ada tiga yaitu, menguji proses unduh dan chatting yang dilakukan pada peer group dan subnet yang sama, menguji proses unduh dan chatting yang dilakukan pada peer group yang berbeda namun masih pada subnet yang sama, dan yang terakhir menguji proses unduh dan chatting yang dilakukan pada peer group yang sama namun pada subnet yang berbeda.
HASIL DAN PEMBAHASAN Analisis Protokol JXTA Menurut Saeed (2007), ada beberapa elemen utama yang berperan dalam jaringan P2P di aplikasi JXTA, yaitu peer, identifiers, peer
group, advertisement, messages, dan pipe. Peer merupakan komponen utama dalam jaringan P2P atau sebuah simpul dalam jaringan JXTA. Saat pertama kali aktif, semua peer akan masuk ke default group atau jaringan global dari JXTA yaitu NetPeerGroup. Setelah masuk ke NetPeerGroup, peer tersebut bisa memasuki peer group dan membuat peer group yang baru. Identifiers merupakan sebuah elemen yang ada dalam jaringan P2P, JXTA menggunakan 128-bit Universal Unique Identifier (UUID). UUID ini dipakai oleh elemen dalam jaringan P2P seperti peer, peer group, service, advertisement, dan lain-lain. UUID ini akan disimpan di advertismens, yang merupakan sekumpulan informasi tentang peer, peer group, service, dan sebagainya. Detail isi advetisment ialah keterangan peer, group, service, maupun pipe. Isi dari informasinya ialah nama, UUID, deskripsi, dan sebagainya tergantung dari sebuah elemen tersebut. Representasi data dari peer, peer group, JXTA message, dan servcie akan disimpan ke dalam advertisement yang berupa dokumen XML. Advertisement digunakan untuk menukarkan informasi yang ada di jaringan JXTA (Brookshier et al. 2002). Elemen lainnya adalah message, yang merupakan objek XML yang dapat dikirim dari satu peer ke peer lainnya. Dalam proses pengiriman message, JXTA menggunakan pipe sebagai jalurnya. Sebelum antar peer dapat berkomunikasi seperti chatting dan file sharing, sebuah peer harus memasuki peer group. Pada Gambar 6 terdapat diagram alir bagaimana proses peer sampai join ke sebuah peer group. Setelah memasuki NetPeerGroup yaitu default group dari jaringan JXTA, peer akan mencari advertisement peer group yang sesuai dengan permintaaan peer. Pencarian dilakukan oleh discovery service dari NetPeerGroup yang bertugas untuk mencari advertisement (peer, peer group, pipe, modules, dan lain-lain). Sebagai contoh adalah pencarian peer group X. Proses pertama yang dilakukan ialah mencari advertisement peer group yang berada di lokal (cache JXTA) dan dilakukan oleh discovery service NetPeerGroup. Isi advertisement yang dicari adalah atribut “Name” dengan isi “peer group X” dan tipenya adalah “group”. Peer akan langsung masuk ke dalam peer group X apabila advertisement tersebut ditemukan di lokal dan apabila tidak ditemukan di lokal maka pencarian selanjutnya mencari advertisement ke peer lainnya. Pencarian tersebut dikirim multicast IP multicast (224.0.1.85). Jika peer lainnya memiliki advertisement yang dicari, dimulailah
5
proses komunikasi yang ada pada Gambar 7, yaitu sequence diagram pengenalan dan pengiriman pesan antar peer. Mulai mencari peer group X
Memasukan data advertisement ke local
Pencarian melebihi empat kali iterasi
Ya
Membuat peer group
Tidak Mencari advertisment dengan attribute “Name” X di local Tidak Mengirimkan data advertisement dari peer yang mempunyai advertisment tersebut
Menemukan advertisment
Tidak Publish new peer group advertisment
Mencari advertisement dengan multicast
Menemukan advertisement
Saling mengirimkan welcome message melalui protokol JXTA
Ya
Ya
Handshake dengan peer lainnya melalui TCP
Join ke peer group
Gambar 6 Diagram alir peer masuk ke peer group.
harus handshake melalui protokol TCP. Proses handshake TCP tersebut terdapat pada sequence kesatu sampai ketiga. Handshake yang terjadi, yaitu pertama-tama peer 1 mengirimkan sinyal ke peer 2 dan jika peer 2 merespons sinyal tersebut dengan mengirimkan sinyal dan acknowledgment, peer 1 dan peer 2 sudah saling mengenal dan dapat saling bertukar data. Sesudah antar peer saling mengenali melalui protokol TCP, selanjutnya antar peer saling mengirimkan welcome message sebagai koneksi pertama kali yang dilakukan antar peer dalam protokol JXTA. Informasi yang dikirim dalam welcome message seperti pada sequence kelima dan keenam adalah alamat IP, peerID, dan flag yang mengontrol untuk koneksi kedua peer tersebut. Jika welcome message sudah saling terkirim, antar peer dapat melakukan pertukaran data melalui protokol JXTA. Setelah proses pengiriman advertisement pada peer 2 ke peer 1 dilakukan melalui protokol JXTA seperti pada Gambar 7, maka advertisement tersebut akan disimpan pada lokal peer. Pencarian peer group akan diulangi dari pencarian lokal advertisement peer group sampai pencarian remote advertisement yang sudah dijelaskan sebelumnya. Iterasi ini akan diulangi sampai dengan empat kali dan apabila advertisement peer group yang dicari tidak ditemukan maka peer akan membuat peer group yang baru dan akan disimpan pada lokal. Pada saat peer sudah menemukan atau membuat peer group, selanjutnya peer akan masuk pada peer group tersebut. Pada umumnya, komunikasi yang dilakukan antar peer pada sebuah peer group ialah chatting dan mengunduh. Pada dasarnya proses komunikasi seperti chatting dan mengunduh antar peer tidak jauh berbeda dengan yang dijelaskan pada Gambar 7. Proses chatting pada JXTA yaitu seperti terlihat pada Gambar 8.
Gambar 7 Sequence diagram pengenalan dan pengiriman pesan antar peer. Sequence diagram di atas menunjukkan proses komunikasi yang dilakukan oleh dua peer yaitu dengan alamat IP peer 1 (192.168.10.101) dan peer 2 (192.168.10.102). Peer 1 melakukan pencarian advertisement melalui IP multicast, dan peer 2 merespons, dengan kata lain peer 2 memiliki advertisement yang dicari oleh peer 1. Proses pengiriman pesan dengan protokol JXTA menggunakan protokol TCP. Peer 1 dan peer 2
Gambar 8 Diagram alir chatting protokol JXTA.
6
Gambar di atas menunjukkan diagram alir chatting pada protokol JXTA. Proses chatting pada gambar di atas menggunakan aplikasi P2P yang dibangun oleh Saeed (2007). Pada saat aplikasi P2P sudah siap digunakan oleh pengguna, salah satu service yang sudah siap adalah chatting listening input. Service tersebut digunakan untuk menangkap sinyal atau pesan dari peer lainnya jika peer lainnya mengirimkan pesan. Proses pengiriman pesan pada fungsi chatting yang pertama dilakukan adalah menutup service chatting listening input peer yang ingin chatting. Setelah service ditutup, peer tersebut akan mencari pipe advertisement yang sesuai dengan nama peer group. Pesan dikirim melauli pipe tersebut, dan peer lainnya akan menerimanya. Proses pengiriman pesan dikirim melalui protokol JXTA setelah peer menemukan pipe advertisement tersebut.
Analisis Sistem Aplikasi P2P yang telah dibangun oleh Saeed (2007) merupakan aplikasi P2P yang menggunakan protokol JXTA. Selain menggunakan protokol JXTA, aplikasi Saeed juga memakai teknologi Java sebagai bahasa pemogramannya. Fungsi utama di aplikasi tersebut ialah mencari file, mengunduh file, dan chatting ke sesama peer group. Diagram alur utama aplikasi Saaed (2007) terlihat pada Gambar 10.
Proses mengunduh menggunakan protokol JXTA mirip dengan proses pengirimkan pesan melalui protokol JXTA. Berikut adalah Gambar 9 merupakan potongan sequence diagram proses mengunduh yang terjadi pada protokol JXTA.
Gambar 9 Sequence diagram proses mengunduh pada protokol JXTA. Gambar di atas menjelaskan proses mengunduh yang terjadi pada protokol JXTA, dengan alamat peer masih sama dengan contoh proses komunikasi sebelumnya. Peer 2 dalam contoh di atas meminta file yang ada pada peer 1, peer 2 yang melakukan pengunduhan sedangkan peer 1 yang mempunyai file tersebut. Pada sequence pertama, peer 2 mengirimkan pesan melalui protokol JXTA ke peer 1. Isi pesan teresbut adalah isi file yang diminta oleh peer 2 ke peer 1. Setelah peer 1 merespons, proses pengiriman file akan dikirim secara bertahap.
Gambar 10 Diagram alir utama aplikasi Saeed (2007). Pada awal aplikasi mulai dijalankan, syarat dan kondisi untuk pemakaian aplikasi tersebut akan muncul apabila kita menerima syarat dan kondisi tersebut kita akan dapat menggunakan aplikasi Saeed. Selanjutnya ialah mencari file konfigurasi bernama “config.ini” di folder yang sama. Apabila file tersebut tidak ditemukan,
7
maka pengguna akan diminta folder mana yang akan dipilih. Alamat dari folder tersebut berfungsi sebagai tempat file yang ingin kita sharing. Setelah itu, service JXTA berjalan dan mencari peer group bernama SaEeDGroup. Apabila peer group tersebut tidak menemukan, peer akan membuat peer group SaeedGroup dan masuk ke SaeedGroup agar dapat berkomunikasi dengan peer lainnya. Setelah masuk ke SaeedGroup maka fungsi-fungsi utama seperti mencari file, mengunduh file, dan chatting ke sesama SaeedGroup akan dapat berjalan. Perancangan Penambahan dan Perubahan Fungsi Aplikasi Saeed ini hanya bisa membuat dan masuk ke peer group SaeedGroup. Penelitian kali ini ada penambahan fungsi pada peer group di aplikasi sebelumnya, yaitu pengguna dapat memilih peer group yang tersedia. Pada segi komunikasi, antar peer yang berbeda peer group tidak bisa berkomunikasi, sedangkan antar peer yang berada dalam peer group yang sama bisa berkomunikasi. Gambar 11 yang merupakan diagram alir utama aplikasi pada penelitian ini. Application terms and condition
Mulai Aplikasi
Mencari berkas configurasi
Accepted
Not Accepted Menemukan berkas “config.ini”
Tidak
Membuat Berkas “config.ini”
Ya
Menemukan folder “.jxta”
Tidak
Set JXTA username dan password
Ya
Aplikasi selesai
Memilih peer group yang diinginkan
Tidak Ya
Mencari advertisment peer group
Aplikasi siap untuk chating
Join peer group
Mencari file yang ingin diunduh
Menjalankan service chatting dan file sharing
Mengunduh file yang dipilih
Menekan tombol exit
Gambar 11 Diagram alir utama aplikasi.
Sesuai dengan diagram alir pada Gambar 11, proses yang dilingkari warna merah merupakan penambahan fungsi dari aplikasi Saeed sebelumnya. Dalam penelitian ini akan ada dua penambahan peer group yaitu peer group A dan peer group B, yang nantinya pengguna dapat memilih salah satu dari kedua peer group tersebut. Proses dari keseluruhan tidak jauh berbeda dengan aplikasi Saeed, yaitu pada saat aplikasi dijalankan muncul aplication terms and condition. Apabila diterima, lanjut ke proses selanjutnya dan jika tidak diterima, aplikasi selesai. Proses yang dilakukan selanjutnya oleh sistem yaitu mencari file konfigurasi yang bernama “config.ini” yang terletak pada folder aplikasi tersebut. File tersebut merupakan file yang berisi alamat folder mana yang akan bisa dilihat oleh peer lainya dengan kata lain alamat folder untuk file sharing. Proses akan berjalan ke selanjutnya jika sudah menemukan file tersebut, dan apabila tidak ditemukan, pengguna akan memilih alamat folder tersebut dan sistem akan membuat file tersebut. Selanjutnya yaitu aplikasi tersebut yang mencari folder “.jxta” yang berada pada folder yang sama pada aplikasi tersebut, yaitu merupakan folder konfigurasi untuk protokol JXTA tempat menyimpannya data dari peerID, peer group, advertisement, dan lain sebagainya. Jika folder tersebut tidak ditemukan, pengguna harus memasukan username dan password, data yang dimasukan oleh pengguna merupakan data peer dari pengguna. Proses selanjutnya merupakan proses penambahan dari aplikasi Saeed, yaitu pengguna dapat memilih peer group yang disediakan oleh sistem, yang sebelumnya pada aplikasi Saeed pengguna tidak dapat memilih peer group dan harus masuk ke peer group Saeed. Seperti yang dikatakan sebelumnya, aplikasi dalam penelitian ini menyediakan dua peer group yang berbeda yaitu Peer group A dan Peer group B. Setelah pengguna memilih peer group yang telah disediakan, proses selanjutnya adalah mencari advertisement dari peer group tersebut. Pencarian advertisement sudah dijelaskan di atas pada sub bab analisis JXTA. Selanjutnya ialah menjalankan service untuk chatting dan file sharing dan setelah service tersebut sudah siap, aplikasi sudah siap untuk chatting pada sesama peer group. Untuk mengunduh file yang ada pada peer lainnya pengguna harus mencari file yang inginkan lalu memilihnya, setelah itu file yang diinginkan akan terkirim melalui protokol JXTA. Aplikasi akan selesai apabila pengguna menekan tombol exit.
8
Implementasi Aplikasi Dalam aplikasi penelitian ini, terdapat tiga belas class yang tercantum pada Lampiran 1, yaitu ChatInput, ChatOutput, CheckSumCalc, DownloadFile, FirstTimeCheck, PeerListing, SaeedSharing, SearchFile, ModifyXMLFile, StartJXTA, dan frmMain. Class utama dari aplikasi Saeed adalah class frmMain. Perbedaan class pada aplikasi penelitian ini dengan aplikasi Saeed sebelumnya tidaklah banyak, namun class yang memiliki banyak perubahan ialah class StartJXTA, frmMain, dan SaeedSharing. Class yang ditambahkan ialah ModifyXMLFile. Class StartJXTA ini memiliki peran penting dalam memasuki jaringan JXTA. Berikut adalah class dari StartJXTA pada Gambar 12.
Gambar 12 Class StartJXTA. Class StartJXTA merupakan bagian inti dari aplikasi ini, karena proses memasuki jaringan JXTA ataupun peer group berada pada class ini. Proses utama yang terjadi pada class StartJXTA adalah peer memasuki jaringan global JXTA, kemudian pengguna memilih peer group dan masuk ke peer group tersebut. Jaringan global JXTA ini biasa disebut NetPeerGroup, yaitu peer group dasar dari jaringan JXTA. Setelah memasuki NetPeerGroup sebuah peer akan bisa membuat atau masuk ke peer group lainnya. Sesuai dengan perancangan aplikasi, pengguna dapat memilih dua peer group yang berbeda yaitu peer group A dan peer group B. Pada proses memasuki jaringan global JXTA dilakukan oleh method launchJXTA. Setelah
memasuki jaringan global JXTA peer mendapatkan discovery service dari jaringan global JXTA, proses ini dilakukan oleh method getServices. Service ini diperoleh untuk mencari advertisement peer group yang pengguna inginkan. Dalam penelitian kali ini peer group terbagi menjadi dua peer group, yaitu peer group A dan peer group B dengan ID terdapat pada Gambar 12. Pemilihan peer group tersebut dilakukan pada method pilih_group. Setelah pengguna memilih peer group, sistem akan mencari advertisement peer group tersebut dengan menggunakan method searchForGroup. Dalam method searchForGroup terdapat pencarian advertisement peer group secara lokal dan remote. Proses pencarian tersebut dilakukan melalui empat kali iterasi dengan menggunakan discovery service yang diperoleh sebelumnya. Apabila advertisement peer group yang dicari telah ditemukan, peer akan masuk ke peer group tersebut dengan menggunakan method joinToGroup. Jika tidak ditemukan, sistem akan menjalankan method createGroup. Pada method createGroup, proses yang dilakukan ialah membuat membuat advertisement peer group yang dicari oleh sistem sebelumnya dengan parent root NetPeerGroup yaitu jaringan global JXTA. Advertisement peer group yang sudah dibuat akan publish ke lokal dan remote melalui discovery service NetPeerGroup, hal ini ditujukan agar peer tersebut dapat berkomunikasi dengan peer lainnya yang berada pada peer group yang sama dan agar selanjutnya pencarian peer group tersebut lebih cepat karena advertisement tersebut disimpan di lokal. Setelah advertisement peer group berhasil dibuat atau ditemukan, selanjutnya peer masuk ke peer group tersebut dengan menggunakan method joinToGroup. Proses komunikasi yang bisa dilakukan antar peer antara lain chatting dan pengunduhan. Komunikasi chatting antar peer membutuhkan pipe advertisement untuk mengirim pesan dari satu peer ke peer lainnya. Pipe Advertisement adalah dokumen XML yang berisi spesifikasi dari pipe advertisement tersebut. Konten dari pipe tersebut adalah Name, Id, dan Type. Konten Name dan Id merupakan nama dan id dari pipe advertisement tersebut. Konten Type untuk pipe advertisement terdapat tiga tipe yaitu JxtaUnicast, JxtaUnicastSecure, dan JxtaPropagate. JxtaUnicast adalah pipe yang mengirimkan pesan ke satu peer sajadan pesan yang dikirim tidak ada keamanan yang baik, sedangkan JxtaUnicastSecure sama halnya dengan JxtaUnicast namun ada kemanan yang
9
baik dalam pengiriman pesan. Untuk tipe JxtaPropagate adalah pesan yang dikirm disebar ke peer lainnya tidak hanya satu peer saja, namun keamanannya sama dengan JxtaUnicast, tidak ada keamanan yang baik untuk proses pengiriman pesan (Brookshier et al. 2002). Contoh isi dari pipe advertisement tersebut seperti pada Gambar 13.
spesifikasi atau isi pipe advertisement menggunakan method changeNamePeergroup. Method tersebut akan mengubah tag XML file tersebut. Tag yang dirubah ialah Name dan Id dan isinya akan berubah sesuai dengan pipe advertisement peer group yang dinginkan. Dalam proses file sharing, aplikasi Saeed (2007) mengunakan Content Management Service (CMS) file sharing JXTA. Class yang mengimplementasikan CMS JXTA tersebut adalah SaeedSharing. Tujuan menggunakan CMS tersebut adalah membuat objek advertisement file agar peer lainnya dapat dengan mudah mencari file yang sudah dibagi oleh peer tersebut. Berikut adalah Gambar 15 yang merupakan class diagram dari SaeedSharing.
Gambar 13 Pipe Advertisement. Pipe Advertisement seperti pada Gambar 13 adalah pipe advertisement yang digunakan pada aplikasi penilitian ini. Pipe Advertisement yang terdapat pada gambar di atas merupakan pipe advertisement untuk peer group A, tipe dari pipe advertisement tersebut adalah JxtaPropagate karena dalam satu group memungkinkan untuk berisi lebih dari dua peer, agar komunikasi chatting dapat diterima oleh seluruh member peer yang berada dalam satu peer group. Dalam aplikasi ini tersedia dua peer group, namun untuk pipe advertisement hanya tersedia satu. Maka dari itu dibutuhkan fungsi untuk mengubah isi spesifikasi pipe advertisement tersebut. Class yang bertugas untuk mengubah pipe advertisement tersebut adalah ModifyXMLFile. Berikut adalah class diagram dari ModifyXMLFile pada Gambar 14.
Gambar 15 Class SaeedSharing.
Gambar 14 Class ModifyXMLFile.
Selama proses implementasi saya menemukan bug yang terdapat pada class SaeedSharing, yaitu objek file sharing tersebut terdapat duplikasi apabila menjalankan aplikasi tersebut lebih dari satu kali. Jumlah yang terduplikasi sama dengan jumlah aplikasi tersebut dijalankan. Jika aplikasi digunakan tiga kali, objek file sharing tersebut terduplikasi sebanyak tiga. Hal ini menganggu pengguna dalam pencarian file yang diinginkan. Proses yang membuat terduplikasi ialah tidak terhapusnya file “shares.ser” di satu folder aplikasi berada. File tersebut terbentuk dengan menggunakan method launchCMS dan isinya adalah kumpulan objek file dari folder yang telah pilih oleh pengguna dan apabila file tersebut tidak dihapus maka objek file sharing akan terus bertambah atau terduplikasi karena objek file sharing sebelumnya masih tercatat di file tersebut.
Atribut dari class tersebut terdiri atas log, ID_A, dan ID_B. ID_A dan ID_B merupakan id untuk pipe advertisement peer group masingmasing peer group A dan B. Masing-masing id tersebut diperoleh dari API JXTA dan disimpan secara statis di class tersebut. Untuk mengubah
Untuk menangani bug tersebut, alur dari SaeedSharing sedikit diubah dengan menyisipkan method deleteCMS pada construct class SaeedSharing. Alurnya menjadi deleteCMS lalu launchCMS. Dengan menyisipkan deleteCMS, objek file dari CMS tersebut tidak
10
terduplikasi karena sebelum menjalankan method launchCMS dijalankan method deleteCMS dengan tujuan menghapus file “shares.ser” tersebut, setelah sukses terhapus maka sistem akan membuat file yang baru dengan menjalankan method launchCMS. Main class dari aplikasi penelitian ini adalah frmMain. Class frmMain merupakan class tempat pengguna dapat mengeksekusi semua fungsi yang terdapat dalam aplikasi ini seperti chatting, mengunduh file, mencari file, dan lainlain. Class ini juga terbentuk dari standar komponen dari java seperti JButton, JTable, JList, dan lain-lain. Berikut Gambar 16 yang menunjukkan struktur class frmMain.
karena class ini memanggil semua class yang ada di aplikasi ini. Perubahan yang terjadi di class ini dengan aplikasi Saeed sebelumnya adalah terdapat pada main, yaitu penambahan fungsi merubah spesifikasi pipe advertisement, yang sebelumnya tidak ada perubahan spesifikasi pipe advertisement. Jaringan Untuk Pengujian Dalam pengujian aplikasi P2P tentunya dibutuhkan sebuah jaringan. Jaringan yang diapakai untuk pengujian aplikasi ini adalah menggunakan jaringan IPB. Penggunaaan jaringan IPB dalam proses pengujian juga di bagi menjadi dua tipe jaringan yaitu jaringan dengan satu subnet dan jaringan dengan beda subnet. Alsan pengujian dibagi menjadi dua tipe jaringan adalah menguji sampai mana aplikasi ini dapat berkomunikasi dengan baik. Ilustrasi jaringan dengan satu subnet dan jaringan subnet yang berbeda adalah sebagai berikut pada Gambar 17.
Router A 172.18.78.1
Router B 172.18.72.1
Hub
Hub
Peer 1 172.18.78.101
Gambar
Peer 2 172.18.78.102
17
Peer 3 172.18.72.101
Ilustrasi jaringan pengujian.
Peer 4 172.18.72.102
IPB
untuk
Jumlah subnet yang ada pada ilustrasi gambar di atas adalah dua, yaitu jaringan A dengan subnet 172.18.78.0 dan jaringan B dengan subnet 172.18.72.0. Pada jaringan A terdapat satu router dan dua peer yaitu router A dengan alamat IP 172.18.78.1, peer 1 dengan alamat IP 172.18.78.101, dan peer 2 dengan alamat IP 172.18.78.102. Begitu juga dengan jaringan B, terdapat satu router dan dua peer yaitu dengan IP router B 172.18.72.1, peer 3 172.18.72.101, dan peer 4 172.18.72.102. Contoh komunikasi pada jaringan satu subnet adalah antara peer 1 dengan peer 2 dan antara peer 3 dengan peer 4, sedangkan komunikasi pada jaringan subnet yang berbeda adalah antara peer 1 dengan peer 3 atau peer 4. Gambar 16 Class frmMain. Class frmMain merupakan parent atau pusat dari semua class yang ada pada aplikasi ini,
Hasil Pengujian Pengujian dalam penelitian ini dibagi menjadi dua yaitu pengujian fungsional dari aplikasi dan pengujian kinerja protokol JXTA.
11
Skenario yang dilakukan dalam pengujian ini adalah dari aplikasi mulai dijalankan, menerima syarat dan ketentuan aplikasi, pemilihan path folder yang akan dibagi, masuk ke jaringan JXTA, pemilihan peer group, mencari file yang ingin diunduh, mengunduh file yang dipilih, dan chatting antar peer pada peer group yang sama. Besar file yang diunduh dalam proses pengujian ialah 5.12 MB. Selama proses pengujian, data untuk lalu lintas jaringan direkam menggunakan Wireshark. Pengujian fungsionalitas dimulai dengan menjalankan aplikasi. Aplikasi ini dibutuhkan Java Runtime Environment (JRE) versi 1.6 untuk menjalankan aplikasi. Aplikasi tersebut berupa file dengan nama “Skripsi.jar”. Pada saat aplikasi dijalankan muncul ketentuan dan syarat dari aplikasi yang berisi informasi mengenai aplikasi tersebut. Dalam kententuan dan syarat tersebut terdapat dua tombol yaitu exit dan accept. Jika pengguna menekan tombol exit, aplikasi akan selesai dan apabila pengguna menekan tombol accept, aplikasi akan mulai masuk dalam pencarian file yang bernama”config.ini”. syarat dan ketentuan aplikasi ini ditunjukkan pada Gambar 18.
Gambar 20 Pengguna memilih folder yang akan dibagi. Setelah berhasil memilih folder yang akan dibagi, proses selanjutnya adalah pengguna akan memasuki jaringan JXTA. Untuk memasuki jaringan JXTA ini, pengguna harus memasukan nama peer dan password. Memasukan nama peer dan password dilakukan pada saat pertama kali pengguna menjalankan aplikasi ini. Untuk selanjutnya, pengguna tidak memasukan nama peer dan password tersebut karena data tersebut sudah disimpan dalam cache. Berikut adalah Gambar 21 yang menunjukkan konfigurasi nama peer dan password.
Gambar 18 Syarat dan kententuan aplikasi. Proses selanjutnya adalah pencarian file yang bernama “config.ini”, jika tidak menemukan file tersebut, akan ada peringatan seperti pada Gambar 19, dan pengguna akan memilih alamat folder yang akan dibagi seperti pada Gambar 20.
Gambar 19 Peringatan pengguna tidak memiliki file "config.ini".
Gambar 21 Antarmuka konfigurasi jxta. Pengguna akan masuk ke jaringan global JXTA sesudah pengguna memasukkan nama peer dan password. Setelah memasuki jaringan global JXTA, sistem memunculkan pilihan peer group yang akan dipilih oleh pengguna. Antar muka pada pemilihan peer group ditujukan pada Gambar 22. Peer group dibagi menjadi dua yaitu peer group A dan peer group B. Peer group
12
yang dipilih dalam pengujian ini adalah peer group A seperti ditujukkan pada Gambar 23.
peer ke peer group ditunjukkan pada Gambar 25 dan Gambar 26. Pengujian yang dilakukan peer Catur mengirimkan pesan sebanyak tiga kali seperti yang ditunjukan pada Gambar 27, begitu juga dengan peer Irvan mengirimkan pesan sebanyak tiga kali seperti yang ditunjukkan pada Gambar 28.
Gambar 22 Antarmuka pemilihan peer group. Gambar 25 Keterangan peer Catur memasuki peer group A.
Gambar 23 Keterangan dari aplikasi peer Catur berhasil memasuki peer group A. Pengujian selanjutnya adalah pengujian fungsi chatting. Dalam pengujian fungsi chatting dibagi menjadi dua, yaitu chatting antar peer pada peer group yang sama dan chatting antar peer pada peer group yang berbeda. Pada Gambar 24 ditunjukkan chatting antar peer dengan peer group yang sama. Pada Gambar 24 pengguna dengan nama peer Catur dan peer Irvan berada pada peer group yang sama, yaitu peer group A. Dalam proses pengujian berhasil yaitu peer Catur mengirimkan pesan sebanyak empat kali dan peer Irvan mengirimkan pesan sebanyak tiga kali, pesan yang dikirmkan oleh masing-masing peer telah tersampaikan ke masing-masing peer.
Gambar 26 Keterangan peer Irvan memasuki peer group B.
Gambar 27 Chatting peer Catur di peer group A.
Gambar 28 Chatting peer Irvan di peer group B.
Gambar 24 Chatting antar peer pada peer group yang sama. Pengujian chatting antar peer pada peer group yang berbeda dilakukan dengan dua peer, masing-masing peer berada pada peer group yang berbeda. Peer Catur berada pada peer group A, sedangkan peer Irvan berada pada peer group B. Keterangan masuknya masing- masing
Pengujian selanjutnya adalah pengujian proses mengunduh file dengan nama “11 Kenny G – Encore.mp3” dan ukuran file tersebut sebesar 5.12 MB atau 5.374.338 bytes. Peer yang mengunduh file adalah peer Irvan dan peer pemilik file adalah peer Catur. Sebelum melakukan proses mengunduh, peer Irvan melakukan pencarian file, hasil pencarian file ditunjukan pada Gambar 29. Setelah file ditemukan, peer Irvan menekan tombol “download” untuk melakukan proses mengunduh. Proses mengunduh yang sudah selesai ditunjukkan pada Gambar 30.
13
Tabel 1 Prosedur pengujian fungsional
Gambar 29 Hasil pencarian file.
Gambar 30 Status proses mengunduh. Prosedur pengujian fungsional aplikasi yang meliputi menerima syarat dan ketentuan aplikasi, pemilihan folder yang akan dibagi, peer memasuki jaringan global JXTA, pemilihan peer group, chatting antar peer pada peer group yang sama, chatting antar peer pada peer group yang berbeda, pencarian file yang ingin diunduh, dan mengunduh file yang dipilih. Hasil dari prosedur pengujian aplikasi tersebut yang dilakukan oleh dua peer yang terhubung jaringan IPB dapat ditunjukan pada Tabel 1. Hasil dari pengujian fungsional chatting antar peer pada subnet yang berbeda yang terhubung pada jaringan IPB tidak berhasil. Hal ini disebabkan peer yang mengirimkan pesan melalui alamat multicast tidak sampai pada subnet yang berbeda. Agar pesan tersampaikan pada subnet yang berbeda dibutuhkan sebuah peer rendezvous dan peer relay. Peer rendezvous dan relay berguna untuk menyampaikan pesan yang dikirim melalui alamat multicast ke subnet yang berbeda. Pengujian kinerja protokol JXTA dilakukan dengan melakukan proses mengunduh pada dua peer yang terhubung dengan jaringan IPB. Pengujian dilakukan selama lima hari dan satu hari dilakukan lima kali pengujian. Piranti lunak yang digunakan untuk pengambilan data adalah Wireshark. Dari pengambilan data diperoleh rata-rata delay antar paket dan overhead file yang dikirim seperti tercantum dalam Tabel 2. Berdasarkan data pada Tabel 2 dapat ditampilkan grafik batang untuk rata-rata delay antar dan overhead file yang dikirim ditunjukkan pada Gambar 31 dan Gambar 32.
Prosedur Pengujian
Masukan
Keluaran yang diharapkan
Hasil yang didapat
Menerima syarat dan ketentuan aplikasi
Menekan tombol Accept
Masuk ke Aplikasi P2P file sharing
Berhasil
Pemilihan folder yang akan dibagi
Memilih alamat folder
File “config.ini” berisi path folder yang dibagi
Berhasil
Masuk ke jaringan JXTA
Memasukan Peer Name, Password, dan verify password
Masuk ke jaringan global JXTA
Berhasil
Pemilihan peer group
Memilih peer group A atau peer group B
Masuk ke peer group sesuai dengan pilihan pengguna
Berhasil
Pencarian file yang ingin diunduh
Nama file yang dicari
Daftar file sesuai dengan nama file yang dicari
Berhasil
Mengunduh file yang dipilih
Menekan tombol “download” pada hasil pencarian file
File yang diingikan berhasil diunduh
Berhasil
Chatting antar peer pada peer group yang sama
Memasukan pesan pada text field dan menekan tombol send
Pesan yang diterima oleh peer lainnya
Berhasil
Chatting antar peer pada peer group yang berbeda
Memasukan pesan pada text field dan menekan tombol send
Pesan tidak diterima pada peer group yang sama
Berhasil
Chatting antar peer pada subnet yang berbeda
Memasukan teks dan menekan tombol send
Pesan yang diterima oleh peer lainnya
Tidak Berhasil
Tabel 2 Rata-rata delay antar paket dan overhead file yang dikirim berdasarkan hari
Hari
Rata-rata delay antar paket (detik)
1
0.0013
Overhead file yang dikirim (MB) 0.265
2
0.0018
0.294
5.74%
3
0.0020
0.519
10.13%
4 5
0.0010 0.0009
0.346 0.338
6.75% 6.59%
Persentase overhead file yang dikirim 5.18%
14
Tabel 3 Data untuk total paket yang dikirim, waktu yang ditempuh, kecepatan mengunduh
Rata -rata delay antar paket (detik)
0.0025 0.002 0.0015
1
Jumlah paket yang dikirim (MB) 5.391
Waktu yang ditempuh (detik) 5.659
2
5.420
8.300
0.675
3
5.644
10.276
0.641
4
5.471
5.738
1.068
5
5.463
4.435
1.233
0.001
Hari
0.0005 0 1
2
3
4
5
Hari
Gambar 31 Grafik antara hari dengan rata-rata delay antar paket.
Kecepatan (MB/detik) 1.040
5.700 Jumlah paket yang dikirim (MB)
0.600 Overhead berkas yang dikirim (MB)
0.500 0.400 0.300 0.200 0.100 0.000 1
2
3
4
5
5.650 5.600 5.550 5.500 5.450 5.400 5.350 5.300 5.250 1
2
Hari
Pada hari ketiga overhead file yang dikirm lebih besar dibandingkan dengan hari yang lainnya. Hal ini disebabkan oleh rata-rata delay pada hari ketiga cukup lama dibandingkan dengan hari 4 dan hari 5. File yang dikirim ke peer lainnya akan dibagi menjadi beberapa paket dan paket-paket tersebut akan dikirimkan secara kontinu. Selang waktu dari pengiriman antar paket yang biasa disebut delay antar paket pada hari ketiga terhitung lama dibandingkan dengan hari lainnya hal ini disebabkan karena terganggunya lalu lintas dalam pengiriman file atau pengiriman paket-paket tersebut. Lamanya delay antar paket akan menyebabkan gagalnya pengiriman paket-paket tersebut dan paket yang gagal akan dikirim ulang. Pengiriman ulang paket yang gagal ini akan menyebabkan overhead file yang dikirim pun menjadi besar. Data yang didapat dari hasil pengujian selain rata-rata delay antar paket dan overhead dari file yang dikirm adalah total paket yang dikirm, waktu yang ditempuh untuk mengunduh, dan kecepatan mengunduh seperti ditunjukan pada Tabel 3 dan masing-masing grafik pada Gambar 33, Gambar 34, dan Gambar 35.
4
5
Gambar 33 Grafik antara hari dengan total paket yang dikirim. Waktu yang ditempuh (detik)
Gambar 32 Grafik antara hari dengan overhead file yang dikirim.
3 Hari
12.000 10.000 8.000 6.000 4.000 2.000 0.000 1
2
3
4
5
Hari
Gambar 34 Grafik antara hari dengan waktu yang ditempuh untuk mengunduh. Seperti dengan overhead dari file yang dikirim, delay antar paket semakin lama juga akan semakin banyak jumlah paket yang dikirim, karena ada proses pengiriman ulang dari paketpaket yang gagal dikirim. Semakin banyak jumlah paket yang dikirim akan mengakibatkan lamanya waktu untuk menyeleseaikan proses pengunduhan. Hal ini disebabkan karena delay antar paket yang lama dan jumlah paket yang terkirim juga banyak. Selain itu, hal ini juga dapat berpengaruh terhadap kecepatan mengunduh, dengan banyaknya paket yang
15
dikirim dan delay antar paket tersebut lama, kecepatan mengunduh pun akan menjadi lambat. Hal ini dapat dilihat pada Gambar 33, Gambar 34, dan Gambar 35.
Kecepatan (MB/detik)
1.400 1.200 1.000 0.800 0.600 0.400 0.200 0.000 1
2
3
4
5
Hari
Gambar 35 Grafik antara hari dan kecepatan mengunduh. Data yang diperoleh, selain overhead file yang dikirim, delay antar paket, jumlah paket yang dikirim, waktu yang ditempuh selama mengunduh, dan kecepatan mengunduh, diperoleh juga data overhead protokol JXTA. Overhead protokol JXTA merupakan jumlah pengiriman paket yang terjadi mulai dari pengenalan JXTA sampai dengan sebelum proses mengunduh. Berikut data overhead protokol JXTA pada Tabel 4 dapat ditampilkan grafik batang pada Gambar 36. Tabel 4 Data untuk overhead protokol dan persentase overhead protokol Hari
Overhead protokol (bytes)
Persentase overhead protokol
1
4660.8
0.08%
2
14008.2
0.25%
3
14037.0
0.24%
4
14047.8
0.24%
5
15559.4
0.27%
Kesimpulan Berdasarkan penelitian dan pengujian yang telah dilakukan, dapat disimpulkan bahwa aplikasi P2P dengan jaringan terdesntralisasi menggunakan protokol JXTA berhasil. Dari hasil pengujian didapat persentase tertinggi overhead file yang dikirim sebesar 10.13% dan persentase overhead protokol tidak melebihi 0.5%. Proses komunikasi antar peer pada subnet berbeda tidak berhasil diimplementasikan. Hal ini disebabkan tidak adanya peer rendezvous dan peer relay yang tugas dari peers tersebut adalah menyampaikan paket-paket atau pesan yang dikirim antar subnet yang berbeda. Saran Pada penelitian selanjutnya disarankan untuk mengimplementasikan aplikasi P2P menggunakan protokol JXTA yang dapat berjalan pada subnet yang berbeda. Selain itu penelitian selanjutnya dapat menambahkan fitur dari aplikasi ini, seperti adanya laporan tersampainya pesan pada chatting dan peringatan untuk peer bawha file yang dibagi telah diunduh oleh peer lainnya. Selain menggunakan protokol JXTA, saran untuk penelitian selanjutnya mengimplementasikan aplikasi P2P dengan menggunakan protokol P2P lainnya.
DAFTAR PUSTAKA Brookshier D, Govoni D, Krishnan N, Soto JC. 2002. JXTA: Java P2P Programming. Indianapolis: Sams Publishing. Educause. 2009. 7 Things You Should Know About P2P. http://www.educause.edu/library/resources/7things-you-should-know-about-p2p [31 Des 2011]. Gradecki JD. 2003. Mastering JXTA: Building Java Peer-to-peer Applications. Canada: John Wiley & Sons.
0.30% 0.25% Persentase Overhead protokol
KESIMPULAN DAN SARAN
Mitchell B. 2008. P2P (ComputerNetworking). http://compnetworking.about.com/od/p2ppee rtopeer/g/bldef_p2p.htm [31 Des 2011].
0.20% 0.15% 0.10% 0.05% 0.00% 1
2
3 Hari
4
5
Gambar 36 Grafik antara hari dan persentase overhead protokol.
Morkved T. 2005. Peer-to-peer programming with wireless devices [tesis]. Grimstad: Departemen Information and Communication Technology, Agder University College. Saeed GS. 2007. Peer-to-Peer File sharing. Manchester: Computer Science, Manchester Metropolitan University.
16
Tsai FS, Wenchou H, Junwei X, Chua HC. 2009. Design and development of a mobile peer-to-
peer social networking application. Expert Systems with Applications 36:11077-11087.
LAMPIRAN
18
Lampiran 1 Class diagram