APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah...

119
APLIKASI REMOTE WEBCAM PADA LAN ( LOCAL AREA NETWORK) SKRIPSI Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika Disusun Oleh : Zeno Danny Kuncoro 035314036 TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2009

Transcript of APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah...

Page 1: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

APLIKASI REMOTE WEBCAM

PADA LAN (LOCAL AREA NETWORK)

SKRIPSI

Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar

Sarjana Teknik Jurusan Teknik Informatika

Disusun Oleh :

Zeno Danny Kuncoro

035314036

TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2009

Page 2: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

LAN (LOCAL AREA NETWORK) REMOTE

WEBCAM APPLICATION

A THESIS

Presented as Partial Fulfillment of the Requirements to obtain the Sarjana

Teknik Degree in Department of Informatics Engineering

Created by :

Zeno Danny Kuncoro

035314036

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2009

Page 3: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

ii

Page 4: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

iii

Page 5: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

iv

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan

dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, April 2009

Penyusun

Zeno Danny Kuncoro

Page 6: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

v

THANKS TO :

Tuhan Yesus Kristus atas Berkat, Kasih dan karunia Nya

Terimakasih atas segala pengampunan yang telah diberikan.

Bapakku A.Y. Mahyarudin dan Ibuku Lucia Sumirah.

Terimakasih atas segala kepercayaan, dukungan serta bimbingan hingga nanti.

Kakakku Elishabet Elsih Lestari

Terimakasih atas dukungan serta wejangan-wejangannya.

Kakakku Cornelius Lilik Prianggono.

Terimakasih atas segala sesuatu yang telah kau ajarkan ke adikmu ini.

Kekasih hatiku : the X

Terimakasih atas waktu, semangat dan telah menjadi yang terbaik buatku.

Almamaterku Teknik Informatika Universitas Sanata Dharma khususnya angkatan 2003.

Page 7: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

vi

ABSTRAKSI

Dalam sebuah warnet dibutuhkan pengawasan ekstra untuk mencegah

terjadinya tindak kejahatan pencurian terhadap perangkat warnet oleh pengguna.

Hingga saat ini, solusi yang diambil hanyalah menggunakan kamera pengawas

atau CCTV (Closed-Circuit Television), dan ini membutuhkan biaya yang lebih.

Untuk menangani hal ini penyusun mencoba memanfaatkan webcam

sebagai kamera pengawas. Dengan menggunakan webcam, dapat menekan biaya

yang digunakan karena pada umumnya warnet sudah memiliki webcam disetiap

komputer workstationnya yang selama ini hanya digunakan sebagai fasilitas

pendukung saja.

Aplikasi yang bersifat client-server ini diharapkan mampu untuk

mendukung tujuan diatas, dimana komputer workstation menjalankan aplikasi

server dan komputer operator menjalankan aplikasi client. Server akan merespon

request client berupa pengiriman citra yang telah ditangkap lalu diproses oleh

server kepada client. Proses pengambilan citra dan mengirimkannya secara

periodik inilah yang akan dilakukan terus menerus selama client melakukan

request kepada server.

Aplikasi ini menggunakan Microsoft® Visual Basic® 6.0 sebagai compilernya

dan webcam yang telah terintegrasi ke dalam sistem operasi dengan baik sebagai

perangkat yang akan mengambil citra.

Page 8: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

vii

ABSTRACT

A internet cafe needed extra supervision to prevents the occurrence of

crime against theft internet cafes devices by the user. Until now, solutions that are

taken is using the camera supervisors only or CCTV (Closed-Circuit Television),

and this costs more.

To handle this case I tried to take advantage of the camera as a webcam

supervisors. By using the webcam, can be used to press charges because, in

general, Internet Cafe has a webcam in every workstation that this is only used as

supporting facilities only.

Client-server application is expected to be able to support the goals above,

where the workstation computer run the server application and the operator

computer run the client application. The server will respond to client requests in

form of image that has been captured and processed by the server to the client.

Processes the image and send them periodically is what will be done continuously

for the client to request to the server.

This application is using Microsoft ® Visual Basic ® 6.0 as the compiler and a

webcam that has been integrated into the operating system as the device that will

capture the image.

Page 9: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

viii

LEMBAR PERNYATAAN PENYETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Zeno Dani Kuncoro

Nomor Mahasiswa : 035314036

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan

Universitas Sanata Dharma karya ilmiah saya yang berjudul :

“Aplikasi Remote Webcam pad LAN (Local Area Network)”

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan

kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan,

mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan

data, mendistribusikannya secara terbatas dan mendistribusikannya di Internet

atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya

maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya

sebagai penyusun.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal April 2009

Yang menyatakan

( Zeno Danny Kuncoro )

Page 10: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

ix

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa yang telah

mengaruniakan Berkat dan Rahmat-Nya sehingga penyusun dapat menyelesaikan

tugas akhir ini.

Dalam proses penyusunan tugas akhir ini ada begitu banyak pihak yang

telah memberikan bantuan dan perhatian dengan caranya masing-masing sehingga

tugas akhir ini dapat diselesaikan. Oleh karena itu penyusun mengucapkan terima

kasih diantaranya kepada :

1. Bapak Alb. Agung Hadhiatma, S.T., M.T. selaku dosen pembimbing I

tugas akhir yang telah banyak memberikan bimbingan dalam penyusunan

tugas akhir ini.

2. Bapak H. Agung Hernawan, S.T. selaku dosen pembimbing II tugas akhir

yang telah banyak memberikan bimbingan dalam penyusunan tugas akhir

ini.

3. Bapak JB. Budi Darmawan, S.T., M.T. dan Bapak Puspaningtyas Sanjoyo

Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan,

masukan serta saran untuk menyempurnakan tugas akhir ini.

4. Ibu Ridowati Gunawan, S.Kom., M.T. selaku dosen pembimbing

akademik angkatan 2003.

5. Bapak Emanuel Belle Bau, Spd. Dan Yustinus Nugroho sebagai laboran

yang telah mendukung dalam mempersiapkan ujian pendadaran.

Page 11: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

x

6. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang

telah memberikan bekal ilmu, arahan teknis dan pengalaman selama

penyusun menempuh studi.

7. Seluruh staff Sekretariat Fakultas Sains dan Teknologi yang banyak

membantu penyusun dalam urusan administrasi akademik, terutama

menjelang ujian tugas akhir dan yudisium.

8. Orangtuaku tercinta AY Mahyarudin dan Lucia Sumirah dan kakak-

kakakku yang telah memberikan cinta, doa, dorongan, bantuan, perhatian

serta bimbingannya sedari penyusun kecil hingga saat ini.

9. Seluruh teman-teman seperjuangan di Jurusan Teknik Informatika

angkatan 2003.

10. Seluruh pihak yang telah membantu penulisan, baik secara langsung

maupun tidak langsung yang tidak dapat penyusun sebutkan satu persatu.

Dengan rendah hati penyusun menyadari bahwa tugas akhir ini masih

jauh dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan

tugas akhir ini sangat penyusun harapkan. Akhir kata semoga tugas akhir ini

bermanfaat bagi semua pihak. Terima kasih.

Yogyakarta, April 2009

Penyusun.

Page 12: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xi

DAFTAR ISI Halaman Judul ………………………………………………………………….. i

Halaman Persetujuan …………………………………………………………… ii

Halaman Pengesahan …………………………………………………………… iii

Halaman Pernyataan Keaslian Karya ………………………………………… iv

Halaman Persembahan ………………………………………………………….. v

Abstraksi ………………………………………………………………………... vi

Abstract …………………………………………………………………………. vii

Halaman Pernyataan Persetujuan Publikasi …………………………………….. viii

Kata Pengantar ………………………………………………………………….. ix

Daftar Isi ………………………………………………………………………... xi

Daftar Gambar ………………………………………………………………….. xv

Daftar Tabel …………………………………………………………………….. xvii

BAB I PENDAHULUAN

1.1. Latar Belakang …………………………………………………………..

1.2. Rumusan Masalah ……………………………………………………….

1.3. Batasan Masalah ………………………………………………………...

1.4. Tujuan Penelitian ………………………………………………………..

1.5. Metodologi Penelitian …………………………………………………...

1.6. Sistematika Penulisan …………………………………………………...

1

2

2

3

3

4

Page 13: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xii

BAB II LANDASAN TEORI

2.1. Web Camera (webcam) ………………………………………………….

2.1.1. Pengertian ……………………………………………………….

2.1.2. Teknologi ………………………………………………………..

2.2. Bitmap……………………………………………………………………

2.2.1. Algoritma Penyimpanan ………………………………………...

2.2.2. Format file pada umumnya ……………………………………...

2.3. JPEG (Join Photographics Expert Group) ………………………………

2.3.1. Encoding ………………………………………………………...

2.3.2. Color Space Transformations …………………………………...

2.3.3. Downsampling …………………………………………………..

2.3.4. Compression Ratio dan Artifacts ……………………………….

2.4. Windows API (Application Program Interface) ………………………...

2.5. Windows Socket (Winsock) …………………………………………….

2.6. Pemrograman menggunakan Visual Basic 6.0 ………………………….

2.6.1. Integrated Development Environment (IDE) ……………………

2.6.2. Program Visual Basic yang sangat sederhana …………………..

2.6.3. Socket Programming menggunakan WinSock ………………….

6

6

6

7

8

9

10

11

11

12

12

13

16

20

20

25

27

BAB III PERANCANGAN SISTEM

3.1. Perancangan Sistem ……………………………………………………..

3.2. Konfigurasi Jaringan …………………………………………………….

3.3. Perancangan Perangkat Lunak …………………………………………..

3.3.1. Use case diagram ……………………………………………….

3.3.1.1. Use case pada aplikasi server …………………………...

3.3.1.2. Use case pada aplikasi client ……………………………

3.3.2. Flowchart ……………………………………………………….

37

38

39

39

39

40

41

Page 14: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xiii

3.3.2.1. Flowchart aplikasi server ………………………………..

3.3.2.2. Flowchart aplikasi client ………………………………...

3.3.2.3. Flowchart GUI Server …………………………………...

3.3.2.4. Flowchart GUI Client …………………………………...

3.3.3. Aplikasi Server…………………………………………………..

3.3.3.1. Proses pengambilan citra melalui webcam ……………...

3.3.3.2. Proses komunikasi dengan client ………………………..

3.3.4. Aplikasi Client ………………………………………………….

3.3.4.1. Proses pengolahan citra …………………………………

3.3.4.2. Proses komunikasi dengan server ……………………….

3.3.5. Perancangan GUI (Graphical User Interface) ………………….

3.3.5.1. Sketch Graphical User Interface ………………………...

3.3.5.2. Mock-up Graphical User Interface ……………………...

3.4. Perancangan perangkat keras ……………………………………………

41

45

47

48

49

49

50

53

53

54

54

55

60

65

BAB IV IMPLEMENTASI SISTEM DAN HASIL

4.1. Lingkungan Implementasi ………………………………………………

4.1.1. Spesifikasi perangkat lunak ……………………………………..

4.1.2. Spesifikasi perangkat keras ……………………………………...

4.2. Implementasi API dalam aplikasi ……………………………………….

4.3. Implementasi timer control dalam aplikasi ……………………………..

4.4. Implementasi socket pada aplikasi ………………………………………

4.5. GUI (Graphical User Interface) ………………………………………...

66

66

66

68

72

76

86

Page 15: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xiv

BAB V ANALISIS HASIL

5.1. Konfigurasi aplikasi ……………………………………………………..

5.2. Manfaat dan kemudahan ………………………………………………...

5.3. Keunggulan dan kekurangan ……………………………………………

93

96

97

BAB VI KESIMPULAN DAN SARAN

6.1. Kesimpulan ……………………………………………………………...

6.2. Saran ………………………………………………………….…………

99

100

Daftar Pustaka 101

Page 16: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xvii

DAFTAR TABEL Tabel 2.1

Tabel 3.1

Tabel 3.2

Tabel 5.1

Tabel 5.2

Tabel 5.3

Tabel 5.4

Blok data pada bitmap

Tabel protokol komunikasi WebCamLAN

Tabel format komunikasi WebCamLAN

Tabel Spesifikasi Aplikasi Server

Tabel Spesifikasi Aplikasi Client

Tabel Spesifikasi perangkat pendukung

Tabel Hasil ujicoba

9

55

56

93

93

94

94

Page 17: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xv

DAFTAR GAMBAR Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 2.10 Gambar 2.11 Gambar 2.12 Gambar 3.1. Gambar 3.2. Gambar 3.3. Gambar 3.4. Gambar 3.5. Gambar 3.6. Gambar 3.7. Gambar 3.8. Gambar 3.9. Gambar 3.9. Gambar 3.10. Gambar 3.11. Gambar 3.12. Gambar 3.13. Gambar 3.14. Gambar 3.15. Gambar 3.16. Gambar 3.17. Gambar 3.18. Gambar 3.19. Gambar 3.20. Gambar 3.21.

Sebuah web camera Papan sirkuit elektronik dan sensor gambar OSI Layer Ilustrasi network stack pada umumnya Connection oriented communication Connectionless oriented communication Kotak dialog New Project yang tampil saat menjalankan IDE Visual Basic Lingkungan Visual Basic 6.0 dengan beberapa jendela yang tampil Desain form Hello Visual Basic Aplikasi Hello Visual Basic yang telah dijalankan Desain form aplikasi Chat Client Desain form aplikasi Chat Server Konfigurasi jaringan Use Case Diagram aplikasi server Use Case aplikasi client Flowchart server secara keseluruhan Flowchart multiple connection pada server Flowchart pengambilan citra dari webcam Flowchart stream citra melalui network Flowchart client secara keseluruhan Flowchart menyimpan stream image menjadi file buffer Flowchart GUI server Flowchart GUI client Sketch form main aplikasi server Sketch form password aplikasi server Sketch form options aplikasi server Sketch form speed setting aplikasi server Sketch form source aplikasi server Sketch form about aplikasi server Sketch form main aplikasi client Sketch form password aplikasi client Sketch form setting aplikasi client Sketch form about aplikasi client Mock-up form main aplikasi server

6 7 17 17 19 19 20 24 25 27 28 33 38 39 40 41 42 43 44 45 46 47 48 55 55 56 56 57 57 58 58 59 59 60

Page 18: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

xvi

Gambar 3.22. Gambar 3.23. Gambar 3.24. Gambar 3.25. Gambar 3.26. Gambar 3.27. Gambar 3.28. Gambar 3.29. Gambar 3.30. Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9

