APLIKASI REMOTE WEBCAM PADA LAN (LOCAL AREA NETWORK)

  

APLIKASI REMOTE WEBCAM

PADA LAN ( LOCAL AREA NETWORK)

SKRIPSI

Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar

  

Sarjana Teknik Jurusan Teknik Informatika

Disusun Oleh :

Zeno Danny Kuncoro

  

035314036

TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

  

LAN (LOCAL AREA NETWORK) REMOTE

WEBCAM APPLICATION

A THESIS

Presented as Partial Fulfillment of the Requirements to obtain the Sarjana

  

Teknik Degree in Department of Informatics Engineering

Created by :

Zeno Danny Kuncoro

  

035314036

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

PERNYATAAN KEASLIAN KARYA

  Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

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

dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

  Yogyakarta, April 2009 Penyusun Zeno Danny Kuncoro THANKS TO :

  

Tuhan Yesus Kristus atas Berkat, Kasih dan karunia Nya

Terimakasih atas segala pengampunan yang telah diberikan.

  

Bapakku A.Y. Mahyarudin dan Ibuku Lucia Sumirah.

Terimakasih atas segala kepercayaan, dukungan serta bimbingan hingga nanti.

  

Kakakku Elishabet Elsih Lestari

Terimakasih atas dukungan serta wejangan-wejangannya.

  

Kakakku Cornelius Lilik Prianggono.

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

  

Kekasih hatiku : the X

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

  

Almamaterku Teknik Informatika Universitas Sanata Dharma khususnya angkatan 2003.

  

ABSTRAKSI

  Dalam sebuah warnet dibutuhkan pengawasan ekstra untuk mencegah terjadinya tindak kejahatan pencurian terhadap perangkat warnet oleh pengguna.

  Hingga saat ini, solusi yang diambil hanyalah menggunakan kamera pengawas atau CCTV (Closed-Circuit Television), dan ini membutuhkan biaya yang lebih.

  Untuk menangani hal ini penyusun mencoba memanfaatkan webcam sebagai kamera pengawas. Dengan menggunakan webcam, dapat menekan biaya yang digunakan karena pada umumnya warnet sudah memiliki webcam disetiap komputer workstationnya yang selama ini hanya digunakan sebagai fasilitas pendukung saja.

  Aplikasi yang bersifat client-server ini diharapkan mampu untuk mendukung tujuan diatas, dimana komputer workstation menjalankan aplikasi

  

server dan komputer operator menjalankan aplikasi client. Server akan merespon

request client berupa pengiriman citra yang telah ditangkap lalu diproses oleh

server kepada client. Proses pengambilan citra dan mengirimkannya secara

  periodik inilah yang akan dilakukan terus menerus selama client melakukan request kepada server.

  Aplikasi ini menggunakan Microsoft® Visual Basic® 6.0 sebagai compilernya dan webcam yang telah terintegrasi ke dalam sistem operasi dengan baik sebagai perangkat yang akan mengambil citra.

  

ABSTRACT

  A internet cafe needed extra supervision to prevents the occurrence of crime against theft internet cafes devices by the user. Until now, solutions that are taken is using the camera supervisors only or CCTV (Closed-Circuit Television), and this costs more.

  To handle this case I tried to take advantage of the camera as a webcam supervisors. By using the webcam, can be used to press charges because, in general, Internet Cafe has a webcam in every workstation that this is only used as supporting facilities only.

  Client-server application is expected to be able to support the goals above, where the workstation computer run the server application and the operator computer run the client application. The server will respond to client requests in form of image that has been captured and processed by the server to the client.

  Processes the image and send them periodically is what will be done continuously for the client to request to the server.

  This application is using Microsoft ® Visual Basic ® 6.0 as the compiler and a webcam that has been integrated into the operating system as the device that will capture the image.

  

LEMBAR PERNYATAAN PENYETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

  Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Zeno Dani Kuncoro Nomor Mahasiswa : 035314036 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul : “Aplikasi Remote Webcam pad LAN (Local Area Network)” Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya secara terbatas dan mendistribusikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penyusun. Demikian pernyataan ini saya buat dengan sebenarnya. Dibuat di Yogyakarta Pada tanggal April 2009 Yang menyatakan ( Zeno Danny Kuncoro )

