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 …………………………………………………………… iiHalaman Pengesahan …………………………………………………………… iii
Halaman Pernyataan Keaslian Karya ………………………………………… iv
Halaman Persembahan ………………………………………………………….. vAbstraksi ………………………………………………………………………... 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 bitmapTabel 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.27
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.12Gambar 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 client6
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.264
91
90
89
89
88
88
87
86
64
63
Gambar 4.3 Gambar 4.463
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.692
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 bitmapBagian 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.