Mock-up form password aplikasi server Mock-up form setting aplikasi server Mock-up form speed setting aplikasi server Mock-up form driver aplikasi server Mock-up form about aplikasi server Mock-up form main aplikasi client Mock-up form password Aplikasi Client Mock-up form setting aplikasi client Mock-up form about aplikasi client Aplikasi server ketika dijalankan Input authentifikasi password Window konfigurasi server Window format video Window Video Source Setting Window konfigurasi kecepatan transfer Window About Aplikasi client ketika dijalankan Window konfigurasi Auto Capture

60 61 61 62 62 63 63 64 64 86 87 88 88 89 89 90 91 92

Page 19: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Tindak kejahatan pencurian dapat terjadi di mana saja, kapan saja dan

menimpa siapa saja termasuk sebuah badan usaha seperti warnet. Pencurian yang

dimaksud adalah pencurian terhadap perangkat keras yang dimiliki sebuah warnet,

seperti RAM, Hard Disk Drive, Processor dan lain-lain yang terdapat di setiap

komputer pengguna. Untuk mengatasi hal ini dipergunakanlah CCTV (Closed

Circuit Television) untuk dapat melakukan pengawasan (monitoring) terus

menerus ke setiap komputer.

Web Camera (webcam) merupakan perangkat keras (hardware) yang

mampu mengambil gambar (citra) dari obyek yang berada dalam jangkauan

pandangnya secara terus menerus. Selama ini webcam hanya dimanfaatkan

sebagai pelengkap dalam melakukan chatting dibeberapa protokol messenger dan

aplikasi PC Video Call terkenal seperti AOL Instant Messenger, MSN Messenger,

Skype, Windows Live Messenger dan Yahoo Messenger. Oleh beberapa protokol

messenger itu webcam dimanfaatkan sebagai sarana penangkap citra yang akan

dikirimkan kepada lawan chatting pada protokol yang sama, sehingga selama

melakukan chatting, user akan merasa seolah-olah ia berada dekat dengan lawan

chattingnya, karena ia dapat melihat lawan chattingnya secara langsung.

Page 20: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

2

Berdasarkan fungsi dari webcam tersebut, maka penyusun akan

mencoba membuat perangkat lunak (software) yang akan berfungsi sebagai

kamera pengawas yang berjalan di jaringan komputer. Karena rata-rata saat ini

setiap komputer di warnet dan di perkantoran telah memiliki webcam, maka

software ini nanti diharapkan dapat menjadi sebuah solusi terhadap kedua masalah

yang telah dijabarkan di awal tadi. Software ini akan berjalan sebagai aplikasi

client-server, dimana komputer workstation menjalankan aplikasi server dan

komputer monitoring menjalankan aplikasi client. Server akan merespon request

client berupa pengiriman data citra yang telah ditangkap lalu diproses oleh server

kepada client. Proses pengambilan citra dan mengirimkannya secara periodik

inilah yang akan dilakukan terus menerus selama client melakukan request kepada

server. Selama proses inilah pengawasan akan dilakukan, data citra yang diterima

oleh client akan ditampilkan kembali menjadi citra yang dapat dilihat oleh mata.

1.2. Rumusan Masalah

Dari latar belakang masalah di atas, dapat dirumuskan suatu masalah

“menerapkan aplikasi remote webcam pada warnet ”

1.3. Batasan Masalah

Dalam batasan masalah ini, penyusun membatasi permasalahan yang

perlu dipecahkan, yaitu :

1. Workstation yang menjalankan aplikasi server tidak dapat

menggunakan webcam untuk aplikasi lain, seperti Yahoo! Mesenger.

Page 21: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

3

2. Workstation yang menjalankan aplikasi server tidak dapat

menggunakan clipboard.

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah mengimplementasikan sebuah

software yang dapat menangkap citra dengan webcam lalu mengirimkanya ke

client secara periodik sehingga dapat dikembangkan sebagai media Dedicated

Cam Monitoring, maupun Personal Cam Monitoring.

1.5. Metodologi Penelitian

Beberapa tahapan yang dilakukan dalam menyelesaikan masalah di

atas adalah :

1. Studi pustaka.

Penyusun mencari literatur dan referensi di internet mengenai Image

Capture menggunakan webcam, komunikasi di jaringan dengan

menggunakan Windows Socket (Winsock) , fungsi-fungsi Windows

API (Aplication Program Interface) dan pemrograman Visual Basic.

2. Perancangan sistem.

Perancangan yang akan dibuat adalah perancangan secara umum

mengenai hardware dan software yang digunakan, perancangan

protokol komunikasi, perancangan alur prosesnya dan perancangan

aplikasi yang akan dibuat.

3. Uji coba mengcapture citra menggunakan webcam.

Page 22: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

4

Ditahap ini, penyusun mencoba untuk membuat sebuah aplikasi

dengan pemrograman Visual Basic yang dapat mengcapture citra

dari webcam dan menyimpannya menjadi sebuah data.

4. Uji coba protokol komunikasi dalam jaringan LAN.

Ditahap ini, penyusun mencoba untuk membuat sebuah aplikasi

dengan pemrograman Visual Basic yang dapat melakukan

komunikasi antar komputer di dalam sebuah jaringan LAN.

Komunikasi ini dilakukan berdasarkan protokol yang telah

didefinikan.

5. Implementasi system.

Ditahap ini dilakukan pembuatan aplikasi keseluruhan berdasarkan

perancangan sistem.

1.6. Sistematika Penulisan

Secara garis besar, sistematika penulisan Tugas Akhir adalah sebagai

berikut :

BAB I PENDAHULUAN

Bab ini membahas tentang latar belakang penulisan tugas akhir,

batasan masalah, rumusan masalah, tujuan penulisan dan metodologi

penelitian tugas akhir.

BAB II LANDASAN TEORI

Bab ini berisi tentang landasan teori yang digunakan oleh penyusun

dalam membuat dan menyelesaikan tugas akhir.

Page 23: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

5

BAB III PERANCANGAN SISTEM

Bab ini berisi tentang pembahasan rancangan sistem yang akan

dibangun.

BAB IV IMPLEMENTASI SISTEM

Bab ini berisi tentang pembahasan implementasi perancangan sistem

ke dalam bahasa pemrograman.

BAB V ANALISA HASIL IMPLEMENTASI

Bab ini berisi jawaban dari rumusan masalah yang telah dinyatakan

pada pendahuluan.

BAB VI KESIMPULAN

Bab ini berisi tentang kesimpulan yang dapat diambil dari analisa hasil

serta saran-saran untuk pengembangan program selanjutnya.

Page 24: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

6

BAB II

LANDASAN TEORI

2.1. Web Camera (webcam)1

2.1.1. Pengertian

Web Camera (webcam) biasanya merupakan video camera adalah

perangkat keras (hardware) yang mampu mengambil gambar (citra) dari

obyek yang berada dalam jangkauan pandangnya secara terus menerus.

2

Gambar 2.1 Sebuah web camera

2.1.2. Teknologi

Pada umumnya webcam terdiri atas sebuah lensa, sensor gambar

dan sirkuit elektronik pendukung.Lensa yang sering digunakan adalah lensa

plastik yang dapat digerakkan maju-mundur untuk mengatur fokus kamera.

1 http://en.wikipedia.org/wiki/webcam 2 http://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Axis_network_webcam.jpg/180px-Axis_network_webcam.jpg

Page 25: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

7

Sensor gambar dapat berupa CMOS (Complementary Metal Oxide

Semiconductor) atau CCD (Charge Coupled Device).

Resolusi yang diadobsi webcam biasanya berada di wilayah VGA,

dengan rata-rata frame rate 25 frames per second sampai 30 frames per

second. Resolusi tertinggi yang dimiliki webcam saat ini adalah 1,3

megapixel.

3

Gambar 2.2 Papan sirkuit elektronik dan sensor gambar

2.2. Bitmap

.BMP atau .DIB (Device Independent Bitmap) adalah suatu format

pemetaan bit grafis yang digunakan secara internal oleh subsistem grafis OS/2 dan

Microsoft Windows (GDI), dan biasanya digunakan sebagai format file grafis

yang sederhana pada platform tersebut.

Citra secara umum disimpan dengan kedalaman warna dari 2 ( 1-bit), 16

( 4-bit), 256 ( 8-bit), 65,536 ( 16-bit), atau 16.7 juta ( 24-bit) warna ( bit

3 http://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Sweex_USB_webcam_PCB_with_without_lens_close_up.jpg/284px-Sweex_USB_webcam_PCB_with_without_lens_close_up.jpg

Page 26: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

8

direpresentasikan sebagai bit per pixel). 8-bit citra dapat juga menjadi greyscale

sebagai ganti dari warna yang diindekskan. Alfa channel (untuk ketransparanan)

dapat disimpan dalam suatu file yang terpisah, serupa dengan sebuah citra

greyscale. Sebuah versi 32-bit dengan alfa channel yang terintegrasi telah

diperkenalkan oleh Windows XP dan digunakan di dalam sistem logon dan

temanya

2.2.1. Algoritma Penyimpanan

File BMP biasanya tidak terkompresi, sehingga memiliki ukuran

yang lebih besar dari format citra yang dikompres untuk citra yang sama.

Sebagai contoh, sebuah citra 800x600 24-bit memiliki ukuran hampir sebesar

1,4 megabyte. Untuk contoh yang lebih konkretnya, citra 1024x768 yang

diambil dengan menggunakan webcam memiliki ukuran sebesar 2,5 megabyte

jika disimpan dengan format BMP, sedangkan jika disimpan dengan format

JPG citra tersebut memiliki ukuran sebesar 74 kilobyte. Dengan demikian,

format BMP tidak cocok untuk pengiriman citra di Internet atau media

berkapasitas terbatas atau lambat.

Berdasarkan pada kedalaman warna, sebuah pixel di dalam citra

akan disimpan menggunakan satu atau lebih byte. Warna dari pixel akan

dihitung (sebagai contoh adalah Picture Viewer) berdasarkan pada nilai dari

byte dan nilai-nilai yang berhubungan yang dibaca dari palet warna.

Perkiraan ukuran untuk a n-bit ( na warna) bitmap dalam byte dapat

dihitung sebagai :

Page 27: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

9

Ukuran file BMP 8

2454ntinggilebarn ××

+×+≈ , di mana tinggi dan lebar

dalam satuan pixel.

Pada formula di atas, 54 adalah ukuran dari header file bitmap dan

n24 × adalah ukuran dari palet warna. Perlu diingat bahwa ini hanyalah

perkiraan pada sebuah n-bit citra bitmap, meskipun dapat menjadi maksimum

n2 warna, sebuah citra tertentu dapat tidak menggunakan seluruh warnanya

itu. Selama palet warna hanya mendefinisikan warna-warna yang digunakan

oleh citra, ukuran sebenarnya palet warna akan lebih kecil dari n24× .

Bitmap 8-bit atau kurang menggunakan palet warna, untuk bitmap 16-bit atau

lebih tinggi meniadakan bagian palet dari perhitungan.

Ukuran dari file BMP 8

54ntinggilebar ××

+≈

Menggunakan fungsi unit langkah u(x), kedua formula di atas

dapat dikombinasikan menjadi :

Ukuran dari file BMP 8