KATA PENGANTAR

  Puji dan syukur kepada Tuhan Yang Maha Esa yang telah mengaruniakan Berkat dan Rahmat-Nya sehingga penyusun dapat menyelesaikan tugas akhir ini.

  Dalam proses penyusunan tugas akhir ini ada begitu banyak pihak yang telah memberikan bantuan dan perhatian dengan caranya masing-masing sehingga tugas akhir ini dapat diselesaikan. Oleh karena itu penyusun mengucapkan terima kasih diantaranya kepada :

  1. Bapak Alb. Agung Hadhiatma, S.T., M.T. selaku dosen pembimbing I tugas akhir yang telah banyak memberikan bimbingan dalam penyusunan tugas akhir ini.

  2. Bapak H. Agung Hernawan, S.T. selaku dosen pembimbing II tugas akhir yang telah banyak memberikan bimbingan dalam penyusunan tugas akhir ini.

  3. Bapak JB. Budi Darmawan, S.T., M.T. dan Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku panitia penguji yang telah memberikan kritikan, masukan serta saran untuk menyempurnakan tugas akhir ini.

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

  5. Bapak Emanuel Belle Bau, Spd. Dan Yustinus Nugroho sebagai laboran yang telah mendukung dalam mempersiapkan ujian pendadaran.

  6. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma yang telah memberikan bekal ilmu, arahan teknis dan pengalaman selama penyusun menempuh studi.

  7. Seluruh staff Sekretariat Fakultas Sains dan Teknologi yang banyak membantu penyusun dalam urusan administrasi akademik, terutama menjelang ujian tugas akhir dan yudisium.

  8. Orangtuaku tercinta AY Mahyarudin dan Lucia Sumirah dan kakak- kakakku yang telah memberikan cinta, doa, dorongan, bantuan, perhatian serta bimbingannya sedari penyusun kecil hingga saat ini.

  9. Seluruh teman-teman seperjuangan di Jurusan Teknik Informatika angkatan 2003.

  10. Seluruh pihak yang telah membantu penulisan, baik secara langsung maupun tidak langsung yang tidak dapat penyusun sebutkan satu persatu.

  Dengan rendah hati penyusun menyadari bahwa tugas akhir ini masih jauh dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini sangat penyusun harapkan. Akhir kata semoga tugas akhir ini bermanfaat bagi semua pihak. Terima kasih.

  Yogyakarta, April 2009 Penyusun.

  

DAFTAR ISI

Halaman Judul ………………………………………………………………….. i Halaman Persetujuan …………………………………………………………… ii

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

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

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

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

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

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

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

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

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

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

BAB I PENDAHULUAN 1.1. Latar Belakang …………………………………………………………..

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

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

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

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

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

  4

  BAB II LANDASAN TEORI 2.1. Web Camera (webcam) ………………………………………………….

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

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

  6

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

  7

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

  8

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

  9

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

  10

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

  11

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

  11

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

  12

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

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

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

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

  20

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

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

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

  27 BAB III PERANCANGAN SISTEM 3.1. Perancangan Sistem ……………………………………………………..

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

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

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

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

  39

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

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

  41

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

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

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

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

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

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

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

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

  53

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

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

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

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

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

  60

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

  65 BAB IV IMPLEMENTASI SISTEM DAN HASIL

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

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

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

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

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

  72

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

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

  86

BAB V ANALISIS HASIL 5.1. Konfigurasi aplikasi ……………………………………………………..

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

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

  93

  96

  97 BAB VI KESIMPULAN DAN SARAN 6.1. Kesimpulan ……………………………………………………………...

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

  99 100 Daftar Pustaka

  101

  

DAFTAR TABEL

Tabel 2.1 Tabel 3.1Tabel 3.2 Tabel 5.1Tabel 5.2 Tabel 5.3Tabel 5.4 Blok data pada bitmap

  Tabel protokol komunikasi WebCamLAN Tabel format komunikasi WebCamLAN Tabel Spesifikasi Aplikasi Server Tabel Spesifikasi Aplikasi Client Tabel Spesifikasi perangkat pendukung Tabel Hasil ujicoba

  9

  55

  56

  93

  93

  94

  94

  

