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
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
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
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.
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.
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.
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
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.
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
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
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 ……….
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
) ………...
xiv
5.3.
Keunggulan dan kekurangan ………
97
BAB VI KESIMPULAN DAN SARAN
6.1.
Kesimpulan ………...
6.2.
Saran ……….…………
99
100
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
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
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
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
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 :
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.
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 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
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
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
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
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+u −n × × 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
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
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
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
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
•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.
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.
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
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
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.
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
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
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
• 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
• 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
• 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.
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.
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
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.
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
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:
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
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
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.
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
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:
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
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
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
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
3.3.1.2. Use case pada aplikasi client
<<in clud
e>>
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
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
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
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
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
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
3.3.2.3. Flowchart GUI 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
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.
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#"
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
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.
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)
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
Gambar 3.13. Sketchformoptions aplikasi server
Gambar 3.15. Sketchformsource aplikasi server
Gambar 3.17. Sketchformmain aplikasi client
Gambar 3.19. Sketchformsetting aplikasi client
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.23. Mock-upform setting aplikasi server
Gambar 3.25. Mock-up form driver aplikasi server
Gambar 3.27. Mock-upform main aplikasi client
Gambar 3.29. Mock-up form setting aplikasi client
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.
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