24)15(54ntinggilebar

nu n ××+××−+≈ ,

di mana u(x) = 1 jika x=0 dan sebaliknya.

2.2.2. Format file pada umumnya

File bitmap pada umumnya memiliki blok data dibawah ini :

Nama Blok Tujuan

Header Bitmap Menyimpan informasi umum mengenai file bitmap.

Informasi Bitmap Menyimpan detil informasi citra bitmap.

Page 28: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

10

Palet Warna Menyimpan definisi warna yang sedang digunakan untuk

pengindekskan warna bitmap.

Bitmap Data Menyimpan citra sebenarnya tiap-tiap pixel.

Tabel 2.1 Blok data pada bitmap

Bagian di atas membahas mengenai data yang disimpan di dalam

file bitmap secara detil. Perlu diingat bahwa ini adalah standar format file

bitmap, beberapa citra bitmap dapat disimpan menggunakan format yang jauh

berbeda, tergantung pada aplikasi yang membuatnya.

2.3. JPEG (Join Photographics Expert Group)4

Dalam komputer, JPEG pada umumnya merupakan metode standar

kompresi untuk citra fotografi. Nama JPEG merupakan akronim dari Joint

Photographics Experts Group, yang merupakan nama dari sebuah komite yang

menciptakan standar. Kelompok yang berdiri pada tahun 1986, mengeluarkan

standar pada tahun 1992 yang kemudian disetujui pada tahun 1994 sebagai ISO

10918-1.

JPEG sendirilah yang menetapkan seluruh codec-nya, yang menjelaskan

bagaimana sebuah citra dikompres menjadi sebuah aliran byte dan didekompres

kembali menjadi citra juga format file yang digunakan untuk menyimpan aliran

tersebut. Metode kompresi biasanya kompresi yang merugi, dalam artian beberapa

4 http://en.wikipedia.org/wiki/JPEG

Page 29: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

11

kualitas visual akan hilang dalam proses, meskipun ada beberapa variasi pada

garis dasar standar JPEG yang tidak akan merugi. Ada juga format progresif, yang

mana data dikompres dalam beberapa lewatan detil tertinggi secara progresif.

Format ini cukup ideal untuk citra yang besar yang akan ditampilkan selagi

didownload melalui koneksi yang lambat, memperbolehkan preview yang masuk

akal sebelum seluruh data diterima. Meskipun demikian progresif JPEG tidak

didukung secara luas.

2.3.1. Encoding

Banyak dari pilihan dalam JPEG yang standar tidak digunakan,

kebanyakan perangkat lunak citra menggunakan format JFIF yang lebih

sederhana ketika menciptakan file JPEG.

2.3.2. Color Space Transformations

Pertama, citra harus diubah dari RGB menjadi ruang warna yang

berbeda yang disebut YCbCr yang memiliki tiga komponen yaitu Y, Cb dan

Cr. Komponen Y merepresentasikan terang dari suatu pixel, komponen Cr dan

Cb menghadirkan krominan (dipecah menjadi komponen Red dan Blue).

YCbCr sama seperti ruang warna yang digunakan oleh PAL, MAC dan

transmisi televisi warna digital (tetapi bukan oleh NTSC, yang menggunakan

ruang warna yang yang serupa YIQ). Konversi ruang warna YCbCr

memungkinkan kompresi yang lebih besar untuk kualitas citra yang sama atau

kualitas citra yang lebih baik untuk kompresi yang sama.

Page 30: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

12

Konversi ke YCbCr ini disebutkan dalam standar JFIF, dan dapat

digunakan untuk menghasilkan file JPEG sehingga memiliki kompatibilitas

yang tertinggi. Meskipun demikian banyak JPEG kualitas tinggi tidak

menerapkan langkah ini dan tetap menyimpannya dalam ruang warna sRGB,

di mana setiap warna dikompres dan dikuantitasi secara berbeda dengan

tingkatan kualitas yang sama.

2.3.3. Downsampling

Mata manusia dapat melihat lebih detil pada komponen Y daripada

Cb dan Cr. Menggunakan pengetahuan ini, encoder dapat didesain untuk

mengkompres citra dengan lebih efisien.

2.3.4. Compression Ratio dan Artifacts

Hasil perbandingan kompresi dapat bervariasi berdasarkan

kebutuhan untuk menjadi lebih atau kurang agresif dalam pembagian yang

digunakan pada fase kuantitasi. Kompresi 10 banding 1 biasanya

menghasilkan citra yang tidak dapat dibedakan oleh mata dengan citra yang

asli. Kompresi 100 banding 1 dimungkinkan, namun akan terlihat dengan jelas

pecahannya ketika dibandingkan dengan citra yang asli. Tingkatan kompresi

yang sesuai bergantung pada untuk penggunaan apa citra tersebut.

Page 31: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

13

2.4. Windows API (Application Program Interface)

Microsoft Windows Application Program Interface (API) dalam

pemrograman memberikan kemampuan kepada program atau aplikasi untuk

mengeksploitasi kekuatan dari Windows5. Dengan menggunakan API ,

programmer dapat membangun sebuah aplikasi yang berjalan dengan baik pada

semua versi Windows selama berpedoman pada fitur-fitur dan kapabilitas yang

unik pada masing-masing versi.

Windows API terdiri dari berbagai macam fungsi kompleks untuk

berinteraksi langsung secara internal dengan Windows. Beberapa kategori

fungsional dari Windows API, yaitu :

• Manajemen dan Administrasi.

Memberikan fungsionalitas installasi, konfigurasi dan layanan aplikasi dan

sistem

• Diagnosa.

Memberikan fungsionalitas pemecahan masalah (troubleshoot) aplikasi atau

sistem, serta memonitor atau memantau performansi system.

• Multimedia dan grafis

Memberikan fungsionalitas untuk penyatuan teks terformat, grafis, audio

atau video, sehingga mampu untuk menampilkan konten grafis ke layar,

printer, atau perangkat keluaran lainnya.

5 http://msdn.microsoft.com/en-us/library/aa383723(VS.85).aspx

Page 32: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

14

• Jaringan.

Memberikan fungsionalitas komunikasi antar aplikasi-aplikasi dalam sebuah

jaringan. Dapat memberikan kemampuan untuk membuat, mengatur akses

terhadap shared resource, seperti printer, directory pada sebuah jaringan.

• Keamanan.

Memberikan fungsionalitas untuk pengamanan sistem, seperti proteksi

password saat logon, kebebasan menentukan pengamanan terhadap semua

shared system object, kontrol hak akses, manajemen hak, dan audit

keamanan.

• Layanan Sistem.

Memberikan fungsionalitas untuk mengakses sumberdaya dan fitur-fitur

yang mendasari sistem operasi, seperti memori, file sistem, perangkat-

perangkat, proses dan thread. Akses yang dapat dilakukan dapat berupa

pengaturan ataupun pemantauan sumberdaya-sumberdaya yang dibutuhkan

agar dapat bekerja dengan baik.

• User Interface Windows

Memberikan fungsionalitas untuk membuat dan mengatur tampilan

antarmuka. Fungsi ini akan membuat dan menggunakan jendela-jendela

untuk ditampilkan di layar, meminta input dari pengguna, dan membuat

tugas lain yang dibutuhkan untuk mendukung interaksi dengan pengguna.

API (Application Program Interface) merupakan seluruh kumpulan dari

DLL (Direct Link Library) yang spesifik, yang memiliki fungsi-fungsi untuk

dapat dipanggil melalui beberapa bahasa pemrograman seperti Visual Basic,

Page 33: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

15

C/C++, Java dan Delphi. Fungsi-fungsi utama API terdapat dalam 3 file-file DLL

sistem yang terletak pada semua sistem operasi berbasis Windows. Ketiga file-file

DLL tersebut adalah :

• User32.dll

Berfungsi untuk menangani semua yang berhubungan dengan antarmuka.

• Kernel32.dll

Berfungsi untuk menangani semua yang berhubungan dengan file-file dan

memori sistem.

• Gdi32.dll

Berfungsi untuk menangani semua yang berhubungan dengan grafis pada

sistem.

Microsoft® menggabungkan semua fungsi-fungsi API ke dalam DLL

sistem untuk mempermudah akses bagi pengembang perangkat lunak dalam

bahasa pemrograman apapun. Keuntungan dari menggunakan fungsi-fungsi API

adalah optimalisasi yang sudah tertanam pada masing-masing fungsi tersebut,

sehingga akan jauh lebih cepat dalam pemrosesan data ketimbang menggunakan

fungsi standar yang tersedia di Visual Basic. Akan tetapi pemanggilan dan

eksekusi fungsi API tersebut akan membutuhkan waktu juga, sehingga lebih

dianjurkan untuk menggunakan fungsi API yang tidak terdapat pada fungsi

standar Visual Basic ketika kita akan melakukan sebuah tugas khusus.

Pada Visual Basic, sangat dimungkinkan untuk menggunakan DLL

selain 3 DLL di atas, selama kita mengerti bagaimana deklarasi untuk mengakses

fungsi tersebut. Pengembang DLL tersebut harus memberikan dokumentasi yang

Page 34: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

16

mendetail yang akan memberikan penjelasan kepada pengembang bagaimana

caranya membuat deklarasi API untuk menggunakan fungsi yang terdapat di

dalam DLL tersebut.

API dapat digunakan untuk melakukan tugas-tugas di Windows seperti

mematikan komputer, merestart sistem, hingga menginstall printer. Karena

sudah selayaknya sebuah sistem operasi bekerja secara multithread, maka

beberapa program pun dapat mengakses sebuah fungsi API yang sama dalam

waktu yang bersamaan juga.

2.5. Windows Socket (Winsock)

Winsock digunakan untuk membuat aplikasi yang akan mengakses

fungsi-fungsi level bawah dari Transmission Control Protocol (TCP/IP), secara

metafora memperbolehkan untuk tersambung ke dalam sebuah jaringan. Sebuah

socket hampir sama dengan antarmuka jaringan perangkat keras yang digunakan

untuk komunikasi interproses melalui jaringan di mana proses tersebut

berkomunikasi dengan remote system melalui protokol transport (TCP atau UDP).

Spesifikasi Socket API Windows menggambarkan dua alat penghubung:

API yang digunakan oleh pengembang aplikasi, dan Service Provider Interface

(SPI), yang menyediakan arti bagi pengembang perangkat lunak jaringan untuk

menambahkan modul protokol baru ke dalam sistem . API menjamin bahwa suatu

aplikasi penyelarasan akan berfungsi dengan tepat dengan suatu implementasi

protokol penyelaras dari vendor perangkat lunak jaringan apapun. Melalui

Page 35: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

17

penggunaan yang sesuai dari API, suatu aplikasi Winsock dapat bekerja pada

berbagai implementasi Winsock dan protokol transport jaringan.

Jaringan dibuat dari beberapa lapisan yang didasarkan pada model

lapisan OSI. TCP/IP adalah protokol jaringan berada pada lapisan 3 dan 4 pada

model OSI. Sebuah protokol jaringan menyediakan layanan seperti addressing,

data transport, routing dan logical connection melalui jaringan. Dua komputer

harus menggunakan protokol jaringan jika program yang berjalan pada komputer

tersebut ingin berkomunikasi. Protokol jaringan yang umum lainnya adalah IPX

pada Novell, 3Com pada IBM, NetBIOS pada Windows, DECNet pada Digital

dan AppleTalk pada Apple.

6

Gambar 2.3 OSI Layer

7

Gambar 2.4 Ilustrasi network stack pada umumnya

6 http://tangentsoft.net/wskfaq/glossary.html 7 http://tangentsoft.net/wskfaq/glossary.html

Page 36: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

18

Pada saat ini Winsock telah mencapai versi 2.0. Versi ini merupakan

pengembangan dari versi pendahulunya yaitu versi 1.1. Versi 2.0 memberikan

dukungan untuk beberapa protokol transport, meskipun versi 1.1 tidak terbatas

pada TCP/IP saja Versi 2.0 juga mendukung prakarsa teknis seperti Quality of

Service (QoS) dan multicasting. Teknologi ini akan meningkat seiring dengan

permintaan bandwidth. Sebagai contoh QoS membolehkan sebuah program video

conferencing untuk mencadangkan sejumlah tertentu bandwidth agar transfer file

yang tiba-tiba sebagai contoh, tidak menyebabkan videonya menjadi patah-patah

karena kekurangan bandwidth. Multicasting memperbolehkan program video

conferencing untuk mengirimkan aliran video dan audio ke banyak peserta

konferensi tanpa menduplikasi data lagi. Winsock 2.0 bekerja dengan mekanisme

high efficiency I/O overlapped Win32 sejak Windows NT mendukung I/O overlap

di dalam kernel yang memberikan peningkatan kecepatan yang tinggi. Winsock

2.0 juga memperbolehkan Layered Service Provider (LSP) untuk yang membuka

banyak hal seperti plug-ins keamanan: drop in, say, dan SSL.

Winsock lebih populer digunakan dalam aplikasi client-server yang

menyediakan dua tipe layanan, yaitu connection oriented dan connectionless

oriented. Layanan connection oriented diimplementasikan pada TCP, di mana

koneksi antar titik dalam jaringan harus tersambung terlebih dahulu sebelum

terjadi pertukaran data atau informasi.

Page 37: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

19

8

Gambar 2.5 Connection oriented communication

9

Gambar 2.6 Connectionless oriented communication

8 http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzab6/rxab6500.gif 9 http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzab6/rxab6300.gif

Page 38: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

20

2.6. Pemrograman menggunakan Visual Basic 6.0

2.6.1. Integrated Development Environment (IDE)10

IDE memberi kita semua yang dibutuhkan untuk menciptakan

aplikasi-aplikasi handal, untuk menulis kode , mengetes dan kemudian

memperbaiki, lalu menciptakan file yang dapat dieksekusi oleh mesin. File-

file ini berdiri sendiri di luar lingkungan dan karenanya dapat dikirimkan

kepada pengguna untuk dieksekusi di mesin mereka tanpa perlu menginstall

Visual Basic.

Setelah kita melakukan instalasi Visual Basic 6.0 dan memanggil

program Visual Basic untuk pertama kali, maka kita akan diminta untuk

memilih tipe project yang akan diciptakan. Pilih Standard EXE sebagai awal

untuk menciptakan aplikasi yang dapat dijalankan di mesin.

Gambar 2.7 Kotak dialog New Project yang tampil saat menjalankan

IDE Visual Basic

10 Programming Visual Basic 6.0, Balena Francesco, Microsoft® Press, 1999 Advanced Microsoft Visual Basic 6.0, The Mandelbrot Set, Microsoft® Press, 1998 Microsoft® Win32® Programmer's Reference

Page 39: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

21

Setelah memilih Standard EXE maka Visual Basic akan

menampilkan jendela IDE yang terdiri dari beberapa komponen yaitu :

• Project Window

Memberikan pandangan terhadap semua modul-modul yang dimiliki

oleh aplikasi kita. Kita dapat melihat beberapa modul-modul yang

dikelompokkan berdasar pada tipenya, lalu melihat kode disetiap

modul atau objek yang berhubungan dengan melakukan double klik.

• Form Designer

Digunakan untuk mendesain antarmuka aplikasi. Melalui Form

Designer kita dapat mengatur posisi dan ukuran kontrol objek di dalam

form. Aplikasi dapat memiliki banyak form, dan hanya dapat dibuka

satu Form Designer dalam waktu bersamaan.

• Toolbox Window

Toolbox window memiliki satu set kontrol objek yang secara default

telah dimasukkan pada Toolbox dan tidak dapat dihilangkan, kontrol

objek inilah yang nanti dapat diletakkan ke dalam form. Penambahkan

kontrol Microsoft ActiveX objek dengan melakukan klik kanan pada

Toolbox lalu memilih Components pada pop-up yang muncul,

sehingga akan muncul kembali jendela Component. Pilih component

yang akan ditambahkan lalu tekan tombol OK untuk menerapkannya.

Page 40: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

22

• Code Window

Digunakan untuk menuliskan kode yang berhubungan dengan form

atau objek lain di dalam aplikasi. Beberapa Code Window ditampilkan

pada waktu yang bersamaan.

• Properties Window

Menampilkan semua properti dari objek yang sedang dipilih, dan

memberikan kemampuan untuk mengeditnya. Kita dapat memberikan

nama dari form yang kita pilih dengan mengedit nilai pada property

Caption.

• Color Palette

Jendela Color Palette dapat memberikan akses cepat untuk

memberikan warna ke sebuah objek, seperti kontrol yang sedang

dipilih pada Form Designer.

• Form Layout

Form Layout akan menunjukkan bagaimana form yang dipilih akan

tampil saat program berjalan. Kita bisa mendrag form ke tempat yang

kita inginkan di layar selama program berjalan.

Page 41: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

23

• Immediate Window

Immediate Window memberikan kemampuan kepada kita untuk

memasukkan perintah atau ekspresi Visual Basic dan melihat hasilnya

menggunakan perintah Print.

• Object Browser

Object browser memberikan kemampuan untuk mengeksplorasi

library-library luar agar dapat mempelajari tentang objek yang

ditampilkan beserta propertinya, metode-metode dan event-event nya.

Object Browser juga membantu secara cepat melompat ke prosedur

apapun di dalam modul apapun pada aplikasi.

• Locals Window

Locals window hanya akan aktif ketika program dijalankan, yang akan

menampikan list dari nilai semua variabel modul atau prosedur lokal.

• Watches Window

Watches Window memampukan untuk memonitor nilai dari sebuah

variabel atau ekspresi secara terus menerus. Melalui Watches Window,

eksekusi program dapat dihentikan ketika nilai ekspresi yang dipilih

bernilai True atau saat nilainya berubah.

Page 42: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

24

• Call Stack Window (tidak terlihat pada gambar)

Call Stack Window hanya akan tampil saat melakukan break pada

program yang berjalan dan menekan shortcut Ctrl+L. Call Stack

Window akan menampilkan semua prosedur yang menunggu prosedur

yang sedang berlangsung selesai.

Gambar 2.8 Lingkungan Visual Basic 6.0 dengan beberapa jendela yang

tampil

Page 43: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

25

2.6.2. Program Visual Basic yang sangat sederhana

Membuat program dengan menggunakan Visual Basic tidaklah

sulit. Berikut ini penyusun akan mencoba memberikan contoh beserta

keterangan yang diperlukan.

Aplikasi Hello Visual Basic.

Langkah-langkah yang diperlukan untuk membuat aplikasi ini akan

dijelaskan sebagai berikut:

1. Buatlah sebuah form dengan menggunakan Form Designer pada

Visual Basic, sehingga terlihat seperti gambar di bawah ini.

Gambar 2.9 Desain form Hello Visual Basic

Agar menghasilkan form seperti di atas perlu

ditambahkan beberapa komponen yaitu kontrol objek Label dan

kontrol objek Button.

Pilih icon pada Toolbox lalu klik kiri pada form dan

lakukan drag untuk menambahkan objek Label. Untuk mengedit

Page 44: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

26

teks dari Label tersebut dilakukan dengan mengganti Caption

Label pada Properties Window menjadi “Hello Visual Basic”.

Pilih icon pada Toolbox lalu lakukan cara yang sama

seperti di atas untuk menambahkannya ke dalam form. Untuk

mengedit teks dari Button tersebut dilakukan dengan mengganti

Caption Button pada Properties Window menjadi “Exit”. Untuk

mengubah nama dari kontrol objek tersebut dilakukan dengan

mengubah Name Button pada Properties Window menjadi

“cmdExit”.

2. Agar tombol pada form tersebut dapat digunakan ketika program

dieksekusi, maka perlu ditambahkan baris kode berikut ke dalam

aplikasi

Private Sub btnExit_Click() 'baris berikut ini akan dilakukan ketika dilakukan penekanan 'pada tombol Exit dengan menggunakan mouse 'fungsi unload objek akan dilakukan sehingga proses akan 'meng-unload form aplikasi untuk keluar dari aplikasi. Unload Me ‘ memanggil fungsi unload End Sub

3. Untuk mencoba menjalankan aplikasi ini dapat dilakukan dengan

memilih “Start With Full Compile” pada menu Run Visual Basic

atau dengan menggunakan shortcut Ctrl+F5.

Page 45: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

27

4. Hasil saat menjalankan aplikasi ini dapat dilihat pada gambar

berikut ini

Gambar 2.10 Aplikasi Hello Visual Basic yang telah dijalankan

2.6.3. Socket Programming menggunakan WinSock

Winsock Chat client-server.

Langkah-langkah yang diperlukan untuk membuat aplikasi ini akan

dijelaskan sebagai berikut.

Membuat aplikasi client.

1. Buat form client dengan menggunakan Form Designer pada Visual

Basic sehingga terlihat seperti gambar di bawah ini.

Page 46: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

28

11

Gambar 2.11 Desain form aplikasi Chat Client

Tambahkan dua buah Label ke dalam form dan edit

properties text-nya secara berurutan menjadi “Remote Host IP :”

dan “Remote Host Port :”.

Tambahkan empat buah TextBox ke dalam form, edit

properties name-nya secara berurutan menjadi “TxtIP”, “TxtPort”,

“TxtLog” dan “TxtSend”.

11http://www.phoenixbit.com/site/tutorials/Programming/Visual%20Basic/winsock1/WinsockSource.zip

Page 47: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

29

Tambahkan tiga buah CommandButton ke dalam form,

edit properties name-nya secara berurutan menjadi “btnConnect”,

“btnExit” dan “btnSend”.

Kontrol objek Winsock perlu ditambahkan pada program

ini. Untuk menambahkan kontrol ini dilakukan dengan melakukan

klik kanan pada Toolbox lalu pilih “Component” dan cari

“Microsoft Winsock Control 6.0”.

Pilih “Microsoft Winsock Control 6.0” lalu klik OK.

2. Sekarang penyusun memiliki form, tetapi form tersebut tidak

memiliki kode di dalamnya, hanya komponen-komponen saja,

yaitu CommandButton, TextBox dan Winsock ActiveX. Penyusun

akan memulai menuliskan kode yang diperlukan untuk tombol

“Connect” agar tombol tersebut dapat bekerja.

Private Sub btnConnect_Click() On Error GoTo t ‘jika terjadi error maka lompat ke t 'sock1 adalah nama Winsock ActiveX Control sock1.Close 'penyusun menutupnya karena akan mulai untuk terkoneksi 'txtIP adalah textbox penyimpan host IP sock1.RemoteHost = txtIP 'mengeset host tujuan ke IP yang ditulis pada textbox 'txtPort adalah textbox penyimpan Port sock1.RemotePort = txtPort 'mengeset port yang diinginkan untuk terkoneksi '(server harus listening pada port ini juga) sock1.Connect 'mencoba untuk terkoneksi Exit Sub t: MsgBox "Error : " & Err.Description, vbCritical ‘menampilkan pesan kesalahan beserta deskripsinya End Sub

Page 48: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

30

Yang dilakukan di sini adalah menutup Winsock sebelum

mencoba untuk terkoneksi lalu mengeset parameter Winsock yang

dibutuhkan (IP dan Port). Setelah itu memanggil fungsi connect

yang dimiliki oleh Winsock.

3. Sekarang penyusun selesai pada kode di dalam CommandButton

Connect. Kontrol Winsock memiliki sebuah event yang disebut

_Connect, dimana event ini akan terpicu ketika koneksi yang

dilakukan sukses. Yang dapat dilakukan oleh penyusun adalah

membersihkan chat buffer dan meletakkan pesan yang mengatakan

bahwa koneksi ke host tujuan sukses.

Private Sub sock1_Connect() 'txtLog adalah textbox yang digunakan sebagai chat buffer 'sock1.RemoteHost mengembalikan hostname( atau IP) dari host 'sock1.RemoteHostIP mengembalikan IP dari host ‘menambahkan informasi bahwa sedang terkoneksi ke dalam chat buffer txtLog = "Connected to " & sock1.RemoteHostIP End Sub

4. Kegagalan dalam melakukan koneksi ke host dapat disebabkan

oleh beberapa alasan seperti IP yang tidak valid, host tidak

menerima koneksi pada port tertentu (karena port host tersebut

tertutup), error di koneksi internet (terkena firewall atau koneksi

yang lost), host mati atau offline dan lain-lain. Untuk menangani

error ini, penyusun perlu untuk menggunakan event _error. Di sini

akan digunakan error number dan descriptionnya.

Page 49: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

31

Private Sub sock1_Error(ByVal Number As Integer, DescriptionAs String, ByVal Scode As Long,ByVal Source As String, ByVal HelpFileAs String, ByVal HelpContext As Long, CancelDisplay As Boolean) 'even ini digunakan untuk menangani segala error yang terjadi saat menggunakan Winsock. 'Number memberikan kode error pada erroryang terjadi 'Description memberikan nilai string dengan penjelasan sederhana mengenai error yang terjadi 'menambahkan kode error yang terjadi ke dalam chat buffer. txtLog = txtLog & "*** Error : " & Description & vbCrLf 'mencoba untuk menutup koneksi Winsock sock1_Close End Sub

5. Ada event yang akan terpicu ketika koneksi tertutup, event ini

adalah _Close. Diperlukan penanganan terhadap event close yang

terjadi untuk memastikan bahwa Winsock benar-benar telah

tertutup.

Private Sub sock1_Close() 'menangani penutupan koneksi sock1.Close ‘ tutup koneksi End Sub

6. Pengiriman data merupakan bagian yang penting dalam koneksi

karena melalui pengiriman data inilah komunikasi dapat terjadi.

Pengiriman data string kepada host dapat dilakukan dengan

menggunakan fungsi SendData. Berikut ini adalah kode yang

diperlukan agar CommandButton Send dapat bekerja.

Private Sub btnSend_Click() On Error GoTo t 'penyusun ingin mengirimkan nilai dari TextBox txtSend sock1.SendData txtSend 'kirimkan string tersebut ke

Page 50: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

32

host 'penanganan error '(sebagai contoh, penyusun akan menangani error ketika akan mengirimkan data saat belum terkoneksi) Exit Sub t: MsgBox "Error : " & Err.Description sock1_Close 'tutup koneksi End Sub

7. Penerimaan data sama pentingnya dengan pengiriman data. Yang

perlu dilakukan adalah menggunakan fungsi Winsock GetData di

dalam event _DataArrival yang akan terpicu setiap kali ada data

yang diterima. Berikut ini adalah kode yang menangani data yang

masuk lalu menambahkannya ke dalam chat buffer.

Private Sub sock1_DataArrival(ByValbytesTotal As Long) 'penyusun menggunakan fungsi GetData ayang akan mengembalikan data yang dimiliki oleh Winsock Dim dat As String 'variabel dat bertipe String untuk menyimpan data sock1.GetData dat, vbString 'menyimpan data yang baru didapatkan Winsock ke dalam variable dat 'menambahkan pesan baru ke dalam chat buffer txtLog = txtLog & "Server : " & dat & vbCrLf End Sub

Membuat Aplikasi Server

Secara mendasar aplikasi server tidak jauh berbeda dengan aplikasi

client, penyusun hanya akan menjabarkan perbedaan nya saja.

1. Buat form client dengan menggunakan Form Designer pada Visual

Basic sehingga terlihat seperti gambar di bawah ini.

Page 51: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

33

12

Gambar 2.12 Desain form aplikasi Chat Server

Tambahkan sebuah buah Label ke dalam form dan edit

properties text-nya menjadi “Listening on Port :”.

Tambahkan tiga buah TextBox ke dalam form, edit

properties name-nya secara berurutan menjadi “TxtPort”, “TxtLog”

dan “TxtSend”.

Tambahkan tiga buah CommandButton ke dalam form,

edit properties name-nya secara berurutan menjadi “btnListen”,

“btnExit” dan “btnSend”.

12http://www.phoenixbit.com/site/tutorials/Programming/Visual%20Basic/winsock1/WinsockSource.zip

Page 52: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

34

Kontrol objek Winsock perlu ditambahkan pada program

ini. Untuk menambahkan kontrol ini dilakukan dengan melakukan

klik kanan pada Toolbox lalu pilih “Component” dan cari “Microsoft

Winsock Control 6.0”.

Pilih “Microsoft Winsock Control 6.0” lalu klik OK.

2. Perbedaan pertama adalah dalam koneksi. Pada aplikasi client, harus

diset remote IP dan Port yang akan digunakan, lalu mencoba untuk

melakukan koneksi. Aplikasi server hanya perlu untuk mengeset

local port lalu listening pada port tersebut, yang berarti bahwa

program memonitor setiap permintaan koneksi yang terjadi oleh

client pada port yang telah didefinisikan.

Berikut ini adalah kode yang harus dituliskan untuk

tombol “Start Listening”.

Private Sub btnListen_Click() On Error GoTo t 'sock1 adalah nama dari kontrol Winsock ActiveX yang penyusun gunakan sock1.Close 'tutup koneksi, saat socket sebelumnya telah listening 'txtPort adalah TextBox yang berisi Port Number sock1.LocalPort = txtPort 'mengeset Port yang penyusun inginkan untuk listening ( Client akan terkoneksi pada port ini ) sock1.Listen 'memulai Listening Exit Sub t: MsgBox "Error : " & Err.Description, vbCritical End Sub

Page 53: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

35

3. Perbedaan berikutnya adalah penanganan koneksi, di mana client

memiliki event _Connect yang akan dipicu ketika koneksi sedang

berlangsung. Pada server perlu untuk menerima permintaan koneksi

dari client sebelum koneksi selesai. Untuk melakukan hal ini,

digunakan fungsi Accept saat event _ConnectionRequest terpicu oleh

permintaan client untuk terkoneksi dengan host. Berikut ini adalah

kode yang diperlukan untuk melakukannya.

Private Sub sock1_ConnectionRequest(ByVal requestID As Long) 'txtLog adalah TextBox yang digunakan sebagai Chat Bufer 'event ini terpicu saat client mencoba untuk terkoneksi kepada host 'server harus menerima permintaan koneksi tersebut agar konektifitas antara client dengan server dapat terjadi. 'hanya mengecek state dari Winsock If sock1.State <> sckClosed Then sock1.Close ‘menerima koneksi client sehingga client dan server dapat saling bertukar data sock1.Accept requestID ‘menambahkan pesan ke dalam Chat Buffer txtLog = "Client Connected. IP : " & sock1.RemoteHostIP & vbCrLf End Sub

Jika telah selesai memasukkan seluruh kode yang diperlukan ke

dalam setiap form server dan form client, maka dapat menggunakan shortcut

Ctrl+F5 untuk mencoba menjalankan masing-masing aplikasi tersebut dengan

otomatis melakukan compile terlebih dahulu.

Page 54: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

36

Untuk menghasilkan file executable yang nantinya dapat

dijalankan tanpa harus menggunakan compiler Visual Basic, dapat

menggunakan “Make Project1” pada menu “File”.

Page 55: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

37

BAB III

Perancangan Sistem

3.1. Perancangan Sistem

Aplikasi WebCamLAN ini berfungsi untuk melakukan monitoring

terhadap setiap workstation yang memiliki webcam dan terintegrasi aplikasi

WebCamLAN server. Aplikasi WebCamLAN client dan WebCamLAN server

akan saling berkomunikasi melalui media jaringan LAN (Local Area Network).

Mengapa berjalan pada jaringan LAN, apakah tidak dapat berjalan pada jaringan

Internet ? Sebenarnya secara kemampuan aplikasi ini dapat berjalan pada jaringan

Internet, akan tetapi dikarenakan keterbatasan lebar pita data (bandwidth) yang

dimiliki setiap komputer berbeda dan kecepatan transfer data yang dibutuhkan

oleh aplikasi ini cukup tinggi, maka ada kemungkinan bahwa akan terjadi jeda

waktu penampilan citra yang cukup lama, sehingga citra akan ditampilkan dengan

terputus-putus.

Aplikasi ini adalah aplikasi yang bersifat client-server, yang mana

komputer workstation akan menjalankan aplikasi server, dan komputer

monitoring akan menjalankan aplikasi client. Pertama-tama client akan

melakukan request koneksi kepada server, lalu server akan meminta autentifikasi

berupa password kepada client. Jika password yang diterima sesuai dengan

password yang tersimpan di server, maka koneksi akan dilanjutkan dengan

pengiriman data citra yang telah ditangkap oleh server kepada client. Setiap

alamat IP yang melakukan request koneksi, hasil dari autentifikasi password dan

Page 56: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

38

waktu terjadinya akan dicatat oleh server dan disimpan ke dalam file log untuk

dapat dilakukan tracing terhadap status webcam. Proses pengambilan citra oleh

server dan mengirimkannya ke client akan dilakukan terus menerus selama tidak

ada request untuk menghentikan proses oleh client atau koneksi yang terputus.

3.2. Konfigurasi Jaringan

Konfigurasi jaringan yang digunakan dalam penelitian ini adalah

sebagai berikut :

1 2 3 4 5 6

7 8 9 101112

AB

12x

6x

8x

2x

9x

3x

10x

4x

11x

5x

7x

1x

Eth

ern

et

A

12x

6x

8x

2x

9x

3x

10x

4x

11x

5x

7x

1x

C

Gambar 3.1. Konfigurasi jaringan

Page 57: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

39

Sistem operasi yang digunakan pada gateway router adalah Linux

berbasiskan text. Sistem operasi pada workstation dan monitoring server adalah

Microsoft Windows XP SP2, dengan Visual Basic Runtime versi 6.0 .

3.3. Perancangan Perangkat Lunak1

3.3.1. Use case diagram 2

3.3.1.1. Use case pada aplikasi server

Gambar 3.2. Use Case Diagram aplikasi server

1 Programming Visual Basic 6.0, Balena Francesco, Microsoft® Press, 1999 Advanced Microsoft Visual Basic 6.0, The Mandelbrot Set, Microsoft® Press, 1998 Microsoft® Win32® Programmer's Reference Win32 API Reference for HLA 2 UML 2.0 in a Nutshell, Pilone Dan, Pitman Neil, O'Reilly, 2005

Page 58: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

40

3.3.1.2. Use case pada aplikasi client

<<in

clud

e>>

Gambar 3.3. Use Case aplikasi client

Page 59: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

41

3.3.2. Flowchart

3.3.2.1. Flowchart aplikasi server

Gambar 3.4. Flowchart server secara keseluruhan

Secara keseluruhan, aplikasi server akan mulai listening pada port yang

sudah ditentukan saat aplikasi server dijalankan. Ketika mendapatkan

request untuk connect dari client, aplikasi server akan mulai mengambil

citra melalui webcam lalu mengirimkan citra tersebut ke client proses

pengambilan citra dan mengirimkan ke client tersebut akan dilakukan

secara terus menerus sampai koneksi terputus yang bias dikarenakan

client memutuskan koneksi atau gangguan koneksi.

Page 60: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

42

Start

listening state

connection request ?

insocket[int]int indexindex=0

index < 10

insocket[index] accept remote host

end

index++

true

false

false

true

Port in use?

false

true

Gambar 3.5. Flowchart multiple connection pada server

Pada proses ini, socket sisi server akan melemparkan requestID dari

connection request sisi client kepada socket lain pada sisi server yang

sedang menganggur atau free lalu membuat socket tersebut yang akan

berkomunikasi dengan sisi client. Proses penerimaan requestID

tersebutlah yang akan dilakukan secara terus menerus selama terjadi

request connect dari sisi client hingga mencapai jumlah index port yang

telah dialokasikan oleh server.

Page 61: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

43

Start

Connect to capture device

Capture device installed ?

Capture device

Create capture preview

Paste clipboard to PictureBox

Export PictureBox to JPG Stream

end

true

false

Gambar 3.6. Flowchart pengambilan citra dari webcam

Sebelum mengambil citra dari webcam, aplikasi server akan mengecek

keberadaan webcam terlebih dahulu dan akan meminta pengguna untuk

memilih webcam yang akan digunakan. Ketika pengguna telah

memasukkan webcam secara spesifik, maka aplikasi server akan

memulai koneksi ke webcam lalu membuat preview dari citra webcam,

mengkopi citra ke clipboard dan memasukkannya ke picturebox untuk

nantinya diexport berupa citra berformat JPG.

Page 62: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

44

Start

File stream exist ?

Temp = read line per buffer sizeEOF

Open file handle

Is connected

Temp string

Send temp via socket

end

false

Close file handle

true

false

true

false

Gambar 3.7. Flowchart stream citra melalui network

Aplikasi server akan mengecek keberadaan image stream terlebih

dahulu, ketika image stream tersebut ada, maka aplikasi server akan

membaca keseluruhan file tersebut dan menyimpannya ke dalam

memory yang lalu dikirimkan kepada aplikasi client.

Page 63: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

45

3.3.2.2. Flowchart aplikasi client

Gambar 3.8. Flowchart client secara keseluruhan

Aplikasi client akan mencoba untuk connect ke server pada port yang

telah ditentukan hingga satuan waktu tertentu, jika permintaan connect

ke server diterima maka aplikasi client akan mulai menerima paket data

stream dari server hingga client meminta untuk memutuskan koneksi

atau terjadi gangguan pada koneksi. Jika permintaan koneksi ke server

ditolak atau timeout, maka aplikasi client akan menutup port yang

digunakan dan kembali ke state awal.

Page 64: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

46

Start

Connected?

Write temp to file

Open file handle

Temp string

true

end

false

Close file handle

Temp = buffer from socket

Latest buffer package

true

false

Gambar 3.9. Flowchart menyimpan stream image menjadi file

buffer

Untuk menyimpan image stream yang telah diterima dari server, aplikasi

client akan menerima satu persatu data stream buffer dari server lalu

menuliskannya ke dalam file image stream hingga aplikasi client

menerima acknowledgment bahwa buffer yang dikirimkan sebelumnya

merupakan buffer terakhir dari keseluruhan image stream yang

dikirimkan secara berurutan.

Page 65: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

47

3.3.2.3. Flowchart GUI Server

Gambar 3.9. Flowchart GUI server

Page 66: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

48

3.3.2.4. Flowchart GUI Client

Gambar 3.10. Flowchart GUI client

Page 67: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

49

3.3.3. Aplikasi Server

Inti dari software ini berada pada sisi server. Kegagalan proses akan

mengakibatkan keseluruhan aplikasi tidak dapat berjalan dengan semestinya,

maka diharapkan aplikasi server dapat melakukan auto recovery terhadap

setiap kegagalan proses yang terjadi. Ada dua proses berbeda yang dilakukan

oleh aplikasi server, yaitu :

• Proses pengambilan citra melalui webcam yang meliputi

pengambilan citra dan pengolahan citra.

• Proses komunikasi dengan client yang meliputi autentifikasi,

enkripsi-dekripsi data dan pengiriman citra sebagai data.

3.3.3.1. Proses pengambilan citra melalui webcam.

Proses ini memanfaatkan library-library yang dimiliki oleh windows

melalui fungsi-fungsi API (Aplication Program Interface) yaitu user32.dll

dan kernel32.dll. Aplikasi server akan mencari driver control webcam jika

pada komputer ditemukan webcam. Lalu dengan driver tersebut aplikasi

server akan melakukan koneksi ke webcam dan mulai untuk menampilkan

jendela preview jika koneksi dapat dilakukan. Untuk dapat melakukan

capture citra yang ada pada jendela preview maka digunakanlah fungsi

sendmessages() pada library user32. Hasil capture citra tersebut akan

diletakkan dalam sebuah control object picture berupa citra yang berformat

BMP (bitmap) dan memiliki ukuran file yang cukup besar. Melalui control

object picture citra yang akan dikirimkan itu dapat dilihat secara visual.

Karena ukuran file citra yang cukup besar untuk ditransferkan melalui

Page 68: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

50

jaringan secara terus-menerus, maka perlu diubah formatnya menjadi JPEG

untuk mendapatkan ukuran file citra yang kecil namun tetap memiliki

kualitas yang baik. Hasil dari pengubahan tersebut yang akan disimpan

menjadi file buffer untuk dapat digunakan oleh proses berikutnya, yaitu

komunikasi.

Proses pengcapturean dan proses penyimpanan berikut dengan

pengubahan format citra akan dilakukan secara periodik dengan

menggunakan control object timer.

3.3.3.2. Proses komunikasi dengan client.

Proses ini memanfaatkan control object winsock untuk dapat

berkomunikasi dengan aplikasi client melalui IP (Internet Protocol). Untuk

membentuk sebuah komunikasi yang baik dan relevan antara server dengan

client, maka dibuatlah sebuah protokol komunikasi tersendiri yang dapat

dilihat pada tabel berikut :

NO Paket Data Keterangan

1 "#i_t#" Digunakan sebagai tanda bahwa paket data

yang dikirimkan adalah paket data perintah

dan akan diterjemahkan sebagai perintah.

2 "#invisible#" Digunakan sebagai tanda bahwa paket data

yang dikirimkan adalah paket data

autentifikasi yang telah dienskripsi dengan

sandi tertentu.

3 "#dat#" Digunakan sebagai tanda bahwa paket data

yang dikirimkan adalah paket data citra, yang

Page 69: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

51

akan diolah kembali oleh client sehingga

dapat dilihat oleh mata.

Tabel 3.1. Tabel protokol komunikasi WebCamLAN

Selain menggunakan protokol komunikasi seperti yang telah

disebutkan di atas, ditetapkan pula format dari protokol komunikasi, yang

dapat dilihat pada tabel berikut :

NO Format Paket Keterangan

1 "#i_t#start#i_t#"

"#i_t#stop#i_t#"

"#i_t#open#i_t#"

"#i_t#close#i_t#"

"#i_t#reject#i_t#"

"#i_t#accept#i_t#"

Perintah untuk menghidupkan kamera.

Perintah untuk mematikan kamera.

Perintah untuk meminta koneksi.

Perintah untuk menutup koneksi.

Informasi bahwa autentifikasi gagal.

Informasi bahwa autentifikasi berhasil.

2 "#invisible#[encrypted

data]#invisible#"