DAFTAR GAMBAR

  48

  41

  42

  43

  44

  45

  46

  47

  55

  39

  55

  56

  56

  57

  57

  58

  58

  59

  40

  38

Gambar 2.1 Gambar 2.2

  7

Gambar 2.3 Gambar 2.4Gambar 2.5 Gambar 2.6Gambar 2.7 Gambar 2.8Gambar 2.9 Gambar 2.10Gambar 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.

  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

  6

  17

  33

  17

  19

  19

  20

  24

  25

  27

  28

  59 Gambar 3.22. Gambar 3.23. Gambar 3.24. Gambar 3.25. Gambar 3.26. Gambar 3.27. Gambar 3.28. Gambar 3.29. Gambar 3.30.

Gambar 4.1 Gambar 4.2

  64

  91

  90

  89

  89

  88

  88

  87

  86

  64

  63

Gambar 4.3 Gambar 4.4

  63

  62

  62

  61

  61

  60

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

Gambar 4.7 Gambar 4.8Gambar 4.5 Gambar 4.6

  92

BAB I PENDAHULUAN

1.1. Latar Belakang

  Tindak kejahatan pencurian dapat terjadi di mana saja, kapan saja dan menimpa siapa saja termasuk sebuah badan usaha seperti warnet. Pencurian yang dimaksud adalah pencurian terhadap perangkat keras yang dimiliki sebuah warnet, seperti RAM, Hard Disk Drive, Processor dan lain-lain yang terdapat di setiap komputer pengguna. Untuk mengatasi hal ini dipergunakanlah CCTV (Closed

  

Circuit Television) untuk dapat melakukan pengawasan (monitoring) terus

menerus ke setiap komputer.

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

  mampu mengambil gambar (citra) dari obyek yang berada dalam jangkauan pandangnya secara terus menerus. Selama ini webcam hanya dimanfaatkan sebagai pelengkap dalam melakukan chatting dibeberapa protokol messenger dan aplikasi PC Video Call terkenal seperti AOL Instant Messenger, MSN Messenger,

  

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

messenger itu webcam dimanfaatkan sebagai sarana penangkap citra yang akan

  dikirimkan kepada lawan chatting pada protokol yang sama, sehingga selama melakukan chatting, user akan merasa seolah-olah ia berada dekat dengan lawan

  chatting nya, karena ia dapat melihat lawan chattingnya secara langsung.

  Berdasarkan fungsi dari webcam tersebut, maka penyusun akan mencoba membuat perangkat lunak (software) yang akan berfungsi sebagai kamera pengawas yang berjalan di jaringan komputer. Karena rata-rata saat ini setiap komputer di warnet dan di perkantoran telah memiliki webcam, maka

  

software ini nanti diharapkan dapat menjadi sebuah solusi terhadap kedua masalah

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

  

client- server, dimana komputer workstation menjalankan aplikasi server dan

  komputer monitoring menjalankan aplikasi client. Server akan merespon request

  

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

  kepada client. Proses pengambilan citra dan mengirimkannya secara periodik inilah yang akan dilakukan terus menerus selama client melakukan request kepada server. Selama proses inilah pengawasan akan dilakukan, data citra yang diterima oleh client akan ditampilkan kembali menjadi citra yang dapat dilihat oleh mata.

  1.2. Rumusan Masalah

  Dari latar belakang masalah di atas, dapat dirumuskan suatu masalah “menerapkan aplikasi remote webcam pada warnet ”

  1.3. Batasan Masalah

  Dalam batasan masalah ini, penyusun membatasi permasalahan yang perlu dipecahkan, yaitu :

  1. Workstation yang menjalankan aplikasi server tidak dapat menggunakan webcam untuk aplikasi lain, seperti Yahoo! Mesenger.

  2. Workstation yang menjalankan aplikasi server tidak dapat menggunakan clipboard.

  1.4. Tujuan Penelitian

  Adapun tujuan dari penelitian ini adalah mengimplementasikan sebuah

  

software yang dapat menangkap citra dengan webcam lalu mengirimkanya ke

client secara periodik sehingga dapat dikembangkan sebagai media Dedicated

