Anda di halaman 1dari 111

APLIKASI PENGAMAN RUANGAN

MENGGUNAKAN WEBCAM
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika

OLEH:

YANUARIUS BUDI SANTOSO

NIM :045314063

JURUSAN TEKNIK INFORMATIKA


FAKULTAS SAINS DAN
TEKNOLOGI UNIVERSITAS
SANATA DHARMA YOGYAKARTA
2009
HALAMAN PERSETUJUAN

A PL•IKA N RU ANGAN
MBIGGUNAKAN W CCAM

Puspuningt njoyo Adi, S”I-, fd”l- Yanuerius Joko S, S.Si,


MALAI\LAN PEN€igSAHAN

SKRIPSl
APLIXASJ PENGAht AN RUAKGAN
MENGGUNAKAN WEBCAh4

SIM •s3 14063

Tel

. ,•^• dan dinyetekan mem‹muhi syaral,


6^/

S.Si.

Angg€g 2 S o Hari

Yogyakana, /.D.......... . 3
Fakuluui Sains Jan Toknologi
Univositas SanaJa Dharma
ABSTRAK

Pengolahan citra digital adalah pemrosesan citra dengan menggunakan


computer digital untuk menghasilkan sebuah citra baru yang sesuai dengan
keinginan pengguna. Salah satu implementasinya adalah dalam aplikasi pengaman
ruangan dimana citra diperoleh dari kamera. Aplikasi Pengamanan berbasi kamera
umumnya berharga mahal. Skripsi ini mencoba menawarkan aplikasi berbasis
kamera dengan harga murah.

Aplikasi ini dikembangkan dengan teknik pengolahan citra, dimana dua


buah citra yang diambil secara berurutan melalui webcam kemudian dilakukan
operasi pengurangan. Tujuan dari pengurangan ini adalah untuk mencari
perbedaan kedua buah citra .

Dari hasil pengujian yang dilakukan, aplikasi ini mampu mendeteksi


obyek manusia bergerak dengan jarak maksimal 13(tiga belas) meter dengan
toleransi minimal yaitu satu persen. Aplikasi ini cocok untuk pengamanan
ruangan yang rawan terhadap tindak kejahatan yang sering dilakukan oleh
manusia.

iii
ABSTRACT
Digital image processing is handing out an image by using digital
computer in order to create a new image which is appropriate to user’s
desirability. One of digital image process implementation is room security
application which the image be obtain by camera. The must common room
security application based camera is expensive. The aim of this research is to
make the application based camera with low price.
This application developed with image processing technique, in which
we subtract the value of two image who are take in the series through webcam.
The goal of this subtract is looking for different between two image.
Based on its testing result, this application be able to detect human
moved object as far as 13 meter with minimal tolerance one percent. This
application appropriate for security room where disturbed toward criminality
action by human.

iv
Segala kuatirku, kutaruh di kakiMu, Allah

pemeliharaku Bila Kau yang mengangkat aku, Tiada yang dapat

merendahkanku….

Dalam Hidup ini ada dua hal yang

terpenting, Pertama mendapatkan apa yang

kita inginkan, Kedua menjaga apa yang sudah

kita dapatkan
v
PERNYATAAN KEASLIAN KARYA

Dengan ini saya sebagai penulis menyatakan dengan sesungguhnya bahwa

judul, isi dan gagasan yang tertuang dalam skripsi ini belum pernah dipakai untuk

mendapatkan gelar kesarjanaan di tempat lain baik di Indonesia maupun di luar

negeri. Pemikiran, metode atau hasil penelitian orang lain yang diambil

disebutkan dengan jelas sebagai acuan. Hasil-hasil penelitian, jurnal, makalah,

buku, termasuk informasi di internet yang dipakai sebagai acuan dan bahan

literatur ditulis dalam daftar pustaka.

Yogyakarta, 15 Oktober 2009

Penulis

Yanuarius Budi Santoso

vi
PRAKATA

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa

karena atas kasih dan karunianya, penulis dapat menyelesaikan skripsi yang

berjudul “Aplikasi Pengaman Ruangan Menggunakan Webcam” dengan baik.

Skripsi ini disusun guna memenuhi syarat untuk mendapatkan gelar sarjana

Teknik (S. T.) di Universitas Sanata Dharma.

Pada kesempatan ini, penulis ingin mengucapkan banyak terima kasih

kepada:

1. Yosef Agung Cahyanta,S.T,M.T selaku Dekan Fakultas Sains dan Teknologi

Universitas Sanata Dharma.

2. Bapak Puspaningtyas Sanjoyo Adi. selaku dosen pembimbing yang telah

memberi bimbingan, masukan, kebaikan dan kesabarannya sehingga

penelitian dapat berjalan dengan lancar.

3. Bapak Yanuarius Joko S, S.Si selaku dosen pembimbing atas bantuan,

bimbingan, masukan dan kesabarannya sehingga skripsi ini dapat selesai tepat

waktu.

4. Ibu Anastasia Rita W., S.Kom, M.Kom, selaku dosen penguji dan telah

membimbing ketika awal pengeejaan skripsi ini.

5. Bapak Eko Hari, S.Kom, M.Kom selaku dosen penguji atas masukan dan

saran-saran yang membangun

vii
6. Kedua orang tua yang telah memberikan dukungan doa, spirit, moral maupun

material sehingga skripsi ini dapat berjalan lancar.

7. Chatarina Suryati dan Kristina Tri Lestari atas segala dukungan yang telah

diberikan kepada penulis

8. Nisitantri Prabaningrum atas pengorbanan, kesabaran, kesetiaan dan dukungan

yang diberikan kepada penulis sehingga skripsi ini dapat terselesaikan dengan

baik dan tepat waktu.

9. Christiana Shinta Estri Wahyuningrum dan YB Dwi Setianto atas segala

dukungan doa, semangat dan bantuan yang telah diberikan sehingga penulis

dapat menyelesaikan skripsi ini

10. Romo Kuntoro, yang selalu mengingatkan saya untuk selalu fokus pada

skripsi.

11. Tri PRasetyo, Y. Kuntho, Andri Khrisharyadi, Yosef Beni, Antonius Adiyoso,

Ida Bagus Mahendra Yuda yang selalu bersama-sama menemani sampai

selesainya Tugas Akhir

12. Angga, Bimo, Antok, Martin, Buntas, Venti yang bersama kita ujian Tugas

Akhir.

13. Dimas, Sigit, Enggar, Ragil, Akri, Adit, Iyus, Wisnu yang selalu memberikan

dukungan untuk mengerjakan Tugas Akhir

14. Teman-teman Mudika Brayat Minulyo Nogosari Trirenggo Bantul yang selalu

memberikan doa dan semangat.

15. Romo G. Utomo atas bantuan dan doa yang diberikan selama ini.

viii
16. Semua pihak yang tidak dapat penulis sebut satu persatu

Tak ada gading yang tak retak, begitu pula dengan skripsi yang tidak

sempurna ini. Oleh sebab itu penulis sangat membutuhkan kritik dan saran yang

membangun dari semua pihak untuk mencapai kesempurnaan. Besar harapan

penulis agar skripsi ini dapat berguna bagi semua orang khususnya dalam

peningkatan ilmu pengetahuan.

Yogyakarta, 20 Oktober 2009

Penulis

ix
LEMBAR PERNYATAAN PERSETUJUAN
Pt1BLIKAS1 KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

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

Nama
Nomor Mahasiswa
Ocmi pengembangan ilmu pengetahuan, saya memberikan kCpada PerpMtakaan
Universitas Sanata Dharma karya ilmiah saya yang bequdul
?. !.. ... ... S. .

beserta perangkat yang diperlukan (bila ada). Def lgan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan. me-
ngalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data.
mendistribusikan secara ierbatas. dan mem publikasikannya di Internet atau media
lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun
memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai

Demikian pernyataan ini yang saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal . .. . . - -

Yangmenyamkx
DAFTAR ISI

HALAMAN PERSETUJUAN.......................................................................................i

HALAMAN PENGESAHAN.......................................................................................ii

INTISARI.....................................................................................................................iii

ABSTRACK.................................................................................................................iv

PRAKATA..................................................................................................................vii

DAFTAR ISI.................................................................................................................x

BAB I.............................................................................................................................1

1.1. Latar Belakang..........................................................................................1

1.2. Rumusan Masalah.....................................................................................2

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

1.4. Tujuan dan Manfaat Penelitian..................................................................2

1.5. Metodologi Penelitian...............................................................................2

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

BAB II...........................................................................................................................5

2.3. Pengolahan Citra Digital...........................................................................6

2.3.1. Pengertian Citra Digital.....................................................................6

2.3.2. Pengertian Pengolahan Citra Digital..................................................7

2.4. Pembentukkan Citra..................................................................................8

2.4.1. Digitalisasi Citra................................................................................8

2.4.2. Elemen-elemen Citra Digital...........................................................10

2.4.3. Tipe Citra berdasarkan format penyimpanan...................................11

2.4.4. Elemen Sistem Pemrosesan Citra Digital........................................14

x
2.5. Format Citra Bitmap................................................................................14

2.6. Warna......................................................................................................15

2.6.1. Dasar-dasar Warna...........................................................................15

2.5.2. Atribut Warna..................................................................................16

2.5.3. Ruang Warna....................................................................................16

Gambar 2.4 Ruang Warna...........................................................................................17

BAB III........................................................................................................................27

3.1. Gambaran Sistem.............................................................................................28

3.2 Diagram Konteks sistem…………………………………………………,… 30

3.3 Diagram Alir Data...........................................................................................30

3.3.1. Proses Membandingkan dua buah citra...........................................30

3.3.2. Proses Membangkitkan Suara Peringatan........................................32

3.3.3. Proses Menyimpan Gambar.............................................................32

3.3.4. Proses Setting Webcam....................................................................33

3.4. Diagram Berjenjang.....................................................................................35

3.5. Perancangan Antar Muka Aplikasi..............................................................35

3.6. Disain Pengujian Perangkat Lunak..............................................................39

3.7. Spesifikasi Kebutuhan Hardware dan software..........................................35

BAB IV........................................................................................................................53

4.1. Implementasi Program....................................................................................41

4.2 Implementasi Antar Muka..............................................................................47

4.3 Hasil Pengujian...............................................................................................58

BAB V.........................................................................................................................85

5.1. Kesimpulan.....................................................................................................61
xi

5.2 Saran…………………………..……………….…………………………,…..61
DAFTAR PUSTAKA..................................................................................................86

xii
BAB I
PENDAHULUAN

1.1. Latar Belakang


Perkembangan kehidupan jaman modern berpengaruh terhadap
meningkatnya aktivitas manusia yang mengharuskannya untuk lebih sering
meninggalkan rumah sehingga semakin mengurangi kesempatan berada di
sekitar rumah, baik ketika ditinggal bekerja atau bahkan mudik ke kampung
halaman yang menjadi rutinitas tahunan warga perkotaan. Keadaan seperti ini
yang sering menjadi sasaran tindak kejahatan. Berita mengenai kasus pencurian
di media massa semakin bertambah, mengakibatkan rasa was-was bagi
masyarakat. Lambatnya penanganan maupun antisipasi tindak kejahatan
menyebabkan semakin maraknya tindak kejahatan.

Untuk mengantisipasi permasalahan tersebut, maka dibutuhkan sebuah


sistem keamanan untuk mengurangi resiko terjadinya tindak kriminal pada
suatu lokasi. Salah satu cara yang bisa dilakukan untuk mengurangi tindak
kriminal adalah dengan memasang kamera pengintai pada tempat yang
berpotensi terjadi tindak kriminal. Pada sistem keamanan berbasis kamera ini,
kamera akan selalu menyimpan semua gambar kejadian. Hal ini merupakan
kelemahan sistem jika terjadi kekurangan media penyimpanan.

Saat ini metode pengolahan citra berkembang dengan pesat. Metode ini
berpeluang digunakan pada sistem keamanaan berbasis kamera. Salah satu
metode yang digunakan dalam operasi pengolahan citra adalah operasi
pengurangan. Dari hasil pengurangan tersebut akan didapat informasi
perbedaan kedua buah citra tersebut. Informasi beda citra inilah yang digunakan
sebagai pendeteksi adanya obyek yang bergerak dan ini dapat dimanfaatkan
dalam sistem keamanan.
1
1.2. Rumusan Masalah
Dari latar belakang masalah di atas dapat dirumuskan menjadi suatu
masalah yaitu bagaimana memanfaatkan teknik pengurangan citra digital
untuk sistem keamanan.

1.3. Batasan Masalah