Encrypted data akan berisi password yang

telah dibungkus oleh paket auth dengan

format "auth!password!auth", sehingga jika

dekripsi terhadap encrypted data berhasil

maka akan memberikan hasil berupa

"auth!password!auth". yang kemudian akan

diekstrak menjadi "password" untuk

mendapatkan password yg sesungguhnya.

3 "#dat#[data

citra]#dat#"

Data yang sebenarnya tidak dibungkus oleh

sebuah paket, sehingga data yang dikirimkan

merupakan pure data packet.

Page 70: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

52

4 "#dat#next#dat#" Merupakan acknowledgment bahwa data

telah diterima dengan baik dan

diperbolehkan untuk mengirimkan paket data

berikutnya.

Tabel 3.2. Tabel format komunikasi WebCamLAN

Melalui control object winsock, paket-paket data autentifikasi, data

perintah dan data citra akan dikirimkan dan diterima oleh server. Untuk

dapat menerima paket data, maka winsock harus berada pada kondisi

listening state. Selama state listening, server akan menerima data yang

dikirimkan kepadanya dan akan diterjemahkan sesuai dengan tabel

komunikasi. Server hanya akan menanggapi hasil terjemahan yang berupa

perintah dan autentifikasi saja, selain dari itu hanya akan diacuhkan dan