Cam Monitoring , maupun Personal Cam Monitoring.

  1.5. Metodologi Penelitian

  Beberapa tahapan yang dilakukan dalam menyelesaikan masalah di atas adalah :

  1. Studi pustaka.

  Penyusun mencari literatur dan referensi di internet mengenai Image

  Capture menggunakan webcam, komunikasi di jaringan dengan

  menggunakan Windows Socket (Winsock) , fungsi-fungsi Windows API (Aplication Program Interface) dan pemrograman Visual Basic.

  2. Perancangan sistem.

  Perancangan yang akan dibuat adalah perancangan secara umum mengenai hardware dan software yang digunakan, perancangan protokol komunikasi, perancangan alur prosesnya dan perancangan aplikasi yang akan dibuat.

  3. Uji coba mengcapture citra menggunakan webcam.

  Ditahap ini, penyusun mencoba untuk membuat sebuah aplikasi dengan pemrograman Visual Basic yang dapat mengcapture citra dari webcam dan menyimpannya menjadi sebuah data.

  4. Uji coba protokol komunikasi dalam jaringan LAN.

  Ditahap ini, penyusun mencoba untuk membuat sebuah aplikasi dengan pemrograman Visual Basic yang dapat melakukan komunikasi antar komputer di dalam sebuah jaringan LAN. Komunikasi ini dilakukan berdasarkan protokol yang telah didefinikan.

  5. Implementasi system.

  Ditahap ini dilakukan pembuatan aplikasi keseluruhan berdasarkan perancangan sistem.

1.6. Sistematika Penulisan

  Secara garis besar, sistematika penulisan Tugas Akhir adalah sebagai berikut :

  BAB I PENDAHULUAN Bab ini membahas tentang latar belakang penulisan tugas akhir, batasan masalah, rumusan masalah, tujuan penulisan dan metodologi penelitian tugas akhir.

  BAB II LANDASAN TEORI Bab ini berisi tentang landasan teori yang digunakan oleh penyusun dalam membuat dan menyelesaikan tugas akhir.

  BAB III PERANCANGAN SISTEM Bab ini berisi tentang pembahasan rancangan sistem yang akan dibangun. BAB IV IMPLEMENTASI SISTEM Bab ini berisi tentang pembahasan implementasi perancangan sistem ke dalam bahasa pemrograman. BAB V ANALISA HASIL IMPLEMENTASI Bab ini berisi jawaban dari rumusan masalah yang telah dinyatakan pada pendahuluan. BAB VI KESIMPULAN Bab ini berisi tentang kesimpulan yang dapat diambil dari analisa hasil serta saran-saran untuk pengembangan program selanjutnya.

BAB II LANDASAN TEORI

  1