Implementasi aplikasi ini, dibuat dengan batasan sebagai berikut:
1. Citra yang akan diproses di peroleh dari piranti webcam.
2. Jika terdeteksi adanya obyek asing yang masuk maka sistem akan
membunyikan suara dan menyimpan gambar obyek tersebut .
3. Toleransi nilai pixel (intensitas) yang digunakan adalah 20.
4. Kecepatan penangkapan gambar adala 200 milisecond.
5. Jumlah kamera yang digunakan adalah satu.
1.4. Tujuan dan Manfaat Penelitian
1.4.1. Tujuan Penelitian :

Adapun tujuan yang ingin dicapai penulis dalam penulisan tugas akhir
ini adalah membangun suatu perangkat lunak pengolahan citra yang bisa
digunakan untuk sistem keamanan.

1.4.2 Manfaat Penelitian :

Adapun manfaat yang ingin dicapai penulis setelah menyelesaikan


penyusunan tugas akhir ini adalah memberikan alternatif solusi pada sistem
keamanan berbasis kamera yang lebih murah dengan fitur peralatan webcam.

1.5. Metodologi Penelitian


1. Metode studi literatur
Mencari dan mengumpulkan beragam literatur yang berkaitan dengan
pendeteksian gerak (move detection), dan juga literatur tentang
pemrograman Borland Delphi.
2. Metode pengembangan sistem
Metode yang digunakan dalam pengembangan sistem ini adalah metode
Waterfal. Model ini merupakan model klasik yang bersifat sistematis dalam
membangun sebuah software. Fase-fase yang ada dalam model ini
diantaranya : menganalisa kebutuhan program, mendesian interface,
mengimplementasikan hasil analisa dan desain sebelumnya kemudian
melakukan testing dan analisa hasil dari tahap implementasi.
1.6. Sistematika Penulisan
Laporan pembangunan tugas akhir ini ditulis berdasarkan hasil penelitian
yang dilakukan selama pengerjaan. Adapun sistematika penulisannya terdiri atas:

BAB I. PENDAHULUAN

Bab ini merupakan gambaran umum tentang tugas akhir ini yang
menjelaskan mengenai latar belakang masalah, batasan masalah, tujuan dan
manfaat penelitian, rumusan masalah, dan metodologi yang digunakan dalam
pembangunan sistem.

BAB II. DASAR TEORI

Bab ini akan berisi uraian tentang teori-teori yang akan digunakan dalam
perancangan sistem yaitu penjelasan mengenai citra dan operasi pengolahan
citra.

BAB III. ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan membahas analisa dan rancangan dari sistem yang akan
dibangun secara umum dan terperinci.

BAB IV. IMPLEMENTASI SISTEM

Bab ini berisi tentang pengimplementasian dari analisis dan desain sistem pada
bab sebelumnya.
BAB V. ANALISIS HASIL IMPLEMENTASI

Bab ini membahas tentang analisa hasil implementasi pada sistem


informasi yang telah dibuat dan hasil dari analisa yang telah dilakukan pada
sistem setelah sistem dicoba.

BAB VI. PENUTUP

Bab ini berisi Kesimpulan dan Saran untuk sistem yang telah dibuat agar ada
pengembangan yang lebih baik untuk masa yang akan datang.
BAB II
LANDASAN TEORI

2.1 Sistem Keamanan

Keamanan berasal dari kata dasar aman yang artinya adalah suatu keadaan
bebas dari bahaya, bebas dari gangguan dan tersembunyi (Kamus Besar Bahasa
Indonesia). Dalam kehidupan sehari ada beberapa jenis kemanan yang sering kita
temukan, diantaranya adalah kemanan fisik. Kemanan fisik adalah tindakan atau
cara yang dilakukan untuk mencegah atau menanggulangi dan menjaga orang,
barang, tempat dari bahaya fisik yang bisa menyebabkan kerugian. Kemanan fisik
termasuk perlindungan dari pencurian, vandalisme dan terorisme. Pengamanan
secara tradisional adalah dengan menempatkan seorang penjaga untuk menjaga
suatu area yang dianggap sebagai aset yang perlu dijaga. Namun cara tersebut
dianggap kurang efektif

Saat ini perkembangan teknologi sistem keamanan sudah berkembang cukup


pesat. Berbagai teknologi dikembangkan oleh berbagai perusahaan pengembang
perangkat keras sistem keamanan untuk memenuhi permintaan konsumen yang
cukup tinggi. Di dalam pengembangan sistem keamanan diperlukan berbagai
perlengkapan sensor sebagai alat input yang selalu dimonitor oleh sistem.
Penggunaan sensor dikembangkan mulai dari sensor pelat sederhana, sensor infra
merah, sensor panas atau sensor suhu, sensor citra (sensor visual), sampai
penggunaan laser sebagai pengganti penggunaan sensor infra merah. Dalam
penelitian ini penulis akan menggunakan sensor visual. Sensor fungsi utamanya
adalah sebagai indera dari sistem keamanan. Berbagai sistem keamanan dibangun
dari model kecil yang hanya menggunakan switch sederhana sampai model besar
dengan berbagai sensor kompleks yang dikendalikan dalam sebuah sistem.
Perkembangan sistem keamanan saat ini sudah dikendalikan secara elektronik
bahkan untuk sistem yang lebih kompleks sudah terkomputerisasi.
5
6

2.2 Sensor visual

Pada komponen sensor visual yang ditangkap oleh indera sensor adalah
berupa citra gambar. Perangkat yang digunakan sebagai komponen sensor adalah
kamera. Dalam bidang keamanan yang sering digunakan sebagai alat bantu adalah
kamera CCTV (Close Circuit Televission), namun pada penelitian ini penulis
akan menggunakan webcam.

Webcam adalah suatu kamera digital yang digunakan untuk mengambil


gambar secara digital dan mengirimkanya melalui internet. Cara kerja webcam
sama dengan cara kerja kemera digital, yaitu menggunakan sensor CMOS untuk
menangkap obyek yang terkena cahaya melalui dan mengubahnya menjadi
gambar digital. Saat ini jenis webcam yang banyak digunakan adalah adalah
webcam USB dan IP Kamera. Untuk webcam USB koneksi hanya memerlukan
kabel USB, dan untuk IP Kamera perlu konfigurasi alamat IP. Dalam penelitian
ini menggunakan webcam 1.3 Mega Pixel. Dimensi maksimal untuk gambar yang
didapat dengan webcam 1.3 Mega Pixel adalah 640x480.

2.3. Pengolahan Citra Digital


2.3.1. Pengertian Citra Digital
Citra digital adalah sebuah bentuk representasi atau kemiripin sebuah
obyek nyata ke dalam bidang dimensi tertentu. (Webster,1999) Sebagai
contoh yang dapat kita ambil adalah foto diri seseorang atau mungkin
lukisan seseorang dan beberapa contoh lainnya.

Gambar 2.1. visualisasi penangkapan obyek oleh mata manusia.


Sedangkan pengertian citra dalam bidang matematika dapat juga
dikatakan sebagai suatu fungsi yang memiliki sifat menerus atau
continue dari intensitas cahaya pada bidang dua dimensi.
Suatu obyek dapat dikatakan sebagai citra, jika obyek tersebut dikenai
oleh cahaya dan memantulkannya ke segala arah (disesuaikan dengan
permukaan obyek), dari pemantulan tersebut di tangkap oleh alat-alat
optik (semisal mata manusia, scanner, kamera, sensor satelit dan lain
sebagainya) kemudian direkam.
Pada dasarnya citra dibagi menjadi 2 kelompok. Diantaranya citra
tampak dan citra tidak tampak (Munir, 2005). Contoh citra tampak
adalah foto, gambar, lukisan, dan lain sebagainya. Sedangkan contoh
citra yang tidak tampak adalah data foto atau citra dalam file atau data
foto atau citra yang direpresentasikan ke dalam fungsi matematis.
Citra yang dimaksudkan dalam penelitian ini adalah citra digital yang
bersifat diam (still digital image) dan citra yang bergerak (moving digital
image). Citra digital yang bersifat diam adalah sebuah citra yang
disimpan atau direkam dalam bentuk format file serta tidak mengalami
pergerakan (Munir,2005). Perbedaannya dengan citra digital yang
bergerak (moving digital image) adalah cara menampilkannya, dalam arti
pada citra digital yang bergerak citra ditampilkan secara berurutan
(terurut) sehingga memberikan kesan citra tersebut bergerak.

2.3.2. Pengertian Pengolahan Citra Digital


Dalam ilmu komputer sebenarnya ada 3 bidang studi yang berkaitan
dengan citra digital (Munir,2004), diantaranya:
1. Grafika Komputer (computer graphics)
2. Pengolahan Citra (image processing)
3. Pengenalan Pola (pattern recognition / image interpretation)
Dari ketiga bidang studi tersebut tentunya memiliki tujuan yang
berbeda-beda satu sama lain. Perbedaan tersebut dapat kita lihat sebagai
berikut:
Grafika Komputer memiliki tujuan untuk menciptakan sebuah citra
dari obyek nyata dengan menggunakan geometri-geometri primitive
(seperti garis, lingkaran dan sebagainya) sedangkan pengolahan citra
memiliki tujuan untuk memperbaiki atau memodifikasi kualitas citra
agar menjadi citra yang lebih baik. Sementara tujuan Pengenalan Pola
adalah untuk mengelompokkan atau mengumpulkan data numerik dan
simbolik (dapat berupa data citra) secara otomatis dengan menggunakan
mesin (dalam hal ini mesin komputer).
Dalam penelitian ini, penulis hanya memfokuskan pada pengolahan
citra digital, dimana data citra digital yang didapat akan diproses dan
dilakukan operasi aritmatika pada dua buah citra yang dilakukan secara
berurutan dan terus menerus, yaitu operasi pengurangan, sehingga bisa
diketahui apakah kedua citra tersebut sama atau beda.

2.4. Pembentukkan Citra


2.4.1. Digitalisasi Citra
Agar sebuah citra dapat dilakukan perhitungan dengan komputer
digital, maka suatu citra harus direpresentasikan secara numerik dengan
nilai-nilai diskrit. Representasi citra dari fungsi malar menjadi nilai-nilai
diskrit disebut digitalisasi. Citra yang dihasilkan inilah yang disebut
sebagai citra digital. Umumnya citra digital berbentuk empat persegi
panjang dan dimensi ukurannya dinyatakan sebagai tinggi x lebar.
Berikut bentuk citra digital berukuran N x M dengan matriks yang
berukuran N baris dan M kolom:
f(0,0) f(0,1) ... f(0,M)
f(1,0) f(1,1) ... f(1,M)
f(x,y) =
... ... ... …
f(N-1,0) f(N-1,1) ... f(N-1,M-1)

Masing-masing elemen pada citra digital disebut image element,


picture element atau pixel. Sebagai contoh misalkan sebuah citra
berukuran 256 x 256 pixel dan direpresentasikan secara numerik dengam
matriks yang terdiri dari 256 buah baris (di-indeks dari 0 sampai 256)
dan 256 buah kolom (di-indeks dari 0 sampai 255) seperti contoh
berikut:

256 pixel

0 134 ... 231


0 167 ... 197 256 pixel
... ... ... …
221 219 ... 156

Pixel pertama pada koordinat (0,0) mempunyai nilai intensitas 0 yang


berarti warna pixel tersebut hitam, kedua pada koordinat (0,1)
mempunyai intensitas warna 134 yang berarti warnanya antara hitam
dan putih, dan seterusnya.
Gambar 2.2 Contoh citra digital

2.4.2. Elemen-elemen Citra Digital


Dalam citra digital mengandung elemen-elemen dasar, dari elemen-
elemen tersebut dapat dilakukan manipulasi dalam pengolahan citra.
Elemen-elemen dasar yang penting diantaranya adalah:
1. Kecerahan
Kecerahan atau intensitas pada sebuah titik (piksel) dalam citra
digital bukanlah bentuk intensitas yang riil, melainkan intensitas
rata-rata dari suatu area yang melingkupinya.
2. Kontras
Menyatakan sebaran terang dan gelap dalam sebuah citra digital.
3. Kontur
Keadaan yang ditimbulkan oleh perubahan intensitas pada piksel-
piksel yang bertetangga, sehingga dengan adanya perubahan tersebut
kita dapat mendeteksi tepi-tepi obyek di dalam citra.
4. Warna
Adalah persepsi yang ditangkap oleh sistem visual manusia terhadap
panjang gelombang cahaya yang dipantulkan oleh obyek. Setiap
warna memiliki panjang gelombang yang berbeda-beda. Warna-
warna yang diterima oleh mata manusia merupakan bentuk
kombinasi cahaya dengan panjang gelombang yang berbeda.
Persepsi sistem visual manusia terhadap warna sangat relatif sebab
dipengaruhi oleh beragam kriteria yang disebabkan adaptasi yang
menimbulkan distorsi.
5. Bentuk
Merupakan properti intrinsik dari obyek tiga dimensi untuk sistem
visual manusia. Manusia lebih sering mengasosiasikan obyek
dengan bentuknya ketimbang elemen lainnya.
6. Tekstur
Dicirikan sebagai distribusi spasial derajat keabuan dari sekumpulan
piksel-piksel yang bertetangga. Jadi tekstur tidak didefiniskan sebagai
piksel. Sebuah informasi citra diterima oleh sistem visual manusia tidak
secara independen pada tiap pikselnya merupakan sebuah suatu citra
dianggap sebagai suatu kesatuan piksel-piksel penyusunnya.