tidak diambil tindakan apa-apa. Hasil terjemahan authentifikasi akan

didekripsi untuk mendapatkan authentifikasi yang sebenarnya. Saat

mengirimkan data, server hanya akan mengirimkan paket-paket data yang

berupa paket data citra dan akan mengirimkan data tersebut kepada client

yang memiliki autentifikasi valid.

Citra yang telah disimpan menjadi file buffer oleh proses

pengambilan citra akan dibaca dan diubah menjadi bit-bit data lalu dipecah-

pecah berdasarkan ukuran MTU (Maximum Transfer Unit). Hasil dari

pemecahan file buffer kemudian dibungkus menjadi paket data berdasarkan

protokol komunikasi yang telah dijelaskan di atas. Setelah proses

pembungkusan ini selesai, maka server akan mengirimkannya kepada client

yang sedang terhubung oleh winsock.

Page 71: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

53

Proses pengambilan tindakan atas terjemahan data yang dikirim dari

client dan proses pengiriman citra ini akan dilakukan secara periodik dengan

menggunakan control object timer.

3.3.4. Aplikasi Client

Secara keseluruhan aplikasi pada sisi client tidak jauh berbeda

dengan aplikasi pada sisi server, yang membedakan hanyalah proses yang

dilakukan. Adapun proses yang akan dilakukan pada sisi client adalah sebagai

berikut :

• Proses pengolahan citra yang meliputi menampilan citra.

• Proses komunikasi dengan server yang meliputi autentifikasi,

enkripsi-dekripsi data dan penerimaan citra sebagai data.

3.3.4.1. Proses pengolahan citra.

Antara aplikasi server dan aplikasi client tidak terdapat perbedaan

yang mencolok. Perbedaan yang ada hanyalah pada bagian proses, dimana

pada sisi client tidak membutuhkan proses pengambilan citra, namun tetap

ada proses pengolahan citra dikarenakan data citra yang telah dikirim oleh

aplikasi server perlu diolah kembali agar dapat ditampilkan menjadi citra

yang dapat dilihat secara visual. Hasil terjemahan proses komunikasi yang

berupa bit-bit data citra yang terpecah-pecah akan digabungkan lalu diolah

agar kembali membentuk citra kemudian disimpan menjadi sebuah file

buffer. Melalui control object picture, file buffer tersebut akan diload dan

ditampilkan sehingga didapatkan jendela preview yang dapat dilihat secara

Page 72: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

54

visual. Proses ini merupakan kebalikan dari proses yang dilakukan pada

aplikasi server.

3.3.4.2. Proses komunikasi dengan server.

Seperti pada aplikasi server, proses ini juga memanfaatkan control

object winsock untuk dapat berkomunikasi dengan server melalui IP

(Internet Protokol). Untuk dapat menerima paket data citra dari server, client

harus berada pada kondisi listening state. Selama state listening, client akan

menerima data yang dikirimkan kepadanya dan akan diterjemahkan sesuai

dengan tabel komunikasi. Client hanya akan menanggapi hasil terjemahan

yang berupa data citra saja, selain dari itu hanya akan diacuhkan dan tidak