2.1. Web Camera ( webcam)

  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 1 plastik yang dapat digerakkan maju-mundur untuk mengatur fokus kamera.

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

  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 3 ( 4-bit), 256 ( 8-bit), 65,536 ( 16-bit), atau 16.7 juta ( 24-bit) warna ( bit 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. n

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

  n lebar tinggi n × ×

  Ukuran file BMP

  54

  4 2 , di mana tinggi dan lebar

  ≈ × + +

  8 dalam satuan pixel. n Pada formula di atas, 54 adalah ukuran dari header file bitmap dan

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

  4

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

  ×

  Bitmap 8-bit atau kurang menggunakan palet warna, untuk bitmap 16-bit atau lebih tinggi meniadakan bagian palet dari perhitungan.

  lebar tinggi n

× ×

  54

  ≈

  • Ukuran dari file BMP

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

  × ×

  Ukuran dari file BMP 54 u ( 15 n )

  4 2 ,

  ≈ − × × + +

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

2.2.2. Format file pada umumnya

  File bitmap pada umumnya memiliki blok data dibawah ini : Nama Blok Tujuan Header Bitmap Menyimpan informasi umum mengenai file bitmap. 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 bitmap secara detil. Perlu diingat bahwa ini adalah standar format file

  file

  bitmap, beberapa citra bitmap dapat disimpan menggunakan format yang jauh berbeda, tergantung pada aplikasi yang membuatnya.

  4

2.3. JPEG (Join Photographics Expert Group)

  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 kualitas visual akan hilang dalam proses, meskipun ada beberapa variasi pada garis dasar standar JPEG yang tidak akan merugi. Ada juga format progresif, yang mana data dikompres dalam beberapa lewatan detil tertinggi secara progresif. Format ini cukup ideal untuk citra yang besar yang akan ditampilkan selagi didownload melalui koneksi yang lambat, memperbolehkan preview yang masuk akal sebelum seluruh data diterima. Meskipun demikian progresif JPEG tidak didukung secara luas.

  2.3.1. Encoding

  Banyak dari pilihan dalam JPEG yang standar tidak digunakan, kebanyakan perangkat lunak citra menggunakan format JFIF yang lebih sederhana ketika menciptakan file JPEG.

  2.3.2. Color Space Transformations

  Pertama, citra harus diubah dari RGB menjadi ruang warna yang berbeda yang disebut YCbCr yang memiliki tiga komponen yaitu Y, Cb dan Cr. Komponen Y merepresentasikan terang dari suatu pixel, komponen Cr dan Cb menghadirkan krominan (dipecah menjadi komponen Red dan Blue).

  YCbCr sama seperti ruang warna yang digunakan oleh PAL, MAC dan transmisi televisi warna digital (tetapi bukan oleh NTSC, yang menggunakan ruang warna yang yang serupa YIQ). Konversi ruang warna YCbCr memungkinkan kompresi yang lebih besar untuk kualitas citra yang sama atau kualitas citra yang lebih baik untuk kompresi yang sama.

  Konversi ke YCbCr ini disebutkan dalam standar JFIF, dan dapat digunakan untuk menghasilkan file JPEG sehingga memiliki kompatibilitas yang tertinggi. Meskipun demikian banyak JPEG kualitas tinggi tidak menerapkan langkah ini dan tetap menyimpannya dalam ruang warna sRGB, di mana setiap warna dikompres dan dikuantitasi secara berbeda dengan tingkatan kualitas yang sama.

  2.3.3. Downsampling

  Mata manusia dapat melihat lebih detil pada komponen Y daripada Cb dan Cr. Menggunakan pengetahuan ini, encoder dapat didesain untuk mengkompres citra dengan lebih efisien.

  2.3.4. Compression Ratio dan Artifacts

  Hasil perbandingan kompresi dapat bervariasi berdasarkan kebutuhan untuk menjadi lebih atau kurang agresif dalam pembagian yang digunakan pada fase kuantitasi. Kompresi 10 banding 1 biasanya menghasilkan citra yang tidak dapat dibedakan oleh mata dengan citra yang asli. Kompresi 100 banding 1 dimungkinkan, namun akan terlihat dengan jelas pecahannya ketika dibandingkan dengan citra yang asli. Tingkatan kompresi yang sesuai bergantung pada untuk penggunaan apa citra tersebut.

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 Windows

  5

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

  • Jaringan.

  Memberikan fungsionalitas komunikasi antar aplikasi-aplikasi dalam sebuah jaringan. Dapat memberikan kemampuan untuk membuat, mengatur akses terhadap shared resource, seperti printer, directory pada sebuah jaringan.

  • Keamanan.

  Memberikan fungsionalitas untuk pengamanan sistem, seperti proteksi

  password saat logon, kebebasan menentukan pengamanan terhadap semua shared system object , kontrol hak akses, manajemen hak, dan audit

  keamanan.

  • Layanan Sistem.

  Memberikan fungsionalitas untuk mengakses sumberdaya dan fitur-fitur yang mendasari sistem operasi, seperti memori, file sistem, perangkat- perangkat, proses dan thread. Akses yang dapat dilakukan dapat berupa pengaturan ataupun pemantauan sumberdaya-sumberdaya yang dibutuhkan agar dapat bekerja dengan baik.

  • User Interface Windows Memberikan fungsionalitas untuk membuat dan mengatur tampilan antarmuka. Fungsi ini akan membuat dan menggunakan jendela-jendela untuk ditampilkan di layar, meminta input dari pengguna, dan membuat tugas lain yang dibutuhkan untuk mendukung interaksi dengan pengguna.

  API (Application Program Interface) merupakan seluruh kumpulan dari DLL (Direct Link Library) yang spesifik, yang memiliki fungsi-fungsi untuk 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.