2.4.3. Tipe Citra berdasarkan format penyimpanan.


2.2.3.1 Citra Biner (monokrom)

Pada citra biner, setiap titik bernilai 0 atau 1, masing-masing


merepresentasikan warna tertentu. Contoh yang paling lazim adalah
warna hitam bernilai 0 dan warna putih bernilai 1. setiap titik pada citra
hanya membutuhkan 1 bit, sehingga setiap byte dapat menampung
informasi 8 titik. Contoh representasi citra biner ke dalam data digital

Gambar 2.3 contoh penyajian citra biner dalam matrik.

2.4.3.2 Citra skala keabuan (grayscale)

Citra skala keabuan memberi kemungkinan warna yang lebih


banyak dari pada citra biner., karena nilai-nilai lain antara nilai minimum
dan nilai maksimumnya. Banyaknya kemungkinan nilai dan nilai
maksimumnya tergantung pada jumlah bit yang digunakan. Contohnya
untuk skala keabuan 4 bit, maka jumlah kemungkinan nilainya adalah 24
atau sama dengan 16, dan nilai maksimumnya adalah 24-1 = 15.
Sedangkan untuk nilai skala keabuan 8 bit, maka jumlah kemungkinan
nilainya adalah 28 =256, dan nilai maksimumnya adalah 28-1= 255.

Format citra ini deisebut skala keabuan karena pada umumnya


warna yang dipakai adalah warna antara hitam sebagai warna minimal
dan warna putih sebagai warna maksimal, sehingga warna antaranya
adalah warna abu-abu. Namun pada prakteknya warna yang dipakai tidak
terbatas pada warna abu-abu. Sebagai contoh dipilih putih sebagai warna
minimal dan merah sebagi warna maksimalnya. Maka semakin besar
nilainya semakin besar pula intensitas warna merahnya.
2.4.3.3 Citra warna (true colour)

Pada citra warna, setiap titik mempunyai warna yang spesifik yang
merupakan kombinasi dari tiga warna yaitu merah, hijau dan biru.
Format citra ini sering disebut sebagai citra RGB (red-green-blue).
Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum
255 (8 bit), misalnya warna kuning merupakan kombinasi warna dan
hijau sehingga nilai RGB-nya adalah 255 255 0. Dengan demikian tiap
titik pada citra warna membutuhkan data 3 byte.

Jumlah kombinasi yang mungkin untuk format citra ini adalah 2 24


atau lebih dari 16 juta warna, dengan demikian bisa dianggap mencakup
semua warna yang ada. Inilah sebabnya format citra ini dinamakan true-
colour.

2.4.3.4 Citra warna berindeks

Jumlah memori yang dibutuhkan pada format citra warna true colour
adalah tiga kali jumlah titik yang ada dalam citra. Dilain pihak, pada
kebanyakan kasus, jumlah warna yang ada dalam suatu citra tekadang
terbatas ( jauh dibawah 16 juta warna untuk kemungkinan warna yang
ada), karena banyaknya warna dalam sebuah citra tidak mungkin
melebihi banyaknya titik dalam citra itu sendiri. Untuk kasus tersebut,
disediakan format citra warna berindeks. Pada format ini, informasi
setiap titik merupakan indeks dari suatu tabel yang berisi informasi
warna yang tersedia, yang disebut palet warna.

Jumlah bit yang dibutuhkan setiap titik pada citra bergantung pada
jumlah warna yang tersedia pada palet warna. Sebagai contoh, untuk
palet ukuran 26 warna, setiap titik membutuhkan 4 bit. Dan untuk palet
berukuran 256 warna, setiap titik membutuhkan 8 bit atau 1 byte. Palet
warna merupakan bagian dari citra warna berindeks, sehingga saat
penyimpanan citra, informasi palet juga harus disertakan. Keuntungan
menggunakan palet warna ini adalah kita dapat dengan cepat
memanipulasi warna tanpa harus mengubah informasi pada setiap titik
pada citra, keuntungan lainya dalah besarnya data yang diperlukan untuk
menyimpan citra ini lebih kecil dibandingkan dengan citra true colour.

2.4.4. Elemen Sistem Pemrosesan Citra Digital


Secara umum elemen yang terlibat dalam pemrosesan citra dapat
dibagi menjadi empat komponen (Munir, 2004):
1. Digitizer
2. Komputer digital
3. Piranti tampilan
4. Piranti penyimpanan
Digitizer merupakan sistem penangkap citra digital yang
dikonversikan ke dalam representasi numerik sebagai masukkan bagi
komputer digital. Hasil yang didapat dalam proses ini adalah matriks
yang elemen-elemennya menyatakan nilai intensitas cahaya pada suatu
titik (piksel). Contoh digitizer adalah kamera digital dan scanner.

2.5. Format Citra Bitmap


Setelah melalui proses pembentukan citra ke dalam nilai-nilai diskrit
(agar dapat dilakukan perhitungan di dalam komputer) tentunya citra
tersebut akan disimpan ke dalam berkas (file) dengan format tertentu.
Format citra dasar yang digunakan pada Microsoft Windows adalah
bitmap (BMP). Namun format citra semacam ini tidak setenar dengan
format citra JPEG maupun GIF, karena tidak adanya pemampatan
sehingga mengakibatkan format citra ini memiliki ukuran file yang lebih
besar dan menjadi jarang digunakan.
Meski format BMP memiliki ukuran file yang besar, tetapi ada
kelebihan lain yang dapat diambil, yaitu kualitas gambarnya. Citra dalam
format BMP ini lebih baik kualitas gambarnya dibandingkan dengan
format citra lainnya. Sebab citra ini tidak mengalami pemampatan, dan
informasi-informasi akan pixel-pixel sebuah citra tidak hilang.
Secara harifiah bitmap dapat diartikan sebagai pemetaan bit,
maksudnya intensitas pixel di dalam sebuah citra dipetakan ke dalam
sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap pixel
panjangnya 8 bit. Nilai tersebut merepresentasikan nilai intensitas pixel.

2.6. Warna
2.6.1. Dasar-dasar Warna
Warna merupakan salah satu bentuk presepsi visual seseorang
terhadap sebuah obyek citra. Warna yang dihasilkan oleh obyek citra
ditentukan oleh warna sinar yang dipantulkannya. Warna sinar yang
dapat terespon oleh mata manusia adalah sinar tampak dengan panjang
gelombang antara 400 – 700 nanometer.
Dalam sebuah penelitian menerangkan bahwa kombinasi warna yang
memiliki rentang warna yang paling lebar adalah red (merah), green
(hijau) dan blue (biru). Ketiga macam warna tersebut disebut sebagai
warna pokok dan sering disingkat dengan istilah RGB. Sedangkan
warna-warna lain yang dapat tertangkap oleh mata manusia merupakan
bentuk kombinasi dari ketiga warna tersebut dengan perbandingan
tertentu.
2.5.2. Atribut Warna
Selain RGB warna juga dapat dimodelkan ke dalam bentuk lain, yaitu
berdasarkan artibut warna yang dimiliki. Berikut ini adalah macam dari
atribut warna, diantaranya intensity (I), hue (H), saturation (S).
1. Intensity/Luminance
Merupakan salah satu atribut yang menyatakan banyaknya sinar atau
cahaya yang ditangkap oleh mata manusia tanpa memperhatikan
warna. Kisaran nilai yang dimiliki antara gelap (hitam) dan terang
(putih).
2. Hue
Atribut ini lebih menerangkan warna sebenarnya dalam arti atribut ini
dapat membedakan warna-warna yang tertangkap mata manusia. Hue
berasosiasi dengan dengan panjang gelombang cahaya.
3. Saturation
Menyatakan tingkat kemurnian warna cahaya atau dapat juga
dinyatakan sebagai pengukur dalamnya sebuah warna dengan cara
mengindikasikan seberapa banyak warna warna putih yang diberikan
pada sebuah warna.

2.5.3. Ruang Warna


Didefinisikan sebagai representasi model warna berdasarkan nilai
intensitasnya. Pada dasarnya ruang warna mendifinisikan 4 macam ruang
dimensi, komponen warna dan chanel warna adalah bentuk dari ruang
dimensi. Ruang dimensi tersebut juga merepresentasikan adanya warna
abu-abu atau sering disebut grayscale. Bentuk ruang warna dapat dilihat
sebagai berikut.
Gambar 2.4 Ruang Warna
Dari gambar di atas dapat kita lihat red, green dan blue terdapat di
aksis (1,0,0) sedangkan warna abu-abu atau grayscale terdapat pada
garis diagonal dari titik warna hitam menuju warna putih.

2.7 Operasi Pengolahan Citra


Pengolahan citra digital (digital image processing) adalah proses
memanipulasi suatu file citra dengan menggunakan komputer digital
sehingga menghasilkan suatu file citra yang sesuai dengan keinginan.

Pengolahan citra menggunakan komputer dapat digambarkan pada


diagram berikut ini:
Gambar 2.5. Pengolahan Citra
Manfaat pengolahan citra adalah menunjang kebutuhan kehidupan
sehari-hari khususnya untuk :

 Memfasilitasi penyimpanan dan transmisi citra seperti menentukan


metode penyimpanan citra yang efisien dalam suatu kamera digital
sehingga mempercepat proses pengirim citra dari jarak jauh
misalkan dari planet Mars ke Bumi.
 Menyiapkan untuk ditampilkan di monitor atau dicetak. Proses yang
dilakukan adalah merubah ukuran citra yang harus disesuaikan
dengan ukuran media tampilan serta proses halftoning untuk proses
pencetakan.
 Meningkatkan dan memperbaiki citra dengan menghilangkan
goresan-goresan pada ataupun meningkatkan visibilitas citra.
Pengolahan citra pada dasarnya dilakukan dengan cara memodifikasi
setiap titik dalam citra tersebut. Secara garis besar, modifikasi citra
dikelompokkan menjadi:

1. Operasi titik adalah operasi pengolahan citra dimana setiap titik diolah
tidak berpengaruh antara satu titik dengan titik yang lain. Setiap titik pada
suatu citra mempunyai 2 karakteristik, yaitu koordinat yang menunjukkan
lokasi dari titik tersebut dalam citra dan nilai piksel. Beberapa operasi
pengolahan citra yang termasuk dalam kelompok operasi titik adalah
operasi modifikasi kecemerlangan (brightness modification), peningkatan
kontras (contrast enhancement), negasi (negation), dan operasi
pengambangan (thresholding).

2. Operasi global adalah operasi pengolahan citra dimana karakteristik global


dari citra tersebut digunakan untuk memodifikasi nilai setiap titik. Salah
satu contoh operasi global adalah ekualisasi histogram.

3. Operasi geometri adalah operasi terhadap koordinat piksel dalam citra


yang memungkinkan terjadinya perubahan bentuk, ukuran, atau orientasi.
Operasi geometri di antaranya meliputi pencerminan (flipping), rotasi /
pemutaran (rorating), penskalaan (scaling / zooming), dan pembengkokan
(warping).

4. Operasi temporal/berbasis bingkai adalah operasi pengkombinasian dua


buah citra atau lebih dengan menggunakan operasi matematis. Operasi ini
dilakukan titik per titik dengan lokasi yang bersesuaian pada citra-citra
tersebut. Operasi temporal/berbasis bingkai di antaranya meliputi
pengurangan derau, penggabungan citra (image blending), deteksi
gerakan, dll.
5. Operasi titik bertetangga adalah operasi dimana data dari titik yang
bersebelahan (bertetangga) dengan titik yang ditinjau ikut berperan dalam
mengubah nilai. Operasi bertetangga pada dasarnya konvolusi antara citra
dengan sebuah filter atau mask. Operasi titik bertetangga di antaranya
meliputi penghalusan citra (smoothing), eliminasi derau, pendeteksi tepi,
penajaman citra (sharping).

