Upload
phungcong
View
213
Download
0
Embed Size (px)
Citation preview
PENGEMBANGAN SISTEM IOSS (IPB OPEN SCREEN
SHARING) MENGGUNAKAN BAHASA PEMROGRAMAN JAVA
MOCHAMMAD ISA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2011
ABSTRACT
MOCHAMMAD ISA, IOSS (IPB Open Screen Sharing) System Development using Java
Programming Language. Supervised by Hendra Rahmawan, S.Kom, M.T.
Screen sharing application on LAN equipped room has a potential to replace projector duty. NetOp
School is one of many softwares which has screen sharing feature. However, NetOp School is a
shareware software and not open source. IOSS (IPB Open Screen Sharing) is an open source screen
sharing software built from Java object oriented programming language. This screen sharing software
implemens multithreading in which one thread used to serve one client connection and one thread
implemens one class which is needed to run real time and independently from another classes activity.
The socket programming implementation in IOSS is using TCP protocol and client-server
architecture. IOSS uses JPEG as standard image format used for screen sharing.
IOSS test result showed that size of connected client does not always gain slow response time. It
was shown from the fastest and slowest response time, respectively, 36 ms and 3625 ms which is
occurred in client size of 10 and system frame rate setting used was 30 fps. The performance shown
by IOSS is still far from what is expected. This can be shown by highest and lowest frame rate
received by one client, respectively, is 29 fps and zero fps. Bandwidth used by IOSS reachs peak on
100.2 Mbps, occurred on client size of 10 and system setting used was 70 fps. Response time, frame
rate received by client and bandwidth used is not correlated to system frame settings yet size of
connected client.
Keywords : screen sharing, NetOp school, open source, LAN (local area network), projector.
PENGEMBANGAN SISTEM IOSS (IPB OPEN SCREEN
SHARING) MENGGUNAKAN BAHASA PEMROGRAMAN JAVA
MOCHAMMAD ISA
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
2011
Judul : Pengembangan Sistem IOSS (IPB Open Screen Sharing) Menggunakan
Bahasa Pemrograman Java
Nama : Mochammad Isa
NIM : G64051593
Menyetujui :
Pembimbing
Hendra Rahmawan, S.Kom, M.T.
NIP 19820501 200912 1 004
Mengetahui :
Ketua Departemen Ilmu Komputer
Institut Pertanian Bogor
Dr. Ir. Sri Nurdiati, M.Sc.
NIP 19601126 198601 2 001
Tanggal Lulus :
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 9 Maret 1988. Penulis merupakan anak pertama dari dua
bersaudara dari pasangan Ayah Usman Bc.an dan Ibu Siti Nurhasanah.
Penulis menyelesaikan pendidikan dasar pada SDN 04 Pagi Jakarta Timur pada tahun 1999 dan
pendidikan menengah pertama di SMPN 92 Jakarta Timur pada 2005. Pada tahun 2005 penulis
menyelesaikan pendidikan tingkat atas di SMAN 36 Jakarta Timur. Di tahun yang sama penulis
diterima di Institut Pertanian Bogor melalui jalur seleksi Penerimaan Mahasiswa Baru (SPMB).
Setelah melalui seleksi Mayor-Minor pada tahun 2006, penulis diterima pada Departemen Ilmu
Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam.
Pada tahun 2008 penulis melaksanakan kegiatan praktik kerja lapang selama satu bulan di P.T.
Telekomunikasi Indonesia Tbk. Divisi Fixed Wireless Network. Selama mengikuti pendidikan di
Perguruan Tinggi penulis aktif dalam UKM Merpati Putih dan mewakili IPB dalam beberapa
kejuaraan silat antar mahasiswa tingkat nasional. Pada tahun 2009 hingga 2011 penulis menjadi
asisten pelatih UKM Merpati Putih.
PRAKATA
Alhamdulillahi Rabbil ‘alamin, segala puji lagi Maha Suci Allah Tuhan Semesta Alam penulis
panjatkan atas segala curahan cinta-Nya sehingga tugas akhir ini dapat diselesaikan. Tema penelitian
yang dipilih adalah pemgembangan sistem open source, dengan judul yang berjudul Pengembangan
sistem IOSS (IPB Open Screen Sharing) Menggunakan Bahasa Pemrograman Java.
Dalam penyelesaian tugas akhir ini penulis tidak lepas dari dukungan dari berbagai pihak. Oleh
karena itu segenap terima kasih penulis ucapkan kepada pihak-pihak yang telah memberikan bantuan
baik moril maupun materil, antara lain :
1. Keluarga tercinta, Ayahanda Usman Bc.an, Ibunda Siti Nurhasanah dan adik kecilku Nurvita
Aisah atas segala doa, cinta, kasih sayang dan kesabarannya.
2. Bapak Hendra Rahmawan, S.Kom.,M.T. selaku pembimbing atas arahan dan bimbingannya
selama pengerjaan tugas akhir,
3. Bapak Heru Sukoco, S.Si., M.T. atas bimbingan dan arahannya.
4. Ibu Ir. Sri Wahjuni, M.T. dan Bapak Endang Purnama Giri, S.Kom., M.Kom. selaku penguji
sidang.
5. Fifi Gusdwiyanti yang selalu menjadi semangat dan sahabat terbaik dalam senang dan susah,
6. Teman-teman seperjuangan ilkom 42 yang tak henti-henti menyemangati, Windy, Fuad Jabar,
Wawan, Priyo, Fahri, Dika, dan lainya yang tidak dapat disebutkan satu persatu,
7. Teman-teman Merpati Putih yang selalu menyemangati tanpa kenal lelah, Bena, Genny, Dewi,
Mas Sandi, Mas Teta, dan lainya yang tidak dapat disebutkan satu persatu,
8. Teman-teman ilkom 44, Rochyat dan Gamma atas kesediaannya sebagai pembahas, Woro atas
jarkomnya,
9. Teman-teman Cyber Merpati, mas Agus dan Bang Tahir, atas kesediannya meminjamkan
Cyber Merpati dan bertukar pikiran.
Penulis juga mengucapkan terima kasih kepada semua pihak yang telah membantu selama
pengerjaan tugas akhir ini yang tidak dapat disebutkan satu-persatu. Semoga penelitian ini dapat
memberikan manfaat.
Bogor, Agustus 2011
Mochammad Isa
vii
DAFTAR ISI
Halaman
DAFTAR TABEL ......................................................................................................................... viii
DAFTAR GAMBAR ..................................................................................................................... viii
DAFTAR LAMPIRAN .................................................................................................................. viii
PENDAHULUAN ............................................................................................................................ 1
Latar Belakang ......................................................................................................................... 1
Tujuan ...................................................................................................................................... 1
Manfaat Penelitian ................................................................................................................... 1
Ruang Lingkup ......................................................................................................................... 1
TINJAUAN PUSTAKA ................................................................................................................... 1
Jaringan Komputer ................................................................................................................... 1
Model Referensi OSI ............................................................................................................... 2
Model Referensi TCP/IP .......................................................................................................... 3
Protokol Jaringan ..................................................................................................................... 4
UDP ......................................................................................................................................... 4
TCP .......................................................................................................................................... 4
Java .......................................................................................................................................... 5
JPEG ........................................................................................................................................ 5
Response Time.......................................................................................................................... 5
Bandwidth ................................................................................................................................ 6
Frame Rate ............................................................................................................................... 6
Open Source ............................................................................................................................. 6
Strategi Layanan pada Arsitektur Client-Server....................................................................... 6
METODOLOGI PENELITIAN ........................................................................................................ 8
Definisi Kebutuhan .................................................................................................................. 8
Desain Sistem dan Perangkat Lunak ........................................................................................ 8
Implementasi dan Pengujian Unit ............................................................................................ 9
Integrasi dan Pengujian Sistem ................................................................................................ 9
Pemakaian dan Perawatan ........................................................................................................ 9
HASIL DAN PEMBAHASAN....................................................................................................... 10
1 Analisis Kebutuhan ............................................................................................................ 10
2 Rancangan ......................................................................................................................... 11
3 Implementasi dalam Bahasa Pemrograman ....................................................................... 14
4 Pengujian ........................................................................................................................... 16
KESIMPULAN DAN SARAN....................................................................................................... 19
Kesimpulan ............................................................................................................................ 19
Saran ...................................................................................................................................... 20
DAFTAR PUSTAKA ..................................................................................................................... 20
viii
DAFTAR TABEL
Halaman
1. Skenario pengambilan data. .......................................................................................................... 9
2. Kebutuhan non-fungsional .......................................................................................................... 11
DAFTAR GAMBAR
Halaman
1. Osi Layer (Garcia dan Widjaja 2001). ........................................................................................ 3
2. Model referensi TCP/IP. .............................................................................................................. 4
3. Format datagram UDP (Cisco Network Academy 2003). ........................................................... 4
4. Format segmen TCP (Cisco Network Academy 2003). ............................................................... 5
5. Three way handshake (Garcia dan Widjaja 2003). ...................................................................... 5
6. Aplikasi server dengan Multiplexing. .......................................................................................... 6
7. Aplikasi server dengan forking. .................................................................................................. 7
8. Aplikasi server dengan preforking. .............................................................................................. 7
9. Aplikasi server dengan preforking. .............................................................................................. 7
10. Aplikasi server dengan preforking. ........................................................................................... 7
11. Aplikasi server dengan kombinasi reforking dan prethreading. ................................................ 8
12. Tahapan-tahapan pada model proses waterfall (Somerville 2006). ........................................... 8
13. Response time. ........................................................................................................................... 9
14. Use-case yang dimiliki perangkat lunak IOSS. ...................................................................... 11
15. Antarmuka server tab. ............................................................................................................. 12
16. Antarmuka client tab. .............................................................................................................. 12
17. Struktur package. ..................................................................................................................... 13
18. Diagram kelas pada sisi server. ............................................................................................... 13
19. Diagram kelas pada sisi client. ................................................................................................. 13
20. Baris kode pembangunan sambungan pada sisi server. ........................................................... 14
21. Baris kode pembangunan sambungan pada sisi client. ........................................................... 15
22. Multithreading pada IOSS. ..................................................................................................... 15
23. Kelas-kelas yang berjalan secara konkuren. ............................................................................ 16
24. Topologi jaringan pada pengujian............................................................................................ 16
25. Rata-rata response time satu client........................................................................................... 16
26. Rata-rata response time lima client. ......................................................................................... 17
27. Rata-rata response time 10 client. ............................................................................................ 17
28. Rata-rata frame rate pada satu client. ...................................................................................... 17
29. Rata-rata frame rate pada lima client. ..................................................................................... 18
30. Rata-rata frame rate pada10 client. .......................................................................................... 18
31. Rata-rata bandwidth terpakai pada satu client. ....................................................................... 18
32. Rata-rata bandwidth terpakai pada lima client. ....................................................................... 19
33. Rata-rata bandwidth terpakai pada 10 client. ......................................................................... 19
DAFTAR LAMPIRAN
Halaman
1. Tabel harga Netop School Juni 2011. ....................................................................................... 22
2. Sequence diagram server 01 ...................................................................................................... 23
3. Sequence diagram server 02 ...................................................................................................... 24
4. Sequence diagram client 01 ....................................................................................................... 25
1
PENDAHULUAN
Latar Belakang
Dalam bukunya, the encyclopedia of
komputer network, Feibel (1996) menyatakan
bahwa sebuah jaringan komputer terdiri atas
node atau station. Komputer-komputer
tersebut dihubungkan melalui sebuah medium
komunikasi fisik dengan tujuan agar dapat
berbagi sumberdaya, berkomunikasi atau
bertukar informasi. Jaringan komunikasi yang
terbentuk, selanjutnya disebut sebagai jaringan
komputer, memungkinkan pengguna untuk
dapat saling berinteraksi secara efektif dan
efisien dari segi sumber daya untuk
mempertukarkan informasi serta layanan
tambahan (Sukoco 2008).
Sejak awal ditemukan hingga saat ini,
jaringan komputer memainkan peranan yang
penting, terutama dalam bidang komunikasi.
Namun demikian penggunaannya dalam
bidang pendidikan memainkan peranan yang
penting, yaitu penerapannya ke dalam
laboratorium komputer untuk meningkatkan
efektifitas kegiatan belajar-mengajar. Belajar-
mengajar dapat ditingkatkan melalui
kentungan yang diberikan penggunaan
jaringan komputer, yaitu kemudahan
penyampaian informasi dan kecepatan dalam
berbagi sumber daya yang mengatasi
rintangan jarak dan tempat.
NetOP School merupakan salah satu
perangkat lunak edukasi yang memanfaatkan
pemakaian jaringan komputer. Perangkat
lunak ini dikembangkan untuk kegiatan
belajar-mengajar dalam lingkungan
laboratorium komputer. Perangkat lunak
NetOP School memiliki sifat berbayar dan
tidak dapat didistribusikan secara bebas. Oleh
sebab itu, hanya lembaga pendidikan yang
memiliki keuangan yang mencukupi yang
dapat membelinya. Daftar harga NetOP
School yang diambil beberapa situs web pada
bulan Juni 2011 dapat dilihat pada Lampiran
1.
Salah satu fitur yang dimiliki NetOP
School adalah screen sharing. Fitur ini
mencakup fungsi-fungsi yang meliputi
pengambilan gambar, kompresi gambar,
pengiriman gambar melalui jaringan
komputer, dan menampilkan gambar pada
komputer klien. Fungsi screen sharing
diharapkan dapat digunakan sebagai pengganti
proyektor pada laboratorium komputer,
sehingga dapat memberikan efek
penghematan dari sisi keuangan karena tidak
perlu membeli proyektor.
Tujuan
Tujuan penelitian ini adalah membuat
perangkat lunak screen sharing yang memiliki
sifat yang open source serta multiplatform.
Diharapkan perangkat lunak ini dapat
dikembangkan lebih lanjut oleh berbagai
kalangan di masyarakat luas pada umumnya
dan dalam lingkup IPB khususnya.
Manfaat Penelitian
Pada penelitian ini akan dibuat sebuah
perangkat lunak yang mendukung fungsi
screen sharing, sehingga diharapkan dapat
menjadi alternatif yang ekonomis yang dapat
menggantikan penggunaan proyektor dalam
sebuah ruangan yang dilengkapi LAN (Local
Area Network).
Ruang Lingkup
Berikut adalah beberapa batasan yang
menjadi ruang lingkup penelitian ini, yaitu :
- Digunakan bahasa pemrograman yang
open-source yaitu Java.
- Cakupan jaringan komputer yang
dipergunakan adalah LAN pada
laboratorium komputer.
- Fungsi yang dikembangkan adalah screen
sharing yang diacu pada kebutuhan
pengguna yang ada pada perangkat lunak
NetOp School.
TINJAUAN PUSTAKA
Jaringan Komputer
Jaringan komputer terdiri atas node atau
station. Node dalam jaringan komputer
merupakan komputer namun dapat juga
berupa perangkat komunikasi lainnya yang
secara langsung bertatap muka dengan
pengguna. Node yang terhubung dengan
jaringan dapat berkomunikasi dengan cara
tertentu. Dengan menjalankan perangkat lunak
tertentu, sebuah komputer dapat menginisiasi
dan mengelola interaksi pada jaringan (Feibel
1996).
Berdasarkan cakupannya, Tanenbaum
(2003) mengelompokkan jaringan komputer
menjadi beberapa kategori :
2
1. LAN (Local Area Network)
Merupakan sebuah jaringan komputer
yang biasanya memiliki cakupan wilayah
meliputi sebuah gedung, kampus atau
laboratorium. Biasanya LAN memiliki
ukuran satu kilometer.
2. MAN (Metropolitan Area Network)
Pada umumnya jaringan ini mencakup
wilayah sebuah kota atau berukuran sekitar
10 km.
3. WAN (Wide Area Network)
Jaringan ini mencakup wilayah
geografi yang luas. WAN mencakup
wilayah sebuah negara hingga sebuah
benua atau berukuran 100 hingga 1000
km.
Dalam hubungan interaksinya pada
jaringan, sebuah komputer dapat bertindak
sebagai sebuah server atau workstation/client.
Sebuah client membuat permintaan sedangkan
server memenuhi permintaan tersebut. Server
mengatur jaringan dengan memberikan
sumber daya yang sesuai kepada client
(Tanenbaum 2003).
Berikut adalah beberapa istilah yang
dijelaskan Feibel (1996) untuk
menggambarkan hubungan antar node dalam
sebuah jaringan :
1. Peer to peer
Setiap node dapat menjadi client atau
server.
2. Distributed
Sebuah jaringan yang tidak memiliki
pengatur, dimana setiap node dapat
berinteraksi dengan node lainnya. Dalam
jaringan ini, server hanyalah sebuah node
yang menyediakan layanan namun tidak
mengatur aktivitas jaringan.
3. Server based
Merupakan model jaringan dengan
sebuah komputer yang didedikasikan
sebagai file server, mengelola jaringan,
memberikan izin akses terhadap suatu
sumber daya kepada client.
4. Client/server
Merupakan versi canggih dari jaringan
server based. Client bisa mendapatkan
akses ke seluruh jenis sumber daya, namun
hampir keseluruhan pekerjaan dilakukan
oleh client. Server menyediakan sumber
daya (misal berupa download file atau
aplikasi) dan kemudian client
menjalankannya.
Model Referensi OSI
ISO (International Standard
Oraganization) mengembangkan sebuah
model referensi tujuh lapis yang disebut OSI
(Open Layer Sistem), ditunjukkan oleh
Gambar 1, untuk menggambarkan bagaimana
menyambungkan setiap kombinasi alat untuk
tujuan komunikasi. Model ini mendefinisikan
tugas dalam istilah tujuh lapisan fungsional
dan menentukan fungsi yang harus disediakan
di setiap lapisannya (Feibel 1996). Garcia dan
Widjaja (2001) memberikan penjelasan lebih
rinci mengenai fungsi-fungsi yang disediakan
oleh ke tujuh lapisan model referensi OSI
sebagai berikut :
1. Aplikasi
Merupakan lapisan yang bertanggung
jawab untuk menyediakan layanan
komunikasi terhadap aplikasi. Permisalan
layanan pada lapisan aplikasi adalah
penggunaan protokol HTTP untuk
mengakses dokumen www.
Beberapa protokol yang disediakan
oleh lapisan ini adalah FTP untuk
pengiriman file, SMTP untuk surat
elektronik, DNS untuk layanan nama,
TELNET untuk akses jarak jauh, SNMP
untuk pengelolaan jaringan.
2. Presentasi
Layanan yang disediakan oleh lapisan
ini adalah menjadikan data yang
direpresentasi berbeda oleh mesin yang
berbeda dapat dimengerti satu sama lain.
Lapisan persentasi akan mengubah
informasi yang machine-dependent pada
mesin A menjadi informasi yang machine-
independent kemudian mengubah
informasi yang machine-independent
menjadi machine-dependent pada mesin B.
3. Session
Meningkatkan kehandalan pengiriman
data merupakan layanan yang disediakan
oleh lapisan ini. Lapisan ini memberikan
layanan flow control pada pengiriman data,
session control, sychronisation point untuk
pengendalian kerusakan/error.
4. Transport
Bertanggung jawab terhadap
pengiriman data end-to-end dari sebuah
3
entitas session pada mesin sumber
terhadap sebuah entitas session pada mesin
tujuan. Protokol pada lapisan transport
mencakup pengiriman PDU lapisan
transport yang disebut dengan segment.
Lapisan ini bertanggung jawab terhadap
proses segmentasi dan reassembly atau
blocking dan unblocking untuk
mencocokkan ukuran pesan yang
dihasilkan lapisan session terhadap ukuran
paket yang dapat ditangani oleh lapisan
network.
Layanan berorientasi sambungan yang
diberikan oleh lapisan ini adalah
menyediakan sebuah pengiriman
serangkaian byte atau pesan yang bebas
kesalahan. Protokol berorientasi
sambungan tersebut adalah TCP. TCP
memberikan layanan perbaikan dan
pendeteksi kesalahan, pengendalian aliran
dan rangkaian.
Pada layanan yang tidak berorientasi
sambungan, lapisan ini menyediakan
pengiriman pesan tunggal. Dalam hal ini
lapisan ini menyediakan informasi alamat
sehingga pesan dapat disampaikan pada
entitas lapisan session tujuan yang tepat.
Protokol yang menyediakan layanan tidak
berorientasi sambungan adalah UDP.
Lapisan ini juga bertanggung jawab
terhadap pemutusan dan pembangunan
sambungan serta mengoptimalkan
penggunaan layanan dengan me-multiplex
sejumlah sambungan lapisan transport ke
dalam sebuah sambungan lapisan network
dan men-demultiplex sebuah sambungan
lapisan tranport ke sejumlah sambungan
lapisan network.
5. Network
Pengiriman data dilakukan lapisan ini
dalam bentuk paket. Lapisam ini
bertanggung jawab terhadap routing paket
dari mesin sumber ke tujuan. Dalam hal ini
routing berarti mencakup prosedur
pemilihan jalur pengiriman paket melintasi
jaringan. Layanan lain yang disediakan
untuk mendukung layanan pengiriman
adalah pendefinisian alamat yang dapat
digunakan saat data melintasi jaringan
yang berbeda.
6. Data Link
Lapisan ini menyediakan pengiriman
frame melintasi sambungan pengiriman
(transmission link) yang menghubungkan
dua node. Penyisipan informasi framing
untuk mengindikasikan batasan frame,
informasi pengendalian (control),
informasi alamat pada header dan check
bit, untuk pengendalian kesalahan dan flow
control.
7. Fisik
Layanan yang disediakan oleh lapisan fisik
adalah pengiriman bit melalui sambungan
komunikasi medium fisik, yaitu melalui
sepasang kawat tembaga, kabel coaxial,
sinyal radio, atau fiber optik. Lapisan ini
bertitik berat pada pemilihan dari
parameter sistem seperti level tegangan,
durasi sinyal, membangun dan melepaskan
sambungan fisik serta aspek mekanik
seperti jumlah pin dan tipe soket.
Gambar 1 Osi Layer (Garcia dan Widjaja
2001).
Model Referensi TCP/IP
Model referensi TCP/IP merupakan model
referensi pendahulu yang digunakan oleh
jaringan komputer yang pertama ada yaitu
ARPANET dan penerusnya saat ini, internet
di seluruh dunia.
Berawal dari kekhawatiran departemen
pertahanan Amerika terhadap hancurnya host,
router dan internetwork gateway yang
penting, model ini dirancang agar dapat
bertahan jika perangkat keras subnet rusak.
Dengan kata lain model ini diingikan agar
sambungan tetap berjalan selama mesin
sumber dan mesin tujuan dapat berjalan
bahkan jika sambungan transmisi yang
menghubungkan rusak.
Model referensi TCP/IP ditunjukkan oleh
Gambar 2. Tanenbaum menjelaskan rincian
setiap lapisan model referensi TCP/IP sebagai
berikut :
1. Aplikasi
4
Lapisan ini mencakup protokol tingkat
yang lebih tinggi yang mencakup virtual
terminal (TELNET), pengiriman file
dengan FTP, surat elektronik/e-mail
dengna SMTP, layanan nama (DNS) dan
lainnya.
2. Transport
Seperti halnya pada model referensi OSI,
model ini juga dirancang agar entitas peer
sumber dengan tujuan yang dapat saling
berkomunikasi. Dua protokol yang
didefinisikan pada lapisan ini adalah UDP
dan TCP.
3. Internet
Lapisan ini mendefinisikan sebuah
protokol dan format yang disebut dengan
IP (internet protocol). Tugas dari lapisan
ini adalah melakukan routing paket,
menghindari congestion paket,
mengirimkan paket ke dalam jaringan
manapun dan berjalan secara bebas ke
tujuan.
4. Host-to-network
Lapisan ini menjelaskan bahwa
sekumpulan protokol harus digunakan agar
host dapat terhubung ke jaringan sehingga
dapat mengirim paket IP. Protokol host-to-
host dan host-to-network tidak
didefinisikan dan tidak bervariasi.
Gambar 2 Model referensi TCP/IP.
Protokol Jaringan
Protokol jaringan merupakan sebuah
gambaran formal dari sekumpulan aturan dan
konvensi yang mengatur sebuah aspek tertentu
tentang bagaimana alat-alat dalam sebuah
jaringan berkomunikasi. Menggunakan suatu
protokol berarti memilih dan mengatur format,
timing, sequencing dan pengendalian error
sesuai dengan suatu aturan yang telah
ditetapkan. Selain itu protokol juga
menentukan bagaimana jaringan fisik dibuat,
cara komputer terhubung ke jaringan, cara
memformat data untuk pengiriman, dan
bagaimana cara pengiriman datanya (Cisco
Network Academy 2003).
UDP
UDP merupakan protokol lapisan
transport yang tidak handal dan
connectionless. Merupakan protokol
sederhana yang menyediakan pengecekan
kesalahan dan demultiplexing. UDP
menambahkan mekanisme sehingga data
dapat diberikan kepada aplikasi yang tepat
pada sebuah host. Protokol ini menyediakan
pengecekan keseluruhan integritas datagram
UDP secara opsional. UDP menyediakan cara
untuk mengirim datagram IP tanpa terlebih
dahulu membuat sambungan. Seandainya
datagram UDP mengalami kerusakan atau
tidak terkirim maka datagram tersebut
diabaikan tanpa memberikan peringatan
terhadap entitas UDP pada mesin sumber
(Garcia dan Widjaja 2003).
Garcia dan Widjaja (2003) menyatakan
bahwa aplikasi yang menggunakan protokol
UDP mencakup protokol pengiriman file
trivial, layanan nama (DNS), protokol
pengelolaan jaringan (SNMP) dan protokol
real-time (RTP). Format datagram UDP
ditunjukkan oleh Gambar 3.
Gambar 3 Format datagram UDP (Cisco
Network Academy 2003).
TCP
Menurut Garcia dan Widjaja (2003) TCP
merupakan protokol yang sering digunakan
oleh sebagian besar aplikasi internet saat ini.
TCP menyediakan sambungan logis full-
duplex antara dua proses lapisan aplikasi
melalui sebuah jaringan datagram. Tidak
seperti protokol UDP, TCP menyediakan
layanan yang handal melalui perulangan
protokol ARQ (automatic repeat request)
secara selektif, penyusunan paket dalam
urutan yang benar, dan layanan byte-stream.
Selain itu protokol ini juga dilengkapi dengan
layanan flow control sehingga pihak pengirim
tidak mengirimkan informasi lebih dari jumlah
yang dapat ditangani oleh pihak penerima.
Seperti halnya UDP, TCP juga mendukung
terhadap pemakaian multipel aplikasi dalam
sebuah host. Format segmen TCP
diilustrasikan oleh Gambar 4.
Aplikasi
Host-to-network
Transport
Internet
5
Gambar 4 Format segmen TCP (Cisco
Network Academy 2003).
Pada protokol ini, sebuah pembangunan
sambungan dibutuhkan sebuah kedua pihak
yang berkomunikasi sebelum dapat bertukar
informasi. Proses pembangunan sambungan
pada TCP disebut dengan three way
handshake yang diilustrasikan pada Gambar 5.
Berikut adalah penjelasan rinci mengenai
prosedur three way handshake:
1. Host A mengirim sebuah request
connection terhadap host B dengan
mengatur bit SYN dan mengatur sequence
number awal yang digunakan (Seq_no=x).
2. Host B menerima request connection
dengan mengatur bit ACK dan menandai
bit berikut yang diterima (Ack_no=x+1).
Pada saat yang sama juga melakukan
request dengan mengeatur bit SYN serta
sequence number awal yang digunakan
(Seq_no=y).
3. Host A membalas dengan mengatur bit
ACK dan mengkonfirmasi bit berikutnya
yang akan diterima (Seq_no=y+1).
Gambar 5 Three way handshake (Garcia dan
Widjaja 2003).
Java
Deitel dan Deitel (2001) mengatakan
bahwa Java merupakan sebuah bahasa
pemrograman berorientasi objek penuh (fully
object-oriented) dimana penerapannya tidak
dipungut biaya, legal untuk didistribusikan
ulang, dan open source.
Salah satu keunggulan Java adalah kaya
akan kelas-kelas yang sudah yang ada pada
pustaka kelas Java, sehingga programer dapat
memakai kembali suatu kelas tanpa harus
membuatnya terlebih dahulu. Kelas-kelas
yang ada disediakan terutama oleh vendor
kompilator tetapi pustaka kelas disediakan
oleh vendor perangkat lunak yang
independent, independent software vendor.
Selain pustaka yang disediakan oleh Java,
kelas-kelas pustaka juga dapat diperoleh dari
internet baik sebagai shareware maupun
freeware dan menggunakan kelas tersebut
berdasarkan ketentuan penggunan yang
ditentukan oleh pencipta kode tersebut (Deitel
dan Deitel 2001).
Keunggulan lain Java adalah
memungkinkan para programmer untuk
menulis kode tanpa harus mengetahui
lingkungan perangkat keras dan sistem operasi
berjalannya aplikasi yang akan dibuat (Deitel
dan Deitel 2001).
JPEG
JPEG, Joint Photographic Expert Group,
merupakan sebuah komite yang berada dalam
International Standard Organisation, ISO.
Penyebutan JPEG lazim digunakan untuk
mengacu sebuah nama standard ISO/IEC IS
10918-1 | ITU-T recommendation T.81 (JPEG
Comitee 2011).
Format file JPEG digunakan secara luas
pada kamera digital karena kemampuan
kompresi datanya yang tinggi dalam gambar
grafis berwarna, yang memungkinkan sebuah
gambar beresolusi tinggi disimpan ke dalam
memori kamera. Kompresi pada JPEG bersifat
loosy yang artinya informasi hilang saat
kompresi. Pada kompresi yang relatif rendah
(1:10 atau 10% dari ukuran gambar asli)
perubahan data gambar karena data loss masih
dapat diterima oleh indra penglihatan
manusia, sedangkan pada rasio kompresi yang
lebih tinggi (mendekati 1:100) gambar
terkompresi yang dihasilkan akan benar-benar
tergradasi.
JPEG memiliki kemampuan untuk
menyimpan hingga 256 warna atau delapan bit
membuat format ini secara khusus cocok
untuk seluk-beluk fotografi (Henderson 2009).
Response Time
Response time adalah jumlah waktu yang
dibutuhkan untuk sebuah aplikasi menanggapi
6
sebuah request dari pengguna. Untuk
pengujian kinerja, salah satu yang dilakukan
adalah mengukur waktu respon sistem yang
merupakan selisih waktu antara pengguna
meminta tanggapan dari aplikasi dan jawaban
lengkap tiba di workstation pengguna
(Molyneaux 2009).
Bandwidth
Bandwidth mengacu pada jumlah data
yang dapat dibawa oleh suatu saluran
komunikasi. Diukur dengan satuan bit per
detik (bit persecond/bps) pada sinyal digital
dan hertz/Hz pada sinyal radio (Feibel 1996).
Frame Rate
Video atau film merupakan sebuah
kumpulan gambar, dimana gambar yang
ditampilkan setiap suatu waktu berbeda
dengan gambar yang ditampilkan pada waktu
sebelumnya. Rangkaian gambar yang
ditampilkan secara cepat kepada pengamat,
akan tampak menjadi gambar yang bergerak
dalam penglihatan pengamat. Satuan frame
dalam setiap detik disebut sebagai fps atau
frame per second (Simpson 2008).
Open Source
Merupakan hal yang umum bagi
programmer untuk berbagi dan
mengembangkan penggunaan program dimana
biasanya kode sumber program didistribusikan
secara bebas. Dengan keuntungan berbagi
tersebut, khalayak umum dapat dengan mudah
menciptakan dan mendistribusikan perangkat
lunak versi terbaru dengan kualitas yang lebih
baik (Henderson 2009).
Henderson (2009) mengacu pada Stallman
dan pendukung pergerakan open source
lainnya bahwa perangkat lunak tidak harus
gratis namun begitu pengguna butuh untuk
menerima kode sumber secara lengkap.
Pengguna juga bebas mengubah atau
meningkatkan untuk menciptakan dan
mendistribusikan versi aplikasi baru program
dengan mengikuti mekanisme legal Stallman
yang disebut copyleft.
Umumnya perangkat lunak yang open
source memiliki lisensi General Public
Liscense atau disingkat dengan GPL. Versi
terbaru dari GPL adalah GPL3.
Strategi Layanan pada Arsitektur Client-
Server
Server merupakan sebuah komputer yang
memberikan layanan sumber daya kepada
workstation/client yang melakukan request.
Pada umumnya, server dibutuhkan untuk
menangani banyak client dalam suatu waktu.
Banyaknya request yang terjadi secara
bersamaan menimbulkan perlunya sebuah
strategi penanganan khusus terhadap client,
sehingga sumber daya pada server tidak
dimonopoli oleh sebuah client dan seluruh
client dapat dilayani tanpa adanya delay yang
berarti ataupun ketidaktersediaan layanan
server. Davis et al. (2007) memberikan
beberapa strategi yang dapat digunakan untuk
menangani banyak client, yaitu :
1. Multiplexing
Merupakan suatu cara menangani
banyak sambungan client pada proses
server. Aplikasi memungkinkan client
terhubung ke server dan
menambahkannya ke dalam sebuah watch
list. Watch list merupakan sebuah array
dari socket descriptor. Selanjutnya sistem
operasi memberitahu aplikasi, client mana,
yang berada dalam watch list, yang akan
mendapat layanan. Pada multiplexing
client akan dilayani menggunakan metode
time slicing, yaitu sebuah sambungan
client akan dilayani hingga waktu
gilirannya berkhir. Jika pada waktu
gilirannya sebuah client tidak memiliki
tugas untuk proses server maka pelayanan
akan dialihkan kepada sambungan client
lainnya atau proses server akan menunggu
hingga waktu giliran client tersebut
berakhir.
Analogi dari multiplexing adalah
seperti restoran dengan seorang pelayan
yang bertanggung jawab melayani
pelanggan, dimana pelayan tersebut
memiliki sebuah daftar pelanggan yang
akan dilayani. Layanan hanya dilakukan
terhadap seorang pelanggan dalam suatu
waktu. Gambar 6 menunjukkan sebuah
aplikasi server dengan strategi
multiplexing.
Gambar 6 Aplikasi server dengan
Multiplexing.
2. Forking
Dalam lingkungan UNIX, fork
merupakan sebuah cara tradisional untuk
Proses
server
client
client
client
7
menangani banyak client. Kembalian yang
dilakukan sistem call fork() adalah sebuah
ID proses (PID) dari child process yang
dihasilkan oleh pemanggilan fork(). Saat
fork() dipanggil, sebuah duplikat dari
proses pemanggil akan dibuat. Seluruh
properti dari proses induk (parent process)
akan digandakan, yaitu mencakup stack,
ruang data, dan seluruh descriptor yang
terbuka, kecuali PID proses pemanggil.
Sebuah aplikasi server dengan strategi
forking dilustrasikan oleh Gambar 7.
Gambar 7 Aplikasi server dengan forking.
3. Preforking
Menciptakan salinan sebuah proses
membutuhkan biaya kinerja yang cukup
besar, tambah lagi jika dilakukan pada
aplikasi yang besar. Biaya kinerja akan
semakin mahal seiring banyaknya jumlah
client yang terhubung dengan server.
Gambar 8 Aplikasi server dengan preforking.
Untuk mengurangi biaya kinerja yang
dipergunakan untuk menggandakan proses
induk digunakan strategi preforking, yaitu
dengan membuat proses anak dengan
jumlah tertentu pada saat aplikasi dimulai,
kemudian proses anak akan melayani
client yang terhubung. Gambar 8
mengilustrasikan sebuah aplikasi server
dengan preforking.
4. Multithreading
Thread merupakan proses yang ringan
yang berbagi memori dengan parent
process-nya. Dengan demikian, thread
menggunakan sumber daya yang lebih
rendah daripada sebuah aplikasi
multiproses serta memiliki kecepatan
switch yang cepat. Penggunaan thread
telah menjadi metode yang lebih disukai
untuk menangani banyak client. Gambar 9
menunjukkan sebuah aplikasi server yang
menggunakan strategi multithreading.
Gambar 9 Aplikasi server dengan preforking.
5. Prethreading
Prethreading memiliki tujuan yang
sama dengan preforking, yaitu mengurangi
biaya yang diakibatkan oleh penciptaan
thread baru. Strategi yang digunakan sama
seperti preforking yaitu dengan membuat
sejumlah thread anak pada saat aplikasi
dimulai, kemudian thread anak akan
melayani sambungan saat client terhubung
dengan server. Sebuah ilustrasi aplikasi
yang menggunakan preforking
diilustrasikan oleh Gambar 10.
thread proses
Gambar 10 Aplikasi server dengan
preforking.
6. Kombinasi preforking dan prethreading
Strategi ini menggabungkan kelebihan
yang dimiliki oleh multithreading dan
forking sehingga kekurangan masing-
masing metode dapat ditutupi. Thread
memiliki sifat yang hemat sumber daya
dan proses switch yang cepat namun dapat
menyebabkan thread lain crash jika salah
satu thread mengalamai crash, sedangkan
Proses
induk
Proses
anak
Proses
anak
client client
Proses
induk
Thread
server
Thread
server
client client
Proses
induk
Thread
server
Thread
server
Thread
server
client client
Proses
induk
Proses
server
Proses
server
Proses
server
client client Pool process
8
proses memiliki kelebihan tidak
menyebabkan proses lain crash jika salah
satunya megalami crash namun
membutuhkan sumberdaya yang besar dan
proses switch lambat.
Gambar 11 Aplikasi server dengan
kombinasi reforking dan
prethreading.
Hasil dari penerapan strategi ini adalah
sebuah server yang memiliki switch yang
cepat dan tidak mudah crash. Ilustrasi
sebuah server dengan strategi kombinasi
preforking dan prethreading digambarkan
oleh Gambar 11.
METODOLOGI PENELITIAN
Untuk dapat menyelesaikan
pengembangan yang menghasilkan perangkat
lunak yang handal, sesuai kebutuhan, tepat
waktu, efektif serta efisien dibutuhkan sebuah
model proses pendekatan.
Pemilihan sebuah pendekatan yang
digunakan tentunya dipilih berdasarkan sifat
dari perangkat lunak yang akan
dikembangkan. Dalam pengembangan
perangkat lunak ini, model proses yang
dipergunakan adalah model proses waterfall,
terlihat pada Gambar 12.
Gambar 12 Tahapan-tahapan pada model
proses waterfall (Somerville
2006).
Definisi Kebutuhan
Tujuan dari tahap ini adalah untuk mencari
kebutuhan perangkat lunak yang diperlukan
oleh pengguna. Pada tahap ini, pola perilaku
perangkat lunak diidentifikasi berdasarkan
kebutuhan fungsional yang disediakan oleh
NetOP School.
Alternatif-alternatif solusi yang
dipergunakan dalam pengembangan
dipertimbangkan baik dari sisi kelebihan
maupun kekurangannya yang nantinya akan
berpengaruh pada sistem yang dihasilkan.
Selain itu ruang lingkup sistem yang
dikembangkan ditentukan pada tahap ini,
sehingga perangkat lunak yang dikembangkan
tidak berlebihan dan tidak kekurangan dalam
pemenuhan kebutuhan pengguna.
Desain Sistem dan Perangkat Lunak
Menurut Pressman (2001), proses desain
sebenarnya merupakan sebuah proses multi-
langkah pada empat atribut berbeda dalam
sebuah program : struktur data, arsitektur
perangkat lunak, representasi perangkat lunak
dan rinci prosedural (algoritmik).
Pada tahap ini dilakukan analisis dan
desain kelas-kelas yang dibutuhkan serta pola
interaksinya saat diintegrasikan menjadi
sebuah kesatuan sistem yang utuh. Hal-hal
lainnya yang dilakukan dalam tahapan ini
mencakup penentuan bahasa pemrograman
yang digunakan yang bersifat handal serta
open source. Selain itu pemilihan bahasa
pemrograman yang dibutuhkan adalah bahasa
Pedefinisian
kebutuhan
Desain sistem dan
perangkat lunak
Implementasi dan
pengujianunit
Integrasi dan
pengujian sistem
Pemakaian dan
pemeliharaan
Proses
induk
proses
anak
proses
anak
proses
anak
thread
server
thread
server
thread
server
thread
server
thread
server
thread
server
9
yang memiliki dukungan multiplatform dan
memiliki jaringan komunitas yang luas. Untuk
alat pengembangan yang dipergunakan, akan
dipilih yang umum dan mendukung banyak
pustaka (library) pemrograman dan juga
mendukung metode pemrograman dan desain
yang akan diterapkan. Pada penentuan
topologi jaringan, yang nantinya akan
dipergunakan adalah yang optimal dan umum
digunakan.
Implementasi dan Pengujian Unit
Desain yang telah selesai dibuat di tahap
sebelumnya diimplementasikan ke dalam
bahasa pemrograman. Sistem dibuat dengan
menggunakan metode pemrograman
menggunakan bahasa pemrograman yang
sudah ditentukan, metode pemrograman
berorientasi objek menggunakan bahasa
pemrograman berdasarkan desain yang sudah
dibuat.
Kelas-kelas yang dibuat kemudian diuji
output dan logikanya. Apakah sudah
menghasilkan output yang dan apakah objek
dapat mentoleransi atau mengatasi jika nilai
yang masukan tidak seharusnya.
Integrasi dan Pengujian Sistem
Pengujian saat sistem sudah selesai
diintegrasikan merupakan hal yang sangat
penting dilakukan. Pengujian bertujuan untuk
mencari adanya kesalahan logika yang ada
dalam sistem serta pencarian kesalahan lain
yang mungkin mengganggu, dapat berakibat
fatal bagi kelangsungan berjalannya perangkat
lunak atau bahkan dapat merusak data atau
sistem komputer.
Pengujian yang akan dilakukan pada
perangkat lunak ini mencakup pengujian
kinerja sistem, sedangkan pengujian pada
logika algoritme tidak dilakukan. Skenario
pengujian kinerja sistem dapat dilihat pada
Tabel 1. Berikut adalah beberapa
pengujiankinerja perangkat lunak yang akan
dilakukan :
1. Response time
Tujuan dari pengujian ini adalah untuk
mengukur seberapa besar waktu yang
dibutuhkan oleh server untuk menjawab
request yang dilakukan client.
t1
t2
client server
t1 = waktu client mengirim request
t2 = waktu client menerima jawaban/frame
∆t = t2 – t1
Gambar 13 Response time.
Pada Gambar 13 terlihat bahwa untuk
mendapatkan waktu response time (Δt)
dibutuhkan waktu kirim (t1) dan waktu terima
jawaban (t2). Response time merupakan
selisih dari waktu client mengirim request dan
menerima jawaban dari server.
2. Frame rate
Pada hasil pengujian ini akan dilihat
seberapa akurat jumlah frame gambar yang
diterima oleh client dan apakah jumlah frame
rate yang terdapat pada pengaturan server
sama besarnya dengan jumlah frame yang
diterima oleh client.
3. Bandwith
Pengujian ini bertujuan untuk mengamati
penggunaan bandwitdh dan seberapa besar
pengaruh pertukaran data yang dilakukan
antara server dan client terhadap jaringan
yang digunakan.
Tabel 1 Skenario pengambilan data.
No Percobaan Frame rate
(fps)
Jumlah
client
1 Percobaan 1 30 1
2 Percobaan 2 30 5
3 Percobaan 3 30 10
4 Percobaan 4 50 1
5 Percobaan 5 50 5
6 Percobaan 6 50 10
7 Percobaan 7 70 1
8 Percobaan 8 70 5
9 Percobaan 9 70 10
Pemakaian dan Perawatan
Tahap terakhir dalam siklus hidup
perangkat lunak adalah pemakaian dan
pemeliharaan hingga akhirnya perangkat
lunak tersebut tidak lagi digunakan. Tahap
perawatan tidak dilakukan dalam siklus ini
dikarenakan batasan pengembangan serta
ketersediaan waktu yang dimiliki pengembang
10
tidak mencukupi untuk melakukan tahap
pemeliharaan ini.
HASIL DAN PEMBAHASAN
1 Analisis Kebutuhan
1.1 Kebutuhan Fungsional
Fungsi-fungsi yang terdapat pada
perangkat lunak IOSS (IPB Open Screen
Sharing) dapat dilihat pada Gambar 14.
Gambar ini menunjukkan bahwa sistem IOSS
berinteraksi dengan dua aktor, yaitu :
1. Penyaji
Aktor penyaji merupakan perwujudan
dari manusia. Aktor ini memiliki kontak
langsung secara fisik dengan sistem. Aktor
yang bertidak sebagai penyaji adalah orang
yang ingin melakukan presentasi dalam
sebuah laboratorium komputer.
2. Pengamat
Aktor pengamat merupakan
perwujudan dari seorang manusia, peran
dari aktor ini adalah mengamati presentasi
yang dilakukan oleh penyaji. Aktor
pengamat adalah setiap orang yang
menjadi peserta presentasi.
Seperti yang terlihat pada Gambar 14,
diagram use-case ini memiliki sembilan buah
use-case. Berikut adalah penjelasan rinci
mengenai use-case tersebut :
1. Mengatur listen port
Use-case ini memungkinkan aktor
penyaji menentukan port mana yang
dipergunakan untuk sesi presentasi.
2. Mengatur frame rate
Fungsi yang ditawarkan use-case ini
adalah memungkinkan aktor penyaji
menentukan frame rate berdasarkan
kemampuan komputer yang dipergunakan
untuk presentasi.
3. Mengatur kualitas video
Melalui fungsi yang dimiliki use-case
ini aktor penyaji mempertimbangkan dan
menentukan jumlah frame rate video
berdasarkan kemampuan server dan
jaringan komputer yang digunakan.
4. Memulai sesi presentasi
Aktor penyaji memulai sesi presentasi
melalui fungsi yang dimiliki oleh use-case
ini, use-case ini melakukan inisiasi yang
diperlukan oleh sebuah server untuk
melakukan sesi presentasi.
5. Mengakhiri sesi prensentasi
Fungsi yang ditawarkan oleh use-case
ini ialah melakukan tindakan-tindakan
yang harus dilakukan oleh perangkat lunak
sebelum mengakhiri sesi presentasi.
6. Mengatur listen port tujuan
Melalui fungsi yang diberikan oleh
use-case ini, seorang penyaji
menyesuaikan nomor port yang
dipergunakan untuk melakukan sesi
pengamatan presentasi.
7. Mengatur alamat server
Fungsi yang diberikan oleh use-case
ini adalah mengatur alamat host yang
digunakan oleh penyaji sebagai server
video.
8. Memulai pengamatan
Aktor pengamat dimungkinkan untuk
melakukan pengamatan melalui fungsi
yang ditawarkan oleh use-case ini. Use-
case ini melakukan inisiasi yang
diperlukan bagi sebuah client untuk
melakukan sesi pengamatan presentasi.
9. Mengakhiri pengamatan
Sebelum mengakhiri sesi pengamatan
presentasi, tentunya ada hal-hal yang harus
dilakukan oleh perangkat lunak IOSS.
Melalui fungsi yang dimiliki oleh use-case
ini proses-proses tersebut dilakukan.
Sequence diagram untuk use-case pada
sisi server ditunjukkan oleh Lampiran 2 dan
Lampiran 3 sedangkan untuk use-case pada
sisi client ditunjukkan oleh Lampiran 4.
11
Gambar 14 Use-case yang dimiliki
perangkat lunak IOSS.
1.2 Kebutuhan Non-Fungsional
Kebutuhan non-fungsional perangkat
lunak IOSS dijelaskan oleh Tabel 2.
Tabel 2 Kebutuhan non-fungsional
No. Parameter Kebutuhan
1 Real-time Menerima jumlah
frame gambar sesuai
dengan nilai frame rate
telah ditentukan.
2 Reliability Menampilkan gambar
video dengan baik,
dengan atau tanpa
kompresi, dan dalam
urutan yang sesuai.
3 Bahasa Menggunakan standar
bahasa inggris.
4 Availability 24 jam sehari, 7 hari
seminggu.
1.3 Kebutuhan Antarmuka Eksternal
1.3.1 Antarmuka Pengguna
Antarmuka pengguna perangkat lunak
IOSS ditampilkan pada modus grafik. Dimana
masukan diterima melalui masukan mouse dan
keyboard. Selain itu masukan juga diterima
melalui port IO yang diterima melaui jaringan
komputer dari host yang terhubungkan.
1.3.2 Antarmuka perangkat keras
minimum
Kebutuhan antarmuka perangkat keras
yang dibutuhkan oleh perangkat lunak ini
adalah :
- Pc
- Keyboard
- Mouse
- Monitor
- Network interface card, dapat berupa
Ethernet ataupun wireless LAN.
1.3.3 Antarmuka perangkat lunak
Untuk dapat berjalan dengan baik,
perangkat lunak ini membutuhkan Java
running environment (JRE) v 1.6.0_22-b04.
Versi ini merupakan versi perangkat lunak
IOSS ini dikembangkan dan dijalankan
dengan baik.
2 Rancangan
2.1 Rancangan Sistem
Rancangan sistem dilakukan dengan
mengacu pada kebutuhan fungsional yang ada
pada digram use-case. Perangkat lunak IOSS
dibagi menjadi dua subsistem, yaitu :
1. Server
Subsistem server berfungsi untuk
melayani seluruh fungsi yang dibutuhkan
untuk melakukan penyediaan layanan
screen capture. Fungsi yang disediakan
mencakup menginisiasi proses screen
capture, mengelola permintaan layanan
oleh client, langkah komunikasi yang
harus dilakukan hingga bagaimana
mengakhiri sesi layanan screen sharing.
2. Client
Fungsi yang disediakan oleh subsistem
client mencakup inisiasi proses sebelum
melakukan permintaan layanan
pengamatan presentasi ke server,
mengolah data gambar hingga bagaimana
cara mengakhiri sesi pengamatan
presentasi.
2.2 Rancangan Antarmuka Pengguna
Perangkat lunak IOSS dibuat sesederhana
dan sesedikit mungkin penggunanya
melakukan pengaturan sistem. Salah satunya
adalah menggunakan antarmuka pengguna
berbasiskan GUI (Graphical User Interface)
12
daripada menggunakan berbasiskan CLI
(Commad Line Inteface). Tampilan perangkat
lunak IOSS terdiri atas sebuah jendela aplikasi
utama, yang terdiri atas server tab dan client.
Berdasarkan masing-masing penggunanya,
server tab digunakan oleh penyaji presentasi
sedangkan client tab digunakan oleh pengamat
presentasi.
Server tab seperti terlihat pada Gambar 15
terdiri beberapa masukan. Masukan yang
pertama adalah text field untuk masukan
nomor port yang diformat sehingga hanya
dapat menerima masukan berupa karakter
numerik dan tidak dapat menerima nilai
negatif ataupun bilangan desimal/bentuk
pecahan. Nilai yang dapat dimasukkan ke
dalam field nomor port dibatasi tidak lebih
besar dari 65535, yaitu jumlah port yang
terdapat pada komputer. Jika pengguna
mengisi nilai lebih dari 65535 atau port yang
digunakan sedang digunakan oleh aplikasi
lain, maka sistem akan mengeluarkan jendela
peringatan kesalahan.
Gambar 15 Antarmuka server tab.
Untuk kemudahan dan keabsahan nilai
masukan pada frame rate dan video quality
digunakan komponen masukan yang sudah
ditentukan nilainya, yaitu menggunakan
model masukan combo box. Jenis masukan
yang terakhir yang hadir dalam perangkat
lunak IOSS adalah tombol. Komponen
masukan tombol dapat berubah fungsi sesuai
dengan state dari perangkat lunak, yaitu
memulai sesi presentasi saat perangkat lunak
idle dan mengakhiri sesi presentasi saat
perangkat lunak berjalan.
Berikutnya adalah client tab, ditunjukkan
oleh Gambar 16. Tab ini berisikan tiga buah
jenis masukan, yaitu text field nomor port
tujuan dan alamat tujuan. Masukan pada field
nomor port tujuan diatur dengan pengaturan
yang sama dengan masukan field nomor port
pada server tab. Seperti jenis masukan field
sebelumnya, field untuk server address
diformat agar hanya dapat menerima masukan
karakter numerik saja sehingga masukan
berupa nilai negatif atau nilai desimal/pecahan
tidak dapat diterima oleh masukan ini. Jenis
masukan tombol dalam client tab dapat
berubah fungsi sesuai dengan state perangkat
lunak, yaitu memulai sesi pengamatan
presentasi saat perangkat lunak idle dan
menghentikan sesi presentasi saat perangkat
lunak sedang menjalakan sesi presentasi.
Gambar 16 Antarmuka client tab.
1. Desain kelas
Menurut Irwanto (2006), mengurai sistem
ke dalam subsistem merupakan sebuah strategi
yang paling efektif untuk mengatasi
kompleksitas dan meningkatkan portabilitas,
selain itu hal ini juga berguna untuk
menghindari riffle effect dalam proses
pengkodean. Penguraian sistem dalam desain
diterapkan menggunakan sistem package,
yaitu kelas yang memiliki kesamaan fungsi
akan ditempatkan ke dalam package yang
sama.
Seperti yang terlihat pada Gambar 17,
package IOSS merupakan package paling atas
(root package). Package ini membawahi tiga
package yang membagi kelas berdasarkan
fungsi control, model dan view. Untuk lebih
memudahkan penamaan dan membatasi
pengelompokan kelas lebih rinci, masing-
masing package tersebut dibagi lagi ke dalam
dua sub-pakcage, yaitu client dan server.
Package control merupakan kumpulan
kelas-kelas yang bertanggung jawab atas
pengendalian IO, pengelolaan thread dan
proses pengambilan gambar (screen capture).
Kelas-kelas yang berkaitan dengan
fungsionalitas pengelolaan data dikumpulkan
ke dalam package model, sedangkan package
yang terakhir, view, bertanggung jawab
terhadap proses tampilan GUI dan
pengelolaan data gambar ke dalam bentuk
yang dapat dikenali oleh mata manusia.
13
Gambar 17 Struktur package.
Kebutuhan kelas yang dibuat pada
perangkat lunak IOSS secara umum dibedakan
menjadi dua, yaitu kelas yang menyediakan
kebutuhan client dan server.
Pada sisi server, dibutuhkan kelas yang
dapat menyediakan kebutuhan fungsi
pengolaan gambar, pengelolaan sambungan
pada jaringan dan pengelolaan thread yang
melayani client. Pemenuhan ketiga kebutuhan
tersebut diatasi oleh kelas ScreenCapture yang
menyediakan kebutuhan pengelolaan gambar,
kelas ServerMachine yang menyediakan
kebutuhan pengelolaan sambungan pada
jaringan dan kelas ServerMachineThread yang
menyediakan pengelolaan thread yang
berfungsi melayani client. Berikut pada
Gambar 18 digambarkan diagram kelas pada
sisi server.
Gambar 18 Diagram kelas pada sisi server.
Sedang pada sisi client, dibutuhkan kelas
yang menyediakan fungsi pengelolaan
sambungan jaringan dan pengelolaan dan
penampilan gambar. Fungsi penampilan
gambar dipenuhi oleh kelas ClientMachine
dan kebutuhan fungsi mengelola dan
menampilkan kelas VideoFrame dan
VideoPanel. Diagram kelas pada sisi client
ditunjukkan oleh Gambar 19.
Gambar 19 Diagram kelas pada sisi client.
14
Kebutuhan akan fungsi pengiriman dan
penerimaan data dibutuhkan baik dari sisi
client maupun server. Untuk kebutuhan ini,
kelas ThreadOutputStream menyediakan
fungsi pengiriman sedangkan
ThreadInputStream menangani penyediaan
kebutuhan penerimaan. Kedua kelas ini
mengimplementasikan interface Runnable,
yaitu interface yang diimplementasikan agar
suatu kelas dapat diperlakukan sebagai sebuah
thread.
Selain itu, terdapat beberapa kebutuhan
kelas lainnya yang tidak terkait dari segi
model client-server, yaitu kebutuhan kelas
yang menangani properti dan antarmuka
perangkat lunak. Pemenuhan pengelolaan
GUI dilakukan oleh kelas MainGUI dan
ClientList, sedangkan fungsi yang mengatur
properti perangkat lunak dilakukan oleh kelas
Settings.
3 Implementasi dalam bahasa
pemrograman
3.1 Pemrograman Soket
Mengacu pada desain dan kebutuhan
perangkat lunak screen sharing dapat
disimpulkan bahwa model layanan yang
diterapkan dalam perangkat lunak IOSS
adalah client-server, yaitu terdapat sebuah
host yang menyediakan layanan penyedia
gambar dan kemudian mengirimkan layanan
video kepada host yang memintanya.
Penerapan fungsi pengiriman dan
penerimaan informasi dilakukan melalui
implementasi kelas ThreadInputStream dan
ThreadOutputStream. Kelas
ThreadInputStream merupakan kelas yang
menyediakan penerimaan data dari soket, dan
sebaliknya kelas ThreadOutputStream
merupakan kelas yang menyediakan fungsi
yang bertanggung jawab menyediakan
penulisan data ke dalam socket.
Pada sisi server, yaitu kelas
ServerMachine, penerapan kode dilakukan
dengan menerapkan objek kelas ServerSocket
yang berguna mengikat sebuah port yang
digunakan sebagai listening port untuk
layanan screen capture, ServerSocket akan
menunggu dan mengikat client yang meminta
layanan hingga akhirnya perangkat lunak
dimatikan.
Saat client terhubung, ServerSocket akan
mengembalikan objek kelas Socket, objek ini
kemudian diberikan kepada kelas
ServerMachineThread untuk digunakan
melayani client. Baris kode pembangunan
sambungan pada sisi server dapat dilihat pada
Gambar 20.
// pada sisi kelas ServerMachine
ServerSocket aServerSocket= null;
aServerSocket = new ServerSocket( nomor_port); aSocket = aServerSocket.accept();
// pada sisi kelas ServerMachineThread aThreadOutputStream = new ThreadOutputStream
(aSocket);
aThreadInputStream = new ThreadInputStream (aSocket);
Gambar 20 Baris kode pembangunan
sambungan pada sisi server.
Di dalam kelasServerMachineThread,
object kelas Socket kemudian dilewatkan ke
dalam parameter kelas ThreadOutputStream
dan ThreadInputStream untuk digunakan
mendapatkan input dan output stream milik
server yang terhubung dengan input dan
output stream milik client.
Paket data gambar yang dikirim,
sebelumnya diubah dari tipe data
BufferedImage ke dalam tipe data byte array,
pengubahan diperlukan karena pengiriman
menggunakan kelas ObjectOutputStream
hanya dapat dilakukan dalam bentuk tipe data
primitif, misalnya integer, float, double, char
dan string.
Tipe data byte dipilih karena panjang satu
byte cukup dan tidak berlebihan untuk
menyimpan sebuah komponen warna dalam
ruang warna RGB (Red Green Blue). Dalam
ruang warna RGB, sebuah komponen warna
memiliki jangkauan nilai sebesar nol hingga
255. Oleh karena itu, untuk memenuhi
jangkauan nilai tersebut, pengunaan tipe data
byte adalah sesuai.
Ukuran data yang dihasilkan dari kelas
ScreenCapture untuk monitor dengan resolusi
sebesar 800 x 600 pixel berkisar antara
282092 - 356921 byte. Ukuran tersebut
didapat tanpa menggunakan fungsi kompresi
gambar, gambar berformat JPEG tak
terkompresi. Untuk dapat melakukan
pengiriman dengan baik, protokol pengiriman
yang dibutuhkan tanpa mempertimbangkan
kinerja yang dihasilkan adalah TCP.
Pemilihan TCP sebagai protokol
pengiriman karena kemampuannya yang dapat
mengirim data berukuran besar. Mengacu
pada UDP header pada Gambar 3, pada
bagian UDP length dapat dilihat bahwa
ukuran data yang dapat didukung oleh sebuah
paket UDP adalah sebesar 16 bit atau sebesar
15
65535 byte. Maka dari itu, penggunaan
protokol UDP dapat dikatakan kurang tepat.
Pada TCP, Gambar 4, tidak seperti UDP
yang tidak menyediakan segmentasi data, data
frame gambar dibagi kedalam ukuran yang
lebih kecil dan masing-masing urutan data
tersebut ditandai pada sequence number.
Dengan demikian data tersebut dapat kembali
disusun dalam urutan awal. Dengan alasan
kemampuannya untuk mengirim data yang
besar TCP dipilih sebagai protokol pengiriman
dalam perangkat lunak IOSS.
Dari sisi client, perapan kode dilakukan
melalui fungsi-fungsi yang ada pada kelas
ClientMachine. Objek kelas ClientMachine
membangun sambungan ke server melalui
objek kelas Socket. Objek kelas Socket yang
terbentuk dari proses sambungan kemudian
dilewatkan ke dalam parameter kelas
ThreadOutputStream dan ThreadInputStream
untuk diproses menghasilkan output dan input
stream milik client yang terhubung dengan
output dan input stream milik server. Kode
pembangunan sambungan pada sisi client
digambarkan oleh Gambar 21.
// pada sisi kelas ClientMachine
Socket aSocket = null;
aSocket = new Socket(ServerAddress, port);
aThreadOutputStream = new ThreadOutputStream
(aSocket); aThreadInputStream = new ThreadInputStream (aSocket);
Gambar 21 Baris kode pembangunan
sambungan pada sisi client.
3.2 Multithreading
Dalam sistem yang besar atau memiliki
banyak subsistem, konkurensi memainkan
peranan yang penting untuk meningkatkan
kinerja. Atas dasar kebutuhan pengguna untuk
menyediakan layanan screen sharing yang
real-time maka perangkat lunak ini diterapkan
dengan prinsip konkurensi.
Penggunaan multithreading server sebagai
strategi konkurensi dikarenakan sifatnya yang
ringan dan proses switch yang cepat. Hal lain
yang menjadi kelebihan dibandingkan
multiproses adalah thread menggunakan
sumber daya yang lebih sedikit (Davis et al
2004). Gambaran multithreading server pada
IOSS diilustrasikan oleh Gambar 22.
Sisi server
Gambar 22 Multithreading pada IOSS.
Pemrograman multithreading dalam
bahasa pemrograman Java dilakukan dengan
mengimplementasikan interface Runnable
atau dapat juga dilakukan dengan membuat
kelas yang menjadi turunan dari kelas Thread.
Kelas kelas yang diterapkan dengan
multithreading adalah kelas yang berada di
bawah package control.
Konkurensi dalam perangkat lunak ini
dibagi menjadi dua, yaitu berkaitan dengan
antar subsistem (antar objek kelas) dan yang
menangani request client.
Pada konkurensi antar subsistem,
perangkat lunak yang menyediakan fungsi
screen sharing dalam sebuah server akan
memiliki tugas mengambil gambar, menunggu
request dari client, mengirim gambar kepada
client yang terhubung serta meng-update
antarmuka perangkat lunak. Tugas-tugas
tersebut haruslah dilakukan secara bersamaan,
jika tidak kebutuhan sistem yang real-time
tidak dapat dipenuhi dengan baik.
Konkurensi terjadi pada objek
ServerMachine yang membawahi objek-objek
kelas ServerMachineThread. Objek
ServerMachine bertindak sebagai thread
utama yang membuat objek baru
ServerMachineThread dan menugaskannya
untuk mengirim data frame kepada sebuah
client. Saat sambungan terhadap sebuah client
terputus atau sesi presentasi selesai, objek
ServerMachineThread dihentikan kemudian
dimusnahkan oleh parent thread-nya,
ServerMachine, sehingga sumber daya yang
dipergunakan oleh child thread,
ServerMachineThread, dapat dibebaskan dan
dipergunakan oleh proses yang lain. Gambar
23 mengilustrasikan proses yang berjalan
secara konkuren pada IOSS.
ServerMachine
ClientMachine
ne
ServerMachine
Thread
ServerMachine
Thread
ClientMachine
ne
16
Sisi server
memulai
mengirim mengirim
request frame
mengirim
frame
Gambar 23 Kelas-kelas yang berjalan secara
konkuren.
4 Pengujian
Pengambilan data pengujian dilakukan
dalam tiga kali perulangan untuk melihat
konsistensi data yang dihasilkan. Data frame
rate dan bandwidth diambil dalam selang
waktu 10 detik sedangkan data response time
diambil 10 kali percobaan request dalam
setiap perulangan. Hal ini dimaksudkan agar
data yang dihasilkan tidak terlalu sulit untuk
diamati dan terlalu besar sehingga membebani
kinerja perangkat pendukung. Pengujian yang
dilakukan menggunakan perhitungan waktu
dilakukan dengan menggunakan fungsi yang
tersedia pada kelas MyTimerClass. Video
quality (kompresi gambar) yang dipergunakan
dalam pengujian adalah sebesar 50%.
Untuk menjaga konsistensi pengujian,
spesifikasi perangkat lunak dan perangkat
keras yang digunakan disamakan. Spesifikasi
perangkat keras komputer yang digunakan
adalah sebagai berikut :
acer veriton M275
prosesor Intel core 2 duo e7500 @2.93
GHz
RAM 2048 MB
Ethernet 100 Mbps
Sistem operasi pada komputer yang
digunakan yaitu Linux Ubuntu 10.10 Maveric
Meerkat. Topologi jaringan yang
dipergunakan dalam pengujian adalah
topologi jaringan yang mewakili sebuah LAN
pada laboratorium komputer. Topologi LAN
pada pengujian diilustrasikan oleh Gambar
24.
Gambar 24 Topologi jaringan pada
pengujian.
4.1 Response Time
Response time terhadap satu client tercepat
terjadi pada perulangan pertama pengaturan
frame rate sistem sebesar 30 fps dengan waktu
51 ms sedangkan yang tertinggi terjadi pada
perulangan ketiga dengan pengaturan frame
rate sistem sebesar 70 fps dengan nilai sebesar
185 ms. Rata-rata response time yang terjadi
pada satu client dapat dilihat pada Gambar 25.
Gambar 25 Rata-rata response time satu
client.
Rata-rata response time dengan lima
request client secara bersamaan dapat dilihat
pada Gambar 26. Response time tercepat pada
lima client adalah sebesar 54 ms, yaitu terjadi
pada perulangan ketiga pengaturan frame rate
50 fps, sedangkan response time terbesar
82.2
73.3 74.5
68
70
72
74
76
78
80
82
84
Response time (ms)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
ServerMachine
(menunggu
request)
ScreenCapture
(mengambil frame)
ClientMachine
(mengirim
request)
ClientMachine
(mengirim
request)
ServerMachineThread
(mengirim data)
17
terjadi pada perulangan ketiga pengaturan
frame rate 50 fps dengan waktu sebesar 1063
ms.
Gambar 26 Rata-rata response time lima
client.
Gambar 27 menujukkan sebuah rata-rata
response time dengan client terhubung
sebanyak 10 client. Response time tercepat
pada 10 client adalah sebesar 36 ms yang
terjadi pada percobaan ketiga pengaturan
frame rate sistem sebesar 30 fps sedangkan
yang terlama terjadi pada percobaan pertama
frame rate sistem sebesar 30 fps dengan waktu
respon sebesar 3625 ms.
Gambar 27 Rata-rata response time 10 client.
Mengacu pada tiga gambar sebelumnya,
Gambar 25, Gambar 26 dan Gambar 27,
terlihat bahwa pola data yang ada adalah tidak
berpengaruhnya nilai response time terhadap
pengaturan frame rate sistem yang digunakan.
Selain itu seiring bertambahnya client yang
terhubung dengan server akan memperlambat
response time.
Namun begitu nilai response time pada
jumlah client yang lebih besar tidak
selamanya selalu besar dibandingkan dengan
nilai response time terhadap jumlah client
yang lebih kecil, yaitu dapat dilihat dari
adanya ada nilai response time terkecil yang
muncul pada reponse time 10 client.
Rata-rata response time yang muncul dari
pengujian satu client, lima client dan 10 client
masih berada di bawah nilai satu detik.
Menurut Nielsen (1993) kisaran response time
sistem satu detik berada dalam wilayah
dimana pengguna akan merasakan respon
sistem yang tidak terputus walaupun pengguna
tetap merasakan delay tetapi sistem tidak perlu
memberikan umpan balik yang khusus selama
delay tersebut.
4.2 Frame rate
Rata-rata frame rate yang diterima untuk
satu client dalam tiga perulangan dapat
dikatakan konsisten, yaitu mendekati nilai
sebesar 26 fps. Jumlah frame rate terkecil
yang diterima client adalah sebesar 22 fps
yang muncul pada pengaturan frame rate
sistem sebesar 70 fps dan yang terbesar adalah
28 fps, terjadi di hampir di setiap pengaturan
frame rate sistem yang digunakan. Nilai rata-
rata frame rate untuk satu pengguna dapat
dilihat pada Gambar 28.
Gambar 28 Rata-rata frame rate pada satu
client.
Jumlah frame terkecil yang diterima oleh
client pada lima client adalah 11 fps, muncul
pada pengaturan sistem dengan nilai frame
rate 70 fps. Nilai pada lima client terbesar
adalah 29 fps, muncul pada pengaturan frame
rate sistem sebesar 50 fps.
Pengaruh pengaturan frame rate sistem
terhadap jumlah frame rate seperti yang
terlihat pada Gambar 29 tidaklah memiliki
pengaruh dan masih jauh dari harapan, yaitu
harapan tercapainya penerimaan masing-
masing client sebesar 50 fps.
122
173.1 175.3
020406080
100120140160180200
Response time (ms)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
350.3
284.7 276.6
0
50
100
150
200
250
300
350
400
Response time (ms)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
26.7
26.2
26
25.725.825.9
2626.126.226.326.426.526.626.726.8
Frame per second (fps)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
18
Gambar 29 Rata-rata frame rate pada lima
client.
Dibandingkan dengan jumlah client
sebelumnya, 10 client memiliki nilai
penerimaan frame rate terkecil yang paling
ekstrim, sebesar nol fps yang muncul pada
setiap pengaturan frame rate, sedangkan
terbesarnya bernilai 22 fps, muncul pada
pengaturan frame rate sistem sebesar 50 fps.
Pada 10 client, pengaturan nilai frame rate
sistem terhadap rata-rata frame yang diterima
oleh client tidak memiliki pengaruh dan masih
jauh dari harapan penerimaan. Rata-rata frame
yang diterima pada 10 client terlihat pada
Gambar 30. Pada gambar tersebut terlihat dari
tiga pengaturan frame rate yang digunakan,
jumlah rata-rata frame yang diterima client
adalah konsisten sebesar 10.6 fps.
Gambar 30 Rata-rata frame rate pada 10
client.
Dengan melihat keseluruhan data frame
rate yang ada pada Gambar 28, Gambar 29,
dan Gambar 30, terlihat dua buah pola. Pola
pertama adalah pengaturan frame rate pada
IOSS tidak memberikan peningkatan
penerimaan jumlah frame yang berarti tetapi
jumlah client yang terhubung memiliki
pengaruh besar. Pola kedua adalah pengaturan
frame rate sistem 70 fps menyumbang nilai
penerimaan frame rate terkecil di setiap
jumlah client sedangkan pengaturan frame
rate sistem 50 memunculkan nilai penerimaan
frame rate terbesar disetiap jumlah client.
Terlihat pada paragraf sebelumnya bahwa
nilai frame rate yang diterima client masih
jauh dari harapan. Jauhnya nilai penerimaan
frame rate oleh client ini diduga disebabkan
oleh faktor kurang cepatnya kinerja bahasa
pemrograman dan kecepatan perangkat keras
yang digunakan seperti kecepatan mesin
melakukan buffer data yang akan dikirim,
konversi dari format data Image ke Byte,
bandwidth jaringan yang tersedia atau hal
lainnya. Namun begitu tidak menutup
kemungkinan disebabkan oleh desain
algoritme yang kurang tepat.
4.3 Bandwith
Data penggunaan bandwidth diambil
melalui penangkapan paket data yang keluar
dan masuk pada port yang dipergunakan
server untuk menerima dan mengirim data.
Untuk menangkap data digunakan fungsi IO
graph pada perangkat lunak wireshark.
Selanjutnya fungsi IO graph akan
menampilkan jumlah data yang keluar dan
masuk melalui port yang diatur pada selang
waktu dijalankannya perangkat lunak IOSS.
Pemakaian bandwidth terkecil pada satu
client adalah sebesar 303.3 Kb, muncul pada
pengaturan frame rate sistem sebesar 30 fps
dan terbesar adalah 37.9 Mb pada pengaturan
frame rate sistem sebesar 70 fps.
Dengan mengacu pada Gambar 31, terlihat
kecenderungan pola yang dihasilkan adalah
terdapat perbedaan yang kurang berarti antara
pemakaian bandwidth yang dihasilkan pada
pengaturan frame rate yang digunakan dan
terjadipenurunan bandwidth yang dipakai
pada pengaturan frame rate sebesar 70 fps.
Gambar 31 Rata-rata bandwidth terpakai
pada satu client.
22.1
23.3
20.6
1919.5
2020.5
2121.5
2222.5
2323.5
24
Frame per second (fps)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50
fps
Pengaturan
frame rate
sistem 70
fps
10.6 10.6 10.6
0
2
4
6
8
10
12
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
Frame per second (fps)
29 29.3
27.6
26.5
27
27.5
28
28.5
29
29.5
Bandwidth (Mbps)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
19
Pada pengguna lima client, besar
pemakaian bandwidth terkecil adalah sebesar
3.2 Kb, muncul pada pengaturan frame rate
sistem sebesar 30 fps, sedangkan pemakaian
terbesar adalah sebesar 100.2 Mb, muncul
pada pengaturan frame rate sistem sebesar 70
fps. Gambar 32 mengilustrasikan penggunaan
bandwidth pada lima client.
Berbeda dari satu client, pola penggunaan
bandwidth pada lima client tidak
memperlihatkan perbedaan penggunaan
bandwidth yang besar di antara tiga
pengaturan frame rate yang digunakan.
Namun begitu, pola penggunaan bandwidth
yang ada cenderung semakin naik seiring
dengan ditingkatkannya pengaturan frame rate
sistem.
Gambar 32 Rata-rata bandwidth terpakai
pada lima client.
Pemakaian bandwidth pada 10 client
memiliki nilai terkecil adalah sebesar 5.4 Mb
sedangkan pemakaian bandwidth terbesar
adalah sebesar 100.2 Mb. Pemakaian
bandwidth terkecil dan terbesar tersebut
terjadi pada pengaturan frame rate sistem
sebesar 70 fps dan pada 30 fps. Gambar 33
menunjukkan rata-rata pemakaian bandwidth
pada 10 client.
Dari Gambar 33 dapat dilihat pola
pemakaian bandwidth yang terbentuk pada 10
client, yaitu jumlah bandwidth yang dipakai
tidak cenderung memiliki banyak perbedaan
dari tiga pengaturan bandwidth yang
digunakan.
Gambar 33 Rata-rata bandwidth terpakai
pada 10 client.
Dari gambar sebelumnya, Gambar 31,
Gambar 32 dan Gambar 33, terlihat bahwa
pengaturan frame rate sistem tidak banyak
memberikan pengaruh besar bagi pemakaian
bandwidth melainkan jumlah pengguna.
Pada jumlah satu client, bandwidth yang
terpakai adalah dalam kisaran 29 Mb dengan
nilai tertinggi sebesar 39.7 Mb. Dengan
menggunakan nilai pada satu client, nilai
bandwidth rata-rata dan tertinggi pada lima
client haruslah berkisar 145 Mb dan 198.5
Mb, sedangkan pada 10 client nilai ini akan
berkisar sebesar 290 Mb dan 397 Mb. Namun
besar bandwidth terpakai yang muncul pada
lima dan 10 client adalah berbeda yaitu
hannya mencapai kisaran sebsar 90 Mb. Hal
ini diduga bahwa pada lima client jumlah
badwidth yang digunakan hampir mencapai
puncak kinerja yang dapat dilakukan oleh
perangkat pendukung, sehingga pada 10 client
kinerja bandwidth tidak dapat naik lagi secara
signifikan.
Jumlah pemakaian bandwidth yang tercatat
pada pengujian, seperti yang terlihat juga pada
ketiga gambar pengujian bandwidth, adalah
tidak berpola. Hal ini diduga juga dipengaruhi
oleh lingkungan layar monitor pengujian yang
memiliki gambar yang dinamis. Sehingga
memunculkan gambar monitor yang ter-
capture dan kompresi dengan nilai yang
dengan ukuran bervariasi setiap waktunya.
KESIMPULAN DAN SARAN
Kesimpulan
Dari hasil pengujian kinerja yang
dilakukan diperoleh kesimpulan sebagai
berikut :
1. Jumlah client terhubung yang lebih besar
tidak selalu menghasilkan nilai response
85.4
90.3
93.2
80
82
84
86
88
90
92
94
Bandwidth (Mbps)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
90
92.3
90.6
88.589
89.590
90.591
91.592
92.5
Bandwidth (Mbps)
Pengaturan
frame rate
sistem 30 fps
Pengaturan
frame rate
sistem 50 fps
Pengaturan
frame rate
sistem 70 fps
20
time yang lambat. Hal tersebut terlihat dari
response time tercepat dan terlama terjadi
pada 10 client di 30 fps dengan waktu 36
ms dan 3625 ms.
2. Kinerja frame rate yang dihasilkan masih
jauh dari harapan, terlihat dari frame rate
tertinggi yang diterima client hanya
sebesar 29 fps dan yang terendah adalah
nol fps.
3. Bandwidth yang digunakan mencapai
puncak pada 10 client yaitu sebesar 100.2
Mbps pada pengaturan frame rate 70 fps.
4. Response time sistem, jumlah frame rate
yang diterima client serta bandwidth yang
digunakan tidak bergantung terhadap
pengaturan frame rate sistem yang
digunakan tetapi tergantung pada jumlah
client.
Saran
Rekomendasi pemakaian sistem IOSS
adalah frame rate sebesar 50 fps dan pada
jumlah client terhubung sebanyak lima. Video
quality diatur menurut kebutuhan pengguna
dan ketersediaan bandwidth dan kecepatan
perangkat keras yang digunakan.
Rekomendasi kecepatan medium komunikasi
yang dipergunakan sebesar 100 Mbps,
sehingga memenuhi bandwith maksimum
yang dipergunakan pada satu client sebesar
37.9 Mbps.
Berikut adalah beberapa saran yang dapat
dilakukan untuk pengembangan sistem ini
lebih lanjut :
- Pengembangan sistem menggunakan
bahasa pemrograman yang memiliki
kinerja lebih cepat dari Java.
- Menggunakan kombinasi prethreading dan
preforking untuk menangani sambungan
client.
- Menambahkan fitur pengiriman suara.
DAFTAR PUSTAKA
Cisco Networking Academy Program. 2003.
CCNA 1 and 2 Companion Guide Third
Edition. Indianapolis, Amerika Serikat:
Cisco Press.
Deitel HM, Deitel PJ. 2001. JavaTM
How To
Program. Amerika Serikat : Prentice Hall.
Davis K, Turnet JW, Yocom N. 2004. The
Definitive Guide to Linux Programming.
Amerika Serikat : APRESS.
Feibel, W. 1996. Encyclopedia of Networking.
California, Amerika Serikat : Network
Press.
Garcia AL, Widjaja I. 2001. Communication
Networks Fundamental Concepts and Key
Architectures. Amerika Serikat : McGraw
Hill.
Henderson, H. 2009. Encyclopedia of
Computer Science and Technology Revised
Edition. New York, Amerika Serikat
:Facts On File.
Irwanto, D. 2006. Perancangan Object
Oriented Software dengan UML.
Yogyakarta, Indonesia : Penerbit Andi.
JPEG Comitee, JPEG Home Page.
http://www.jpeg.org/jpeg/index.html[10 Juni 2011].
Pressman, R S. 2001. Software engineering: a
practitioner’s approach 5th
Edition. New
York, USA : McGraw Hill.
Simpson, W. 2008. Video over IP IPTV,
Internet Video, H.264, P2P, Web TV, and
Streaming: A Complete Guide to
Understanding the Technology. Oxford,
Britania Raya : Focal Press.
Sommerville, I. 2006. Software Engineering
6th
Edition. Britania Raya : Addison
Wesley.
Molyneaux, I. 2009. The Art of Application
Performance Testing 1stEdition. Califonia,
Amerika Serikat: O’Reilly Media.
Nielsen J. 1993. Usability Engineering. San
Diego, Amerika Serikat : Morgan
Kaufmann.
LAMPIRAN
22
Lampiran 1 Tabel harga Netop School Juni 2011.
No Situs web penyedia Nama produk Harga
1 education.pugh.co.uk NetOp School 6 - Classroom
Pack - 1 Teacher & 10
Students
£ 347.00
2 education.pugh.co.uk NetOp School 6 - Classroom
Pack - 1 Teacher & 15
Students
£459.00
3 education.pugh.co.uk NetOp School 6 - Classroom
Pack - 1 Teacher & 50
Students
£1,095.00
4 touchboard.com NetOp School 6 - Classroom
Pack - 1 Teacher & 10
Students
$ 668.00
5 touchboard.com NetOp School 6 - Classroom
Pack - 1 Teacher & 15
Students
$ 884.00
6 touchboard.com NetOp School 6 - Classroom
Pack - 1 Teacher & 50
Students
$ 2109.00
7 moonsoft.com Netop School 6.2 Win 1-
Teacher + 10-Students with 1-
Year Maintenance (ESD)
627,30 €
8 moonsoft.com Netop School 6.2 Win 1-
Teacher + 15-Students with 1-
Year Maintenance (ESD)
830.25 €
9 moonsoft.com Netop School 6.2 Win 1-
Teacher + 50-Students with 1-
Year Maintenance (ESD)
1752.75 €
23
Lampiran 2 Sequence diagram server 01
24
Lampiran 3 Sequence diagram server 02
25
Lampiran 4 Sequence diagram client 01