diambil tindakan apa-apa. Begitu juga saat mengirimkan data, client hanya

akan mengirimkan paket-paket data yang berupa paket perintah dan

authentifikasi. Saat melakukan pengiriman data, paket-paket data yang akan

dikirimkan diproses terlebih dahulu, sesuai dengan tabel komunikasi yang

telah dijelaskan pada proses komunikasi aplikasi server.

3.3.5. Perancangan GUI (Graphical User Interface)

Sebelum merancang sebuah aplikasi yang nantinya akan digunakan

oleh pengguna, maka perlu dibuatlah sebuah rancangan antarmuka atau GUI

sehingga pengguna dapat berinteraksi dengan aplikasi yang akan dibuat oleh

penyusun. Rancangan tersebut dapat didefinisikan sebagai berikut :

Page 73: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

55

3.3.5.1. Sketch Graphical User Interface

Layaknya sebuah lukisan yang akan dilukiskan oleh seorang pelukis,

maka penyusun pun perlu untuk membuat sketch atau sketsa terlebih dahulu

terhadap antarmuka yang akan dirancang.

Berikut ini adalah sketch dari antarmuka tersebut :

a) Sketch Aplikasi Server

Gambar 3.11. Sketch form main aplikasi server

Gambar 3.12. Sketch form password aplikasi server

Page 74: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

56

Gambar 3.13. Sketch form options aplikasi server

Gambar 3.14. Sketch form speed setting aplikasi server

Page 75: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

57

Gambar 3.15. Sketch form source aplikasi server

Gambar 3.16. Sketch form about aplikasi server

Page 76: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

58

b) Sketch Aplikasi Client

Gambar 3.17. Sketch form main aplikasi client

Gambar 3.18. Sketch form password aplikasi client

Page 77: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

59

Gambar 3.19. Sketch form setting aplikasi client

Gambar 3.20. Sketch form about aplikasi client

Page 78: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

60

3.3.5.2. Mock-up Graphical User Interface

Dari keseluruhan sketch yang telah dibuat sebelumnya, dapat

diambil mock-up atau screen capture aplikasi server dan client ini. Mock-

up dapat diibaratkan sebagai prototype dari antarmuka.

a) Mock-up Aplikasi Server

Gambar 3.21. Mock-up form main aplikasi server

Gambar 3.22. Mock-up form password aplikasi server

Page 79: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

61

Gambar 3.23. Mock-up form setting aplikasi server

Gambar 3.24. Mock-up form speed setting aplikasi server

Page 80: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

62

Gambar 3.25. Mock-up form driver aplikasi server

Gambar 3.26. Mock-up form about aplikasi server

Page 81: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

63

b) Mock-up Aplikasi Client

Gambar 3.27. Mock-up form main aplikasi client

Gambar 3.28. Mock-up form password Aplikasi Client

Page 82: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

64

Gambar 3.29. Mock-up form setting aplikasi client

Gambar 3.30. Mock-up form about aplikasi client

Page 83: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

65

3.4. Perancangan perangkat keras

Perangkat keras yang dibutuhkan oleh masing-masing aplikasi ini adalah

Personal Computer (PC) yang difungsikan sebagai komputer workstation dan

komputer monitoring. PC yang difungsikan sebagai komputer workstation adalah PC

dengan kecepatan proses yang cukup tinggi, memiliki webcam yang telah terinstall

dengan baik pada sistem operasi dan terkoneksi melalui kabel USB (Universal Serial

Bus), memiliki satu buah kartu jaringan dan telah terinstall aplikasi server pada sistem

operasinya. PC yang difungsikan sebagai komputer monitoring juga memiliki

kecepatan proses yang cukup tinggi, memiliki 1 buah kartu jaringan dan telah

terinstall aplikasi client pada sistem operasinya. Masing-masing kartu jaringan pada

setiap PC dihubungkan ke switch/hub.

PC yang difungsikan sebagai workstation dan monitoring diharapkan

memiliki spesifikasi minimal sebagai berikut :

1. Prosessor

2. Hard Disk

3. RAM

4. VGA

5. NIC

: Intel Pentium ® 3 700 hz atau lebih tinggi

: 5 GB atau lebih tinggi

: 128 (non shared), 256 (32 MB shared) atau lebih tinggi

: 32 MB

: Realtek RTL8139 Family PCI Fast Ethernet NIC Compatible

Jika fitur auto capture pada aplikasi client digunakan, maka harus

memiliki kapasitas hard disk sebesar 20GB dengan maintenance secara manual setiap

hari, untuk mencegah kehabisan ruang kosong di hard disk.

Switch atau hub yang akan digunakan sebagai konsentrator pada jaringan

diharapkan memiliki kecepatan minimal 10 Mbps.

Page 84: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

66

BAB IV

IMPLEMENTASI SISTEM DAN HASIL

Pada bab ini penyusun akan menjelaskan mengenai implementasi remote

webcam pada LAN. Karena aplikasi ini berbasiskan jaringan, maka tidak menutup

kemungkinan aplikasi ini dapat dipergunakan pada internetwork atau internet, namun

di sini penyusun hanya akan membahas mengenai implementasi pada LAN saja.

4.1. Lingkungan Implementasi

4.1.1. Spesifikasi perangkat lunak

Perangkat lunak yang penyusun gunakan saat implementasi adalah

sebagai berikut :

Sistem Operasi Microsoft® Windows® XP Professional Edition

SP2

Bahasa Pemrograman Visual Basic 6.0

4.1.2. Spesifikasi perangkat keras

Perangkat keras yang penyusun gunakan saat implementasi adalah

sebagai berikut :

Komputer Server 1 Intel® Pentium® 4 Dual Core 3.0Ghz

1024Mb RAM

Page 85: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

67

128Mb NVDIA Graphic Card

10/100 Mbps 3Com Ethernet Card

Compex USB Wifi Card

Lexcron Gennie WebCamera

Komputer Server 2 Laptop Axio Intel® Centrino Duo 2.4Ghz

1024Mb RAM

32Mb Onboard Intel® Graphic Card

100/1000 Mbps Intel® Network Card

Intel® Wifi Card

Lexcron Alladin WebCamera

Komputer Client Compaq NC600 Intel® Pentium® 4 1.7 Ghz

1024Mb RAM

32Mb ATI Mobility Graphic Card

100/1000 Mbps Broadcom NetExtreem Ethernet

Card

Atheros Wifi Card

Media penunjang 10/100 Mbps D-Link Switch-hub

Wireless D-Link AirStream

UTP Cable Belden

Page 86: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

68

4.2. Implementasi API dalam aplikasi.

Dalam proyek ini, penyusun hanya menitikberatkan pembahasan pada data

transfer yang akan ditangani oleh socket atau lebih dikenal dengan nama winsock.

Pembahasan mengenai fungsi-fungsi API yang akan menangani pengambilan citra

dan konversi citra tidak akan dibahas secara mendetail, mengingat ruang lingkup

yang akan meluas pada API dan juga waktu yang dibutuhkan tidak mencukupi.

Fungsi-fungsi API yang penulis gunakan, telah dideskripsikan oleh E. J. Bantz Jr.

yang menggabungkan semua fungsi pengolahan citra menjadi sebuah modul pada

Visual Basic.

Seperti telah dijelaskan pada sub bahasan di atas, proses pengambilan citra

melalui API akan memanfaatkan DLL windows, yaitu avicap32.dll , kernel32.dll dan

user32.dll. Penggunaan API ini lebih banyak digunakan pada aplikasi server, karena

aplikasi server yang langsung berhubungan dengan webcam dan akan mengakses

resource webcam untuk mengambil gambar dan mentransfernya ke client.

Pada kernel32.dll (library kernel32), fungsi yang akan digunakan adalah

sebagai berikut ini

Declare Function lStrCpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long

Declare Function lStrCpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As Any, ByVal lpString2 As Long, ByVal iMaxLength As Long) As Long

Declare Sub RtlMoveMemory Lib "kernel32" (ByVal hpvDest As Long, ByVal hpvSource As Long, ByVal cbCopy As Long)

Declare Sub hmemcpy Lib "kernel32" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

Page 87: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

69

Penjelasan dari masing-masing fungsi API tersebut adalah sebagai berikut :

• lStrCpy pada library kernel32 berfungsi untuk mengkopi sebuah string

ke dalam buffer.

• lStrCpyn pada library kernel32 memiliki fungsi yang hampir sama

seperti lStrCpy, hanya saja fungsi ini lebih mengarah pada pengkopian

sejumlah karakter dari sebuah string saja.

• RtlMoveMemory pada library kernel32 berfungsi untuk memindahkan

memory dalam blok 4-bytes yang akan diikuti oleh byte-byte sisanya.

• hmemcpy pada library kernel32 berfungsi untuk mengkonversi user-

defined variable menjadi sebuah string.

Pada user32.dll (library user32), fungsi yang akan digunakan adalah sebagai

berikut ini:

Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Declare Function DestroyWindow Lib "user32" (ByVal hndw As Long) As Boolean Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd

As Long, ByVal lpString As String) As Long Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd

As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As

Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Penjelasan dari masing-masing fungsi API tersebut adalah sebagai berikut :

• SetWindowPos pada library user32 berfungsi untuk mengubah ukuran,

posisi dan Z order dari sebuah child, pop-up atau top-level window.

Page 88: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

70

Window-window tersebut akan diurutkan berdasarkan penampakan

atau tampilnya di layar.

• DestroyWindow pada library user32 berfungsi untuk menutup sebuah

window. Fungsi ini akan mengirimkan pesan WM_DESTROY dan

WM_NCDESTROY kepada window untuk menonaktifkan window

dan melepaskan fokus keyboard dari window tersebut.

• GetSystemMetrics pada library user32 berfungsi untuk mengambil system

metric atau seting konfigurasi sistem.

• SetWindowText pada library user32 berfungsi mengubah teks pada

sebuah window yang telah ditentukan.

• SetWindowLong pada library user32 berfungsi mengubah atribut dari

window yang telah ditentukan. Fungsi ini juga mengeset nilai 32-bit

pada offset yang telah ditentukan ke dalam extra window memory.

• SendMessage pada library user32 berfungsi memanggil prosedur

window pada window yang telah ditentukan dan tidak akan

mengembalikan nilai hingga prosedur window selesai memproses

pesan tersebut.

Pada avicap32.dll (library avicap32), fungsi-fungsi yang digunakan adalah

sebagai berikut:

Declare Function capCreateCaptureWindowA Lib "avicap32.dll" ( _ ByVal lpszWindowName As String, _ ByVal dwStyle As Long, _ ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, _ ByVal hWndParent As Long, ByVal nid As Long) As Long

Page 89: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

71

Declare Function capGetDriverDescriptionA Lib "avicap32.dll" ( _ ByVal wDriver As Integer, _ ByVal lpszName As String, _ ByVal cbName As Long, _ ByVal lpszVer As String, _ ByVal cbVer As Long) As Boolean

Penjelasan dari masing-masing fungsi API tersebut adalah sebagai berikut :

• capCreateCaptureWindowA pada library avicap32 berfungsi untuk

membuat atau membentuk window capture frame yang akan

digunakan untuk menampilkan hasil capture dari imaging device.

Window capture frame ini nanti akan penyusun letakkan di dalam

sebuah picture box.

• capGetDriverDescriptionA pada library avicap32 berfungsi untuk melihat

satu-persatu driver imaging device yang telah terinstall pada sistem.

Proses pengambilan citra dilakukan dengan memanggil fungsi berikut ini

pada rutin event timer:

Private Sub tmrCam_Timer() On Error GoTo hell Dim i As Integer If isCameraON <> True Then GoTo hell Else 'get preview window frame Call capGrabFrame(lwndCap) ' Copy current frame to Clipboard Call capEditCopy(lwndCap) ' Put Clipboard's data to picPreview, but verified it first (is it DIB?) If Clipboard.GetFormat(8) Then picPreview.Picture = Clipboard.getData

Page 90: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

72

' clear clipboard Clipboard.Clear End If End If hell: End Sub

Fungsi-fungsi API di atas lebih banyak dipergunakan oleh aplikasi server,

karena aplikasi serverlah yang langsung menggunakan webcam.

4.3. Implementasi timer control dalam aplikasi

Dalam aplikasi penyusun menggunakan timer control untuk berbagai

macam keperluan handling atau penanganan, seperti penanganan terhadap koneksi,

penanganan terhadap file buffer, penanganan terhadap log citra dan penanganan

terhadap penjadualan proses.

Penanganan terhadap koneksi merupakan hal yang cukup penting dalam

aplikasi ini untuk mencegah aplikasi crash, dikarenakan jika tidak ada kontrol

terhadap koneksi maka pengiriman data akan dilakukan asal-asalan tanpa peduli

apakah koneksi masih terjalin ataukah tidak. Dengan memanfaatkan timer control

maka proses pengecekan konektivitas dapat dilakukan secara berkala sehingga error

atau crash dapat sedikit ditekan. Selain itu proses di dalam timer control akan

menutup koneksi yang menganggur terlalu lama untuk mencegah aplikasi membanjiri

sistem oleh koneksi yang terlalu banyak dibuka.

Page 91: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

73

Berikut ini merupakan proses yang dilakukan pada timer control client dan

server, event pada timer control inilah yang melakukan pengecekan terhadap

komunikasi antar client dan server.

Private Sub tmrSocketState_Timer() Dim inState As String On Error GoTo hell Select Case inSock.State Case sckClosed inState = "Closed" inSock.Listen Case sckOpen inState = "Open" Case sckListening inState = "Listening" Case sckConnectionPending inState = "Connection pending" Case sckResolvingHost inState = "Resolving host" Case sckHostResolved inState = "Host resolved" Case sckConnecting inState = "Connecting" Case sckConnected inState = "Connected" Case sckClosing inState = "Peer is closing the connection" inSock.Close Case sckError inState = "Error" inSock.Close End Select lblStatus.Caption = "Status : Port " & inSock.LocalPort & " " & inState hell: If Err.Number = 10048 Then 'err.number 10048 == address in use then exit program MsgBox "Port " & FormMain.inSock.LocalPort & " already in use. Please specify other port at Setting Window", vbExclamation, "Port in use" tmrSocketState.Enabled = False frmSetting.Show

Page 92: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

74

End If End Sub

Timer control juga digunakan untuk menangani file buffer dan log citra

karena saat aplikasi menggunakan sebuah file, file tersebut akan terkunci dan tidak