6. Operasi morfologi adalah operasi yang didasarkan pada segmen atau


region dalam citra yang menjadi perhatian. Operasi morfologi di
antaranya meliputi operasi pencarian batas, dilasi (dilation), erosi
(erosion), penutupan (closing), pembukaan (opening), pengisian (filling).

Operasi citra pada pengolahan citra pada umumnya diterapkan bila:

1. Perbaikan kualitas penampakan atau untuk menonjolkan beberapa aspek


informasi yang terkandung dalam citra tersebut.
2. Elemen-elemen dalam citra perlu dikelompokkan atau dicocokkan untuk
diukur.
3. Sebagian citra perlu digabung dengan citra yang lain.

2.7.1 Operasi Berbasis Bingkai


Operasi berbasis bingkai adalah operasi yang melibatkan 2 buah citra
atau lebih dan menghasilkan sebuah citra keluaran yang merupakan hasil
operasi matematis (Achmad, 2005).

Operasi berbasis bingkai antara citra A dan citra B akan menghasilkan


citra C, yang persamaannya dapat dituliskan sebagai berikut:

C(x,y) = A(x,y) op B(x,y)


dimana op adalah operator yang menghubungkan kedua citra tersebut.
Operasi berbasis bingkai juga dapat melibatkan N buah citra A1 sampai
dengan AN yang persamaannya dapat dituliskan sebagai berikut:

C(x,y) = A1(x,y) op A2(x,y) op A3(x,y) ... op AN(x,y)

Berdasarkan operator yang dipakai, operasi berbasis bingkai meliputi


operasi aritmatik dan operasi logika.

2.7.1.1 Operasi Aritmatika

Operasi aritmatik biasanya diterapkan terhadap citra keabuan dan


warna. Berdasarkan operator aritmatika yang umum digunakan terdapat
empat operasi aritmatika yang dapat dirumuskan sebagai berikut:

Penjumlahan Dua Buah Citra

Persamaan yang digunakan adalah:

C(x,y) = A(x,y) + B(x,y)

C adalah citra baru yang intensitas setiap pixel-nya adalah jumlah dari
intensitas pada A dan B. Jika hasil penjumlahan intensitas lebih besar dari 255
maka intensitasnya akan dibulatkan menjadi 255.

Operasi penjumlahan citra dapat digunakan untuk mengurangi


pengaruh derau (noise) di dalam data, dengan cara merata-ratakan derajat
keabuan setiap piksel dari citra yang sama yang diambil berkali-kali.

Salah satu contoh penjumlahan dua buah citra adalah penggabungan


citra dilakukan dengan cara menimpakan (superimpose) sebuah citra pada
citra yang lain. Penggabungan citra dapat diberi bobot masing-masing.
Rumus untuk penggabungan dua buah citra adalah
C(x,y) = wA * A(x,y) + wB * B(x,y)

dengan wA * dan wB adalah bobot untuk citra A dan citra B. Biasanya


nilai total dari bobot untuk sebuah lokasi piksel adalah 1, sehingga

wB = 1 – wA

Pengurangan Dua Buah Citra

Persamaan yang digunakan adalah:

C(x,y) = A(x,y) - B(x,y)

C adalah citra baru yang intensitas setiap pixel-nya adalah selisih dari
intensitas pada A dan B. Ada kemungkinan hasil operasi ini menghasilkan
nilai negatif, oleh karena itu, operasi pengurangan citra perlu melibatkan
operasi clipping.

Pengurangan citra dapat digunakan untuk mendeteksi perubahan yang


terjadi selama selang waktu tertentu bila dua buah citra yang diambil adalah
citra dari adegan yang sama. Teknik semacam ini dipakai pada moving
images.

Perkalian Citra

Persamaan yang digunakan adalah:

C(x,y) = A(x,y) * B(x,y)

C adalah citra baru yang intensitas setiap pixel-nya adalah hasil


perkalian dari intensitas pada A dan B.

Perkalian citra sering digunakan untuk mengoreksi kenirlanjaran


sensor dengan cara mengalikan matrik citra dengan matrik koreksi. Jadi
dalam hal ini A adalah citra sedangkan B adalah matrik koreksi. Hasil operasi
mungkin akan bernilai rill, sehingga semua nilai dibulatkan ke nilai bulat
terdekat. Nilai maksimumnya adalah 255.

Penjumlahan/Pengurangan Citra Dengan Skalar

Persamaan yang digunakan adalah:

B(x,y) = A(x,y) + c

Penjumlahan citra A dengan skalar c adalah menambah setiap piksel


di dalam citra dengan sebuah skalar c, dan menghasilkan citra baru B yang
intensitasnya lebih terang daripada A. Kenaikan intensitas sama untuk seluruh
piksel, yaitu c.

Pengurangan citra A dengan skalar c adalah mengurangkan setiap


piksel di dalam citra dengan sebuah skalar c, dan menghasilkan citra baru B
yang intensitasnya lebih gelap daripada A. Penurunan intensitas sama untuk
seluruh pixel, yaitu c. Contoh operasi penjumlahan/pengurangan citra dengan
sebuah skalar adalah operasi pencerahan citra.

Perkalian/Pembagian Citra Dengan Skalar

Persamaan yang digunakan adalah:

B(x,y) = c . A(x,y)

dan

B(x,y) = A(x,y) / c

Perkalian citra A dengan skalar c menghasilkan citra baru B yang


intensitasnya lebih terang daripada A. Kenaikan intensitas setiap piksel
sebanding dengan c. Operasi perkalian citra dengan skalar dipakai untuk
kalibrasi kecerahan (callibration of brightness).
Pembagian citra A dengan skalar c menghasilkan citra baru B yang
intensitasnya lebih gelap daripada A. Penurunan intensitas setiap pixel
sebanding dengan c. Operasi pembagian citra dengan skalar dipakai untuk
normalisasi kecerahan (normalization of brightness).

2.7.2 Operasi Logika

Operasi logika juga dapat dilakukan terhadap dua atau lebih citra.
Beberapa operasi logika yang sering dipergunakan adalah:

Operasi Logika AND

Persamaan yang digunakan adalah:

C(x,y) = A(x,y) AND B(x,y)

A B
AND
(A) AND (B)

Gambar 2.6. Citra hasil operasi logika AND


Jika A adalah citra dengan gambar persegi panjang dan B adalah citra
dengan gambar persegi maka setelah kedua citra tersebut dioperasikan
dengan menggunakan operasi logika AND maka citra hasil operasi yang
didapat adalah citra persegi panjang yang merupakan perpotongan kedua citra
tersebut.

Operasi Logika OR

Persamaan yang digunakan adalah:

C(x,y) = A(x,y) OR B(x,y)


A B
OR
(A) OR (B)

Gambar 2.7. Citra hasil operasi logika OR


Jika A adalah citra dengan gambar persegi panjang dan B adalah citra
dengan gambar persegi maka setelah kedua citra tersebut dioperasikan
dengan menggunakan operasi logika OR maka citra hasil operasi yang
didapat adalah citra poligon yang merupakan perpaduan kedua citra tersebut.

Operasi Logika XOR

Persamaan yang digunakan adalah:

C(x,y) = A(x,y) XOR B(x,y)

A B
XOR (A) XOR (B)

Gambar 2.8. Citra hasil operasi logika XOR


Jika A adalah citra dengan gambar persegi panjang dan B adalah citra dengan
gambar persegi maka setelah kedua citra tersebut dioperasikan dengan menggunakan
operasi logika XOR maka citra hasil operasi yang didapat adalah citra poligon yang
berlubang dibagian tengah yang merupakan hasil perpaduan kedua citra tersebut.

Operasi Logika NOT

Persamaan yang digunakan adalah:

C(x,y) = NOT A(x,y)


A
NOT
NOT(A)

Gambar 2.9. Citra hasil operasi logika NOT


Jika A adalah citra dengan gambar persegi panjang maka setelah citra
tersebut dioperasikan dengan menggunakan operasi logika NOT maka citra
hasil operasi yang didapat adalah sebuah citra yang berlubang di bagian
persegi panjang. Hasil yang terbentuk merupakan komplemen dari citra awal.
BAB III
ANALISIS DAN PERANCANGAN SISTEM

3.1 Gambaran Sistem

Sistem yang dibuat ini merupakan salah satu implementasi pengolahan citra
digital. Sistem ini merupakan sebuah alat bantu dalam bidang keamanan. Pada
sistem ini kita membutuhkan sebuah perangkat komputer yang menggunakan
sistem operasi Windows untuk menjalankan sistem tersebut, juga sebuah speaker
untuk membunyikan alarm ketika terjadi adanya gerakan Dalam sistem ini akan
menggunakan citra dari obyek nyata yang diambil menggunakan media webcam
yang kemudian citra tersebut akan diolah dengan teknik pengolahan citra.

Dalam pengolahan citra tersebut, sistem akan mengambil citra yang


digunakan sebagai pembanding. Citra yang diambil pertama tersebut diambil
untuk mencitrakan keadaan ketika tempat atau latar tersebut dalam keadaan
tanpa obyek asing yang tertangkap kamera. Kamera atau webcam yang dipasang
akan mengambil gambar secara real time tiap beberapa satuan waktu. Misalnya
dalam setiap setengah detik akan ada satu citra yang diambil. Setiap gambar
yang diambil akan dibandingkan dengan gambar yang diambil sebelumnya.

Proses utama dalam sistem ini adalah proses banding citra, yaitu proses
untuk mengetahui perbedaan dua buah gambar. Dan proses yang lainya adalah
proses simpan gambar dan proses pembangkit peringatan. Proses pembangkit
peringatan merupakan proses untuk memberikan peringatan dalam bentuk suara.
Sedangkan proses simpan gambar digunakan untuk menyimpan file gambar jika
terdapat perbedaan gambar.

27
28

mulai

1. Ambil gambar Latar

2. Ambil gambar obyek

Objek image Latar image

tidak

2. perbedaan =
| Objek – latar |

Perbedaan>tol eransi tidak


Berhenti? Perbedaan=0

Perbedaan > 0
Objek = latar

3. Play Suara

4. Simpan Gambar

Berhenti
ya

ya

selesai

Gambar 3.1 Disain Sistem Aplikasi Pengaman Ruangan


3.2 Diagram Konteks Sistem

citra Peringatan
kamera Aplikasi Pengaman Ruangan User

Setting kamera
Setting kamera

Gambar 3.2 Gambar Diagram Konteks sistem.

3.3 Diagram Alir Data

citra
Bandingkan dua buah citra
Kamera

Terdeteksi gambar beda


Seting kamera

Simpan gambar
Terdeksi Gambar beda
File Gambar
Setting kameraSimpan Gambar

Seting kamera

User

Suara dan Teks berkedip Pembangkit Peringatan

Gambar 3.3 Gambar Diagram Alir Data

Aplikasi ini terdiri dari empat proses utama, yaitu proses banding citra, proses
simpan gambar, proses pembangkit peringatan, dan proses setting kamera.
Berikut merupakan penjelasan mengenai masing-masing proses tersebut.

3.3.1. Proses Membandingkan dua buah citra

Proses ini merupakan proses utama dalam aplikasi ini, pada proses ini
citra digital yang diperoleh dari kamera dilakukan operasi pengurangan
pada kedua citra. Hasil dari pengurangan citra akan dibuat harga mutlak
sehingga didapat nilai positif. Jika hasil dari pengurangan tersebut lebih
dari nol, maka kedua citra tersebut berbeda, namun jika hasil
pengurangan kedua citra tersebut adalah nol, maka citra tersebut sama.
Output dari proses ini adalah keterangan apakah kedua citra tersebut
beda atau sama.

Proses banding gambar adalah sebagai berikut :

1. Baca kedua citra masukan.


2. Baca panjang dan lebar gambar obyek dan gambar latar.
3. Baca Nilai RGB pada tiap koordinat x,y kedua buah citra
4. Untuk koordinat (x,y) yang sama pada kedua gambar dikurangkan
masing nilai Red, Green dan Blue
5. Jika nilai |(Red obyek – Red Latar)| > toleransi dan |(Green obyek –
Red Latar)| > toleransi dan nilai |(Blue obyek – Blue Latar )| > toleransi
pixel maka jumlah pixel yang berubah di tambahkan satu.
6. Ulangi langkah empat untuk semua titik pada kedua gambar
7. Jika ((jumlah pixel berubah * 100 ) / luas gambar ) > toleransi maka
program akan menyimpan gambar obyek dan memainkan suara sebagai
tanda peringatan.
mulai

Baca Citra

