Dipublikasikan Tahun 2012 Oleh: STMIK STIKOM BALI Denpasar - Indonesia www. stikom-bali. ac. id Editor: Yudi Agusta, PhD Asisten Editor: Desy Tri Puspasari, S.Kom Tubagus Mahendra Kusuma, S.E Disain Cover: Tubagus Mahendra Kusuma, S.E
Dicetak di Denpasar - Indonesia PERCETAKAN RYZQUNA PRINTING
ISSN: 1979-9845
Konferensi Nasional Sistem dan Informatika 2012; Bali November 17,2012
DAFTAR NTVIEWTN
Agus Fanar Syukd, PhD (Lembaga Ilmu Pengetahuan Indonesia)
Agus Pribadi, ST, MSc (STMIK nrfirigoraMataram) Andreas Handojo, MT (Universitas Kristen Petra Surabaya)
Anto Satriyo Nugroho, DR.Eng (Badan Pengkajian dan Penerapan Teknologi) Dahliyusmanto, MSc (Universiti Teknologi Malaysia) Edhy Sutanta, ST, MKom (AKPRIND Yogyakarta) Indra Adj i Sulistijono,ST,M.Eng (Institut Teknologi Sepuluh Nopember)
Khairul Munadi ([Jniversitas Syrah Kuala) Lintang Yuniar Bonosuwari, DR (Universitas Gunadarma)
Marvin Candra Wijayq MT (Universitas Kristen Maranattra) Muhammad Arhami (Politeknik Negeri Lhokseumawe) Muhamad Said Hasibuan, M.Kom (Institut lnformatika dan Bisnis Darmajaya) Rudi Adipranata" MEng (Universitas Kristen Petra Surabaya) Son Kuswadi, DR (Institut Teknologi SepuluhNopember)
Surya Sumpeno (Institut Teknologi Sepuluh Nopember)
Wahju Sediono, DR.Eng (Badan Pengkajian dan PenerapanTeknologi) WarniaNengsih Sikumbang, SKom, MKom (Politeknik Caltex Riau)
Widodo, SKom, MKom (Universitas Negeri Jakarta) Yudho Giri Sucahyo, DR (Universitas Indonesia) Yudi Agusta, PhD (STMIK
SIKOM Bali)
Konferensi Nasional Sistem dan krformatika 2012;Bah, November 17,2012
DAF'TAR ISI KATA PENGANTAR DAFTAR REVIEWER DAFTAR ISI
KEYNOTE SPEAKERz Augmented Reality and Ubiquitous Multimedio:
The Next
Digital Media v
I{ochamad Hariadi, PhD Electrical Engineering Department, Sepuluh Nopember Institute of Technologt, Sttrabaya
DAFTAR MAKALAII IKNS&r12401I KNS&r12-0021 IKNS&r12-oo3] EC\rS&I12-0041
[KNS&r12405]
Aplikasi Dinas Pariwisata dan Kebudayaan Jawa Barat Berbasis Mobile Implementasi Class Robot Java Pada Aplikasi Remote Desktop
Web
I
Komputer
Perancangan dan Implementasi Penr;antauan Bandwidth Usage Jaringan Pemantauan Performa Perangkat Keras Pada Server Dengan Psutil Bthon Library dan
Engine
9 18
Resftl
Web Senice Menggunakan Deploy Strategi Pemanfaatan Sistem PenerimaanMahasiswa Berbasis Web UntukMeningkatkan Keunggulan Kompetitif Perguruan Tinggi di Bangka Belitung (Studi Kasus: STMIK Atrna
24
Luhur)
30
EC\rS&I12-0081
Pemanfaatan Squid Sebagai Web Proxy Server Untuk Mempercepat Koneksi lnternet dan Penglrematan Pemakaian Rancang Bangrm Sistem lnformasi Rawat Jalan Menggunakan Metode Berorientasi Objek: Studi Kasus Klinik Sehat Sungailiat Bangka Rancangan Sistem Informasi Perpustakaan Berbasis Web Studi Kasus STMIK Atma Luhur
Pangkalpimng Model Sistem Informasi Perngihan Retribusi Sampah: Studi Kasus BLH Sungailiat
47
KNS&r12-00eI
Membangun Sistem Informasi Persediaan Barang Pada Instansi Pemerintah
60
6NS&r12-006l KNS&r12-0071
KNS&r12-0101 pcvs&r12-0111
Bandwidth
Belitung
IKNS&r124231
Membangun Rancangan Sistemfufornrasi Pe{ualan PadaToko SirmrBuanahftbel Dengan Metodologi Berorientasi Objek Rancangan Pengembangan Sistem Basisdata Peminjaman Buku Dengan Karfu Anggota dan Buku Ber-Barcode Studi Kasus: Perpustakaan Kota Pangkalpinang MembangunRancangan Sistem krformasi Perpustakaan: Studi Kasus SD N 1 Pangkalpinang Membangrrn Sistem Informasi Administrasi Pinjaman Pakai Senjata Api (Senpi) Studi Kasus: Kepolisian Resort Kota Pangkalpinang Dengan Metodologi Berorientasi Objek Rancang Bangun Sistem Informasi Surat Keterangan Catatan Kepolisian (SKCK) Studi Kasus: Kepolisian Resort Kota Panglolpinang Dengan Metodologi Berorientasi Objek Sistem Pendukung Keputusan Untuk Menentukan Model Pengembangan Sistem Pembelajaran Berbasis Intemet Perancangan dan Implementasi Sistem Pakar Prediksi Penyakit Jantung Berdasarkan Metode Backward Chaining danFuz4 Logqc Itlembaagua Si$em Iafcrrpasi Pasieo Rawat Jalan Pada Plrskesrnas Taruan Sari Pa*gkalpinang Sistem Pakar Unhrk Diagnosa Penyakit Vertigo Dengan Metode Forward Chaining Perencanaan Strategis Sistem Informasi Studi Kasus PT Prime Capital Securities Analisis Information VisualizationPada Website Bandar UdaraHartsfield-Jackson, Heathrow, dan Beding Perancangan Algoritrna Kriptografi Rivest Shamir Adleman (RSA) Untuk Keamanan Data di Oracle 10g Aplikasi Pembagian Ketompok Kelas Menggrrnakr Algoritma Genetik Pada SMA Budi Mtdia
po,rs&I124241
Pengontrolan dan Monitoring Ruang Kelas Dengan Menggunakan Controller Board ARM
rQ{s&I12-012I IKNS&r12-0131
IKNS&r12-014I
[c{s&r12-015] KNS&r12-016I
l[3\rs&I12417I KNS&r12-0181
KNS&u24191 IKNS&r12420I IKNS&r1242U KNS&r124221
pors&fi2-025] IKNS&r124261
[KI{S&r12427]
Tangerang 2368
Explaining Behavioral Intention On Informdion Technology: A Case Study of CIMB Niaga lnternet Banking in Surabaya Implementasi Data Mining Untuk Menemukan AssociationRule Pada Data Pe$ankan Implementasi Trust Negotiation Pada E{ommerce Dengan Marnjemen Identitas Menggunakan Metode Enkripsi Asimetrik Riverst Shamk Adleman (RSA)
36
4I 53
66 72 77 83
88 93
99 106
t12 116
t23 129 135
l4l l4'7 154 160
KNS&I12
iNasional Sistem dan krformatika 2012; Bali, November 17,2012
KNS&r 12-002
IMPLEMENTASI CLASS ROBOT JAVA PADA APLTKASI REMOTE DESKTOP Jasman Pardede Teknik Informatika, Institut TelCIfologi Nasional Bandung
[email protected]
ABSTRACT Desktop is a term to represent a device that is located in a particular location used to access other device from a
location. Some existing Remote Desktop applications hsve been created
is
Windows and Macintosh OS.
Jlrzdows Remote DesWop hos a functionality to transmit a con/ of the screen (screen captured), responsibility keyboard d mouse events, and voice. Macintosh Remote Desktop provides additional features such as remote installation. The q@ications can only be used remotely on each platfurm by internet device. However, there is a condition where people Jutt to dccess data and applications in multiplatform. To solve the problem, researcher developed a multipla{orm Mrcte Desldop Application. Programming laruguage that supports multiplatform is Jovo. To send screen of server PC hondle mouse and kzyboard events are Wrformed by user, researcher then implements the class Robot provided in ,b'a-awt package. The client server communi"aiion impliments Java socket programming using TCP/IP protocol. fu*vrds: Remote Desktop, Screen Captured, Keyboard and Mouse Events, Multiptaform, Class Robot.
d
L
Pendahuluan
fi6
bab ini membahas tentang latar belakang perlunya mengembangkan aplikasi Remote Desktop [erbasis Jav4 rumusan tnrselah, tujuan penelitian, dan batasan masalah dalam pengembangan aplikasi.
Ll
,Wte
Latar Belakang
Desktop adalah sebuah istilah untuk meu,akili kejadian di mana sebuah PC atau perangkat komputer ya11g ada dt lokasi tertentu, dapat diakses dan digunakan dari tempat yang berbedat'1. Penggunaan komputer yang di remote
m
rtutu& hanya terbatas pada
We
tampilan teks tetapi tampilan desldop komputer seperti saat menggunakannya secara langsung.
Desktop dalam mengendalikan dan menampilkan salinan gambar layar (screen captured) komputer yang &pnrlqlikan dipengaruhi oleh kualitas jaringan komunikasi antar kedua komputer dalam interval waktu tertentu.
Wd atau mouse ke komputer yang meremofe. Teknolo$ Remote Desktop bukanlah ffi qrkrry lama dikenal dalam dunia komputerimsi.
teknologi barq teknologi ini
Lber4a
aplikasi Remote Desktop lang sudah pernah dibuat di antaranya Remote Desktop Windows dan Macintosh. Desktop bawaan Windows memiliki fungsionalitas mentransmisikan salinan layar (screen captured), event &E6alrddan mouse,dan suarat2l. Remote Desktop Macintosh disamping firngsionatita. yung dimifiki oleh Windows juga gnaatan frurgsionalitas tambahan seperti penginstallan secara remotelt). Tetapi kedua Remote Desktop tersebut h-{a dapat melakukan remote pada platformnya masing-masing dan jaringan komunikasi menggunakan jaringan hilEt Untuk menyelesaikan masalah tersebu! peneliti akan mengembangl€n aplikasi Retnote Desktop yarlg dWatform. Bahasa pemrograman yang mendukung multiplatform yaitu bahasa pemrogaman Java. Untuk dapat uElrimtan screen captured, PC komputer yang akan diremote se{a perumgalum event mouse dan keyboard yang ffirrn oleh penggunia pada screen captured yang diremote, maka peneliti akan mengimplementasikan method-method 5ry rrrmilffti oleh c/ass Robot Java yang berada pada package Jqva.swt. Jaringan komunikasi antara client dan server
Mtc
enl
n dengan mengimplementasikan pemrog:rman socket lavaberbasis TCP/IP.
NJ
R,umusan Masalah
dt
sebagai berikur:
lkrdecrrtrn latar belakang
Nt
A"
masatah yang telah dinyatakan pada subbab 1.1 maka rumusan masalah pada penelitian
ini
nagaimana aplikasi server dapat merespon request-an client, melalntkan pengaturan pengiriman dan penerimaan pda Remote De sktop Client berbasis PC? n*aimana aplikasi client berbasis PC merequest ke Remote Desktop Server, menerima data dair Remote Desktop ,frerver dan menampilkannya?
fu
L,J Tujuan Penelitian ililTn hrjuan dari penelitian ini adalah untuk mengembangkan aplikasi Remote Deshop berbasis PC tanpa '[ f tikan plaform dengan mengimplementasikan c/asy R obot Java. ilI Biasan Masalah Mpenelitian ini penulis membatasi masalah sebagai berilart: 0" Aflilasi Remote Deslctop yang akan dikembangkan tidak memperhatikan delay
A
kryembangan aplikasi dalam
pengrrman data. proses pengiriman dan penerimaan datamenggunakatpemrogaman socket Java9
Konferensi Nasional Sistem dan Informatika 20 l2;Bali,November 17,2012
2.
lqssmd
IOIS&I1
Landasan Teori
Sub bab ini membahas tentang pengertian Remote Desktop, remote dekstop sistem operasi windows dan bahasa pemrognman Jav4 class Robot JavA dan socket.
rd ffi
2.1
Pengertian Remote Desldop Remote DesWop adalah sebuah istilah untuk mewakili kejadian dimarn sebuah PC atau perangkat komputer yang ada suatu lokasi tertentrl diakses dan digunakan dari tempat yang berbeda lokasitrl. Teknologi RZmote Disktop'seGnxn bukanlah teknologi yangbara. Kehadiran teknologi ini sudah cukup lama di dunia komputerisasi. Umumnya yang digunakan'unt.tkRemote Desktop hanya untuk pengendalian dari pc ke pc. Dalam komputasi, Remote Desktop merujuk pada sebuah perangkat lunak atau fungsionalitas dari sistem operasi memungkinkan untuk menjalankan server secara jarak jauh untuk ditampilkan secara lokal. Cara kerja aan ne Desktop cukup sederhana yaitu dengan cara mengirimkan captured screen komputer yang dvemole ke komprfier ryeremote saat bekerja mengendalikan komputer yang dtremote sehingga, komputer yangmeremote dapt metitat eksekusi.dari komputer yangdiremole tersebut. Secara umum komputer yatgmeremole menggirimkan ivent-event t_erjadi di komputer yarrg meremate dan mengcopykan event-eveni terseitfife komputer yun! at- dtremote. fitur yang biasanya ada pada sebuah Remote Desktop adalah men;ampilkan sir"", komputer yang dik mengirimkan dan mengeksekusi event-event dal/, keyboard darr mouse, network printer redirection, redirection of
m
frn il
Ef,
r ffit fl
2.2
Remote Deshop Sistem Operasi Windows dan Macintosh Pada sistemoperasi yang berbasis Windorvs pada umumnya ffi.ur Remote Desktop yang disediakan adalah screen komputer yang dikendalikan, penangangan event-event keyboard dan mouse, network printer redirect, rediiect
local drivers, copy dan paste files, audio redirection, support for wer 256 colors, ridirection of w,indows combinations, shared clipboard, 128 bit encryption, port redirection, darr connection bar. Remote Desktop pada si gperasi Windows menggurnkan protokol WP (Remote Desktop Protocol). Windows menanam ploJokol ieriebut d level kernel sehingga Remote Desktop menjadi lebih aman dan lebih cepat dalam pengeksekusianl2l. Versi RDp saat ini adalah RDP versi T.0yangsudahterinclude dalamWindows Server 2008 dan Windows Z.
I
Pada sistem operasi Magintosh terdapat software Apple Rernote Desktop 3 yang memiliki beberapa fitur yaitu Re Spotlight Search, Dashboard lhidget, Automator Action, Auto Install,-Curiain-Mode, RemoteDiag and Drop, p Status Indicators, Application Usage Report, User History Reports, Smart Comfutur List, dan
!rW,.Sl,t7,"r* lemplates'''.
Bahasa Pemrograman Java
Java adalah bahasa pemrogranum yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Java berdiri -inilah
atas sebuah mesin interpreter yang diberi nama Jovq Virtuai Machine (fUvqt:t. fMvf ying atan memba bytecode dalamJile .class dali suatu program sebagai representasi langsung pro$am yang berisi bahasi mesin. .F Java terdiri dari kumpulan library, JVM, kelas-kelas loader yatgdipaket dalam iebuah lingkungan rutin Java dan kompiler, elebugger dan kakas lain yang dipaket dalam Jova Development Kit (IDK).-lavi Z adalah generasi 5 sekarang sedang berkembang dari platform Jova. Agar sebuah program Java dapat berjalan dengan Uiit, mak; dengan eksistensi Java harus dikompilasi menladifite bytecode. Untuk menjalankan byteiode tersebut dibutlhkan Runtime Ewirontmenl (JRE) yang memungkinkan pemakai untuk menjalankan plogram Jav4 hanya menjalankarL untuk membuat kode baru lagi. JRE berisi JVM dan library lavayangdigunakanlal.
2.4
Clqss Robot Java Class Robot pada Java berada pada package Java.awt. Class Robot digunakan untuk membangkitkan event-event native system untuk tujuan pengujian secara otomatisasi, self-running demos, dan aplikasi lain yang pengontrolan
aplikasi dilakukan oleh event mouse dan kzyboard tanpa memperhatikan pla{orm dimad uptit*ri ai: Pembangkitan event se,cara otomatis yang dilalarkan oleh c/ass Ro bot dalarn meiatutan screen captured, meil mouse dan keyboard dilalelkan seara sofiware. Class Robot Java memiliki beberapa method, seped yaog dir,ya padaTabel
!ilu
-rn
drives, copy and paste files, serla audio redirection.
2.3
&5d
1.
10
II
i Nasional Sistem dan Informatika 2012; Bali, November
Tabel
l.
17,2012
KNS&I12-002
Method Class Robot Java
n rnacfutos
::_',:':.;
ffieredlmage
yang ada D
createscreenCapture (Rectangle screenRect) Menciptakan sebuah image yangmengandung pixel yangdibaca dari layar *cara software
*t
delay(int
ms)
'r
Sleep alalu menghentikan aplikasi dalam waktu tertentu dalam satuan milliseconds.
I
getAutoDelay( ) Mengembalikan waktu sleep dari closs Robot dalan milliseconds setelah pembangkitan suatu
ii*or
getPixelColor(int x, int y)
mlean
isAutoWaitForldle( )
W
event.
Mengembalikan warna pixel pada titik koordinat x dan y tertentu secara so/tware.
Ferasi
tui
FF{er Flihal Went
Mengembalikan status class Robot apakah secara otomatis dapal memintak waitForldle( ) setelah Dembanskitan sualn eve n t. keyPress (int keycode) Menekankan tombol keyboard s*,ara software. keyRelease (int keycode) Melepaskan tombol keyboard yang ditekan secara software mouseMove (int x, int y) Memindahkan pointer mouse ke koordinat layar yang diberikan monsePress (int buttons) Menekankan tombol mouse secara software. mo u seReletse (int buttons) Melepaskan tombol mouse yangditekan secara soJiware mo u s eWheel (int wheelAmt) Menggerakkan scroll mouse *cara software. setAutoDelay (int ms) Memberikan waktu &lam millisecontd class Robot melakukan sleep s*ara otomatisasi setelah
ad
?.
Lai^IlI-
Wt of loa
rrl rdl E*I
redirect t tdows lrt
rdl
ada sistei
:il
but dalal )P terbarr
Remotl p, Powel h,
*t
pembangkiun
soat:o event secara software.
*l
setAutoWaitForldle(boolean isOn) Menentukan apakah class Robot dapat meminta waitForldle secara otomatis,tsi setelah
d
waitForldle( )
dan TaA
pembangkitan soatu event secara software
Menunggu sampai
,."* J
sem]g8
event-event yang sedang be{alan yang ada pada event antrian selesai
diproses.
menggunakan method createScreenCapture (Rectangle screenRect) class Robot, dalam mengambil dan 6n ft4.-k4r
o^-oon Lnmnrllar
ca^46
cnlRrrra;a zlonot zlilolrrrlrcn
canadi naia
f i-+i-^
^^r^
r
h sebua
esi vanr
wlit &rJav, I
rn, fidal
Sgcade
1.
h "lass RobotCaptureScreenExmp { dic satic void main(Slring args[]X E-T
{
I/ capture the whole screen
hrfferedlmage screencapture
: new Robo().createScreenCapture(
new Rectangle(Toolkit. getDefaultToolkit0. getScreenSize0) ); W
inpd
h
kerja
im[ daralnt = ((DataBufferlnt)screencapture.getData0.getDataButrer0).getDara0; ifi width = screencapture.getWidth0;
trkanrsll
irr height = screencapnre. getHeight0;
3Pl
hrfferedlmage image = new Bufferedlmage(width,height,Bufferedlmage.TYPE_INT_RGB); lllrirahleRaster wr = image setRasler0:
lr-rtData Elements(0,0,widtlt
height,datalnt);
/l
Save as . rPEG FiIe file = new File( " screencapture
jpg"); hagelO.v nile(screencapture.'Jpg", file); I cech (IOE: rception ex) { I-ogger.get Logger(RobotCaptureScreenExmp.class.getName0).log(Level.SEVERE,
null, ex);
I €rch(AW IException ex) { 'I I
Lqgger.get Logger(RobotCaptureScreenExmp.class.getName0).log(Level.SEVERE.
l1
nlll, ex);
Konferensi Nasional Sistem dan Informatika 20l2,Bah, November 17,2012
2.5
ilII !.:{
;4
: 'il *
Socket Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses, dalam satu mesin maupun antar mesintofl/i. Socket dibuat dengan menyambungkan dua buah alamat IP melalui tertentu. Secara umum socket digunakan dalam sistem client/server, dimana sebuah server akan menunggo client por, tertentu . Saat client merequest server maka server akan berkomunilasi dengan client melalui socket yang dib Salah satu fungsi socket adalah intedace socket yang digunakan untuk menghubungkan komputer ke jaringan atau client denganir*"1'). System call pada interface sockst dapat memudahkan suatu,aplikasi untuk membuat /ocal dan menghubungkarmya ke remote socket. Dengan menghubungkan komputer ke socket, maka komunikasi komputer dapat dilalarkan- Adapun mekanisme komunikasi socket seperti yang dinyatakan pada Gambar 1.
F;r
I
,t
I !1
I
lr
I
oIA clleetfd
Cliat/ $ewer Secskrr
Gambar
3.
l. lnterface
Socket
MetodologiPenelitian
Metodologi penelitian yang digunakan dalam menyelesaikan penelitian adalah sebagai berikut: Studi Pustaka (Literatur), mencari sumber referensi yang berhubungan dengan pengembangan aplikasi
l
2. 3.
Desktop.
Studi Sistem, dilakukan dengan cara observasi dan pengambilan data yang berhubungan dengan aplikasi Remote Desktop serta melakukan analisis dan rekayasa terhadap sistem yang berjalan sebel khususnya Remote Desktop Sistem Operasi Windorvs dan Macintosh. Pengembangan Sistem, model pengembangan perangkat lunak yang dilakukan adalah menggunakan waterfall dengan mengikuti tahap-tahap analisis, desain, pengkodean, testing, dan deploy aptikasi.
4.
Hasil Penelitian
Sub bab berikut ini membahas tentang arnlisis kebutuhan sistem yang dilakukarl pemncangan sistenr, sistem, dan pengujian terhadap aplikasi yang telah dikembangkan.
4.1
Analisis Kebutuhan Sistem Berdasarkan permasalahan yang tefadi, peneliti menemukan requirement pada bagian serv,er seperti yang di pada Garnbar 2 dan bagian client sepriiyang dinyatakan pada Gambar 3.
t2
IO{S&I I
hr
i Nasional Sistem dan Informatika 2012; Bali, November 17,2012
RemoteDekstopAppl ication [Server]
proses,
F melalui
KNS&I12-002
RemoteDesktopA pplioation
[Client]
?8n client yang
Em atau zL local
mdkasi
&mbar 2.
Use CaseDiagramRemote Dekstop Server
Gambar 3. Use CaseDiagrarlRemote Dekstop Client
{"L1
Analisis Pengiriman Capture Screen Remote Desldop Pmres pengiriman screen desktop server ke client dilalokan dengan menggunakan class Robot Java, yaitu dengan mmggunakan method createScreenCapture@ectangle rect). Aplikasi server terlebih dahulu akan membagtr screen .w;€r ke dalam NUMBER-OF-REGION wilayah, kemudian setiap wilayah akan diarnbil screen desldop Vang at
Aasi Re agemba sebelu
i*g
,&'lalakan pada penggalan Listing code 4. code 2. CapturedScreenFactory( mr,$rc
){
mPriority(thread. MAX_PRIONTD
q'{
trkan
;
sedUpRectangle0; new Roboto; ll getimage desktop fulllmage robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit0.getScreenS for(int i:0; i
robot:
:
qvt
image[i] = robot.createScreenCapture(rectangles[i]);
int[] datalnt = (@ataBufferlnt)image[i].getDataQ.getDataBuffer0).getData0; byte[] data = toBl,te(datalnt); capturedScreenslil = new CapturedScreen(i,data); capturedScreens[i]. serWidth(image [i]. getWidthQ) ; capturedscreens[i]. setHeight(image[i]. getHeight0); I
j
catch@xception e) { e-printStackTrace0; I) I
@tAq/TExceptione) { cfintStaskaracell' u
*3. wd@){
ffiuarre) { try{
t3
izeO));
KdaeasiNasirnat
Sistem
da Informatika 2012; Bali, November l7,Z0l2
c'apturedscreen capturedscreen = c'tptureds^creenFactory.getcaphredscreen(regionNumber); cryturedScreens[regionNumber] = capturedScreen; if(capturedscreens[regionNumber] getByterrnageel=caphredscreen.getr]ytelmage0){ bvte[] bvtelmage = capruredscreens tr;gionN;b.if[emyt"rg,ug"0; oos. writelnt(regionNumber) ; oos.flushe; oos. writelnt(captured Screens [regionNumber]. getWidthg) ; oos.flush0; oos.
writelnt(capturedScreens
[regionNurnber]. get]Ieighte);
oos.flushe; int length = bytelmage.lengtl4 oos. writelnt(length) ; oos.flushg;
ByteArraylnputstream bais = new ByteArraylnputstream(bltelmage);
'
bytell buffer = new byre[Servi".Coort int readlength while((readlen-gth=bai s. read(butrer) oos. write(buffer, O,readlength); oos.flushO;
!
"tsdUrffil_izef =
_1
;
){
) oos.resetO; System.gcO;
)
\
regionNumber = (regionNumber+ 1 )ZoNLjMBER_OF_REGION;
catch(IOException ioe) { ioe. printStackTracee ; break;
I
t
J
I
System.gcQ;
)
captured ScreenFactory. minNumberoReque stCapturedscreenQ
Listing code 4. image = new Bufferedlmage(widtlLheight,Bufferedlmage. wr = image.getRaster$;
;
TypE_INT_RGB);
setDaUElements(0,0,widthheight data); ,yr. fi(remoteD e s ktopViewer =null && remotib e sHopViewer. isVisible0) { rcmoteDesktopviewer.setcapturescreen(capturedscreer.getregonNumberg, !
|
image);
myCanvas. setlmageA(capturedScreen. getRegionNumber0, image);
myCanvas.repainte;
1'L2 *tiap
Analisis pengiriman Event Mouse dan Keyboard Remote Desrdop event requestsirvice va"g oita"gtitr,an' oleh'clientud
;fi.i"rk* ke seryer unhrk diproses server,seperti **;d-,e ctient terlndap mouse HyWYi;:#i dan trevboard"ff&;,kaptf'::R dirarnrkan- dengan mengimpfue*r*if"ii')fi)1 ";;;'il*men3ngani_perminraan "ffffim,;ffi:,"W yff:3f7;Xi;ffi'trIyx:1"IF:*i!jiiiii;:i;,ffi,'",!y,"!:, wau Remote Desktop diminta :;,:r.;;: ffi J$tr#trffi oteh crient, kemudian xx:::x*xiiii:x:;,tr;,";1i;#{";,*rffiffi:*:ffi o*"r rlrJ**g**r.*i "bj;ar;r;;'#.ffi'ffi"1.::lm;:1f; aprikasi iriiiia^wtnrengendarrran X:,ruffifi?* vang ainvaatan-n Jrii*;;;;A';ffigs" ctass
Listing code
5.
im requestServi@ =
ois.
readlntg;
i(requestservice:RDServic.Corrt ot".coMpLmR_INFoRMATIoN_sERVICE)
l
dS
"r
new ComputerlnfonnationService(sockeg
"ir;r).r""O;
i(rCqUCStSCrviCE:-RDSCTiCCCONSIANtS.CAPTURED_SCREEN
new CapturedScreenSender(socket, ois, oos).
startg] 14
SENDERX
{
i
Nasional Sistem dan lnformatika 20 12; Bali, November l7 , 2012
if(requestsewice==RDServiceConstants.KEYBOARD_AND-MOUSE_EIIUN7_SENDER) new Keyb oard AndMou.seEve ntReceiver(socket, ois, oos)' *an$; if(requestServ'ice==RDServiceConstants.PRocE new ProcessRurmingService(socket.
ois,
S
{
S-RUNNING-SERVICE) { $
oos).start0;
code 6.
void run0{
while(true) { try{ final Object obj = ois.readObject0; Thread execvtelv[ouseThread
:
new ThreadQ{
@Ovenide public void run(X
if(obj instanceof RDKe-vEven/) { RDKeyEven/ event = (RDKeyEverl)obj ; tf (e v e n t. getTyWO:=RD Ev e nrConstants. KEY-PRE
S
SED)
t
robot. keyPre ss(e v e n t . getKeyC ode$) ;
)
.
elsetf(event.getType0=:RDEvenrConstants.KEY-RElEAsED){ robot. keyRel ease(ev
e
n
t. getKeyCode0) ;
l_
t
) else if(obj instanceof RDMouseMotionEvent) { RDMou seMolionEv e nt ev e nt = @DMou seMotionEv'enr)obj ; Dimension screenSize = Toolkit.getDefaultToolkit0.getScreenSize0; int x = (intX(screenSize. getWidthO/ even t.getW idth})* even t getX0); int y = (int)((screenSize. getHeightO/ event.gelHeight})* evenl.getY0); r
obol. m o u s eMove(
x, Y) :
I
J
else if(obj instanceof RDMouseEvent) { NDMou seEvent even t (RDMouseEvent)&j;
:
getTlpe0==RDtventConstantsi'y'O usE-PRE SSED) { r ob ol.m o u s ePtess(e v e n t. geNlodifi ers0 ) ;
tf(eve
n
t.
L
t
else if{event.getTl'pe0==RDEve ntConstants M OLEE-RELEASED) { robot. mo zseRelease(e v e n t . getModifiers()) ;
\t )
St'stem.gcO: I I
l: errecutel.forseThread. setPriority(Thread. *ecilel /oaseThread. start0;
MAX-PNORITY)
;
I
crEU ClassNotFoundExeePtion e) {
e.pirrSackTrace0; treak: I
,,rryttlQException e) {
Efim.SuckTrace0;
lrEek
krengen
Sistem
mln rn*tisis kebutuhan sistem dan kebutuhan fungsionalitas yang harus dipenuhi dalam memfasilitasi kebutuhan mm\ seperti -vang dinyatakan pada use case diagram pada Gambar 2 dan Gambar .3, maka peneliti l5
Konferensi Nasional Sistem dan Informatika 2012; Bali, November 17,2012
KNS&I I
mendapatkan class diagram dari aplikasi Remote Deskap pada bagian se.rver r.-p.+ yang dinyatakan pada sedangkan pada bagian client dtprileh c/ass diagram seperti yang dinyatakan pada Garnbar 5.
Gambar
4.
Class Diagram Remote Deskrop Server
Garnbar
5.
Class Diagram Remote Desktop Client
4.3
LnplementasiSistem untuk mengimplementasikan
pemncang,an sistem
lang
drnylakan pada Gambar 4 dan Gambar 5, membutuhkan
rus, *;;ss*;;";;n*o," pendukung r L'#":%ffin":'agf Mysel 'r9*.11'^Tj:1J::f^'^"].*-"lqgl,.::lir-'I server 5.o unruk pengaturan nu].-rt p"rggil-;;il;::;'tr-;';:tr;"X;iH:
seperti database
4.4
",
Teknik pengujian
Teknik pengujian yang digunakan adalah teknik pengujian black
box
testing. pengujian ini memungkinkan
iif,o.y*g ,t " secara penuh menjarankan semuapek ;**,"T".,T,T:y:1,.::f111:g *r.d*,yfry Dalam har ini diambir.4,i, .ir" u,"*,iil.,,i"ihi)['iiWu,;]:"i::i; *ffi:ffi*,T:HTl#n *;*m Tabel 2 Nama
Remote De
Wewer
Butir Uii
ytri
dalam memfasitirasi pe
Komunikasi dengan teknologi
ro
sudar berada pada menu ttama client, kemudian pengguna akan mJmith menu tombol start dari Remote Desldoo Wewer
Kondisi Awal
l.
:x:tr
Penggurn sudah terkoneksi dengan t om pada menu utarna client
Pilih Tombot
Sur
ne*"iiinsdopffi
hb"'nu Kasus dan Hasil U
rem@
Menampilkan remote desktop server yang akan di remote oleh pengguna ke
Menarnpilkan
komDuter ser?er
server yanq diremote
akan diremote oleh pengguna ke- pd PC penggun4 tanpa harus melock penggun4 tanpa harus melock kompuer
[Xl Terima
[
| Tolak
Berdasarkan hasil pengujian yang dilalokan penggwa terhadap butir uji R.emote Deshop viewer dengan n skenario yang dinyatakan pada Tabel 2 untuk irnii:*rr yrrg rt un diremote dengan *"nr'uru*u client seperti 6, diperoleh hasil pengujian seperti yang ditunjukkan paaa Cal*N l.
l6
KNS&I l2-fi ffi.:r:r:s=si Nasional sistem dan Informatika 2012;Bali,November 17,2012
IC.IS&I12-002
la Gambar"
Gambar 6. Remote DesktopYiewer Client
5-
Gambar 7. Remote Desktop ServerYangDiremote
Kesimpulan
iq.l--:Srrk2r penelitian yang dilakukarL beberapa kesimpulan dapat diambil sebagai berikut: i;da penelitian ini telah berhasil dibangun aphkai Remole Dekstop berbasiJPC yang dapatdiakses melalui berbagai
llient
r -'
kan balasa ng lainnya
+
E.
)eruogmft kebutuhan perti yang
*
mda PC I
:ngguna
I
ot Stan I
berada
_l
I
-t ke.vboard oleh client ke server, dijalankan secara software pada sisi seier deigan mengimplementasikan *::futd-method class Robot lava. r-:likasi Remote Dekstop yang dikembangkan dapat memfasilitasi penggum dalam melakukan Remote Desktop :'e Eftrpa server (dua server atau lebih) secara bersam aanpada satu ctiint, seperti yang dinyatakan pada Gambar 7.
Wrfrar Pustaka
,l * j
-i:'.'ice (multiplatftrm) dan sudah mengimplementasikan fitur minimal aphkasiRimole Iiesktop. r-plikasi Remote Desktop dikembangkan menggunakan class Robot liva dengan pertukaran data antara client dan :..: -;er dengan dukungan pemrograman Socket Java. J:-rses Remote Desktop PC server yang berjalan pada sisi client, dllakd
ll: hi
rpple. Apple - Remote Desktop -3 - New Features, http://wwrv.apple.com/remoleclesktop /ner,r{eatures.htrnl, diakses ::rakhir tanggal l7 JahZ}I2. l'frcrosoft. The Feqtures of the Remote Desktop Client in l|lindows XP,http!/slpport.microsoft.com&b/30069g, irrkses terakhir tanggal
l7 luli 2012.
3anido., J., M. (2003). Object-Oriented Programming: From Problena Solving to Java, Charles River Media,
-nc Hingharq Massachusetts.
foo- D., Kiong, D., Ashok, S. (2008). Object-Oriented Programruing and Jm,a, Second Edition, Springer-Verlag, -ondon. lless Robot Iava,http:/ldocs.oracle.com/Javase/1.5.0/docs/api, diakses terakhir tanggal 17 Jili20l2. (2001). Jm,arM Perforillallce and Scalability Volume l: Ser.ver-Side Prigramming Techniques, Addison ^-r'r'Bulka. ,,r,-esle1,.
i.cbe( Orfali and Dan Harkey. (1998). Client/Senter Programming with Java and CORBA"2nd Edition, John Wiley
a
Sons, Inc.
l I
---.
l
il- e-l -
I
pular
I
nma
I
------
rak
I
____l :ngikuti Gambar
L7