dapat digunakan oleh proses yang lain sampai file tersebut ditutup oleh proses yang

membukanya. Ketika sebuah proses lain akan membuka file yang sedang digunakan

oleh proses lain maka akan timbul konflik di dalam aplikasi yang akan menyebabkan

aplikasi crash. Sebuah proses di dalam timer control akan melakukan penjadualan

terhadap file-file yang akan dipergunakan oleh aplikasi, sehingga memperkecil

kemungkinan untuk terjadinya tabrakan saat membuka file.

Penjadualan pada proses juga perlu dilakukan dan ditangani oleh timer

control. Masing-masing proses dalam aplikasi akan diurutkan sesuai urutan yang

seharusnya dan dipanggil oleh timer control. Proses yang berada di dalam timer

control diantaranya adalah proses pengambilan citra, pengkopian citra ke dalam

clipboard, peletakan citra ke dalam picture box, pengeksportan citra menjadi buffer

dan dikonversi menjadi JPEG lalu mengirimkannya kepada client. Jika runtutan

proses tersebut tidak berjalan secara urut, maka akan timbul konflik di dalam aplikasi,

karena itu di sini timer control dipergunakan.

Berikut ini adalah proses yang dilakukan pada sisi server.

Private Sub tmrSender_Timer(Index As Integer) On Error GoTo hell tmrSender(Index).Interval = SPEEDCAPTURE lbltimer.Caption = "Timer : " & Index & " [activated] PORT : " & outSock(Index).Index If isCameraON <> True Then

Page 93: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

75

MsgBox "Camera is Off" GoTo hell Else FileName = App.Path & "\stream" & Index & ".buff" 'writeImage 'SavePicture picPreview.Picture, FileName Call SAVEJPEG(getWidth(lwndCap), getHeight(lwndCap), FileName, JPEGQUALITY, picPreview) 'send file buffer to remote host and then load file buffer to _ preview window after all buffer has been send If ISAUTHENTICATED(Index) Then If sendFile(FileName, Index) Then 'imgView.Picture = LoadPicture(FileName) End If Else lblpackage.Caption = "Session Not Authenticated" closeSession (Index) End If 'checking for connection. if not connected then stop camera routine If Not isReadyToCommunicate(outSock(Index)) Or Not NextPart(Index) Then tmrSender(Index).Enabled = False closeSession (Index) End If 'delete file buffer 'If Dir(FileName) <> "" Then Kill FileName End If hell: End Sub

Untuk melakukan logging terhadap gambar webcam yang telah diterima dari

server, pada aplikasi client juga menggunakan timer control. Proses logging akan

dilakukan berdasarkan interval pada timer control yang mengatur proses logging

tersebut. Berikut adalah source dari timer control tersebut.

Private Sub tmrCapture_Timer() If isReadyToCommunicate(outSock) And Not IsFileOpen And Dir$(bufferName) <> "" Then newPathFile = IMAGEPATH & "\" & Me.Caption & "\" & Day(Date) & _ "-" & Format(Time, "hh-nn-ss-") & GetTickCount & ".jpg" MoveFile Me.Caption, bufferName Else: Exit Sub

Page 94: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

76

End If End Sub

Penyusun lebih banyak menggunakan timer control untuk mengurangi

timbulnya konflik di dalam aplikasi dengan menjalankan beberapa rutin-rutin

pengecekan yang harus dilakukan.

4.4. Implementasi socket pada aplikasi.

Secara umum socket pada masing-masing aplikasi memiliki fungsionalitas

yang sama, akan tetapi secara proses masing-masing aplikasi memiliki alur yang

berbeda. Pada sisi server, socket akan bersifat multiple sehingga sisi server mampu

untuk menerima multiple connection dari beberapa host. Fungsi seperti ini dilakukan

dengan cara menyiapkan satu socket untuk selalu listening pada port yang sudah

didefinisikan sebelumnya, lalu disediakan juga socket lain yang akan berkomunikasi

secara langsung dengan client yang melakukan request connect ke server. Sedang

pada sisi client, masing-masing socket akan dialokasikan hanya untuk satu connection

ke server, meskipun secara tampilan sisi client memiliki banyak target host, namun

untuk setiap host tersebut hanya terdapat satu socket.

Berikut ini merupakan proses pada sisi server untuk menangani event

request connect.

Private Sub inSock_ConnectionRequest(ByVal requestID As Long) ' have a free sock connect to the request Dim i As Integer If INIGet("integration", "ipfilter", FilePathINI) Then If doFiltering(Me.ListAllowIP, inSock.RemoteHostIP) = False Then

Page 95: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

77

GoTo hell End If End If For i = 0 To 10 If FreeConn(i) Then FreeConn(i) = False outSock(i).Close outSock(i).Accept requestID 'MsgBox "Porting Connection to index " & i Exit For End If Next hell: inSock.Close End Sub

Pada proses ini, socket sisi server akan melemparkan requestID dari connection

request sisi client kepada socket lain pada sisi server yang sedang menganggur atau

free lalu membuat socket tersebut yang akan berkomunikasi dengan sisi client. Proses

penerimaan requestID tersebutlah yang akan dilakukan secara terus menerus selama

terjadi request connect dari sisi client.

Ketika konektivitas sudah terjalin maka antara client dengan server dapat

memulai untuk mengirimkan data. Untuk dapat saling berkomunikasi dengan baik,

dibuatlah sebuah protokol lain selain TCP/IP yang akan berfungsi untuk

membahasakan isi dari paket data yang dikirimkan. Seperti halnya protokol YM

(Yahoo! Messenger), protokol ini penyusun beri nama protokol ITP (invisible_theater

protokol) Berikut ini merupakan protokol ITP yang dirangkum dalam satu module

Visual Basic:

Page 96: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

78

Option Explicit '****************************************************************************** ' Author: invisible_theater ([email protected]) ' ' ([email protected]) ' ' ' ' Date: 07/02/2007. ' ' Copyright: Copyright© 2007, invisible_theater. ' ' Purpose: webcamera syncronization and comunication as ' ' internet protocol. ' ' ' ' Details: ' ' ITP module (invisible_theater Protocol) ' ' ' ' NOTE: ' ' ' ' ' '****************************************************************************** ' =================== CONSTANT PACKET PROTOCOL ======================== ' 'Private Const START_WEBCAM = "#i_t#start#i_t#" 'Private Const STOP_WEBCAM = "#i_t#stop#i_t#" 'Private Const OPEN_CONN = "#i_t#open#i_t#" 'Private Const CLOSE_CONN = "#i_t#close#i_t#" 'Private Const REJECT_CONN = "#i_t#reject#i_t#" 'Private Const ACCEPT_CONN = "#i_t#accept#i_t#" 'Private Const KEEP_ALIVE = "#i_t#pingpong#i_t#" Private Const PACKET_COMMAND = "#i_t#" Private Const PACKET_AUTH = "#invisible#" Private Const PACKET_DATA = "#dat#" ' ===================================================================== ' Dim Crypto As New clsCryptoRC4 Public Function getFrame(ByVal Frame As String) As String If Left(Frame, 5) = PACKET_COMMAND And Right(Frame, 5) = PACKET_COMMAND Then getFrame = getCommand(Frame) ElseIf Left(Frame, 11) = PACKET_AUTH And Right(Frame, 11) = PACKET_AUTH Then getFrame = "auth" 'getAuth(frame) ElseIf Left(Frame, 5) = PACKET_DATA Then getFrame = "data" 'getData(frame) Else: getFrame = "NOT DEFINED COMMAND" End If End Function Private Function getCommand(ByVal data As String) As String 'getCommand = StrReverse(Mid$(StrReverse(Mid(data, 6)), 6)) Dim arrDATA As Variant arrDATA = Split(data, PACKET_COMMAND) '

Page 97: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

79

getCommand = arrDATA(1) Debug.Print "getCommand :: " & arrDATA(1) End Function Public Function getAuth(ByVal data As String) As String Dim RAW_CRYPTED As String, CRYPTED As String 'RAW_CRYPTED = StrReverse(Mid(StrReverse(Mid(data, 12)), 12)) Dim arrDATA As Variant arrDATA = Split(data, PACKET_AUTH) ' RAW_CRYPTED = arrDATA(1) Debug.Print "raw crypted :: " & arrDATA(1) CRYPTED = Crypto.ACSDecrypt(RAW_CRYPTED, FormMain.PASS_CODE, True) Debug.Print CRYPTED CRYPTED = Mid$(CRYPTED, 6, Len(CRYPTED) - 10) Debug.Print "AUTH :: " & CRYPTED getAuth = CRYPTED End Function Public Function getData(ByVal data As String) As String Dim i As Long Dim arrDATA As Variant arrDATA = Split(data, PACKET_DATA, -1, vbTextCompare) ' 'getData = arrDATA(0) For i = 0 To UBound(arrDATA) getData = getData & arrDATA(i) Next Debug.Print "DATA : " & data End Function Public Function setFrame(ByVal Command As String, Optional password As String, Optional data As String) As String 'Dim dataPacket As String Select Case LCase(Command) Case "auth" setFrame = PACKET_AUTH & Crypto.ACSEncrypt("auth!" & password & "!auth", password, True) & PACKET_AUTH Case "data" setFrame = data & PACKET_DATA Case "start" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "stop" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "open" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "close" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "getauth"

Page 98: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

80

setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "okauth" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "errauth" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "errstart" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "next" setFrame = PACKET_COMMAND & LCase(Command) & PACKET_COMMAND Case "" setFrame = PACKET_COMMAND & "" & PACKET_COMMAND End Select End Function

Protokol tersebut akan membungkus paket-paket data komunikasi yang kritikal

menjadi paket data yang terenkripsi, seperti paket data autentifikasi password. Selain

itu, modul tersebut memiliki fungsi-fungsi yang berguna untuk menterjemahkan dari

paket data mentah menjadi paket data yang siap dikirimkan melalui jaringan dan

sebaliknya.

Dalam mengirimkan stream paket-paket datanya baik aplikasi server

maupun aplikasi client harus selalu melakukan sinkronisasi mengenai paket data yang

telah diterima dan yang akan dikirimkan. Sinkronisasi tersebut berguna untuk

memastikan apakah paket data tersebut rusak atau tidak, selain itu berguna untuk

memastikan akhir dari sebuah stream paket data. Sinkronisasi tersebut berupa

acknowledgment yang telah disepakati antar client dan server.

Proses yang akan terjadi pada sisi server ketika menerima data dari client :

Private Sub outSock_DataArrival(Index As Integer, ByVal bytesTotal As Long) If isReadyToCommunicate(outSock(Index)) Then Dim data As String outSock(Index).getData data

Page 99: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

81

' // add packet received to listbox 'listPacketData.AddItem data 'If listPacketData.ListCount > 0 Then listPacketData.Selected(listPacketData.ListCount - 1) = True 'MsgBox data Select Case getFrame(data) Case "auth" ' server received 'writeLogDataIn ("REQUEST LOGIN ATTEMPT FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]") 'MsgBox "REQUEST LOGIN ATTEMPT FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]" If getAuth(data) = PASS_CODE Then ISAUTHENTICATED(Index) = True 'writeLogDataIn ("ACCESS CODE ACCEPTED. [authentification valid. waiting for next command.]") outSock(Index).SendData (setFrame("okauth")) Else ISAUTHENTICATED(Index) = False 'writeLogDataIn ("WRONG ACCESS CODE. [authentification failure, closing connection to remote host.]") outSock(Index).SendData (setFrame("errauth")) DoEvents 'reset socket to control outSock(Index).Close closeSession (Index) ' End If Case "start" ' server received 'lblStatus.Caption = "attempted to start camera" 'writeLogDataIn ("REQUEST START CAMERA ATTEMPT FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]") 'startCapture 'MsgBox "REQUEST START CAMERA ATTEMPT FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]" If ISAUTHENTICATED(Index) Then lblpackage.Caption = "START BROADCASTING ..." 'Call startCam(framePreview.hwnd) 'ISCAMHASSTART = True tmrSender(Index).Interval = SPEEDCAPTURE tmrSender(Index).Enabled = True Else outSock(Index).SendData (setFrame("getauth")) 'writeLogDataIn ("REQUEST NOT AUTHORIZED. [request cam not authorized, requesting authorization code from remote host.]") End If Case "stop" 'server received

Page 100: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

82

'lblStatus.Caption = "attempted to stop camera" 'writeLogDataIn ("REQUEST STOP CAMERA FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]") 'ISCAMHASSTART = False 'MsgBox "REQUEST STOP CAMERA FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]" If ISAUTHENTICATED(Index) Then 'Call stopCam tmrSender(Index).Enabled = False closeSession (Index) 'ISCAMHASSTART = False 'writeLogDataIn ("BRODCAST AND CAMERA STOPPED ...") Else: 'writeLogDataIn ("PROBABLY HIJACKING PROCEDURAL DETECTED") End If Case "open" ' server received 'lblStatus.Caption = "attempted to handshake" 'writeLogDataIn ("REQUEST HANDSHAKE FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]") 'MsgBox "REQUEST HANDSHAKE FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]" If ISAUTHENTICATED(Index) Then 'writeLogDataIn ("HOST ALREADY AUTHORIZED. [waiting for next command.]") Else outSock(Index).SendData (setFrame("getauth")) 'writeLogDataIn ("HOST NOT AUTHORIZED. [ requesting authorization code from remote host.]") End If Case "close" 'server received 'lblStatus.Caption = "attempted to close connection" 'writeLogDataIn ("CONNECTION CLOSING ATTEMPT FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]") 'MsgBox "CONNECTION CLOSING ATTEMPT FROM [ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]" If ISAUTHENTICATED(Index) Then 'writeLogDataIn ("CLOSE CONNECTION TO REMOTE HOST") 'ISCAMHASSTART = False tmrSender(Index).Enabled = False closeSession (Index) 'Call stopCam 'stopConnect Else: 'writeLogDataIn ("PROBABLY HIJACKING PROCEDURAL DETECTED") End If Case "next" NextPart(Index) = True Case "NOT DEFINED COMMAND"

Page 101: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

83

'lblStatus.Caption = "[WARNING !!!] hijacking attempt." 'writeLogDataIn ("MALICIOUS CODE RECEIVED FROM[ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]") 'writeLogDataIn ("PROBABLY HIJACKING PROCEDURAL DETECTED") 'MsgBox "MALICIOUS CODE RECEIVED FROM[ " & inSock.RemoteHostIP & ":" & inSock.RemotePort & " ]" End Select Else End If End Sub