Baca panjang dan lebar 2 citra

Y=tinggi; y>0; y-1

X=lebar;x>0; X-1

tidak

R(|objek(x,y)-latar(x,y)|)>toleransipixel Dan
G(|objek(x,y)-latar(x,y)|)>toleransipixel Dan
B(|objek(x,y)-latar(x,y)|)>toleransipixel

ya

PixelBerubah ++

PersenPerubahan = (pixelBerubah*100)/ luasGambar

Terdeteksi obyek asing

selesai

Gambar 3.1 Algoritma Proses Banding Gambar


3.3.2. Proses Membangkitkan Suara Peringatan

Proses membangkitkan suara merupakan proses kelanjutan dari proses


banding citra, jika proses banding citra menghasilkan output bahwa kedua
citra berbeda maka proses ini akan berjalan. Proses ini akan memberikan
sebuah informasi peringatan dengan memainkan suara atau alarm dan
tulisan adanya pergerakan pada layar jika hasil dari proses banding citra
mendeteksi adanya perbedaan citra.

mulai

terdeteksiGerak = true

true

PlaySuara false

selesai

Gambar 3.2 Algoritma Proses Pembangkit Suara.

3.3.3. Proses Menyimpan Gambar

Proses ini juga merupakan kelanjutan dari hasil proses banding citra. Jika
masukan pada proses ini mendeteksi adanya perbedaan citra maka proses
ini akan menyimpan citra obyek. Citra obyek akan disimpan pada
direktori sesuai tanggal obyek tersebut terdeteksi. Nama file dari citra ini
akan disesuaikan dengan waktu obyek tersebut terdeteksi. Nama file yang
disimpan adalah [jam];[menit];[detik];[milidetik].JPG . File citra ini akan
dimasukan dalam folder sesuai tanggal terdeteksinya obyek.

mulai

terdeteksiGerak = true

true

Simpan Gambar false

selesai

Gambar 3.3 Algoritma Proses Simpan Gambar.

3.3.4. Proses Setting Webcam

Proses setting webcam pada aplikasi ini digunakan untuk melakukan


perubahan pengaturan pada kamera. Pengaturan ini dikerjakan pada
komponen JLVC. Untuk menambahkan pengaturan setting kamera, kita
bisa panggil fungsi pengaturan kamera yang telah disediakan.
3.4 Diagram Berjenjang

Aplikasi Pengaman Ruangan Menggunakan Webcam

1 2

Modul Pengintaian Modul Setting webcam

2.2P

Proses penyimpanan gambar


Proses Pembangkit Suara Setting kamera

1.2P

Proses Banding Gambar

Gambar 3.4 Gambar Diagram Berjenjang.

3.5 Perancangan Antarmuka Aplikasi

Pada perancangan antarnuka aplikasi ini, penulis akan membuat bagaimana


rancangan antarmuka sistem yang akan digunakan oleh user untuk berinteraksi
dengan sistem. Perancangan antarmuka sistem ini bertujuan untuk membuat user bisa
mengoperasikan aplikasi.
3.5.1 Perancangan Modul Pengintaian

5 File 6 setting 7 help

Peringatan

Gambar 3.5 Rancangan User Interface Aplikasi Pengaman Ruangan

Rencana untuk tampilan utama program adalah seperti pada gambar 3.5.
Pada tampilan awal program akan memuat beberapa komponen yang akan
digunakan, dan komponen yang digunakan tampak pada keterangan berikut
ini :

1. Layar, untuk menampilkan gambar yang diambil dari webcam


2. Progres Bar, untuk menampilkan besarnya jumlah titik yang berbeda
3. Track bar, digunakan untuk memasukan jumlah prosentase titik yang
berubah.
4. Tombol Play, yaitu tombol yang digunakan untuk memulai mendeteksi
obyek yang masuk ke layar kamera.
5. Menu File
6. Menu setting, digunakan untuk melakukan penyetingan pada kamera
7. Menu help, berisi tentang about dan bantuan dalam menjalankan program
ini

3.5.2 Perancangan Form Bantuan

Form bantuan merupakan fasilitas tambahan pada aplikasi. Dengan


adanya form bantuan ini, diharapkan user bisa mempunyai petunjuk dalam
menjalankan program dan mendapatkan informasi tentang aplikasi. form
bantuan terdiri dari dua form, yaitu form help dan form about.

3.5.2.1 Form Help

Help topik
keterangan

Gambar 3.6 Rancangan Form Help

Form bantuan merupakan fitur tambahan yang berfungsi sebagai


petunjuk user dalam menjalankan aplikasi. Form bantuan ini merupakan
fasiltas tambahan bagi sistem. Form bantuan digunakan sebagai panduan
dalam menggunakan aplikasi pengaman ruangan.
3.5.2.1 Form About

Form about digunakan untuk menampilkan informasi tentang aplikasi.


informasi yang ditampilkan adalah informasi tentang pembangun aplikasi ini.

ABOUT

Keterangan mengenai pembuat program aplikasi ini adalah

Gambar 3.7 Gambar Rancangan Form About


3.6 Disain Pengujian Perangkat Lunak

Untuk pengujian akan dilakukan secara bertahap dari modul sederhana hingga
kompleks.

Tabel 3.1 Disain pengujian kamera pada Aplikasi Pengaman Ruangan


Menggunakan Webcam

No Sekenario uji Hasil yang diharapkan Keterangan

Mengambil Gambar sesuai dengan Hasil pengujian untuk

resolusi menggunakan aplikasi mengetahui ukuran

ConEnventos : menggunakan windows


explorer dilihat detail
a
dimensinya

1.Ukuran 640x280 gambar 640x480

2. ukuran 352x288 gambar 352x288

Menyimpan gambar pada


Gambar tersimpan di
b forder pada folder coba,
folder coba satu
menggunakan ConEnventos

Memainkan suara sond.wav


c Suara terdengar
menggunakan media player

Pengujian Aplikasi dengan


objek orang lewat dengan
d
tinggi badan 168 cm berat
55Kg sesuai tabel pengujian 3.2
Tabel 3.2 Pengujian Aplikasi Pengaman Ruang Menggunakan Webcam dengan
Objek Orang.

Jarak Toleransi (%)

(meter) 1 3 5 10 15 20

1 √ √ √ √ √ √

2 √ √ √ √ √ √

3 √ √ √ √ √ √

4 √ √ √ √ √ √

5 √ √ √ √ √ √

6 √ √ √ √ √ √

7 √ √ √ √ √ √

8 √ √ √ √ √ √

9 √ √ √ √ √ √

10 √ √ √ √ √ √

11 √ √ √ √ √ √

12 √ √ √ √ √ √

13 √ √ √ √ √ √

14 √ √ √ √ √ √

15 √ √ √ √ √ √
16 √ √ √ √ √ √

17 √ √ √ √ √ √

18 √ √ √ √ √ √

19 √ √ √ √ √ √

20 √ √ √ √ √ √

Keterangan : √ berarti terdeteksi, sedangkan × berarti tidak terdeteksi.

Tabel 3.3 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan
toleransi 1 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √
13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √

29 9 3 √

Tabel 3.4 hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan toleransi
2 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √
4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √
27 7 3 √

28 8 3 √

29 9 3 √

30 10 3 √

Tabel 3.5 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan toleransi
3 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √
17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √

29 9 3 √

30 10 3 √

Tabel 3.6 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan toleransi
4 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √
6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √
29 9 3 √

30 10 3 √

Tabel 3.6 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan toleransi
5 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √
19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √

29 9 3 √

30 10 3 √

Tabel 3.7 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan toleransi
6 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √
9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √

29 9 3 √

30 10 3 √
Tabel 3.8 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan toleransi
7 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √
22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √

29 9 3 √

30 10 3 √

Tabel 3.9 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola tenis dan toleransi
1 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 √

8 8 1 √

9 9 1 √

10 10 2 √
11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 √

17 7 2 √

18 8 2 √

19 9 2 √

20 10 2 √

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 √

26 6 3 √

27 7 3 √

28 8 3 √

29 9 3 √

3.7 Spesifikasi Kebutuhan Hardware dan Software

Untuk bisa menjalankan aplikasi ini dibutuhkan beberapa perangkat keras dan

perangkat lunak pendukung.


Adapun komponen-komponen pendukungnya adalah sebagai berikut:

1. Prosesor Pentium III atau lebih.


2. Memori minimal 128 MB .
3. Harddisk 20 GB
4. Monitor VGA
5. speaker
6. Webcam
7. Sistem Operasi Microsoft Windows XP
8. Driver webcam
BAB IV
IMPLENTASI SISTEM

4.1 Implementasi Program

Implementasi merupakan tahap pengkodean dari hasil perancangan.


Pada bab sebelumnya telah dijelaskan mengenai perancangan pembuatan
program. Pada bab ini akan dijelaskan hasil implementasi dan jalannya
program. Pada aplikasi ini program utama terletak dalam file pascal (.pas)
yaitu file unit yang digunakan untuk menangani kejadian pada form.
Sedangkan untuk tampilan antar muka berada dalam file .dfm yang berisi
daftar komponen yang digunakan berikut propertinya. Setelah aplikasi ini di
kompilasi maka akan muncul file aplikasi yang berekstensi .exe. File .exe ini
merupakan aplikasi yang bisa digunakan oleh user untuk menjalankan
program.

4.1.1 Modul Pengintai

4.1.1.1 Proses Banding Citra

Pada proses banding citra terdiri atas bebeberapa proses. proses banding
citra berada dalam fungsi CariPerbedaan. Berikut merupakan
penejelasan masing-masing proses utama yang digunakan dalam fungsi
CariPerbedaan. Output dari fungsi cariPerberdaan adalah prosentase dari
jumah titik yang berubah dan bertipe integer. Nilai balik dari fungsi cari
perbedaan ini kemudian dibandingkan dengan nilai prosentase yang
didapat dari trackbar. Dan output dari perbandinganya digunakan
sebagai pemicu atau trigger untuk proses simpan gambar dan proses
pembangkit Peringatan. Berikut ini adalah implementasi proses yang
terdapat dalam proses banding citra.

1. Proses baca gambar


Masukan : citra

53
54

Keluaran : imgObjek : Timage;

ImgLatar : Timage

Algoritma :
imgObjek.picture.LoadFromFile(JLCVideo1.FicheroImage
n)

keterangan :Timage merupakan komponen untuk menampilkan citra


pada form.

Timage mempunyai properti picture yang digunakan untuk


menyimpan data citra. Sedangkan prosedurFile digunakan untuk
mengambil citra. Citra yang diambil berasal dari komopnen JLCVideo1,
dengan memanggil fungsi FicheroImagen yang berada pada komponen
JLCVideo1.

2. Proses baca panjang, lebar dan luas citra


Masukan : imgObjek:Timage

Keluaran : endX: integer

endY: integer

jumlahPixel: integer

Algoritma : endY := imgObjek.picture.Height – 1

endX := imgObjek.picture.Width – 1

jumlahPixel:=(imgObjek.picture.Height*
imgObjek.picture.Width).

keterangan : variabel endY dan endX akan menyimpan jumlah titik


pada panjang citra yang dibaca.
Pada listing tersebut nilai panjang dikurangi satu karena
untuk penyimpanan citra pada Delphi dimulai dari titik 0,0.
Demikian juga untuk lebar citra juga dikurangkan satu.
Fungsi untuk mendapatkan nilai panjang dan lebar adalah
dengan menggunakan subproperti dari Timage yaitu height
dan width. Sedangkan variabel jumlah pixel digunakan
untuk menghitung jumlah titik atau luas citra.

3. Proses baca jumlah perbedaan nilai RGB untuk semua titik


Masukan : endX dan endY :integer

Keluaran : PixelBerubah : integer

Algoritma :
for y := 0 to endY do
begin
currentLine :=
imgObjek.picture.bitmap.Scanline[y]; prevLine :=
imgLatar.picture.bitmap.Scanline[y]; for x := 0 to
endX do
begin
currentPixel := currentLine^[x];
prevPixel := prevLine^[x];
if (abs(currentPixel.rgbtRed - prevPixel.rgbtRed) >
pixelToleransi) and
(abs(currentPixel.rgbtGreen - prevPixel.rgbtGreen) >
pixelToleransi) and
((abs(currentPixel.rgbtBlue - prevPixel.rgbtBlue) >
pixelToleransi)) then
inc(pixelBerubah);

end;
Keterangan : untuk membaca semua titik dilakukan perulangan dengan
for, dan untuk membaca titik digunakan fungsi scanline.
Fungsi ini hanya bisa membaca baris atau secara horizontal.
Tiap titik yang dibaca pada koordinat yang sama dan
dikurangkan nilainya untuk mengetahui perbedaan kedua
citra. Fungsi inc() adalah fungsi increment yang digunakan
untuk menambah satu suatu nilai variabel.

