• Tidak ada hasil yang ditemukan

PENGEMBANGAN SISTEM IOSS (IPB OPEN SCREEN SHARING) MENGGUNAKAN BAHASA PEMROGRAMAN JAVA MOCHAMMAD ISA

N/A
N/A
Protected

Academic year: 2021

Membagikan "PENGEMBANGAN SISTEM IOSS (IPB OPEN SCREEN SHARING) MENGGUNAKAN BAHASA PEMROGRAMAN JAVA MOCHAMMAD ISA"

Copied!
33
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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

(4)

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

(5)

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.

(6)

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

(7)

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

(8)

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

(9)

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 :

(10)

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

(11)

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 :

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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.

(19)

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)

(20)

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.

(21)

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.

(22)

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

(23)

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

(24)

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)

(25)

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 0 20 40 60 80 100 120 140 160 180 200 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.7 25.8 25.9 26 26.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8

Frame per second (fps)

Pengaturan frame rate sistem 30 fps Pengaturan frame rate sistem 50 fps Pengaturan frame rate sistem 70 fps

Gambar

Gambar  1  Osi Layer (Garcia dan Widjaja   2001).
Gambar  2  Model referensi TCP/IP.
Gambar  7  Aplikasi server dengan  forking.
Gambar  11  Aplikasi server dengan  kombinasi reforking dan  prethreading.
+7

Referensi

Dokumen terkait

Berdasarkan kesimpulan hasil penelitian diatas, maka saran yang bisa diberikan untuk penelitian selanjutnya adalah metode EOQ ini dapat diterapkan untuk evaluasi item

Hasil penelitian menunjukkan bahwa pati Talas Banten termodifikasi heat-moisture treatment mengalami peningkatan nilai kapasitas penyerapan air, penurunan nilai

“Lady Duff Gordon, I can’t believe I’m actually seeing you,” she burst out, pushing forward.. All she wanted was

Hal ini disebabkan oleh limbah cair yang berasal dari pabrik berwarna kecoklatan yang mengandung banyak bahan yang tersuspensi maupun terlarut yang pada akhirnya akan

Hal ini menunjukkan bahwa siswa SMA 1 Sragi Pekalongan pada umumnya memilild persepsi terhadap guru bimbingan konseling yang positif dan memiliki kepuasan dalam layanan bimbingan

Distribusi sekuestrasi parasit pada malaria fatal amat bervariasi antara organ- organ dalam satu individu dan antara satu kasus dengan kasus lainnya. 10

Secara teknis web service adalah kumpulan dari fungsi atau method yang terdapat pada sebuah server yang dapat dipanggil oleh klien dari jarak jauh dengan menggunakan XML sebagai

Meskipun koefisien harga karet Amerika Serikat mempunyai tanda negatif, sesuai dengan yang diharapkan dan secara statistik t hitung berpengaruh nyata pada taraf α = 1 persen,