Sebelum mengirimkan paket stream, aplikasi server melakukan validasi terlebih

dahulu, apakah koneksi dengan client sudah terjalin atau belum. Ketika koneksi telah

terjalin maka setiap paket data yang diterima oleh server akan diterjemahkan

berdasarkan protokol yang telah didefinisikan.

Ketika hasil terjemahan tersebut berupa permintaan untuk mengirimkan paket stream

ke client, maka aplikasi server akan melakukan proses sebagai berikut:

Private Sub tmrSender_Timer(Index As Integer) 'On Error GoTo hell tmrSender(Index).Interval = SPEEDCAPTURE lbltimer.Caption = "Timer : " & Index & " [activated] PORT : " & outSock(Index).Index If isCameraON <> True Then MsgBox "Camera is Off" GoTo hell Else FileName = App.Path & "\stream" & Index & ".buff" 'writeImage 'SavePicture picPreview.Picture, FileName Call SAVEJPEG(getWidth(lwndCap), getHeight(lwndCap), FileName, JPEGQUALITY, picPreview) 'send file buffer to remote host and then load file buffer to _ preview window after all buffer has been send If ISAUTHENTICATED(Index) Then If sendFile(FileName, Index) Then 'imgView.Picture = LoadPicture(FileName) End If Else lblpackage.Caption = "Session Not Authenticated"

Page 102: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

84

closeSession (Index) End If 'checking for connection. if not connected then stop camera routine If Not isReadyToCommunicate(outSock(Index)) Or Not NextPart(Index) Then tmrSender(Index).Enabled = False closeSession (Index) End If 'delete file buffer 'If Dir(FileName) <> "" Then Kill FileName End If hell: End Sub

Di mana server akan melakukan validasi mengenai konektivitas dan authentifikasi

terlebih dahulu, setelah melewati kedua validasi tersebut maka aplikasi server akan

mengirimkan paket data kepada aplikasi client pada socket yang bersangkutan.

Proses pada aplikasi client ketika menerima paket data dari server :

Private Sub outSock_DataArrival(ByVal bytesTotal As Long) If isReadyToCommunicate(outSock) Then Dim packetData As String ', filename As String 'packetData = "" outSock.getData packetData 'lblStatus.Caption = "received data : " & getFrame(packetData) 'MsgBox packetData Debug.Print "RECEIVED PACKET :: " & packetData Select Case getFrame(packetData) Case "data" ' client received bufferName = App.Path & "\stream" & Me.Caption & ".buff" If (saveFile(bufferName, getData(packetData), Me)) Then On Error Resume Next With imgView .Picture = LoadPicture(bufferName) .ScaleMode = 3 .AutoRedraw = True .PaintPicture .Picture, _ 0, 0, .ScaleWidth, .ScaleHeight, _ 0, 0, _

Page 103: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

85

.Picture.Width / 26.46, _ .Picture.Height / 26.46 End With Else End If Case "getauth" ' client received lblStatus.Caption = "attempted to get authentification" Dim Pass As New FormPassBox Pass.Show vbModal, MDImain PASS_CODE = Pass.pswd If isReadyToCommunicate(outSock) Then outSock.SendData (setFrame("auth", PASS_CODE)) End If Case "okauth" ' client received lblStatus.Caption = "password is OK" outSock.SendData (setFrame("start")) cmdConnect.Caption = "Stop Viewing" Case "errauth" ' client received lblStatus.Caption = "password is incorrect" cmdConnect.Caption = "Connect" stopConnect Case "errstart" ' client received lblStatus.Caption = "cam in use" stopConnect Case "" lblStatus.Caption = "NOT DEFINED COMMAND" 'writeLogDataIn (PartFile & " BLANK : " & packetData) Case "NOT DEFINED COMMAND" lblStatus.Caption = "[WARNING !!!] hijacking attempt." 'writeLogDataIn (PartFile & " NOT DEFINED: " & packetData) End Select Else: End If hell: End Sub

Page 104: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

86

Seperti halnya pada sisi server, proses ini juga akan menerjemahkan paket data yang

diterima menjadi perintah yang akan dilakukan oleh client. Setelah paket data

diterjemahkan, maka client juga akan mengirimkan paket data kepada server

berdasarkan perintah terjemahan tersebut, seperti meminta authentifikasi, meminta

data stream, atau pemberitahuan bahwa authentifikasi gagal.

4.5. GUI (Graphical User Interface)

Ketika aplikasi server dijalankan, aplikasi akan memulai untuk meng-

capture citra dari webcam dan akan listening pada socket yang telah didefinisikan

pada konfigurasi.

Gambar 4.1 Aplikasi server ketika dijalankan

Page 105: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

87

Untuk melakukan konfigurasi terhadap aplikasi server, pengguna dapat memilih

menu “Options” yang akan meminta authentifikasi berupa password sebelum

pengguna diperbolehkan merubah konfigurasi aplikasi server.

Gambar 4.2 Input authentifikasi password

Ketika authentifikasi tersebut valid maka pengguna akan disuguhkan konfigurasi

yang dapat diterapkan pada aplikasi server, seperti ubah password, filter IP,

kecepatan transfer, port yang akan digunakan dan lain-lain.

Page 106: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

88

Gambar 4.3 Window konfigurasi server

Gambar 4.4 Window format video

Page 107: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

89

Gambar 4.5 Window Video Source Setting

Gambar 4.6 Window konfigurasi kecepatan transfer

Page 108: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

90

Untuk melihat mengenai informasi aplikasi server, pengguna dapat memilih menu

“About” yang akan menampilkan window seperti berikut ini:

Gambar 4.7 Window About

Pada aplikasi client, ketika aplikasi dijalankan pengguna akan diminta untuk

memasukkan hostname dan port yang digunakan oleh aplikasi server, setelah itu

pengguna dapat melakukan koneksi ke server dengan menekan tombol “Connect”

Page 109: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

91

Gambar 4.8 Aplikasi client ketika dijalankan

Untuk menjalankan fitur auto capture pada aplikasi client, pengguna dapat memilih

menu “Options” sehingga akan memunculkan window konfigurasi auto capture.

Page 110: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

92

Gambar 4.9 Window konfigurasi Auto Capture

Page 111: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

93

BAB V

ANALISA HASIL

Pada bab ini penyusun akan memberikan analisa mengenai konfigurasi aplikasi,

kelebihan serta kekurangan menyangkut dengan aplikasi yang telah penyusun

buat.

5.1. Konfigurasi aplikasi

Lingkungan dan perangkat keras yang penyusun gunakan saat

melakukan analisa terhadap hasil serta kinerja aplikasi adalah sebagai berikut ini :

No Jenis Perangkat Keras Spesifikasi

1 Prosessor Intel® Celeron® 2.4 Ghz

2 RAM 512 Mb

3 VGA 64 Mb dedicated

4 Ethernet Card 100 mbps onboard (run on 100 base speed)

Tabel 5.1. Tabel Spesifikasi Aplikasi Server

No Jenis Perangkat Keras Spesifikasi

1 Prosessor Intel® Pentium® M 1.6 Ghz

2 RAM 1024 Mb

3 VGA 32 Mb dedicated

4 Ethernet Card 1024 mbps onboard (run on 100 base speed)

Tabel 5.2. Tabel Spesifikasi Aplikasi Client

Page 112: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

94

No Jenis Perangkat Keras Spesifikasi

1 Switch hub Alliedtelesys 100 mbps

Tabel 5.3. Tabel Spesifikasi perangkat pendukung

Dari ujicoba yang telah penyusun lakukan pada dua warnet yang sama-sama

memiliki traffic local yang cukup tinggi, didapatkan hasil rerata sebagai berikut

ini :

Bandwidth No Cam. Res.

MTU Quality

Speed Client Server

Refresh rate

Noised

1 640x320 3kb 50% 500ms 93kB/s 45kB/s 42/30s No

2 640x320 3kb 50% 200ms 130kB/s 70kB/s 44/30s No

3 640x320 10kb 20% 500ms 90kB/s 42kB/s 40/30s 10%

4 640x320 3kb 30% 200ms 120kB/s 45kB/s 49/30s No

5 640x320 5kb 30% 200ms 110kB/s 48kB/s 39/30s 30%

6 640x320 8kb 50% 500ms 55kB/s 20kB/s - -

Tabel 5.4. Tabel Hasil ujicoba

Dari tabel hasil di atas, refresh rate yang dihasilkan tidak selalu

berbanding lurus dengan peningkatan nilai speed dan MTU, dimana semakin

besar nilai MTU maka besar data yang akan dikirimkan per-transmit akan

semakin besar, dan semakin kecil nilai speed maka jumlah stream citra yang akan

Page 113: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

95

dikirimkan semakin banyak. Namun jika nilai kualitas gambar diturunkan maka

akan memiliki pengaruh yang cukup signifikan terhadap nilai refresh rate.

Sebagai bukti atas ujicoba yang telah penyusun lakukan, berikut ini

penyusun akan memberikan hasil capture desktop pada masing-masing aplikasi

saat dilakukan ujicoba disalah satu warnet.

Gambar 5.1. Gambar desktop aplikasi Server.

Page 114: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

96

Gambar 5.1. Gambar desktop aplikasi Client.

Dari hasil capture destop tersebut di atas, terlihat juga nilai penggunaan CPU

pada masing-masing aplikasi. Pada aplikasi server penggunaan CPU berkisar

antara 15-18%, dan pada aplikasi client penggunaan CPU berkisar antara 3-10%.

Hal ini membuktikan bahwa aplikasi yang telah penyusun buat, tidak

menggunakan resource CPU yang besar

5.2. Manfaat dan kemudahan

Aplikasi Remote Webcam telah berhasil penyusun diujicobakan pada

jaringan LAN dan jaringan internet. Aplikasi ini memiliki manfaat dan

kemudahan sebagai berikut :

Page 115: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

97

1. Warnet dapat melakukan monitoring terhadap workstation-

workstation atau asset-aset penting dengan memanfaatkan webcam

yang telah terintegrasi, sehingga tidak perlu untuk mengeluarkan

biaya pembelian CCTV.

2. Pengawas dapat lebih mudah mengawasi beberapa workstation

secara bersamaan karena beberapa workstation dapat ditampilkan

dalam satu GUI.

5.3. Keunggulan dan kekurangan

Aplikasi Remote Webcam ini memiliki keunggulan sebagai berikut :

1. Server mampu menerima dan melayani banyak permintaan koneksi

dari client secara simultan.

2. Server mampu melakukan filtering terhadap setiap koneksi yang

masuk, sehingga hanya IP tertentu saja yang dapat terkoneksi ke

server.

3. Kualitas citra dan kecepatan transfer antara client dan server dapat

disesuaikan dengan kebutuhan, kemampuan perangkat dan

kemampuan jaringan.

4. Proteksi keamanan terhadap konfigurasi server dan konektivitas

menggunakan password.

Page 116: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

98

5. Client mampu terkoneksi dan memonitor lebih dari satu server

pada waktu yang bersamaan.

6. Client mampu melakukan logging terhadap citra yang diterima dari

server.

Dari beberapa kelebihan-kelebihan yang telah disebutkan di atas,

terdapat juga kekurangan-kekurangan yang masih belum didukung. Kekurangan-

kekurangan tersebut antara lain :

1. Paket data stream yang ditransfer belum terenkripsi, sehingga

memungkinkan untuk terjadinya pencurian data melalui sniffing.

2. Reabilitas aplikasi server dalam mengirimkan data stream tidak

dapat terjaga dengan baik sehingga image stream yang tertampil

akan terhenti ditengah jalan.

3. Tidak adanya fungsi untuk melakukan pencarian hasil loging pada

kurun waktu tertentu.

4. Pengecekan terhadap validitas image stream hanya dilakukan

dengan cara yang sederhana, sehingga berimbas pada timbulnya

noise pada image stream.

Page 117: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

99

BAB VI

KESIMPULAN DAN SARAN

Pada akhir penyusunan skripsi ini dicantumkan beberapa kesimpulan dan

saran mengenai hal-hal yang terkait dengan aplikasi remote webcam yang penyusun

buat.

6.1. Kesimpulan

Dari implementasi aplikasi remote webcam yang telah penyusun lakukan,

maka didapatkan kesimpulan bahwa :

1. Aplikasi remote webcam dapat diterapkan dengan baik pada jaringan

LAN warnet yang memiliki traffic lokal yang cukup tinggi.

2. CPU usage aplikasi remote webcam pada sisi server dan sisi client

relatif kecil, sehingga tidak berdampak buruk bagi responsibilitas dan

stabilitas sistem operasi secara keseluruhan.

3. Bandwidth usage aplikasi remote webcam relatif kecil sehingga tidak

menambahi beban jaringan lokal warnet.

4. Workstation yang telah ditanamkan aplikasi server tidak akan dapat

menggunakan webcam untuk aplikasi yang lain, selain itu clipboard pun

juga tidak dapat digunakan.

Page 118: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

100

5. Konfigurasi MTU pada aplikasi server akan berdampak pada disfungsi

aplikasi jika pengguna menggunakan MTU yang melebihi rekomendasi

default.

6.2. Saran

Saran yang dapat penyusun berikan dalam mengembangkan aplikasi remote

webcam ini adalah :

1. Enkripsi semua paket data yang dilewatkan melalui jaringan, sehingga

bukan hanya saat authentifikasi saja, melainkan saat data stream

dilewatkan juga dienkripsi.

2. Penambahan fungsi searching untuk log-log file streamnya.

Page 119: APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA …Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini. 4. Ibu

101

DAFTAR PUSTAKA

Francesco, Balena, Programming Visual Basic 6.0, Microsoft® Press, 1999

Mandelbrot Set, The, Advanced Microsoft Visual Basic 6.0 , Microsoft® Press,

1998

Dan, Pilone, Neil, Pitman, UML 2.0 in a Nutshell, O'Reilly, 2005

Press, Microsoft, Microsoft® Win32® Programmer's Reference, Microsoft®

Press, 1993

Win32 API Reference for HLA

http://webster.cs.ucr.edu/Page_win32/kernelref.pdf

JPEG

http://en.wikipedia.org/wiki/JPEG

Overview of Windows32 API

http://msdn.microsoft.com/en-us/library/aa383723(VS.85).aspx

Glossary of Windows Socket

http://tangentsoft.net/wskfaq/glossary.html

Winsock Example

http://www.phoenixbit.com/site/tutorials/Programming/Visual%20Basic/w

insock1/WinsockSource.zip