4. Proses hitung jumlah perbedaan

Masukan : PixelBerubah: integer

Keluaran : result: integer

Algoritma : result := (pixelBerubah * 100) div jumlahPixel;

Keterangan : proses ini digunakan untuk mencari prosentase jumlah


titik yang berbeda. Variabel jumlahPixel didapatkan dari
proses sebelumnya yaitu pada proses baca panjang, lebar
dan luas.

5. Proses mentukan apakah ada gerakan

Masukan : result, moveTriger:integer

Keluaran : terdeteksiGerakan: boolean

Algoritma : trackbar1.Position := moveTrigger

TerdeteksiGerak := (result >= moveTrigger);

Keterangan : moveTriger adalah tipe data integer yang diperoleh dari


nilai dari komponen trackbar 1. output dari proses ini yang
digunakan sebagai pemicu atau trigger proses simpan
gambar dan proses pembangkit peringatan. Kedua proses
dilakukan jika output dari proses ini adalah true.

4.1.1.1 Proses Pembangkit Peringatan

Proses pembangkit peringatan adalah proses untuk memberitahukan


kepada user, bahwa telah ada obyek asing masuk kedalam area
pengamanan. Ouptput dari proses ini berupa suara yang bisa langsung
didengar oleh user melalui speaker.

Masukan : tredeteksiGerak: Boolean

keluaran : terdeteksiGerak: Boolean

algoritma : if (TerdeteksiGerak) then PlaySuara

sndPlaySound(PChar('sond.wav'),
SND_NODEFAULT);

keterangan : Play Suara adalah prosedur yang akan dijalankan


jika terdeksiGerak=true. Prosedur play suara akan
memainkan file sond.wav.

4.1.1.1 Proses Simpan Gambar

Proses ini adalah proses untuk menyimpan gambar jika terdeteksi


adanya pergerakan dalam area pengintian. Output dari proses ini adalah
file gambar objek yang masuk kedalam area pengamanan.

Masukan : terdeksiGerak : Boolean

imgObjek: Timage

sekarang : date;
Keluaran : File gambar

Algoritma : if (TerdeteksiGerak) then SimpanGambar

JpegImg.Assign(imgObjek.picture.bitmap) ;

tmpFilename := dateTostr(date)+'\'+inttostr(jam)
+';'+inttostr(min)+';'
+inttostr(sec)+';'+intToStr(msec) + '.jpg'

JpegImg.SaveToFile(tmpFilename) ;

Keterangan : variabel sekarang digunakan untuk mengambil


nilai tanggal dari sistem, dan tanggal dari sistem ini
yang digunakan sebagi nama direktori penyimpanan
file. Dan penamaan file objek sesuai dengan waktu
dengan format jam;menit;detik;milidetik.jpg.
Sedangkan tmpFilename adalah variabel bertipe
string yang digunakan untuk menyimpan nama file.
fungsi untuk menyimpan gambar adalah
JpegImg.SaveToFile().

4.1.2 Modul Setting Kamera

Pada setting kamera penganan untuk event ini dikerjakan pada


komponen JLCV. Untuk melakukan setting kamera kita bisa memanggil
fungsi SeleccionarFormato yang telah disediakan oleh komponen JLCV
untuk melakukakn setting kamera.

Masukan : JLCVIdeo1: JLCV


Keluaran : tampilan setting kamera
Algoritma : JLCVIdeo1.SeleccionarFormato
4.2 Implementasi Antar Muka

Progam ini dapat langsung dijalankan dengan double klik icon program
yang berekstensi .exe karena sebelumnya telah dieksport ke format exe.

Gambar 4.1 Tampilan Icon Aplikasi Pengaman Ruangan

4.2.1 Halaman Pengintaian

Setelah selesai splash screen maka tampilan halaman atau form


utama dari program tampak seperti pada gambar 4.2

Gambar 4.2 Tampilan Halaman Utama Aplikasi

Gambar 4.2 merupakan tampilan menu utama program. Pada


tampilan utama program. Dalam form utama ini ada beberapa fasilitas
yang tersedia, diantaranya adalah fasilitas menu yang terdiri dari file,
setting dan help. Pada menu setting kita bisa melakukan pengaturan
video dan gambar. Dan untuk bantuan bisa masuk kedalm menu help.
Selain itu juga terdapat beberapa komponen form, diantaranya adalah
tombol mulai dan tombol berhenti, tombol mulai digunakan untuk
memulai mendeteksi obyek yang masuk kedalam tampilan. Ketika
tombol mulai aktifkan maka tampilan obyek akan ditampilkan melalui
komponen Timage yang ada dalam form ini. Komponen berikutnya
adalah komponen progres bar dan track bar, komponen trackbar
digunakan untuk menentukan berapa persen jumlah pixel yang berubah
ketika ada obyek masuk atau perubahan di dalam layar. Untuk nilai
yang bisa kita atur dalam taksbar ini berkisar antara 0 sampai 100
persen. Sedangkan progresbar digunakan untuk menampilkan berapan
persen perbedaan antara gambar obyek dan latar.implementasi modul
pengintain terletak pada kelas form1. Pada gambar dijelaskan tentang
diagram kelas dari form halaman pengintaian.

Form1

JLCVideo1: TJLCVideo
pnlSpeedButtons: TPanel
pnlMainImage: TPanel
imgLatar: TImage
imgObjek: TImage
pnlControls: TPanel
lblInformation: TLabel
Label1: TLabel
ProgressBar1: TProgressBar
Label2: TLabel

TrackBar1: TTrackBar
lblActualMovement: TLabel
lblMovementTrigger: TLabel
lblLockCountdown: TLabel MainMenu1: TMainMenu file1: TMenuItem
seting1: TMenuItem help1: TMenuItem keluar1: TMenuItem
settingwebcam1: TMenuItem help2: TMenuItem
about1: TMenuItem formatvideo1: TMenuItem Mulai: TButton
Button2: TButton Label3: TLabel Label4: TLabel

4.2.2 Tampilan Setting Kamera

Sebelum kita mulai menjalankan aplikasi, kita perlu memeriksa


settingan yang akan digunakan, dalam Aplikasi Pengaman Ruangan ini
ada dua macam setingan, yaitu seting sumber inputan (source device)
dan seting resolusi format gambar yang akan diolah. Menu seting
ditunjukan pada gambar 4.4a dibawah ini.
Gambar 4.3 Tampilan Menu Setting

Pengaturan harus dilakukan sebelum kita memulai pendeteksian,


untuk menghindari perbedaan ukuran gambar yang akan digunakan
untuk mendeteksi gangguan keamanan yang bisa menyebabkan
kesalahan.
Gambar 4.4 Tampilan Seting untuk inputan webcam

Pada gambar 4.5 digunakan untuk mencari sumber atau asal


inputan yang akan kita gunakan, jika webcam yang ada dalam komputer
lebih dari satu, maka kita harus memilih piranti webcam yang akan kita
gunakan. Tanpa merubah setingan pada bagian ini, kita juga bisa
langsung menggunakan webcam yang terhubung dengan komputer pada
Aplikasi ini, jika driver untuk webcam sudah terinstal sebelumnya.
Gambar 4.5 Tampilan Form Untuk Pengaturan Format Video

Pada gambar 4.5 menunjukan bahwa kita bisa melakukan


pengaturan terhadap resolusi tampilan video yang akan digunakan
sebagai pendeteksi adanya obyek asing yang masuk dalam zona yang
kita amankan. Gambar simpanan obyek yang masuk kedalam zona
aman nantinya akan disimpan dengan resolusi yang digunakan dalam
pengaturan ini. Untuk fasilitas setting yang ada, disediakan langsung
oleh komponen jlcvideo, dan kita hanya tinggal memanggil fungsi untuk
melakukan pengaturan.

4.2.3 Tampilan Ketika Program Melakukan Proses Banding Citra

Untuk memulai eksekusi proram kita harus mulai dengan


menekan tombol “mulai” pada bagian kanan atas. Tampilan ketika
program sedang dieksekusi tampak pada gambar 4.6
Gambar 4.6 Tampilan Ketika Aplikasi sedang dieksekusi

Pada gambar 4.6 menunjukan tampilan program ketika sedang


mengeksekusi Aplikasi untuk diketahui apakah ada obyek asing masuk
kedalam tampilan dengan cara mencari perbedaan antara gambar obyek
dan latar. Gambar akan ditampilkan secara aktual dan real time. Dan
untuk mengatur berapa persen toleransi jumlah nilai pixel yang berbeda
maka bisa diatur menggunakan trackbar. Untuk penggunaanya kita bisa
geser ke arah kiri dan kanan sesuai dengan nilai yang di inginkan. Nilai
prosentas toleransi akan ditmpilkan pada bagian kanan trackbar.
Sedangkan informasi mengenai jumlah berapa persen perbedaan antara
gambar obyek dan latar ditanpilkan melalui progres bar. Progres bar
akan menampilkan sebuah peringatan tentang berapa persen perbedaan
antar gambar obyek dan latar. Tampilan dari nilai progresbar akan
selalu berubah ketika kita melakukan perhitugan beda antar kedua
gambar.

Pada saat melakukan proses banding citra maka aplikasi akan


menjalankan fungsi hitungPerbedaan pada file unit1.pass. Pada gambar
4.7 menunjukan tampilan ketika aplikasi mendeteksi adanya obyek yang
masuk kedalam tampilan layar

Gambar 4.7 Tampilan ketika terdapat obyek masuk kedalam layar.

Ketika ada obyek yang masuk dan jumlah titik yang berbebeda lebih
dari toleransi maka program akan menampilan warning dengan menampilkan
tulisan “Gerakan” berwarna merah dan juga memainkan suara sebagai alarm
peringatan. Ketika obyek asing tersebut diketahui maka aplikasi akan
menyimpan tampilan yang ada pada layer secara otmatis maka obyek tersebut
juga akan terekam dalam gambar. Penyimpanan gambar obyek terebut akan
dikelompokan kedalam folder berdasarkan tanggal. Aplikasi ini akan otomatis
membuat folder baru jika nama folder berdasar tanggal pengeksekusiannya
belum ada.

Gambar 4.8 Folder baru yang dibentuk dengan nama sesuai tanggal

Pada bagian kiri bawah terdapat tulisan keterangan berwarna merah


yang menampilkan keterangan bahwa obyek yang masuk kedalam tampilan di
simpan, dan diberi nama file sesuai dengan jam ketika obyek tersebut di
simpan dengan format JPG. Gambar 4.4c merupakan gambar hasil dari
pengambilan terhadap obyek yang masuk kedalam tampilan. Pada saat
mendeteksi gerak, program akan menjalankan prosedur simpanGambar dan
prosedur PlaySuara. Kedua prosedur ini terdapat pada file unit.pas.

Ukuran gambar yang disimpan akan menyesuaikan dengan setting


format video yang digunakan, dan untuk mengubah ukuran gambar kita bisa
merubah dengan masuk ke menu Setting format video.

Dan untuk menghentikan eksekusi kita bisa mengklik tombol berhenti


pada bagian atas, ketika tombol ini diaktifkan maka proses eksekusi akan
berhenti. Dan untuk memulai kemabali kita bisa menekan tombol mulai.
4.2.4 Tampilan Form Bantuan

4.2.4.1 Tampilan Form About

Untuk tampilan form about bisa dilihat pada gambar 4.5 .

Gambar 4.9 Tampilan Form About

Form pada gambar 4.5 akan ditampilkan tentang profil dari


pembangun aplikasi pengaman ruangan ini.

4.2.4.2 Tampilan Help Program

Untuk masuk ke help, pilih menu utama Help -> Help Program.
Help program ini berbentuk chm. Maka ketika masuk ke help akan
langsung tampil di jendela lain. help berisi tentang panduan cara
menggunakan program ini.. Seperti tampak pada gambar 4.6 berikut ini.
Gambar 4.10 Tampilan Menu Help.

Menu bantuan yang dibuat menggunakan format shm, dan file bantuan
akan dipanggil melalui fungsi pemanggilan file bantuan.chm

4.3 Hasil Pengujian Program

Pada bagian ini akan dijelaskan hasil ujicoba program. Ujicoba ini
menggunakan Laptop Acer seri 4736z, dengan spesifikasi Prosesor Intel
Dual Core, Memory 1 Giga, Hardisk 250 Giga, dan Webcam 1.3
Megapixel yang sudah terintegrasi di dalamnya dan Sistem Operasi
Windows XP.
4.3.1 Hasil ujicoba Aplikasi Pengaman Ruangan Menggunakan Webcam.

