• Tidak ada hasil yang ditemukan

APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA NETWORK)

N/A
N/A
Protected

Academic year: 2019

Membagikan "APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA NETWORK)"

Copied!
119
0
0

Teks penuh

(1)

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

(2)

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

(3)
(4)
(5)

iv

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

(6)

v

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.

(7)

vi

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.

(8)

vii

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.

(9)

viii

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

(10)

ix

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.

(11)

x

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

(12)

xi

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

(13)

xii

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

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 ……….

(14)

xiii

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 ………

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

) ………...

(15)

xiv

5.3.

Keunggulan dan kekurangan ………

97

BAB VI KESIMPULAN DAN SARAN

6.1.

Kesimpulan ………...

6.2.

Saran ……….…………

99

100

(16)

xvii

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

(17)

xv

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

(18)

xvi

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 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

(19)

1 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

(20)

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 :

(21)

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.

(22)

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

(23)

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

(24)

6 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

(25)

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

(26)

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 ( n

(27)

Ukuran file BMP

8 2

4

54+ × n +lebar×tinggi×n

≈ , di mana tinggi dan lebar

dalam satuan pixel.

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

2

4× adalah ukuran dari palet warna. Perlu diingat bahwa ini hanyalah perkiraan pada sebuah n-bit citra bitmap, meskipun dapat menjadi maksimum

n

2 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 4×2n. 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

54+lebar×tinggi×n

Menggunakan fungsi unit langkah u(x), kedua formula di atas dapat dikombinasikan menjadi :

Ukuran dari file BMP

8 2 4 ) 15 (

54+un × × n +lebar×tinggi×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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

•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.

(33)

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.

(34)

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

(35)

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

(36)

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.

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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.

(43)

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.

(44)

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

(45)

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.

(46)

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”.

11

(47)

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:

(48)

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

(49)

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

(50)

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.

(51)

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”.

12

(52)

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:

(53)

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

(54)
(55)

37 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

(56)

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 A B 12 x 6x 8x 2x 9x 3x 10x 4x 11 x 5x 7x 1x Ethernet A 12 x 6x 8x 2x 9x 3x 10 x 4x 11x 5x 7x 1x C

(57)

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

(58)

3.3.1.2. Use case pada aplikasi client

<<in clud

e>>

(59)

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

(60)

Start

listening state

connection request ? insocket[int]

int index index=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

(61)

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

(62)

Start

File stream exist ?

Temp = read line per buffer size EOF

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

(63)

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

(64)

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

(65)

3.3.2.3. Flowchart GUI Server

(66)
(67)

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

(68)

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.

(69)

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#"

(70)

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

(71)

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.

(72)

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)

(73)

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. Sketchformmain aplikasi server

(74)

Gambar 3.13. Sketchformoptions aplikasi server

(75)

Gambar 3.15. Sketchformsource aplikasi server

(76)

Gambar 3.17. Sketchformmain aplikasi client

(77)

Gambar 3.19. Sketchformsetting aplikasi client

(78)

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

(79)

Gambar 3.23. Mock-upform setting aplikasi server

(80)

Gambar 3.25. Mock-up form driver aplikasi server

(81)

Gambar 3.27. Mock-upform main aplikasi client

(82)

Gambar 3.29. Mock-up form setting aplikasi client

(83)

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.

(84)

66

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® Pe

Gambar

Gambar 2.1 Sebuah web camera
Gambar 2.5 Connection oriented communication
Gambar 2.7 Kotak dialog New Project yang tampil saat menjalankan
Gambar 2.8 Lingkungan Visual Basic 6.0 dengan beberapa jendela yang
+7

Referensi

Dokumen terkait

Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk

Informasi yang menjadi target pencarian bisa terdapat dalam berbagai macam jenis berkas dalam bentuk file yang jenis dan ukurannya telah dibatasi pada “ Aplikasi File

Karena alasan tersebut, proses bisnis yang selama ini masih dilakukan manual dibuat terkomputerisasi dengan cara menciptakan sebuah aplikasi yang dapat me - manage

Routing merupakan sebuah mekanisme yang digunakan untuk mengarahkan dan menentukan jalur yang akan dilewati paket dari satu device ke device yang berada di jaringan

Kesimpulan aplikasi file sharing untuk mahasiswa Teknik Elektro 2009 ini adalah membuat tempat berbagi file pada sebuah aplikasi web yang dapat diakses dengan web browser

Pengembangan aplikasi digital image processing dengan Microsoft visual basic merupakan sebuah aplikasi perbaikan kualitas citra (Image) yang dapat memanipulasi citra baik

Sistem aplikasi kamus bahasa Jerman dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0 ini merupakan sistem yang mempermudah pengguna dalam pencarian terjemahan

Visual basic adalah sebuah bahasa pemrograman yang berpusat pada object (Object Oriented Programming) digunakan dalam pembuatan aplikasi Windows yang