Hasil pengujian tiap modul pada aplikasi ini bisa dilihat pada table 3.1

Tabel 3.1 Disain pengujian kamera pada Aplikasi Pengaman Ruangan

Menggunakan Webcam

Hasil yang
No Sekenario uji keterangan
diharapkan Hasil pengujian

Mengambil Gambar Hasil pengujian


sesuai dengan resolusi untuk mengetahui
menggunakan aplikasi ukuran
ConEnventos : menggunakan
windows explorer
a
dilihat detail

dimensinya

1.Ukuran 640x280 gambar 640x480 gambar 640x480

2. ukuran 352x288 gambar 352x288 gambar 352x288

Menyimpan gambar Gambar Gambar


b
pada forder tersimpan tersimpan

Memainkan suara
sond.wav
c
menggunakan media
Suara terdengar Suara terdengar √
player

Untuk pengujian program dilakukan di dalam ruangan, untuk obyek


yang digunakan untuk pengujian adalah orang, dengan tinggi 168 cm.
Mekanisme pengujian adalah dengan meletakan kamera atau webcam pada
suatu tempat yang ruangan tersebut akan digunakan untuk menguji program,
setelah itu di tentukan berapa nilai toleransi yang diperbolehkan, dan obyek
uji berjalan memasuki ruangan dengan jarak antara obyek dan kamera yang
berubah dan sudah ditentukan seperti pada tabel 3.1. Pada pengujian ini akan
menggunakan resolusi 320x240 dan tanpa penerangan tambahan menggunakan
lampu.

Tabel 3.2 Hasil Hasil ujicoba Aplikasi Pengaman Ruangan

Menggunakan Webcam dengan obyek orang berjalan pada.

Jarak Toleransi (%)

(meter) 1 3 5 10 15 20

1 √ √ √ √ √ √

2 √ √ √ √ √ ×

3 √ √ √ √ × ×

4 √ √ √ × × ×

5 √ √ × × × ×

6 √ √ × × × ×

7 √ √ × × × ×

8 √ √ × × × ×

9 √ × × × × ×

10 √ × × × × ×

11 √ × × × × ×

12 √ × × × × ×

13 √ × × × × ×
14 × × × × × ×

15 × × × × × ×

16 × × × × × ×

17 × × × × × ×

18 × × × × × ×

19 × × × × × ×

20 × × × × × ×

Keterangan : √ berarti terdeteksi, sedangkan × berarti tidak terdeteksi.

Pada percobaan diatas menggunakan ukuran gambar 320x240 , dan


waktu pengujian adalah siang hari pukul 13.00.

Dari hasil percobaan maka dapat disimpulkan bahwa jarak maksimal


untuk obyek yang bisa dideteksi adalah :

1. Untuk tolerasni dengan nilai 1 % adalah 13 meter jarak maksimal.


2. Untuk toleransi dengan nilai 3 % adalah 8 meter jarak maksimal.
3. Untuk toleransi dengan nilai 5 % adalah 4 meter jarak maksimal.
4. Untuk toleransi dengan nilai 10 % adalah 3 meter jarak maksimal.
5. Untuk toleransi dengan nilai 15 % adalah 2 meter jarak maksimal.
6. Untuk toleransi dengan nilai 20 % adalah 1 meter jarak maksimal.

Sedangkan untuk pengujian yang sama dengan penerangan lampu 25


watt pada pukul 18.30 didapatkan hasil yang sama dengan pengujian yang
dilakukan pada siang hari.
Tabel 3.3 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan
toleransi 1 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 √

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 √

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 √

15 5 2 √

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×

20 10 2 ×
21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 √

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×

Tabel 3.4 hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan
toleransi 2 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √

5 5 1 √

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×

11 1 2 √

12 2 2 √

13 3 2 √
14 4 2 √

15 5 2 ×

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×

20 10 2 ×

21 1 3 √

22 2 3 √

23 3 3 √

24 4 3 ×

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×

30 10 3 ×

Tabel 3.5 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan

toleransi 3 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 √
5 5 1 ×

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×

11 1 2 √

12 2 2 √

13 3 2 √

14 4 2 ×

15 5 2 ×

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×

20 10 2 ×

21 1 3 √

22 2 3 √

23 3 3 ×

24 4 3 ×

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×
30 10 3 ×

Tabel 3.6 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan

toleransi 4 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 √

4 4 1 ×

5 5 1 ×

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×

11 1 2 √

12 2 2 √

13 3 2 ×

14 4 2 ×

15 5 2 ×

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×
20 10 2 ×

21 1 3 √

22 2 3 ×

23 3 3 ×

24 4 3 ×

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×

30 10 3 ×

Tabel 3.6 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan

toleransi 5 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 √

3 3 1 ×

4 4 1 ×

5 5 1 ×

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×
11 1 2 √

12 2 2 ×

13 3 2 ×

14 4 2 ×

15 5 2 ×

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×

20 10 2 ×

21 1 3 ×

22 2 3 ×

23 3 3 ×

24 4 3 ×

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×

30 10 3 ×

Tabel 3.7 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan

toleransi 6 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √
2 2 1 ×

3 3 1 ×

4 4 1 ×

5 5 1 ×

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×

11 1 2 ×

12 2 2 ×

13 3 2 ×

14 4 2 ×

15 5 2 ×

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×

20 10 2 ×

21 1 3 ×

22 2 3 ×

23 3 3 ×

24 4 3 ×

25 5 3 ×

26 6 3 ×
27 7 3 ×

28 8 3 ×

29 9 3 ×

30 10 3 ×

Tabel 3.8 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola volley dan

toleransi 7 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 ×

2 2 1 ×

3 3 1 ×

4 4 1 ×

5 5 1 ×

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×

11 1 2 ×

12 2 2 ×

13 3 2 ×

14 4 2 ×

15 5 2 ×

16 6 2 ×

17 7 2 ×
18 8 2 ×

19 9 2 ×

20 10 2 ×

21 1 3 ×

22 2 3 ×

23 3 3 ×

24 4 3 ×

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×

30 10 3 ×

Dan untuk pengujian dengan jarak lebih dari 4 meter tidak bisa dilakukan
karena keterbatasan ruang pengujian. Dan kecepatan maksimal yang bisa
dideteksi oleh aplikasi ini adalah 6 meter perdetik pada toleransi 1 persen.

Tabel 3.9 Hasil pengujian aplikasi pengaman ruangan dengan obyek bola tenis dan

toleransi 1 persen.

No Kecepatan (m/s) Jarak (meter ) Hasil

1 1 1 √

2 2 1 ×

3 3 1 ×

4 4 1 ×
5 5 1 ×

6 6 1 ×

7 7 1 ×

8 8 1 ×

9 9 1 ×

10 10 2 ×

11 1 2 ×

12 2 2 ×

13 3 2 ×

14 4 2 ×

15 5 2 ×

16 6 2 ×

17 7 2 ×

18 8 2 ×

19 9 2 ×

20 10 2 ×

21 1 3 ×

22 2 3 ×

23 3 3 ×

24 4 3 ×

25 5 3 ×

26 6 3 ×

27 7 3 ×

28 8 3 ×

29 9 3 ×
Pada pengujian dengan menggunakan bola tenis hanya bisa mendeteksi bola
tenis dengan kecepatan 1 meter per detik dengan toleransi 1 persen.

Dari hasil pengujian bisa disimpulkan :

1. Semakin kecil toleransi yang digunakan maka semakin akurat aplikasi


ini dalam mendeteksi obyek yang masuk kedalam area pengamanan.
Kesimpulan ini didapat dari tabel 3.2 dimanan semakin kecil toleransi
yang digunakan maka semakin jauh jarak obyek yang bisa terdeteksi.

2. Aplikasi ini mempuyai beberapa spesifikasi yaitu:

a. Gambar yang disimpan hanya gambar yang terdeteksi saat ada


obyek bergerak.

b. Aplikasi dapat memberikan peringatan berupa suara jika terjadi


adanya obyek yang masuk.

c. kecepatan maksimal obyek bergerak yang bisa dideteksi adalah 6


meter/ detik dengan toleransi 1 persen pada jarak 3 meter.

d. Obyek yang bisa ditangkap secara maksimal adalah obyek orang


dengan tinggi 170 cm dan lebar 30 cm jika terlihat dari samping
sedangkan obyek lebih kecil dari ukuran bola volley berdiamater
65 cm sulit dikenali.
BAB V
PENUTUP

Pada bab ini akan menguraikan tentang kesimpulan dan saran untuk
pengembangan Aplikasi Pengaman Ruangan Menggunakan Webcam agar menjadi
program yang lebih baik dan handal.

5.1 Kesimpulan

Dalam pembuatan dan pengujian Aplikasi Pengaman Ruangan ini dapat disimpulkan:

1. Operasi pengurangan pada pengolahan citra bisa digunakan dalam sistem keamanan
karena mampu membedakan dua buah citra masukan dari webcam yang diambil
secara berurutan.
2. Semakin kecil toleransi yang digunakan, semakin akurat aplikasi. Aplikasi ini cukup
baik untuk mendeteksi obyek berupa manusia dan cocok untuk pengaman ruangan
dari tindak kejahatan yang dilakukan oleh manusia.
3. Aplikasi ini bisa digunakan sebagai alternative aplikasi pengaman berbasis kamera,
dimana kamera yang digunakan adalah webcam yang harganya relatif lebih murah
dibandingkan dengan kemera yang lain.

5.2 Saran

Saran yang diberikan penulis dalam pengembangan program ini lebih lanjut antara
lain :

1. Untuk penelitian lebih lanjut akan lebih baik jika input yang ada lebih dari satu
kamera.
2. Perlu dilakukan penelitian dengan metode yang lain agar penangkapan terhadap
obyek bisa lebih akurat.

85
DAFTAR PUSTAKA

1. Ahmad, Usman. 2005. “Pengolahan Citra Digital dan


Teknik Pemrogramannya”, Penerbit Andi Yogyakarta
2. Antony, P., 2003, “Pemrograman Borland Delphi 6 edisi 4”,Yogyakarta:
Penerbit Andi
3. Hestiningsih, Idhawati, 2005, “Pengolah Citra”,[pdf],(
http://www.google.com/url?sa=t&source=web&ct=res&cd=2&url=http%3A
%2F%2Fimages.moedy9.multiply.com%2Fattachment%2F0%2FSMuuNwoK
CBkAAHPHjZk1%2FPengolahan%2520Citra.pdf%3Fnmid%3D115281461&
ei=J7ygSoSTE42sgPH1IyNDw&rct=j&q=Idhawati+Hestiningsih+pengolaha
n+citra&usg=AFQjNEkg6TIMXJVdxmS9ne_BoLod-_Qfw, diakses pada
tanggal 5 November 2008)

4. Justinus,D., 2004, “Aplikasi Teknik Thresholding Pada Citra”, Yogyakarta :


Universitas Sanata Dharma

5. Lim, R., 2005. “Program Penghitung Orang Lewat Menggunakan


Webcam “ Surabaya : Universitas Petra[pdf]
(http://puslit.petra.ac.id/journals/informatics/ , diakses tanggal 10 november
2008)

6. Madcoms, Team, 2003, “Pemrograman Borland Delphi 7 jilid 1”,


Yogyakarta : Penerbit Andi
7. Munir, Rinaldi, 2004, “Pengolahan Citra Digital dengan Pendekatan
Algoritmik”, Penerbit Informatika, Bandung
8. Rafael C. Gonzalez and Richard E. Woods, 2002, “Digital Image
Processing”, Addison-Wesley Publishing
9. S.Si, Fadlisyah, 2007,“Computer Vision dan Pengolahan Citra”, Penerbit
Andi Yogyakarta
86
87

10. Webster, 2005, “Digital Dictionary”, (http://www.webster-


dictionary.org/definition/Image)
LAMPIRAN

LISTING PROGRAM

Listing file unit1.pass lblMovementTrigger: TLabel;

unit Unit1; lblLockCountdown: TLabel;

interface pnlDetectionZone: TPanel;

uses pnlZoneImage: TPanel;

treshold_splash,math, comobj, shellapi, imgZone: TImage;


Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, MainMenu1: TMainMenu;

StdCtrls, Buttons, clipbrd,ExtCtrls, file1: TMenuItem;


AviCaptura, MMSystem,
seting1: TMenuItem;
Spin, JLCVideo, inifiles,ABOUT, uji,
help1: TMenuItem;
threadUtama,// mainthread,
keluar1: TMenuItem;
ComCtrls, jpeg, Menus;
settingwebcam1: TMenuItem;
type
help2: TMenuItem;
TForm1 = class(TForm)
about1: TMenuItem;
Panel1: TPanel;
formatvideo1: TMenuItem;
JLCVideo1: TJLCVideo;
Mulai: TButton;
pnlSpeedButtons: TPanel;
Button2: TButton;
pnlMainImage: TPanel;
Label3: TLabel;
imgLatar: TImage;
Label4: TLabel;
imgObjek: TImage;
MainMenu2: TMainMenu;
pnlControls: TPanel;
procedure FormClose(Sender: TObject; var
lblInformation: TLabel;
Action: TCloseAction);
Label1: TLabel;
procedure FormCreate(Sender: TObject);
ProgressBar1: TProgressBar;
procedure FormDestroy(Sender: TObject);
Label2: TLabel;
procedure TrackBar1Change(Sender:
TrackBar1: TTrackBar; TObject);

lblActualMovement: TLabel; procedure sbCameraSourceClick(Sender:


TObject);
procedure FormResize(Sender: TObject); procedure MinimizeClick(Sender:TObject);

procedure FormActivate(Sender: TObject); function LakukanIntai: boolean;

procedure settingwebcam1Click(Sender: end;


TObject);
TSoundPlayer = class(TThread)
procedure formatvideo1Click(Sender:
TObject); private

procedure keluar1Click(Sender: TObject); //PlaySuaraPasGerak: string;

procedure about1Click(Sender: TObject); protected

procedure help2Click(Sender: TObject); procedure Execute; override;

procedure MulaiClick(Sender: TObject); public

procedure Button2Click(Sender: TObject); constructor create();

procedure bedagambar1Click(Sender: destructor destroy; override;


TObject); end;

private
var
{ Private declarations }
Form1: TForm1;
inReposition,alwaysOnTop : boolean;
playingSound, initialized: boolean;
gotBothImages: boolean;
implementation
saveJpegOnMovement, minimizeToTray:
{$R *.dfm}
boolean;
procedure TForm1.FormActivate(Sender:
source: string;
TObject);
mainThread: TMainThread;
var
moveTrigger, pixelToleransi: integer;
tanggal:string;
function hitungPerbedaan: integer;
begin
procedure getImageDariWebcam;
{$I-}

DateSeparator := '_';
function getFrame: integer;
ShortDateFormat := 'd/m/yyyy';
procedure SimpanGambar;
tanggal:= dateTostr(date);
procedure PlaySuara;
MkDir(dateTostr(date));
public
frmSplash:= TfrmSplash.Create(self); //
{ Public declarations } memanggil splash screen

initialized := false; // inisialisasi


pnlZoneImage.parent := pnlDetectionZone;

end;

procedure TForm1.FormClose(Sender: try


TObject; var Action: TCloseAction);
begin
begin
source := 'webcam';
begin
moveTrigger := 20;
moveTrigger:=Trackbar1.position;
pixelToleransi := 20;
free;
saveJpegOnMovement := true;
end;
minimizeToTray := true;
end;
alwaysOnTop :=true;

trackbar1.Position := moveTrigger
procedure TForm1.FormCreate(Sender:
TObject); end;

begin finally

initialized := false; end;

with pnlDetectionZone do

begin if minimizeToTray then

Left := (pnlMainImage.width div 2) - begin


(pnlDetectionZone.Width div 2);
Application.OnMinimize:= MinimizeClick;
top := (pnlMainImage.height div 2) -
(pnlDetectionZone.height div 2); end;

end; if source = 'webcam' then JLCVideo1.Activo


:= true;
playingSound := false;
mainThread := TMainThread.create(self,
imgObjek.picture.bitmap.PixelFormat := JLCVideo1);
pf24bit;
mainThread.FreeOnTerminate := true;
imgLatar.picture.bitmap.PixelFormat :=
pf24bit; mainThread.resume;

imgZone.picture.bitmap.PixelFormat := end;
pf24bit;

gotBothImages := false;
procedure TForm1.FormDestroy(Sender:
TObject);

begin
if minimizeToTray then end;

end; function TForm1.getFrame: integer;

procedure TForm1.FormResize(Sender: begin


TObject);
if source = 'webcam' then
var
getImageDariWebcam
imageSize, imageLeft, imageTop: integer;
else
begin
getImageDariWebcam;
inReposition := true;
if imgObjek.picture.bitmap.PixelFormat <>
try pf24bit then

// tengah begin

pnlControls.Left := (self.width div 2) - mainThread.terminate;


(pnlControls.Width div 2);
lblInformation.caption := 'Bitmap format
// resize bukan 24 bit!';

imageSize := min(pnlMainImage.Width, lblInformation.visible := true;


pnlMainImage.Height)-4;
application.processmessages;
imgObjek.Width := imageSize;
result := -1;
imgObjek.Height := imageSize;
exit;
imgLatar.Width := imageSize;
end;
imgLatar.Height := imageSize;
if gotBothImages then

begin
imageTop := (pnlMainImage.Height div 2) -
(imageSize div 2); result := hitungPerbedaan;

imgObjek.Top := imageTop; progressbar1.Position := result;

imgLatar.Top := imageTop; lblActualMovement.Caption :=


inttostr(result);

end
imageLeft := (pnlMainImage.Width div 2) -
(imageSize div 2); else

imgObjek.left := imageLeft; begin

imgLatar.left := imageLeft; result := 0;

finally end;

inReposition := false; // copy image ke previous image

end; imgLatar.Picture:=imgObjek.Picture;
gotBothImages := true; bedaAntarFrame := getFrame;

end; if bedaAntarFrame = -1 then exit;

TerdeteksiGerak := (bedaAntarFrame >=


moveTrigger);

procedure TForm1.getImageDariWebcam;
lblInformation.Visible := TerdeteksiGerak;
begin
lblLockCountdown.Visible := false;
JLCvideo1.GrabarImagenDisco;
if (TerdeteksiGerak) then
if fileexists(JLCVideo1.FicheroImagen) then
SimpanGambar;
begin
if (TerdeteksiGerak) then

imgObjek.picture.LoadFromFile(JLCVideo1.Fic PlaySuara;
heroImagen);
result := TerdeteksiGerak;
if pnlDetectionZone.Visible then
except
begin
on E:Exception do

imgZone.Picture.bitmap.Assign(imgObjek.pict begin
ure.bitmap);
lblInformation.caption := 'Error: ' +
imgZone.repaint; E.Message;

end; lblInformation.Visible := true;

end;
deleteFile(pchar(JLCVideo1.FicheroImagen));
end;
end;

end;
application.processmessages;

end;
function TForm1.LakukanIntai: boolean;

var
procedure TForm1.SimpanGambar;
bedaAntarFrame: integer;
var
TerdeteksiGerak: boolean;
JpegImg: TJpegImage;
begin
tmpFilename, actualFilename: string;
result := false;
sekarang:tdatetime;
if (inReposition) or (not initialized) then exit;
jam,min,sec,msec :word;
try
begin
sekarang:=now; lblMovementTrigger.caption :=
inttostr(moveTrigger);
DateSeparator := '_';
end;
ShortDateFormat := 'd/m/yyyy';
function TForm1.hitungPerbedaan: integer;
DecodeTime(sekarang,jam,min,sec,msec) ;
type
JpegImg := TJpegImage.Create;
TRGBArray = ARRAY[0..255] OF TRGBTriple;
try // pf24bit
JpegImg.Assign(imgObjek.picture.bitmap) ; pRGBArray = ^TRGBArray;
tmpFilename := var
dateTostr(date)+'\'+inttostr(jam)+';'+inttostr(
min)+';'+inttostr(sec)+';'+intToStr(msec) + x,y,pixelBerubah: integer;
'.jpg'; // simpan hasil deteksi dengan
currentLine, prevLine: pRGBArray;
actualFilename := copy(tmpFilename, 1,
length(tmpFilename)); // file ber ekstensi .jpg currentPixel, prevPixel: TRGBTriple;
dan berawalan detek_
startY, endY, startX, endX, jumlahPixel:
lblLockCountdown.caption := 'Simpan ' + integer;
actualFilename; // menampilkan pesan
begin
simpan

lblLockCountdown.Visible := true;
begin
JpegImg.SaveToFile(tmpFilename) ; //
simpan di proses startY := 0;
finally endY := imgObjek.picture.Height - 1;
JpegImg.Free; startX := 0;
end; endX := imgObjek.picture.Width - 1;
end; jumlahPixel := (imgObjek.picture.Height *
imgObjek.picture.Width)
procedure
TForm1.sbCameraSourceClick(Sender: end;
TObject);

begin
pixelBerubah := 0;
JLCVideo1.SeleccionarFuente;
for y := startY to endY do
end;
begin
procedure TForm1.TrackBar1Change(Sender:
TObject); currentLine :=
imgObjek.picture.bitmap.Scanline[y];
begin
prevLine :=
moveTrigger := Trackbar1.Position; imgLatar.picture.bitmap.Scanline[y];
for x := startX to endX do begin

begin if playingSound then exit;

currentPixel := currentLine^[x]; playingSound := true;

prevPixel := prevLine^[x]; soundPlayer:= TSoundPlayer.create();

if (abs(currentPixel.rgbtRed - soundPlayer.FreeOnTerminate := True ;


prevPixel.rgbtRed) > pixelToleransi) and
// nilai RGB di bandingkan dengan toleransi soundPlayer.resume;

(abs(currentPixel.rgbtGreen - end;
prevPixel.rgbtGreen) > pixelToleransi) and

((abs(currentPixel.rgbtBlue -
constructor TSoundPlayer.create();
prevPixel.rgbtBlue) > pixelToleransi)) then
begin
inc(pixelBerubah);
inherited create(true); //

end;
end;
destructor TSoundPlayer.Destroy;
end;
begin
result := (pixelBerubah * 100) div
jumlahPixel; inherited destroy;
end; end;

procedure TSoundPlayer.Execute;
procedure begin
TForm1.MinimizeClick(Sender:TObject);
sndPlaySound(PChar('sond.wav'),
begin SND_NODEFAULT);

playingSound := false;
hide; end;
{ taskbar button}

if IsWindowVisible(Application.Handle) procedure
TForm1.settingwebcam1Click(Sender:
then ShowWindow(Application.Handle,
TObject);
SW_HIDE);
begin
end;
JLCVideo1.SeleccionarFuente;

end;
procedure TForm1.PlaySuara;

var

soundPlayer: TSoundPlayer;
procedure TForm1.formatvideo1Click(Sender: procedure TForm1.bedagambar1Click(Sender:
TObject); TObject);

begin begin

JLCVIdeo1.SeleccionarFormato; formUji.ShowModal;

end; end;

procedure TForm1.keluar1Click(Sender: end.


TObject);

begin

Application.Terminate;

end;

procedure TForm1.about1Click(Sender:
TObject);

begin

aboutBox.ShowModal;

end;

procedure TForm1.help2Click(Sender:
TObject);

begin

ShellExecute(GetDesktopWindow, 'open',
PChar('help-pengaman.chm'), nil, nil,
SW_ShowNormal);

end;

procedure TForm1.MulaiClick(Sender:
TObject);

begin

initialized := true;

end;

procedure TForm1.Button2Click(Sender:
TObject);

begin

initialized := false;

end;
inherited create(true); // create tp belum
dijalankan
Liting threadUtama.pas
frmOwner := _frmOwner;
unit threadUtama;
end;

interface
{destructor}

destructor TMainThread.Destroy;
uses
begin
treshold_splash,shellapi, Windows,
Messages, SysUtils, Classes, Graphics, inherited destroy; //
Controls, Forms, Dialogs,
end;
StdCtrls, Buttons, clipbrd,ExtCtrls,
AviCaptura, MMSystem,
{main thread entry point}
Spin, JLCVideo, inifiles;
procedure TMainThread.Execute;

var
type
mainForm: TForm1;
TMainThread = class(TThread)
intervalToUse: integer;
private
begin
frmOwner: TForm;
mainForm := (frmOwner as TForm1);
protected
repeat
procedure Execute; override;
mainForm.lakukanIntai;
public
intervalToUse:=66 ;
constructor create(_frmOwner: TForm;
_JLCVideo1: TJLCVideo); sleep(intervalToUse);
destructor Destroy; override; until terminated;
end; deleteFile(pchar(mainForm.JLCVideo1.Fichero
Imagen));
implementation
end;
uses
end.
unit1;

{constructor}

constructor TMainThread.create(_frmOwner:
TForm; _JLCVideo1: TJLCVideo);

begin

Anda mungkin juga menyukai