Upload
tranhanh
View
221
Download
0
Embed Size (px)
Citation preview
VIDEO RECORDING DENGAN MOTION DETECTION
MELALUI INTEGRASI WEBCAM - APLIKASI .NET
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Mencapai Gelar Ahli Madya
Program Diploma III Ilmu Komputer
Disusun Oleh :
MUHAMMAD MUHSIN DEMOKRAT
NIM. M3307054
PROGRAM DIPLOMA III ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
2010
HALAMAN PERSETUJUAN
Disusun Oleh :
MUHAMMAD MUHSIN DEMOKRAT
NIM. M3307054
Laporan Tugas Akhir ini disetujui untuk dipresentasikan
pada Sidang Tugas Akhir
tanggal : 21 Juli 2010
Pembimbing
Budi Legowo, M.Si
NIP. 19730510 199903 1 002
HALAMAN PENGESAHAN
VIDEO RECORDING DENGAN MOTION DETECTION
MELALUI INTEGRASI WEBCAM - APLIKASI .NET
Disusun Oleh :
MUHAMMAD MUHSIN DEMOKRAT
NIM : M3307054
Dibimbing oleh
Pembimbing Utama :
Budi Legowo, M.Si
NIP. 19730510 199903 1 002
Tugas Akhir ini telah diterima dan disahkan
Oleh dewan penguji Tugas Akhir
Program Diploma III Ilmu Komputer
Pada hari Kamis tanggal 5 Agustus 2010
Dewan Penguji: Tanda Tangan
1.
Budi Legowo, M.Si
NIP. 19730510 199903 1 002
(..........................................)
2.
Muhammad A. Safi’ie, S.Si
NIDN. 0603118103
(..........................................)
3.
Hartatik, M.Stat
NIDN. 0703057802
(..........................................)
Mengetahui,
Dekan Ketua
FMIPA UNS Program Diploma III Ilmu Komputer
Prof. Drs. Sutarno, M. Sc., Ph. D. Drs. Y. S. Palgunadi, M. Sc
NIP. 19600809 19812 1 001 NIP. 19560407 198303 1 004
ABSTRACT
MUHAMMAD MUHSIN DEMOKRAT. 2010. VIDEO RECORDING WITH
MOTION DETECTION BY INTEGRATING WEBCAM –. NET
APPLICATION. Final Project. Diploma of Computer Science Faculty of
Mathematic and Natural Science. Sebelas Maret University of Surakarta.
In this final project, the author developed software to detect motion using a
webcam. These applications will be developed with a webcam and technology
based. NET Framework.
Software integrated with the principle of Doppler, where objects are already
available in. NET Framework. Software, will organize the object, in order to
connect with web camera that can display the motion graphics.
Can be concluded that the software VIDEO RECORDING WITH MOTION
DETECTION BY INTEGRATING WEBCAM –. NET APPLICATION
successfully created.
Key words: Doppler Effect, Motion Detection, Webcam, .NET Framework.
ABSTRAK
MUHAMMAD MUHSIN DEMOKRAT. 2010. VIDEO RECORDING
DENGAN MOTION DETECTION MELALUI INTEGRASI WEBCAM –
APLIKASI .NET. Tugas Akhir (TA). DIII Ilmu Komputer Fakultas Matematika
dan Ilmu Pengetahuan Alam, Universitas Sebelas Maret.
Dalam TA ini penulis mengembangkan software untuk mendeteksi gerakan
dengan menggunakan webcam. Aplikasi tersebut akan dikembangkan dengan
webcam dan berbasis teknologi .NET Framework.
Software dibangun dengan prinsip efek doppler, di mana objek-objek
tersebut telah tersedia dalam .NET Framework. Software akan mengorganisasi
objek tersebut, agar terkoneksi dengan webcam sehingga dapat menampilkan
gerakan dalam grafis.
Dapat ditarik kesimpulan bahwa software VIDEO RECORDING DENGAN
MOTION DETECTION MELALUI INTEGRASI WEBCAM – APLIKASI .NET
berhasil dibuat.
Kata Kunci : Efek Doppler, Motion Detection, Webcam, .NET Framework
MOTTO
“Jika saya bisa melihat jauh, itu karena saya berdiri di atas bahu para raksasa.”
Sir Isaac Newton; fisikawan dan penulis salah satu buku terpenting di dunia :
Principia.
“Berpikir imajinatif, bertindak efisien.”
Jose Mourinho, mantan pelatih Chelsea FC.
“Bilangan dapat menghitung bilangan.”
Alan Turing; Penemu komputer colossus (pemecah kode nazi) – Penyusun standar
tes kecerdasan buatan (tes turing)
“Whatever your problem, NGEH is the answer.”
Kirana Larasati, artis teman twitter penulis.
“Yang paling diterima adalah yang mudah mengganda, dan menyebar.
Sesederhana, dan seaneh apapun itu.”
Richard Brodie, penemu Microsoft Word.
“Mari mencintai Indonesia! Mari menginspirasi dunia!”
Yohanes Surya, dan Hokky Situngkir, peneliti dan penggerak perkembangan
fisika di indonesia
PERSEMBAHAN
Untuk ayah dan ibuku (family man), mengherankan rasanya mereka berdua
dapat mendidik penulis dalam kebebasan (membiarkan independent memilih jalan
sains (yang oleh masyarakat kebanyakan dianggap tidak menghasilkan)) padahal
penulis tahu sejak muda ayah sudah mandiri bekerja, dan ibu lekat dengan tradisi
keluarga Banjar. Setiap tindak laku mereka hanya untuk memberikan yang terbaik
untuk anak-anaknya.
Untuk sahabat-sahabat penulis di Solo (khususnya satu almamater, semoga
yang mengambil Tugas Akhir lulus semua, hasilnya bagus, dan tidak bingung
setelahnya mau kemana), sekitar rumah, dan yang merantau jauh semoga mimpi-
mimpi baik kalian diijinkan terjadi oleh Allah. Untuk guru-guru penulis dari guru
TK, pondok pesantren (saat SD), hingga dosen-dosen UNS semoga usaha
pendidikan yang diberikan kepada kami dapat memajukan pendidikan, khususnya
Indonesia suatu saat nanti. Tak kurang dari seratus kali setiap hari, penulis selalu
merenungkan makna kehadiran kalian semua.
Terakhir untuk para pencinta ilmu pengetahuan, semoga kelak di Indonesia
matematika dan sains dapat populer dan dianggap selezat pizza (love math and
science like a pizza).
KATA PENGANTAR
Segala puji syukur dan terimakasih penulis panjatkan kehadirat Allah SWT,
sebab hanya dengan ridho-Nya yang begitu melimpah, akhirnya pembuatan
laporan Tugas Akhir ini dapat diselesaikan.
Ketika berpikir mengenai “penemu”, pada umumnya orang menghadirkan
bayangan profesor yang linglung, dengan rambut acak-acakan, bekerja dalam
laboratorium yang penuh tabung reaksi dengan isi yang mengeluarkan gelembung,
atau mesin instrumentasi elektronik yang rumit, atau juga sedang menulis di buku
catatan yang penuh dengan perhitungan matematika. Bagi banyak orang, seorang
penemu adalah kombinasi aneh dari ilmuwan dan pemimpi. Namun, faktanya
tidak ada pembatasan dan persyaratan. Siapa pun dapat menjadi penemu!
Semua hasil ciptaan mulai sebagai ide seorang dan hampir semua orang
mempunyai banyak ide mengenai cara memperbaiki sesuatu. Beberapa ide untuk
suatu benda, ada yang belum pernah ada sama sekali; ide lain membuat penemuan
atau hasil ciptaan lain menjadi lebih baik atau hanya membuat tugas dapat
dilakukan dengan lebih mudah dan lebih menyenangkan. Beberapa ide
menyangkut masa depan, dan mungkin tergantung pada teknologi yang belum
diciptakan. Beberapa diantaranya, walaupun ide itu mungkin tampak bodoh di
mata orang lain, menawarkan solusi yang merupakan jawaban praktis bagi
kebutuhan penemu-seperti kacamata kucing, agar tampak keren saat kontes, atau
tidak cedera saat berkelahi. Walaupun siapa pun dapat mempunyai ide itu, hal ini
tidak dengan sendirinya membuat dia menjadi penemu, perlu situasi yang
kondusif, referensi teknis, teman-teman pendukung, teknologi, dan untuk ilmuwan
muda administrator merupakan elemen vital dalam kegiatan penemuannya.
Pada Tugas Akhir ini, di mana penulis belajar menjadi penemu, banyak hal-
hal yang harus dipelajari lagi, yakni redefinisi penemuan, penelitian ilmiah, dan
hal-hal teknis yang mendukung. Alhamdulillah segala sesuatunya kini sudah
terlaksana.
Tidak terkecuali Tugas Akhir yang sifatnya membuat produk, penelitian
ilmiah belum lengkap sebelum hasilnya diumumkan. Di kalangan mahasiswa
diploma, khususnya mahasiswa yang bercita-cita menjadi peneliti seperti saya,
laporan tugas akhir ini ibarat batu landasan untuk membangun bangunan riset-
riset ke depan.
Selesai meniup sangkakala mengenai karya ini, penulis ingin mengucapkan
rasa berutang budi kepada para pendukung penulis, yaitu :
1. Kedua orangtua penulis (family man) yang telah memberikan dukungan
materi dan motivasi.
2. Drs. Y. S. Palgunadi, M. Sc, selaku ketua program DIII Ilmu Komputer.
3. Administrator ilmiah pertama penulis, Budi Legowo, M.Si. Tanpa
administrator, peneliti muda akan kehilangan arah.
4. Dayat Kurniawan, peneliti LIPI yang telah meluangkan waktu menjawab
pertanyaan-pertanyaan penulis.
5. Teman-teman gank, Ramdhan Sabar I, Cakra Yudha S (yang saat ditulisnya
laporan ini sedang kuliah di Jakarta), Bindrasto Duta P, Hery Kuswanto,
Silvester Ditya Aribowo, Dwi Kurnaedi. Ada beberapa hal yang tidak dapat
dibeli dengan uang, dan mereka menunjukkannya pada penulis.
Daftar tadi seharusnya lebih panjang, tapi nama-nama inilah yang paling
berperan selama saya menyelesaikan Tugas Akhir ini.
Penulis juga menyadari laporan ini masih belum sempurna, oleh karena itu
dengan senang hati penulis mengharap sumbang saran, pendapat, bahkan kritikan
guna memperbaiki isi laporan Tugas Akhir ini.
Semoga dengan tersusunnya laporan Tugas Akhir ini, bisa bermanfaat bagi
para pembaca sekalian.
Salatiga, 23 Mei 2010
PENULIS
DAFTAR ISI
Halaman
ABSTRACT...................................................................................................... iv
ABSTRAK ........................................................................................................ v
MOTTO .......................................................................................................... vi
PERSEMBAHAN............................................................................................. vii
KATA PENGANTAR ...................................................................................... viii
DAFTAR ISI..................................................................................................... x
DAFTAR GAMBAR ........................................................................................ xii
DAFTAR LAMPIRAN..................................................................................... xiv
BAB I PENDAHULUAN ........................................................................... 1
1.1. Latar Belakang......................................................................................... 1
1.2. Perumusan Masalah ................................................................................. 2
1.3. Batasan Masalah ...................................................................................... 2
1.4. Tujuan dan Manfaat ................................................................................. 3
1.4.1. Tujuan............................................................................................. 3
1.4.2. Manfaat........................................................................................... 3
1.5. Metodologi Penelitian.............................................................................. 3
1.6. Sistematika Penulisan .............................................................................. 4
BAB II LANDASAN TEORI....................................................................... 5
2.1. Mengenal Pemrograman.......................................................................... 5
2.1.1. Bagaimana Caranya Memprogram?............................................... 6
2.1.2. Bagaimana Cara Membuat Program Video Recording dengan Motion
Detection?....................................................................................... 7
2.1. Mengenal Teknologi Pembangun Aplikasi ............................................. 8
2.2.1. Mengenal Webcam ......................................................................... 8
2.2.2. Mengenal Microsoft .NET Framework.......................................... 9
2.2.3. Mengenal IDE Microsoft Visual C# .............................................. 9
2.2.4. Mengenal Mitov VisionLab Library .............................................. 9
2.1. Cara Menggunakan Teknologi Pembangun Aplikasi .............................. 12
2.3.1. Pemrograman Berorientasi Objek (OOP) untuk Pemrograman Visual
C# ................................................................................................... 12
2.3.2. Abstraksi Komunikasi Data DirectShow ....................................... 13
2.3.3. Cara Implementasi dengan VisionLab ........................................... 15
2.2. Hipotesis .................................................................................................. 15
2.4.1. Inspirasi .......................................................................................... 16
2.4.2. Hipotesis Pengujian........................................................................ 16
BAB III DESAIN DAN PERANCANGAN.................................................. 18
3.1. Persiapan.................................................................................................. 18
3.1.1. Software yang Dibutuhkan ............................................................. 18
3.1.2. Instalasi........................................................................................... 18
3.2. Abstraksi dan Desain Interface................................................................ 29
3.3. Implementasi (Pembuatan Aplikasi......................................................... 30
BAB IV IMPLEMENTASI DAN ANALISA ............................................... 39
4.1. Pengujian Sistem ..................................................................................... 39
4.2. Analisis .................................................................................................... 42
4.2.1. Cara Bekerjanya Sistem ................................................................. 42
4.2.2. Analisis Implementasi Listing Pemrograman ................................ 43
4.1. Pembuktian Hipotesis .............................................................................. 47
4.2. Asas Manfaat Aplikasi............................................................................. 50
BAB V PENUTUP........................................................................................ 51
5.1. Simpulan.................................................................................................. 51
5.2. Saran ........................................................................................................ 52
DAFTAR PUSTAKA ....................................................................................... 53
LAMPIRAN...................................................................................................... xv
DAFTAR GAMBAR
Nomor Halaman
1 Prinsip Pengolahan Data Komputer .......................................................... 6
2 Prinsip Kerja Webcam ............................................................................... 8
3 Contoh Penanganan Display Video ........................................................... 14
4 Diagram .NET Microsoft........................................................................... 16
5 Jendela Welcome to Setup.......................................................................... 19
6 Jendela License Terms ............................................................................... 19
7 Jendela Pilihan Fitur Program ................................................................... 20
8 Jendela Pilihan Lokasi Instalasi................................................................. 20
9 Jendela Proses Instalasi.............................................................................. 21
10 Jendela Keterangan Instalasi Visual C# Berhasil ...................................... 21
11 Jendela Peringatan VisionLab ................................................................... 22
12 Jendela License Agreement........................................................................ 23
13 Jendela Installaton Type .......................................................................... 23
14 Jendela Pilihan Lokasi Instalasi (VisionLab) ............................................ 24
15 Jendela Pilihan Fitur Instalasi.................................................................... 24
16 Jendela Pilihan Paket Instalasi................................................................... 25
17 Membuat Tab Baru .................................................................................... 26
18 Choose Items pada VideoLab .................................................................... 26
19 Form Choose Toolbox Items...................................................................... 27
20 Lokasi Instalasi VisionLab ........................................................................ 27
21 Form Choose ToolBox Items ..................................................................... 28
22 Hasil Akhir Penambahan Items VisionLab................................................ 28
23 Interface Hasil Abstraksi Pertama ............................................................. 29
24 Interface Hasil Abstraksi Kedua................................................................ 30
25 Abstraksi Komunikasi Data dengan DirectShow ...................................... 31
26 Implementasi Komunikasi Data Objektif Motion Detection ..................... 32
27 Jendela New Project .................................................................................. 32
28 Pengaturan Posisi Komponen Aplikasi ..................................................... 33
29 Tampilan Form Setelah Properti Diatur .................................................... 34
30 Pemilihan InputPin untuk DSCapture1 ..................................................... 35
31 Pemilihan InputPin untuk motionDetect.OutputPin.................................. 35
32 Pengaturan Motion Grid (untuk Sensitifitas)............................................. 36
33 Jendela Awal Aplikasi ............................................................................... 39
34 Jendela Select Source................................................................................. 40
35 Dialog Edit Motion Grid Sebagai Sarana Pemilihan Nilai Sensitifitas ..... 40
36 Lokasi File Hasil Capture ......................................................................... 41
37 Gambar yang Dicapture dengan Webcam VGA ....................................... 42
38 Gambar yang Dicapture dengan Webcam 1.3 MP .................................... 42
39 Diagram Blok Cara Bekerjanya Sistem..................................................... 42
40 Arsitektur Abstrak Aplikasi Motion Detection dengan Gambaran Lebih
Sederhana................................................................................................... xxi
DAFTAR LAMPIRAN
Nomor Halaman
1 Hal-hal yang Mungkin Ditanyakan atau Kurang Jelas ............................ xvi
2 Bukti Mainstream Keterujian Hipotesis .................................................. xviii
3 Implikasi Nilai ......................................................................................... xx
BAB I
PENDAHULUAN
1.1. Latar Belakang
Secara induktif, baik melalui pengamatan langsung (realitas di masyarakat)
atau membaca media informasi (iklan, ulasan fotografi, majalah, dan sejenisnya)
dapat diverifikasi bahwa mayoritas konsumen Indonesia yang memutuskan untuk
memiliki kamera mempunyai tujuan untuk mengabadikan momen berwisata, dan
memotret buah hati, atau lebih spesifik anak pertamanya.
Kebanyakan orang tua ingin merekam aktivitas si buah hati (yang sedang
lucu-lucunya itu) sepanjang hari selama media penyimpanan, atau media cetak
masih tersedia untuk melakukannya.
Sayangnya, kebanyakan momen natural dari si buah hati ini sering kali
terlewatkan, entah dikarenakan orang tua tidak menyangka si buah hati akan
melakukan tindakan “X”, atau pada saat itu tidak ada yang membawa kamera
sehingga menurut riset komunitas fotografer tahun 2007 (www.fotografer.net)
63% foto bayi yang bagus adalah manipulasi orang tuanya, baik dengan cara
digoda dengan mainan, dan sebagainya.
Terinspirasi atas kondisi di atas, sekaligus untuk menyelesaikan Tugas
Akhir (TA) penulis memutuskan untuk membuat produk TA “Video Recording
dengan Motion Detection Melalui Integrasi Webcam - Aplikasi .NET” dimana
tangibles (produk yang memanfaatkan teknologi ini) penulis harap dapat menjadi
pilihan pemakai, dalam mengabadikan gerakan natural, khususnya momen natural
buah hati tercinta.
Adapun mengenai keunggulan dari laporan dan produk tugas akhir ini
adalah lebih condongnya penulis dalam membahas potensi yang ada dari
komunikasi data objektif secara teoretis-praktis, sehingga diharapkan setelah
memahami laporan ilmiah serta produk yang dihasilkan (dengan
mempertimbangkan software yang digunakan juga), di masa depan pembaca dapat
memanfaatkan teknologi ICT ini dengan lebih kreatif, dan inovatif.
2
1.2. Perumusan Masalah
Bertolak dari uraian latar belakang masalah di atas, dapat dirumuskan
masalah sebagai berikut:
1. Apa yang menjadi ‘jantung masalah’ mengabadikan gerak natural?
2. Bagaimana mengatasinya dengan solusi aplikasi ICT?
3. Mengapa solusi ICT tersebut efektif dan efisien?
4. Apakah solusi ICT tersebut dapat dimodelkan menjadi model solusi umum
atau alternatif cara pandang pemrograman di masa depan?.
1.3. Batasan Masalah
Karya ilmiah yang baik apapun wujudnya (makalah, jurnal, atau presentasi)
adalah karya yang fokus terhadap bahasan yang dikajinya, sehingga tidak
menimbulkan kesalahpahaman, dan sesuai dengan sasaran penelitiannya. Maka,
agar karya ini juga memiliki nilai tersebut, penulis akan membatasi masalah
laporan ini pada kajian mengenai:
1. Analisa yang menjembatani teoretis-praktis atau lebih ke proses komputer di
balik integrasi webcam-pemrograman .NET, sehingga sesuai keunggulan
laporan yang telah disinggung pada latar belakang;
2. Analisa potensi pemrograman .NET dan library tambahan dari MITOV
(www.mitov.com) yang dapat menghasilkan aplikasi kaya guna melalui
pembuktian hipotesis;
3. Batasan topik permasalahan pada laporan ini adalah pada fotografi natural
saja, jadi penulis sama sekali tidak akan membahas mengenai teknik
fotografi lanjut seperti pemilihan setting, gerakan manusia, human interest,
pencahayaan, lensa, dan sebagainya;
4. Pembahasan dalam laporan ini juga tidak menyertakan perhitungan
matematis pada penggunaan memori, ketepatan sensitivitas, pemrosesan
frame, dan persoalan matematis lainnya. Penulis berharap, semoga hal ini
tidak mereduksi pemahaman (karena memang digunakan sebagai dasar),
dan mengurangi minat pembaca terhadap laporan ini.
3
1.4. Tujuan dan Manfaat
1.4.1. Tujuan :
1. Memenuhi salah satu syarat mencapai gelar ahli madya program diploma III
ilmu komputer FMIPA UNS;
2. Sebagai langkah awal pengabdian penulis kepada masyarakat, baik umum,
maupun komunitas akademis, sebagai mahasiswa diploma III ilmu
komputer, dengan menghasilkan produk yang membantu permasalahan
pendeteksian gerakan secara otomatis (motion detect).
1.4.2. Manfaat :
1. Sebagai referensi penelitian ICT lainnya di mana membutuhkan framework
.NET serta library tambahannya, pada kajiannya;
2. Memberikan informasi bagi para peminat dan hobiis ICT dalam membuat
dan menganalisa aplikasi .NET buatannya;
3. Untuk peminat logika penemuan ilmiah, penulis juga menyisipkan beberapa
pengetahuan teknis mengenai hal tersebut dengan cara yang cukup
menyenangkan (secara tidak langsung), seperti kaidah penyangkalan
(falsifiabilitas), keragu-raguan, dan sebagainya, di mana penulis harap karya
ini dapat membantu siapa saja yang berminat pada logika penemuan ilmiah
(dan tidak tabu lagi masalah sains).
1.5. Metodologi Penelitian
Dalam melakukan penelitian ini penulis menggunakan beberapa metode,
yaitu studi pustaka, mengikuti seminar (Seminar Microsoft Innovation Road Trip
2010, di Universitas Muhammadiyah Surakarta), wawancara dengan peneliti
divisi Pusat Penelitian Elektronika dan Telekomunikasi Lembaga Ilmu
Pengetahuan Indonesia (LIPI), bapak Dayat Kurniawan (via e-mail atau sms), dan
yang paling penting adalah pengujian teori melalui eksperimen yang
menghasilkan produk motion detection.
4
1.6. Sistematika Penelitian
Agar penelitian mudah dilakukan, dan karyanya mudah dikaji oleh
khalayak, peneliti juga harus mempertimbangkan sistematika penelitian yang
membantunya untuk mencapai tujuan tersebut, hal yang sama tentu juga penulis
lakukan dalam penyusunan laporan Tugas Akhir (TA) ini. Adapun laporan TA ini
penulis bagi dalam enam sesi sebagai berikut :
1. Sesi pertama, berisi latar belakang yang memberi inspirasi penulis dalam
pemilihan topik penelitian ini, beserta tujuan, manfaat, dan batasan kajian
yang melingkupinya, bahasan ini dapat pembaca simak pada Bab I halaman
1-4;
2. Sesi kedua, berisi landasan teoretis pembuatan aplikasi. Meliputi ulasan
singkat hardware, software, dan integrasi keduanya, rinciannya penulis
sajikan pada Bab II, di mana dapat pembaca simak halaman 5-17;
3. Sesi ketiga, berisi desain dan perancangan produk TA yang pada akhirnya
digunakan sebagai solusi pemecahan masalah yang telah dibahas pada latar
belakang. Meliputi panduan persiapan, instalasi, arsitektur aplikasi,
abstraksi, desain antar muka, dan implementasi dalam wujud pembuatannya.
Bahasan ini dapat pembaca simak pada Bab III halaman 18-38;
4. Sesi keempat, berisi pengujian dan analisa, yang menunjukkan mengapa
solusi yang berwujud produk TA ini efektif, dan efisien dalam
menyelesaikan masalah yang telah dibahas pada latar belakang. Bahasan ini
dapat pembaca simak pada Bab IV, halaman 39-50;
5. Sesi kelima, berisi simpulan dan saran, yang dapat digunakan pembaca
sesuai manfaat penelitian yang telah disinggung pada Bab I, keduanya dapat
pembaca simak pada Bab V, halaman 51-52;
6. Sesi terakhir (daftar pustaka dan lampiran), berisi referensi yang penulis
gunakan dalam menyelesaikan penelitian ini yang dapat disimak pada
halaman 53-55, beserta lampiran fakta-fakta, dan kajian umum potensi yang
dimiliki produk TA ini, dapat pembaca simak mulai halaman xv-.
BAB II
DASAR TEORI
2.1. Mengenal Pemrograman
“Apa yang pertama kali dibutuhkan untuk menguasai pemrograman?”
Pertanyaan ini adalah pertanyaan pertama yang biasanya muncul di benak
seseorang yang baru saja mulai belajar bahasa pemrograman. Memang hal itulah
yang perlu diketahui pertama kali.
Pada dasarnya ilmu pemrograman adalah suatu ilmu menuliskan sejumlah
instruksi (dengan alat input perintah, misalnya keyboard) yang diberikan kepada
prosesor (misalnya Intel Pentium IV) untuk dikerjakan (Pranoto:2007). Instruksi
yang diberikan kepada Pentium IV ini kemudian akan diproses dengan melibatkan
komponen-komponen komputer lainnya, yaitu memori (RAM), kemudian
komputer akan memberikan “jawaban” yang dikeluarkan melalui alat keluaran
baik suara (melalui speaker), gambar (melalui monitor), atau “dikeluarkan” ke
printer dalam bentuk cetakan. Hasil dari jawaban ini beberapa diantaranya juga
dapat disimpan dalam media penyimpanan (storage media seperti hard disk).
Masalahnya, sering kali para programmer (orang yang menulis program
komputer) tidak tahu apa yang harus mereka tulis.
Oleh karena itu, agar bisa menguasai pemrograman, maka seseorang harus
memahami seluk-beluk komputer itu sendiri. Hal ini dikarenakan ketika suatu
program akan dijalankan, maka program akan berinteraksi dengan komponen-
komponen yang terkoneksi dengan prosesor. Minimal program akan berinteraksi
dengan memori dan prosesor (Pranoto:2008), bahkan untuk program yang tidak
“gaul” (seenaknya sendiri, seperti virus) sekalipun, minimal membutuhkan
komunikasi prosesor dan memori. Interaksi prosesor dengan komponen yang
terkoneksi ini dikenal dengan istilah teknis prinsip pengolahan data komputer.
Prinsip pengolahan data komputer juga memiliki bahasan lanjut yaitu komunikasi
data di mana akan dibahas dan menjadi pokok laporan ini.
6
Adapun prinsip pengolahan data komputer dapat digambarkan sebagai
berikut :
Gambar 1 : Prinsip Pengolahan Data Komputer
Berikut keterangan dari masing-masing elemen :
• Input
Adalah media yang dipakai untuk memasukkan data atau perintah kepada
prosesor (Stephen:2006). Misalnya mouse, keyboard, dan webcam;
• Proses
Proses pengolahan data atau perintah (baik logika maupun aritmatik) yang
telah dimasukkan ke dalam komputer melalui input (Stephen:2006). Proses
dilakukan oleh prosesor yang memiliki ALU (Aritmathic Logical Unit) untuk olah
data aritmatik dan logika dan control unit (pengontrol media input/output (I/O)
lain)
• Output
Media yang digunakan untuk menampilkan data hasil pengolahan proses
(Stephen:2006). Misalnya monitor, speaker, dan printer.
• Memori
Media penyimpanan yang digunakan untuk menjalankan aplikasi,
mendokumentasikan atau mem-back-up data hasil pengolahan (Stephen:2006).
Untuk menjalankan aplikasi, komputer “menyerahkan tugasnya” kepada RAM
(Random Access Memory), sedangkan untuk mem-back-up atau menyimpan data,
komputer menyerahkan tugasnya pada media penyimpanan data digital seperti
hard disk, atau flash disk
2.1.1. Bagaimana Caranya Memprogram?
Pertama-tama dibutuhkan suatu bahasa pemrograman. Untuk pembuatan
aplikasi motion detection ini dipakai bahasa pemrograman C#, karena sesuai
definisinya, pemrograman adalah aktivitas menuliskan sejumlah instruksi yang
INPUT PROSES OUTPUT
MEMORI
7
diberikan kepada prosesor, dan dimengerti juga oleh prosesor. Dengan kata lain,
manusia yang menjadi programmer-nya “berkomunikasi” dengan komputer
dengan cara memberikan sejumlah perintah (listing) yang harus dijalankan. Hal
ini dapat dianalogikan dengan bos yang memberikan instruksi kepada
karyawannya. “Joni, coba kamu pergi ke TIKI, paketkan buku ini. Lalu kamu beli
makanan ringan di supermarket.” Tampak bahwa ada perintah yang harus
dijalankan di sini dan dimengerti oleh pemroses informasinya.
Bahasa pemrograman tersebut dapat dituliskan dengan cara manual melalui
editor teks, atau IDE (Integrated Development Environment). Setelah selesai
menuliskan program, programmer akan beranjak pada aktivitas pemrograman lain
seperti kompilasi (meminta komputer menerjemahkan bahasa pemrograman kita
untuk diterjemahkan ke bahasa mesin supaya dimengerti prosesor (penerjemah
dan penyusun terjemahannya dinamakan compiler)), menyempurnakan hasil
pemrograman dan sebagainya.
IDE yang sebelumnya disinggung tadi adalah aplikasi untuk menjembatani
bahasa pemrograman dan lingkungannya. Disebut “menjembatani”, karena dalam
membuat program, programmer sebenarnya dapat menggunakan editor teks
sederhana, misalnya notepad, yang kemudian dikompilasi menggunakan compiler
manual. Namun dengan cara manual demikian, akan mempersulit programmer
jika program yang dibuat adalah program yang kompleks, kesulitan ini terjadi
karena dengan memilih “jalan” manual programmer harus melanjutkan pekerjaan-
pekerjaan penting lain secara manual juga. Hal-hal penting seperti debug
(mengecek kesalahan), membuat library, dan dalam kasus ini untuk hal
sekompleks filtering pun harus dijalani secara manual.
2.1.2. Bagaimana Cara Membuat Program Video Recording dengan Motion
Detection?
Sudah dibahas sebelumnya bahwa programmer harus mengetahui seluk
beluk komputer sebelum memprogram. Yang dimaksud dengan seluk beluk di sini
adalah : semua alat baik input, output, dan perangkat lunak yang berhubungan
dengan komputer. Untuk saat ini pembaca dapat belajar mengenai pembuatan
aplikasi video recording dengan motion detection, yang memanfaatkan teknologi
8
komunikasi data antar objek. Secara bertahap akan dibahas teknologi pembangun
aplikasi hingga cara menggunakan teknologi tersebut.
2.2. Mengenal Teknologi Pembangun Aplikasi
Untuk membangun aplikasi video recording dengan motion detection ini
digunakan empat teknologi, yaitu :
1. Webcam
2. Microsoft NET Framework 3.5
3. IDE Microsoft Visual C# 2008 Express Edition
4. Mitov VisionLab Library
2.2.1. Mengenal Webcam
Webcam merupakan sebuah hasil pengembangan teknologi kamera gambar
hidup dengan teknologi digital sensor CCD/CMOS. Kamera gambar hidup sendiri
adalah kamera yang digunakan untuk membuat gambar hidup (kini lebih dikenal
dengan istilah video). Gambar hidup sebenarnya tidak lebih dari foto yang
ditayangkan di depan mata kita dengan demikian cepat sampai kita tidak
mengetahui kalau satu gambar telah disingkirkan dan gambar berikutnya telah
menggantinya. Jadi, gambar-gambar ini tampak bergerak, seperti saat peristiwa itu
terjadi. Fenomena ini disebut “penglihatan yang tertinggal” (gambar tetap dalam
penglihatan kita dalam beberapa milidetik) dan sudah dikenal cukup lama
(Philbin:2008).
Gambar 2 ; Prinsip Kerja Webcam (sumber : gandirsetyadi.wordpress.com)
9
2.2.2. Mengenal Microsoft .NET Framework
.NET framework adalah sebuah platform yang dengannya kita dapat
membangun aplikasi perangkat lunak dan library yang disebut sebagai aplikasi
managed (aplikasi yang dimengerti .NET); .NET menyediakan compiler dan
perangkat yang dibutuhkan untuk melakukan proses build (menjadikan instruksi
kita seolah-olah sebagai komponen aplikasi yang bertugas sesuai perintah kita),
debug (mengecek kesalahan) dan eksekusi aplikasi managed (Rahman:2009)
Berdasarkan riset penulis, Microsoft .NET Framework adalah lingkungan
bahasa pemrograman dengan teknologi generalisasi API, sehingga memungkinkan
kita untuk membuat aplikasi dengan dukungan penuh perangkat keras (dalam hal
ini untuk yang sudah dikenali Windows). API sendiri adalah sekumpulan definisi
dari suatu cara bagaimana suatu perangkat lunak berkomunikasi dengan pihak
lain. API merupakan satu metode dalam melakukan abstraksi dalam pemrograman
berorientasi, biasanya (tetapi tidak selalu) antara perangkat lunak tingkat rendah
dan tingkat tinggi (Wikipedia:2010).
Untuk praktek ini, digunakan API DirectShow yang telah terintegrasi
dengan NET Framework bawaan Visual C#.
2.2.3. Mengenal IDE Microsoft Visual C#
Karena aplikasi menggunakan bahasa C#, maka harus digunakan salah satu
IDE yang cocok, di sini digunakan Visual C# 2008 Express Edition yang dibuat
oleh Microsoft. Visual C# (Visual C Sharp) adalah IDE OOP yang mendukung
proyek .NET framework Microsoft.
2.2.4. Mengenal Mitov VisionLab Library
1. Mengenal Mitov Software
Mitov Software adalah developer (pengembang aplikasi) yang menyediakan
komponen library tambahan untuk IDE bahasa pemrograman C++ Builder,
Visual C++ MFC/Win32, NET Framework 2.0, atau versi lebih baru (Visual C#,
Visual Basic 9, C++/CLI, J#), dan Delphi (untuk Delphi bernama IGDI+) yang
dapat digunakan untuk pembuatan aplikasi berbasis video, audio, pengolahan
sinyal digital, atau CV (Computer Vision). Semua library yang disediakan sudah
mendukung teknologi multithreading prosesor, dan telah dioptimalisasi dengan
10
teknologi Intel MMX. Library yang ditawarkan oleh mitov software dibangun
dengan pengembangan lanjut teknologi OpenWire, yang memungkinkan
penggunanya membuat program kompleks secara visual (tanpa mengetik baris
listing sekalipun), atau setidaknya sedikit listing saja (Mitov:2010).
Library tambahan adalah sekumpulan (set) kakas, yang dapat membantu
programmer dalam membuat aplikasi. Kakas (dalam OOP juga dapat disebut
paket) ini berisi instruksi yang telah dituliskan dan disimpan dalam berkas library
(misalnya dynamic link library atau *.dll), sehingga dapat dimanfaatkan
programmer dengan cara memanggil library ini, dalam penyusunan aplikasinya.
Library sendiri dapat diartikan sebagai “bumbu instan” pembuatan aplikasi,
sama halnya dengan penggunaan bumbu instan dalam kegiatan memasak. Dengan
library, programmer dapat menyingkat penulisan programnya, sesuai yang telah
dijelaskan dalam teknologi OpenWire tadi.
Berikut teknologi OpenWire yang telah dikembangkan Mitov Software :
a. VisionLab (OpenWire library untuk keperluan pengolahan data visual)
b. VideoLab (OpenWire library untuk keperluan pengolahan data video)
c. AudioLab (OpenWire library untuk keperluan pengolahan data audio)
d. PlotLab (OpenWire library untuk keperluan plotting (pembuatan grafik),
dan waterfall (diagram alir))
e. InstrumentLab (OpenWire library untuk keperluan aplikasi intrumentasi
dengan bantuan komputer, misalnya termometer)
f. IntelligenceLab (OpenWire library untuk keperluan aplikasi kecerdasan
buatan, seperti jaringan saraf tiruan)
g. IGDI+ (OpenWire library untuk IDE Delphi)
2. Mengenal Teknologi OpenWire
OpenWire adalah freeware library open source (aplikasi gratis dengan
lisensi pengembangan kode bebas).
OpenWire menggunakan konsep aliran data untuk penggunaan komunikasi
datanya. Konsep aliran data ini membuat koneksi sebuat output dengan satu input
atau lebih. Atau lebih lengkapnya sebagai berikut (Mitov:2010):
a. Setiap komponen dapat memiliki banyak input
11
b. Setiap komponen input dan output disebut Pin, sehingga untuk
pembuatannya dikenal dua istilah InputPin dan OutputPin
c. Setiap OutputPin dapat mengalirkan format data spesifik (misal *.MP3)
kepada InputPin yang kompatibel.
d. Setiap tipe data memiliki masing-masing spesifikasi.
Yang dimaksud spesifikasi data di sini adalah identifikasi secara unik suatu
tipe data. Sebagai contoh, tipe data integer (bilangan bulat) mempunyai spesifikasi
data yang berbeda dengan tipe data String. Sebuah OutputPin dapat diatur untuk
mengalirkan satu atau lebih tipe data. Sebagai contoh sebuah OutputPin dapat
mengalirkan tipe data String untuk nama file, dan data gambar yang juga tersusun
atas String yang terkonversi. InputPin yang kompatibel, dapat menggunakan fitur
ini (Mitov:2010).
Karena aplikasi ini menggunakan bahasa berorientasi objek Visual C#,
maka perlu diketahui juga logika objektif untuk OpenWire, berikut keterangan
lengkap dari Mitov Software (Mitov:2010) :
a. Setiap Pin bersumber dari hasil kloning TOWPin
b. InputPin hasil kloning dari TOWPin disebut TOWSinkPin
c. OutputPin hasil kloning dari TOWPin disebut TOWSourcePin
d. InputPin dan OutputPin dapat diimplementasikan pada satu atau lebih
interface. Setiap interface memiliki kode GUI sendiri (misalnya :
GenericFilter yang penulis gunakan).
e. Tipe data yang kompatibel antara InputPin dan OutputPin dapat saling
terkoneksi (jika tidak saling kompatibel akan ditolak).
3. VisionLab
Untuk pembuatan aplikasi video recording dengan motion detection ini,
digunakan salah satu teknologi pengembangan OpenWire dari Mitov Software
yaitu VisionLab. Seperti telah disinggung sebelumnya VisionLab adalah
OpenWire library untuk keperluan pengolahan data visual, termasuk motion
detection dengan Visual C#.
12
2. 3. Cara Menggunakan Teknologi Pembangun Aplikasi
2.3.1. Pemrograman Berorientasi Objek (OOP) untuk Pemrograman Visual
C#
Aplikasi berbasis windows adalah program yang sangat kompleks yang
menyajikan tampilan menarik kepada user (pengguna aplikasi) dan menawarkan
antar muka sederhana hingga kompleks dengan tombol, dropdown, popup menu,
toolbox, dan masih banyak komponen yang lain. Dibelakang antar muka tersebut
masih ada hubungan bussiness process yang kompleks seperti misal hubungan
antara Product, Customer, dan Order yang melibatkan banyak logika dan
pengolahan data.
Untuk menangani berbagai kompleksitas yang terjadi maka programmer
mengembangkan teknik yang diberi nama “Object Oriented Programming”,
dengan tujuan yang sederhana yaitu mengatur kompleksitas dengan memodelkan
aspek esensial yang ada (Kurniawan:2009). Jika model yang dikembangkan
semakin mendekati problem yang akan dipecahkan maka semakin mudah
persoalan tersebut dapat dimengerti sehingga program lebih mudah ditulis dan di-
maintain.
Masalah yang akan dipecahkan dan semua informasi yang berhubungan
dengan problem tersebut sering disebut sebagai problem domain (domain
masalah). Misal jika pembaca ingin membuat program untuk keperluan Inventory
dan Sales di suatu perusahaan maka domain masalahnya adalah semua informasi
tentang perusahaan tersebut yang berhubungan dengan pengaturan stok inventory,
cara penjualan, pemasukan penjualan dan data lainnya. Manajer penjualan dan
manajer bagian gudang akan menjadi ahli pemecahan masalah (problem domain
expert) yang dapat membantu anda dalam menyelesaikan masalah.
Desain dari Object Oriented harus berisi objek-objek yang ada pada domain
masalah tersebut. Cara ini dinamakan abstraksi (Hariyanto:2007). Sebagai contoh
jika problem domainnya adalah mesin ATM maka objek didalamnya seharusnya
adalah customer, rekening, dan lain-lain.
13
2.3.2. Abstraksi Komunikasi Data dengan DirectShow
Seperti telah disinggung sebelumnya, dalam melakukan abstraksi kita harus
berfokus pada domain masalah yang akan diselesaikan. Domain masalah dari
motion detection adalah komunikasi data, di mana komunikasi data yang terjadi
adalah komunikasi data USB Webcam, webcam built in, atau webcam dengan
konektor apapun, agar dimungkinkan video recording, dan komunikasi data
penyimpanan ke media penyimpanan (misalnya hard disk).
Data adalah fakta yang dinyatakan dalam bentuk simbol (Palgunadi:2007).
Dengan demikian komunikasi data dapat diartikan sebagai komunikasi atau
interaksi dari fakta yang diolah komputer atau bersama komponen tambahannya,
dalam wujud data-data.
Karena kebutuhan komunikasi data yang banyak tersebut, relatif tidak
efisien jika kita menggunakan komunikasi data klasik, yang menggunakan data
biner. Untunglah dengan menggunakan NET Framework kita tidak perlu
dipusingkan lagi masalah tersebut, karena fitur generalisasi API-nya. Dengan
memanfaatkan fitur tersebut pada pendekatan OOP kita hanya perlu
mengabstraksikannya sekali saja.
Agar abstraksi API ini dapat diimplementasikan dengan teknologi
VisionLab, seperti telah disinggung sebelumnya dalam koneksi OpenWire, kita
harus menggunakan tipe data yang kompatibel antara InputPin dan OutputPin
yang dalam NET Framework kita dapat menggunakan DirectShow dengan tipe
data filter (dengan API ini semua komunikasi data pada Windows dianggap
sebagai filter-filter).
DirectShow terdiri atas dua komponen utama, yakni filter, bagian terkecil
DirectShow, dan filter graph, himpunan beberapa filter yang saling terhubung
untuk menghasilkan suatu fungsionalitas (Juhara:2010). DirectShow memisah
tugas kompleks menjadi deretan langkah pemrosesan dasar yang lebih sederhana
ke dalam filter. Tiap filter memiliki paling tidak sebuah pin, dimana filter
dihubungkan dengan filter lain dalam filter graph (Gambar 2).
14
Gambar 3 : Contoh Penanganan Display Video
dengan Directshow (sumber : Juhara:2010)
Jika kita menganalogikan filter graph sebagai sebuah pabrik mobil, maka
hubungan filter-filter adalah jalur produksi dalam pabrik mobil, sedangkan filter
adalah bagian produksi dalam pabrik. Material yang menyusun mobil adalah data
yang diproses. Tiap bagian produksi menerima material mentah dan bagian
produksi lain (input), mengolah material dan mengubahnya (processing) menjadi
bentuk lain (output), yang kemudian mengirimkannya ke bagian produksi lain.
1. Filter
Filter adalah salah satu tingkat dalam pemrosesan data di filter graph. Filter
melakukan operasi terhadap sampel media. Ada tiga macam tipe filter: source
filter, transform filter, dan rendering filter. Source filter sebagai penangkap data
dari perangkat input, transform filter mengolah sampel data, kemudian
mengubahnya menjadi bentuk lain, dan rendering filter mengirimkan data ke
perangkat output seperti speaker, layar monitor, network atau disk atau bahkan
bisa juga membuang data tersebut (Juhara:2010).
2. Pin
Pin adalah lokasi di mana dua buah filter dihubungkan. Tiap filter, paling
tidak harus memiliki sebuah pin untuk bisa dihubungkan dengan filter lain.
Instance pin dibungkus dalam interface IPin yang menyediakan mekanisme
koneksi dengan pin lain (Juhara:2010). Aplikasi menggunakan filter graph
manager untuk menghubungkan filter-filter.
3. Filter Graph Manager
Filter graph manager adalah penampung dan pengelola filter- filter. Filter
graph manager menyediakan fungsi-fungsi untuk membangun susunan filter
15
dalam filter graph, mengoordinasi perubahan status filter-filter, mengatur clock
referensi, dan memberi feedback ke aplikasi (Juhara 2010).
Filter graph manager menyediakan objek-objek yang bertugas melakukan
hal spesifik, seperti mengelola window yang digunakan untuk menampilkan data,
pengaturan feedback, dan lain-lain. Filter yang digunakan dalam aplikasi ini
adalah:
a. IMediaEvent
Interface IMediaEvent mengelola feedback yang dikirim ke aplikasi.
Feedback ini berupa pemberitahuan kejadian (event notification) yang sedang
terjadi di filter graph manager.
b. IVideoWindow.
IViewWindow mengelola window yang digunakan untuk menampilkan data
video. Interface ini juga menyediakan fungsi-fungsi untuk mengelola mode full
screen.
2.3.3. Cara Implementasi dengan VisionLab
Setelah melakukan abstraksi di tingkat API, kita kini dapat beranjak ke cara
implementasi pada library Mitov VisionLab. Seperti telah kita ketahui
sebelumnya, VisionLab dikembangkan dari OpenWire, sehingga implementasi
dengan VisionLab library pun mengikuti kaidah OpenWire.
Karena sudah setengah jalan dengan selesai abstraksi di tingkat API, hal
berikutnya yang harus dilakukan tinggal implementasi filter-filter yang tersusun
dengan komponen VisionLab. Mengenai hasil implementasi akan dijelaskan pada
desain dan perancangan.
2.4. Hipotesis
Pada sub-bab 2.2.2 pembaca yang cermat mungkin telah membaca bahwa
dalam penelitian penulis, Microsoft .NET Framework adalah lingkungan bahasa
pemrograman dengan teknologi generalisasi API, sehingga memungkinkan kita
untuk membuat aplikasi dengan dukungan penuh perangkat keras. Dengan
maksud publikasi penelitian, dan mendeskripsikan keunggulan laporan dengan
lebih baik sesuai latar belakang, pada kesempatan ini penulis mengajukan
hipotesis generalisasi API dengan inspirasi dan tesis pengujian berikut ini:
16
2.4.1. Inspirasi
Untuk hipotesis ini, penulis berangkat dengan tesis presentasi Microsoft
Indonesia berikut ini sebagai inspirasi : “Visual Studio adalah produk unggulan
kami, di mana dengan produk ini siapa saja akan dapat memprogram komputer
dengan mudah. Khusus untuk anda mahasiswa, anda tinggal mempelajari
persoalan teoretis fundamental saja (Sistem Operasi, Arsitektur, Komunikasi
Data), ini yang membedakan anda dengan non-IT.” – Seminar Microsoft Road
Innovation Road Trip 2010 oleh Narendra Wicaksono.
Untuk mendukung alasan tersebut, pihak Microsoft juga memberikan sedikit
gambaran teknologinya kepada peserta seminar untuk dikaji, di mana pembicara
juga menjelaskannya bahwa solusi ini adalah sebuah revolusi Mircosoft untuk
solusi pemrograman integrasional atau virtual di masa depan. Alasan tersebut
dijelaskan secara singkat dengan gambaran sebagai berikut :
Gambar 4 : Diagram .NET Microsoft (sumber : Microsoft:2010)
Namun, sebagai orang yang terdidik untuk berpikir kritis dan ilmiah, wajar
jika kita tidak percaya dan menggunakan mentah-mentah tesis mereka. Mungkin
karena pertimbangan hal tersebut hanyalah iklan, dan sebagainya.
2.4.2. Hipotesis Pengujian
Menanggapi hal di atas, penulis mengujinya dengan hipotesis berikut ini:
Karena API dasar Windows (yang terpisah menjadi framework-framework
tersendiri) dalam perkembangannya berevolusi menjadi .NET Framework dan
pemrograman mainstream Windows, mungkin integrasi .NET-IDE Visual C#
D
C B
A
A : NET 1.0 – CLR, Winforms,
Web Service, ASP.NET
B : NET 2.0 - WCF, WF, WPF,
Cardspace, DirectShow
C : NET 3.5 - LINQ, AJAX,
REST
D: .NET 4.0 Bilangan Kompleks,
Gaming Control
17
2008 Express Edition merupakan solusi pemrograman yang efektif dan efisien
untuk sistem operasi Microsoft Windows. Sehingga generalisasi framework dapat
menjadi cara pandang baru dalam memecahkan permasalahan menggunakan
ICT.
18
BAB III
DESAIN DAN PERANCANGAN
Agar lebih memudahkan pembaca laporan ini di kemudian hari, penulis akan
membagi pembahasan bab ini dengan urutan sebagai berikut :
1. Persiapan
2. Abstraksi dan desain interface (sebagai ganti kata desain dan perancangan)
3. Implementasi (pembuatan aplikasi)
3.1. Persiapan
Pada bagian ini akan dipersiapkan berbagai software yang diperlukan dalam
pengembangan aplikasi motion detection dengan teknologi .NET 3.5 SP 1..
3.1.1. Software yang Dibutuhkan
Sebelum membangun aplikasi sederhana ini, perlu disiapkan komputer dengan
sistem operasi Windows XP SP 2, sebuah webcam (USB/integrated di laptop) dan
berbagai software sebagai berikut :
C# IDE : Visual C# Express Edition 2008
Library tambahan : VisionLab.NET 4.3.1
3.1.2. Instalasi
1. Instalasi Visual C# Express 2008
Untuk instalasi pertama, penulis akan menunjukkan cara meng-install Visual C#
2008 EE.
Langkah 1
Pembaca dapat memilih berkas instalasi Visual C# EE melalui berkas setup yang
bersangkutan (misalnya dari CD TA Penulis). Program instalasi akan menyalin beberapa
berkas instalasi yang dibutuhkan ke dalam sebuah folder sementara. Setelah penyalinan
selesai, aplikasi setup akan ditampilkan dan hal tersebut yang menandakan bahwa
instalasi siap dimulai.
19
Langkah 2
Pada halaman Welcome to Setup, pembaca dapat memberikan tanda centang
(V) pada check box untuk mengirimkan user experience pada saat instalasi ke
Microsoft. Pilih Next untuk melanjutkan.
Gambar 5 : Jendela Welcome to Setup
Langkah 3
Aplikasi instalasi akan menampilkan halaman License Terms, pembaca
dapat meluangkan waktu untuk memahami persyaratan tersebut, jika sudah pilih I
have read and accept the license terms, setelah selesai, pilih Next untuk
melanjutkan.
Gambar 6 : Jendela License Terms
20
Langkah 4
Halaman berikutnya berisi pilihan fitur program yang akan diinstal. Pada
bagian ini, penulis menyarankan agar pembaca memasangkan semua fitur yang
ada demi kelancaran dalam mengembangkan program. Pilih Next untuk
melanjutkan.
Gambar 7 : Jendela Pilihan Fitur Program
Langkah 5
Berikutnya akan ditampilkan folder tujuan instalasi. Secara default, folder
tujuan telah ditentukan oleh program. Pilih lokasi yang sesuai dengan ruang disk
yang tersedia, kemudian pilih Install.
Gambar 8 : Jendela Pilihan Lokasi Instalasi
21
Langkah 6
Proses instalasi akan berlangsung beberapa menit (kadang akan dilakukan
restart jika program bermasalah, namun akan normal dan dilanjutkan lagi setelah
restart). Setelah selesai, pilih Exit untuk keluar dari jendela setup.
Gambar 9 : Jendela Proses Instalasi
Gambar 10 : Jendela Keterangan Instalasi Visual C# Berhasil
Langkah 7
Restart komputer agar aplikasi berjalan normal (sudah menyesuaikan
dengan sistem operasi). Berikutnya pembaca dapat melakukan pengecekan hasil
instalasi dengan membuka Visual C# yang bersangkutan.
22
2. Menambahkan VisionLab ke Visual C# 2008 Express Edition
Sebelum VisionLab ditambahkan ke Visual C# 2008 EE, terlebih dahulu
lakukan instalasi komponen VisionLab. Berikut ini cara instalasi VisionLab
Langkah 1
Sebelum VisionLab diinstall, terlebih dahulu pastikan Microsoft Visual C#
2008 EE pembaca tidak mengalami masalah.
Langkah 2
Unduh VisionLab (www.mitov.com), kemudian jalankan atau jalankan
berkas setup yang telah penulis sertakan dalam CD TA. Klik dua kali berkas
setup, akan muncul gambar di bawah ini :
Gambar 11 : Jendela Peringatan VisionLab
(Tidak Menemukan Visual Studio 2005)
Langkah 3
Pada gambar di atas muncul bahwa VisionLab tidak menemukan Visual
Studio 2005 atau 2008, itu karena kita menggunakan Visual C# 2008 Express
Edition. Klik OK, atau tekan Enter.
Langkah 4
Pada halaman Welcome to Setup, pembaca dapat memilih tombol Next
untuk melanjutkan.
23
Langkah 5
Aplikasi instalasi akan menampilkan halaman License Agreement, pembaca
dapat meluangkan waktu untuk memahami persyaratan tersebut, jika sudah pilih I
accept the agreement, pilih Next untuk melanjutkan.
Gambar 12 : Jendela License Agreement
Langkah 6
Pada halaman Select installation type kita disuguhi pertanyaan mengenai
tipe instalasi, karena penulis tidak memiliki tujuan komersial penulis memilih No
Source code – Free For Non Commercial Use, pilih Next untuk melanjutkan.
Gambar 13 : Jendela Installaton Type
24
Langkah 7
Berikutnya akan ditampilkan folder tujuan instalasi. Secara default, folder
tujuan telah ditentukan oleh program. Pilih lokasi yang sesuai dengan ruang disk
yang tersedia, kemudian pilih Next untuk melanjutkan.
Gambar 14 : Jendela Pilihan Lokasi Instalasi
Langkah 8
Halaman berikutnya berisi pilihan fitur program yang akan diinstal. Pada
bagian ini, penulis menyarankan agar pembaca memasangkan semua fitur (full
install) yang ada demi kelancaran dalam mengembangkan program. Pilih Next
untuk melanjutkan.
Gambar 15 : Jendela Pilihan Fitur Instalasi
25
Langkah 9
Setelah yakin, dengan ringkasan pilihan setup (Ready to Install) yang
ditampilkan halaman ini, pilih Install.
Gambar 16 : Jendela Pilihan Paket Instalasi
Langkah 10
Tunggu proses instalasi, hingga muncul halaman Package Installation
Options, klik Next saja, hingga Finish.
3. Menambahkan VisionLab ke Visual C# 2008 Express Edition
Langkah 1
Sebelum library VisionLab ditambahkan ke Visual C# 2008 Express
Edition, terlebih dahulu pastikan VisionLab dan Microsoft Visual C# 2008
Express Edition pembaca tidak mengalami masalah.
Langkah 2
Jalankan Visual C# 2008 Express Edition
Langkah 3
Buat tab baru pada toolbox (Ctrl + W + X), dengan cara pilih General �
Klik kanan � Add tab, seperti terlihat pada gambar di bawah ini. dengan nama
VideoLab.
26
Langkah 4
Seperti pada langkah ke-2 dan ke-3, tambahkan beberapa tab lagi dengan
nama VisionLab.
Gambar 17 : Membuat Tab Baru
Langkah 5
Agar item pada toolbox VideoLab, dan VisionLab keluar (dapat
digunakan) lakukan hal berikut : Pilih untuk salah satu tab baru tadi, dalam
praktek penulis memilih VideoLab terlebih dahulu, jadi klik VideoLab � klik
kanan � Choose Items, seperti pada gambar di bawah ini :
Gambar 18 : Choose Items pada VideoLab
27
Langkah 6
Akan muncul form Choose Toolbox Items, seperti terlihat pada gambar di
bawah ini, klik browse.
Gambar 19 : Form Choose Toolbox Items
Langkah 7
Muncul dialog Open. Arahkan ke lokasi instalasi VisionLab. Pada proyek
ini, penulis meng-install VisionLab di C:\Program Files\LabPacks\DotNET\Bin.
Gambar 20 : Lokasi Instalasi VisionLab
Langkah 8
Pada form Open di atas, pilih VideoLabBasic.dll, lalu tekan Open.
Pembaca akan kembali ke form Choose Toolbox Items.
28
Gambar 21 : Form Choose ToolBox Items
Langkah 9
Biarkan Items yang bertanda centang tersebut, lalu klik OK.
Langkah 10
Ulangi langkah 5-9, untuk VideoLab tambahkan lagi
VideoLabAdditional.dll, dan untuk tab VisionLab tambahkan VisionLab.dll
Langkah 11
Setelah langkah 1-10 akan terlihat bagian toolbox seperti ini :
Gambar 22 : Hasil Akhir Penambahan Items VisionLab
29
3.2. Abstraksi dan Desain Interface
Setelah selesai melakukan tahap persiapan, pembaca kini sudah siap untuk
membuat aplikasi. Namun sebelumnya (jika pembaca cukup sabar, dan berminat
dengan ide penulis), mari kita deskripsikan dulu tujuan kita membuat program
dengan bahasa alami (bahasa ibu programmer untuk membantu mendeskripsikan
idenya).
“Penulis ingin membuat aplikasi di mana aplikasi tersebut dapat
mengendalikan webcam (input) untuk mendeteksi gerakan (motion detection)
secara otomatis (process) dari rekaman realitas (video recoring) dan dapat
menyimpannya (output) di folder yang sudah disediakan (storage media).”
Beranjak ke model perintah yang sedikit rumit, penulis akan menjabarkan
perintah tadi dengan abstraksi, agar dapat fokus ke objek yang akan
diimplementasikan. Penulis akan memulai dengan memecah persoalan untuk
mendapatkan domain solusi, dan berikut hasil abstraksi penulis :
1. Abtraksi Pertama dan Hasil Interfacenya
Untuk membuat aplikasi ini, dibutuhkan lima penyusun utama, penampil
(penampil berjumlah dua, display rekaman realitas, dan display motion detect),
tombol yang mengontrol webcam untuk memulai motion detect, tombol untuk
menghentikan motion detect, tombol untuk memilih sensitifvitas, dan tombol
untuk memilih perangkat capture (webcam).
Gambar 23 : Interface Hasil Abstraksi Pertama
DISPLAY
REKAMAN
REALITAS
DISPLAY
MOTION DETECT
SELECT SOURCE MULAI STOP SENSITIFITAS
30
2. Abstraksi Kedua dan Hasil Interfacenya
Tombol untuk memulai dan menghentikan dapat dijadikan satu, dengan
logika percabangan. Karena pada display hasil motion detect, diinginkan gambar
mudah tersimpan dengan ukuran sama yang mendukung konsep array maka
penampil gambar ditambahkan lagi satu komponen sebagai tempat gambar agar
mudah dikonversi yaitu PictureBox. Agar rapi kedua penampil lebih baik
dijadikan grup masing-masing dengan groupbox.
Gambar 24 : Interface Hasil Abstraksi Kedua
Selesai mengabstraksikan objek pada abstraksi kedua, berarti kita sudah
dapat mulai mengidentifikasi bagaimana objek akan diimplementasikan. Select
source diimplementasikan dengan pemilihan sumber device, start/stop selain
mengganti label, juga berisi implementasi mulai atau menghentikan capture
(menggunakan genericFilter). Dan terakhir, pada sensitifitas, penulis akan
membandingkan nilai sensitifitas gerakan (berupa filter frekuensi sesuai efek
doppler) dengan video rekaman realitas.
DISPLAY
REKAMAN
REALITAS
PENAMPIL
GAMBAR
SELECT SOURCE START/STOP SENSITIFITAS
PICTURE
BOX
31
3. Abstraksi DirectShow Filter (Perancangan Proses Aplikasi)
Selesai mendesain interface mari kita rancang proses yang bekerja di
dalamnya. Adapun dengan mengacu bahasa alami dan abstraksi sebelumnya, kita
dapatkan DirectShow filter sebagai berikut :
Gambar 25 : Abstraksi Komunikasi Data dengan DirectShow
Keterangan :
A : Filter Source (untuk mendapatkan sumber device)
B : Filtergraph IMedia Control (memulai prosedur capture)
C : Filter iMediaEvent (pemantauan event)
D : Prosedur genericFilter1_ProcessData (untuk pembanding motion
detect/efek doppler –kirim ke outputpin dan olah ke motion detect-)
E : Filter Transform (mengubah menjadi gambar .*bmp)
F : Filter Rendering dan IvideoWindow (keduanya berperan dalam
menampilkan)
4. Implementasi Penggerak Proses dengan VisionLab
Sebelumnya kita sudah mengetahui bahwa VisionLab akan memudahkan
kita hingga setengah jalan jika sudah benar dalam mendefinisikan filter-filter
sebagai komponen komunikasi data. Sekarang kita kerjakan setengah jalan yang
lain, agar komunikasi data aplikasi ini menjadi jelas. Ibarat memerintah karyawan,
seorang bos dalam kasus kita sebelumnya, ia juga harus membayangkan jalan dan
transportasi apa yang digunakan karyawannya agar misinya berhasil. Berikut
komunikasi data dari proses yang diimplementasikan dengan “penggerak proses”
atau objek-objek yang akan kita komunikasikan hingga membentuk komunikasi
data webcam berbantu komputer untuk mendeteksi gerakan secara otomatis :
A B C D E
32
Gambar 26 : Implementasi Komunikasi Data Objektif Motion Detection
3.3. Implementasi (Pembuatan Aplikasi)
Berikut ini langkah-langkah pembuatan aplikasi motion detection dengan
Visual C# 2008 Express Edition.
Langkah 1
Jalankan Visual C# 2008 Express Edition, lalu klik File � New Project.
Langkah 2
Pada jendela New Project, pilih Window Forms Application dan beri
nama motion_detect, lalu klik OK.
Gambar 27 : Jendela New Project
Langkah 3
Simpan proyek dengan klik File � Save All. Ketikkan nama, lokasi proyek,
dan solution name, lalu klik Save.
33
Langkah 4
Pada Form1, tambahkan komponen berikut :
3 x Button (dapat ditambahkan dari toolbox tab All Windows Forms)
2 x GroupBox (dapat ditambahkan dari toolbox tab All Windows Forms)
2 x DSImageDisplay (dapat ditambahkan dari toolbox tab VideoLab)
1 x PictureBox (dapat ditambahkan dari toolbox tab All Windows Forms)
2 x DSCapture (dapat ditambahkan dari toolbox tab VideoLab)
1 x genericFilter (dapat ditambahkan dari toolbox tab VideoLab)
1 x motionDetect (dapat ditambahkan dari toolbox tab VisionLab)
Langkah 5
Atur posisi dari komponen yang ditambahkan tadi sehingga terlihat seperti
gambar di bawah ini :
Gambar 28 : Pengaturan Posisi Komponen Aplikasi
34
Langkah 6
Atur properti komponen (dengan klik kanan komponen pilih Properties)
yang ditambahkan pada langkah 5 seperti pada ditunjukkan tabel berikut :
Tabel 1 : Pengaturan Properti Komponen Aplikasi
Komponeen Properti Nilai Properti
Form1 Text Motion Detect
GroupBox1 Text Video Source
GroupBox2 Text Motion Detect
Button1 Text Select Source
Button2 Text Start
Enable False
Button3 Text Sensitifitas
Enable False
DSImageDisplay1 Anchor Top, Bottom, Left, Right
DSImageDisplay2 Anchor Top, Bottom, Left, Right
dsCapture1 Enable False
PictureBox Visible False
Sehingga tampak seperti pada gambar di bawah ini :
Gambar 29 : Tampilan Form Setelah Properti Diatur
Langkah 7
Pada DSCapture1 pilih OuputPin, lalu klik tombol
35
Langkah 8
Pada open wire connection editor, pilih InputPin dari dsImageDisplay1
dan motionDetcct1, lalu klik OK.
Gambar 30 : Pemilihan InputPin untuk DSCapture1
Langkah 9
Pada motionDetect1, pilih OuputPin, lalu klik tombol
Langkah 10
Pada dialog motionDetect1.OutputPin, pilih InputPin dari
dsImageDisplay2, dan genericFilter1, lalu klik OK.
Gambar 31 : Pemilihan InputPin untuk motionDetect.OutputPin
Langkah 11
Pada motionDetect1, pilih MotionGrid, lalu tekan tombol
36
Langkah 12
Ubah jumlah kolom dan baris berikut nilainya menjadi seperti gambar di
bawah, lalu klik OK. Nilai sensitifitas ini berkisar antara 0-9. Nilai 0
menunjukkan sensitifitas rendah, sementara 9 menunjukkan sensitifitas tinggi.
Gambar 32 : Pengaturan Motion Grid (untuk Sensitifitas)
Langkah 13
Klik tombol SelectSource, lalu tuliskan program di bawah ini.
Private void button1_Click(object sender, EventArgs e)
{
dsCapture1.VideoCaptureDevice.ShowDeviceSelctDialog();
button2.Enabled = true;
button3.Enabled = true;
}
Program di atas berfungsi untuk menampilkan dialog pemilihan source
device yang akan digunakan, yaitu pada fungsi
dsCapture1.VideoCaptureDevice.ShowDeviceSelctDialog();
37
Langkah 14
Klik tombol Start, lalu tuliskan program di bawah ini.
Private void button2_Click(object sender,EventArgs e)
{
If (button2.Text == “Start”)
{
dsCapture1.Enabled = true;
dsCapture1.Start();
button1.Enabled = false;
button2.Enabled = “Stop”;
}
else
{
dsCapture1.Stop();
dsCapture1.Enabled = false;
button1.Enabled = true;
button2.Text = “Start”;
button2.Enabled = false;
button3.Enabled = false;
}
}
Untuk memulai capture digunakan fungsi dsCapture1.Start(); Untuk
menghentikannya digunakan fungsi dsCapture1.Stop();
Langkah 15
Klik tombol Sensitifitas, lalu tuliskan program di bawah ini.
Private void button3_Click(object sender, EventArgs e)
{
motionDetect1.MotionGrid.ShowDialog();
}
Fungsi motionDetect1.MotionGrid.ShowDialog(); digunakan untuk
menampilkan form sensitifitas pada langkah 12.
38
Langkah 16
Klik genericFilter1 � Event , lalu klik ganda ProcessData. Tuliskan
program di bawah ini.
Private Int16 ulang;
private void genericFilter1_ProcessData(object Sender,
Mitov.VideoLab.VideoProcessDataEventArgs Args)
{
System.Drawing.Bitmap ABitmap = Args.InBuffer.ToBitmap();
pictureBox1.Image = ABitmap;
pictureBox1.Image.Save("E:/ " + Convert.ToString(ulang) + ".bmp");
ulang++;
}
Langkah 17
Untuk menjalankan program, klik Start Debuging atau tekan F5
Langkah 18
Agar aplikasi dapat dijalankan di komputer lain (re-distribuadalbe), salin
(copy) terlebih dahulu library VisionLab di lokasi instalasi VisionLab yang sudah
dipilih sebelumnya. Penulis meng-install di C:\Program
Files\LabPacks\DotNET\Bin..
BAB IV
PENGUJIAN DAN ANALISA
4.1. Pengujian Sistem
Sistem dapat diuji dengan cara sebagai berikut :
1. Jika PC/laptop belum terinstall .NET framework 3.5 SP 1 (untuk user yang
sudah meng-install Visual C# 2008 EE, otomatis sudah terinstall), install
terlebih dahulu agar API general dikenali komputer.
2. Jalankan aplikasi dari folder proyek aplikasi, misalnya :
C:/motion_detect/motion_detect//bin/Debug/motion_detect.exe.
Gambar 33 : Jendela Awal Aplikasi
3. Klik Select Source untuk memilih input webcam, bisa default jika ingin
memilih webcam utama atau USB Video Device untuk pengguna USB
webcam, sedangkan untuk laptop dapat memilih webcam yang
teridentifikasi sesuai merknya. Tekan OK jika setuju.
40
Gambar 34 : Jendela Select Source
1. Secara opsional pembaca dapat memberi nilai sensitifitas (1-10), dengan
klik tombol Sensitifitas, kemudian isi cols dan rows pada dialog Edit Motion
Grid. Tekan OK jika setuju.
Gambar 35 : Dialog Edit Motion Grid Sebagai Sarana Pemilihan Nilai Sensitifitas
2. Untuk memulai tekan Start
3. Gerakkan objek yang telah terfokus
4. Jika ingin berhenti, klik tombol Stop
5. Cek hasil capture pada lokasi yang telah ditentukan
41
Gambar 36 : Lokasi File Hasil Capture
Pengujian sistem oleh penulis, dilakukan pada objek (botol bekas air
minum) yang digerakkan berayun selama 8 detik dengan webcam VGA merk
iTech (sensor CMOS). Variabel pokok adalah set nilai sensitivitas, yaitu acak
(random) dan default (kolom 10, baris 10 (10:10)), yang menghasilkan lebih
banyak gambar dengan sensitivitas tinggi (nilai 10:10, atau default). Untuk
Pembuktian API DirectShow sendiri aplikasi dijalankan pada laptop Acer
(embedded webcam 1,3 Mega Pixel, sensor CMOS). Adapun batasan lain dari
pengujian ini adalah :
1. Warna objek tidak boleh terlalu sama dengan warna latar belakang
(background).
2. Jarak objek dari kamera 10 centimeter.
3. Jumlah objek yang digerakkan hanya 1 buah.
4. Faktor acak posisi awal, dan kecerahan cahaya dalam ruangan diabaikan.
Tabel 2 : Hasil Lengkap Pengujian Sistem
pada USB Webcam dan Embedded Webcam
Banyak Pendeteksian Gerakan
Set Sensitivitas (8:2) Default PC/Laptop Banyak
Pengujian I II III IV RT I II III IV RT
PC 4 12 14 13 12 12.75 15 16 17 16 16
Laptop 4 13 14 14 15 14 17 17 18 16 17
42
Keterangan :
RT = Rata-rata (jumlah total hasil percobaan.banyaknya pengujian)
12.75 dapat diartikan stabil antara 12-13 gambar.
Berikut gambar yang didapatkan pada PC dan Laptop
Gambar 37 : Gambar yang Dicapture dengan Webcam VGA
Gambar 38 : Gambar yang Dicapture dengan Webcam 1.3 MP
Nampak bahwa jenis resolusi kamera menentukan jernihnya gambar,
sedangkan jumlah capture relatif sama karena menggunakan sensor yang sama
(CMOS).
4.2. Analisis
4.2.1. Cara Bekerjanya Sistem
Blok diagram sistem untuk mendeteksi gerakan dan penyimpanan outputnya
dalam format .bitmap (.*bmp) dapat dilihat pada Gambar:
Gambar 39 : Diagram Blok Cara Bekerjanya Sistem
OBJEK TERFOKUS FRAME EFEK DOPPLER
BANDINGKAN KONVERSI
43
Keterangan :
1. Objek terfokus membentuk frame yang terlihat pada display video source
(jika tidak bergerak, prosedur lanjut tidak dijalankan).
2. Perubahan frame karena efek doppler (terlihat pada display video source dan
motion detect) � Simpan frame sebelumnya dalam memori buffer.
3. Bandingkan dengan nilai sensitifitas (jika tidak sesuai, maka tidak
tersimpan.
4. Konversi gambar � simpan dalam media storage (dengan lokasi yang telah
ditentukan pada aplikasi)
Dapat disimak bahwa proses cocok dengan abstraksi DirectShow API
(Gambar 25), maka analisa dilanjutkan pada analisa implementasi listing.
4.2.2. Analisis Implementasi Listing Pemrograman
Dalam menganalisa listing (daftar perintah) pemrograman, programmer
tidak akan pernah bisa lepas dari logika bahasa pemrograman yang digunakan.
Adapun logika pemrograman yang digunakan untuk membangun aplikasi ini
yaitu:
1. Abstraksi
Mengikuti kaidah OOP bahwa dalam pembuatan aplikasi, programmer
harus fokus pada domain masalah, aplikasi ini dibagi kelas-kelas yang mewakili
event atau proses aplikasi. Adapun event dalam aplikasi ini yaitu :
a. Memilih perangkat yang teridentifikasi aplikasi (Select Source);
b. Memilih sensitifitas;
c. Memulai dan mengakhiri proses capture (pengambilan gambar);
d. Proses penyimpanan gambar.
2. Percabangan
Saat aplikasi dijalankan dapat disimak bahwa tombol start dan stop saling
menggantikan dalam aplikasi ini, jika start hidup, stop mati dan sebaliknya (vice
versa). Lebih jauh lagi, saat tombol dengan tulisan (text) start aktif, maka tombol
dengan text select source juga ikut aktif. Berikut pembahasan listing yang
diketikkan sehingga dapat menjelaskan proses ini:
44
// BERIKUT ADALAH BARIS MULAI PENJELASAN AKTIVASI
If (button2.Text == “Start”)
{
dsCapture1.Enabled = true;
dsCapture1.Start();
button1.Enabled = false;
button2.Enabled = “Stop”;
// BERIKUT ADALAH AKHIR DARI PENJELASAN AKTIVASI
}
// BERIKUT ADALAH BARIS MULAI PENJELASAN PENGHENTIAN
else
{
dsCapture1.Stop();
dsCapture1.Enabled = false;
button1.Enabled = true;
button2.Text = “Start”;
button2.Enabled = false;
button3.Enabled = false;
// BERIKUT ADALAH AKHIR PENJELASAN PENGHENTIAN
}
Keterangan listing :
Proses aktivasi capture : Proses DSCapture berjalan (enabled) jika tombol
dengan tulisan (text) start (button2) ditekan, setelah itu, tulisan pada tombol start
akan diganti dengan stop dan select source (button1) mati.
Proses penghentian : Proses dihentikan jika tombol dengan tulisan stop
ditekan, diikuti proses lain yaitu tombol dengan tulisan select source (button1)
dan sensitiftas (button3) kembali aktif, setelah itu tulisan stop digantikan start.
3. Penggunaan Library Tambahan (OOP)
Telah dibahas sebelumnya bahwa melalui library tambahan, programmer
akan dibantu dalam menyederhanakan aplikasinya. Untuk aplikasi ini,
programmer dimudahkan karena Visual C# dan library-nya sejak awal telah
menerapkan konsep pewarisan, enkapsulasi, klasifikasi, polymorphism, dan pesan
yang disebut logika OOP dasar (Hariyanto:2007).
45
Berikut dijabarkan fungsi lima konsep di atas pada aplikasi motion detection
ini :
a. Proses enkapsulasi menyembunyikan perintah yang sejatinya dilakukan oleh
library tambahan, melalui deklarasi private.
b. Proses polymorphism diantarnya membuat perintah sensitifitas menjadi satu
perintah.
c. Proses klasifikasi membuat program kita modular (dapat dipisahkan) dalam
tombol-tombol, dan display-display.
d. Proses pewarisan diantaranya memudahkan kita dalam menjaga konsistensi
ukuran input-outpu, dan dapat digunakannya konversi ke bitmap (*.bmp)
dengan sekali panggil (melalui system.drawing.bitmap).
e. Proses komunikasi pesan (lewat Open Wire Connection Editor), membuat
objek-objek kita dapat bekerja bersama-sama karena membentuk kesatuan
sebagai events.
Berikut dua penerapan logika OOP pada aplikasi:
a. Using System.Drawing � Aplikasi dapat menggunakan semua kelas dalam
library System.Drawing di mana terwujud dalam prosedur.yang digunakan
dalam objek.
b. dsCapture1.VideoCaptureDevice.ShowDeviceSelctDialog();
Aplikasi menggunakan library dsCapture1.VideoCapture untuk
menampilkan objek dialog show device.
4. Array
Seperti telah disinggung dalam pendahuluan, minimal suatu program
berinteraksi dengan memori dan prosesor. Dalam program ini agar dapat
menangkap perubahan gerakan, webcam harus berinteraksi dengan memori yang
dapat menyimpannya. Hal inilah yang menjadi kesamaan prinsip kerja sistem ini
dengan “kawan lama kita” kamera gambar hidup. Dalam kamera gambar hidup,
ada peristiwa “penglihatan yang tertinggal” pada pengamat (manusia) karena
kecepatan bergantinya gambar dalam suatu peristiwa (frekuensi) lebih cepat dari
kemampuan pengamat (sensitifitas pengamatan), dalam fisika hal ini dikenal
46
dengan istilah efek doppler. Untuk bidang komunikasi data, efek doppler dapat
diartikan sebagai besar pergeseran frekuesni saja (Einstein:2005).
Berangkat dengan teori efek doppler dalam bidang komunikasi data, dapat
diaplikasikan bahwa dalam aplikasi ini dibutuhkan memori yang dapat diatur
sensitifitasnya, di mana terwujud dengan implementasi kode sebagai berikut :
Private void button3_Click(object sender, EventArgs e)
{
motionDetect1.MotionGrid.ShowDialog();
}
Keterangan listing :
Karena dijalankan fungsi motionDetect1.MotionGrid.ShowDialog(); maka
aplikasi memberikan umpan balik dialog kepada user untuk memilih motion grid
sebagai data input pembanding (daya sensitifitas yang diinginkan). Penyimpan
daya sensitiftas yang diatur dengan dua nilai ini disebut array.
Array adalah sekumpulan tempat penyimpanan data (variabel) yang bertipe
sama, dan diberi nama sama (Darmawan:2009). Namun untuk membedakannya
array juga memiliki index (terwujud dalam output foto dengan nama 0, 1, 2, dan
seterusnya).
Dalam pemrograman, array ini juga berfungsi sebagai pointer. Pointer
adalah variabel khusus yang digunakan untuk menyimpan memori dari variabel
lain (Darmawan:2009). Artinya kita dapat memesan tempat di dalam memori dan
memberi nama sesuai variabel yang di-point (ditunjuk). Sehingga dengan sifat
pointer memungkinkan programmer untuk menyimpan hasil capture aplikasi
pada sebuah folder dengan implementasi sebagai berikut :
private Int16 ulang;
private void genericFilter1_ProcessData(object Sender,
Mitov.VideoLab.VideoProcessDataEventArgs Args)
{
System.Drawing.Bitmap ABitmap = Args.InBuffer.ToBitmap();
pictureBox1.Image = ABitmap;
pictureBox1.Image.Save("E:/ " + Convert.ToString(ulang) + ".bmp");
47
ulang++;
}
Keterangan listing :
Setelah didapatkan hasil gerakan (melalui DSCapture pada array
motionDetect, filter motionDetect menampilkan hasilnya pada DSImageDisplay
dan mengolahnya pada genericFilter (lihat Gambar 26 (implementasi komunikasi
data objektif motion detection)). GenericFilter sesuai listing di atas,
menyimpannya pada pictureBox dan mengonversi nilai yang ditangkap filter
motionDetect sebagai String yang disimpan sebagai bitmap.
5. Perulangan
Pada pembahasan listing logika keempat (array) dapat diamati adanya
perintah private Int16 ulang; dan perintah unary (satu operand) ulang++ untuk
memanggilnya. Perintah ini menandakan prosesor akan melakukan interupsi
pengulangan capture, selama user tidak menekan tombol stop (menghentikan
program) dan objek terus bergerak.
4.3. Pembuktian Hipotesis
Setelah menyimak penjelasan mengenai abstraksi dan pembuatan aplikasi,
mungkin pembaca sudah dapat memahami bahwa dengan Visual C# 2008 EE,
programmer benar-benar dimudahkan untuk mengimplementasikan hasil abstraksi
yang telah kita jabarkan Sehingga nampak jelas dengan sendirinya bahwa proses
pemrograman motion detection ini dapat dijabarkan sebagai berikut:
Abstraksi � Organisasi objek-objek hasil abstraksi (akan lebih mudah jika
kita mengetahui juga organisasi pemroses (komputer) dengan alat yang dikontrol,
misalnya dengan bantuan DirectShow, untuk kasus webcam ini) � Implementasi
dengan C# dan library VisionLab.
Namun masih timbul sebuah pertanyaan : “Bagaimana bisa webcam
konektor USB dengan webcam embedded dapat diidentifikasi aplikasi tanpa
pengaturan seperti solusi aplikasi terdahulu?”
Inilah yang disebut dengan API. Dengan API semua hardware telah
diidentifikasi sistem operasi sebagai objek umum sehingga mudah diabstraksikan.
48
Sama halnya dengan tongkat, martil, dan kayu yang dapat kita identifikasi sebagai
alat pukul.
Sejak komputer berevolusi menjadi mesin multimedia dan hiburan, pasar
komputer dibanjiri oleh beragam perangkat multimedia, seperti digital video
camcoder, webcam. Dengan banyaknya vendor dan jenis perangkat yang dirilis,
menjadi tidak mudah bagi pengembang aplikasi untuk mendukung semua
perangkat tersebut. Maka jelas bahwa ada kebutuhan akan sebuah Application
Programming Interface (API) yang mampu menjembatani, dan memberi solusi
masalah ini (Kurniawan:2010). Salah satu API tersebut adalah DirectShow yang
digunakan dalam pembuatan aplikasi ini. Ada banyak API yang digunakan IDE
non-Microsoft, seperti COM pada Delphi.
Namun dengan makin kompleksnya masalah yang membutuhkan
penanganan dengan ICT, menjadi tidak efisien dan relatif kurang kreatif jika
programmer hanya menggunakan satu jenis API saja, lebih tidak mengena lagi
jika masih menggunakan pemrograman prosedural, karena listing yang begitu
banyak.
Berikut beberapa perbandingan penggunaan API tunggal dan general dan
.NET framework :
1. Dengan logika objektif sama-sama dapat menyentuh persoalan, namun
dengan API tunggal, solusi inovatif biasanya buntu, dan memerlukan
program pihak ketiga. Misalnya kontrol mikrokontroller untuk instrumentasi
humiditas, jika mengandalkan API tunggal programmer hanya dapat
menggunakan satu aplikasi saja (misalnya jika suhu sekian nyalakan kipas
A), jika ingin menambahnya harus menggunakan API lain seperti php-
MySQL (yang sekarang dikritik keamanannya) untuk basis data di web.
Dengan API general cukup satu pemrograman saja, tanpa perlu belajar
sintaks dasar SQL.
2. Untuk kasus motion detection, tanpa menggunakan manajemen memori
otomatis (salah satu fitur .NET), programmer akan kesulitan mendefinisikan
memori yang digunakan, di mana hal tersebut sering mengurangi performa
program.
49
3. Untuk pemrograman yang belum mendukung framework objektif,
komunikasi data harus menggunakan data biner atau heksadesimal, sehingga
tidak hanya harus mempelajari prinsip kerja suatu alat, programmer harus
mengetahui juga batasan data, dan debug-nya tidak efisien. Bahkan dalam
banyak kasus penelitian hanya menghasilkan produk yang “itu-itu saja”
karena inovasi terbentur sulitnya menguasai batasan data alat.
Dalam pengujiannya hipotesis telah memenuhi kaidah penalaran deduktif,
sebagai berikut:
1. Kaidah keacakan : Setidaknya ada satu alternatif mirip peluang
(DirectShow)
2. Riset alternatif lain (WIA:lihat daftar pustaka PCMedia), dan banyak dari
artikel lain.
3. Frekuensi relatif percobaan dengan hasil yang positif, membuktikkan
hipotesis cocok dengan realitas saat ini.
Dapat diambil kesimpulan bahwa :
Semua anggota API Windows sebelumnya terbukti digeneralisasi Microsoft,
atau dapat diringkas dengan pernyataan sebagai berikut :
Standar Tersendiri � API (dimengerti oleh komputer sebagai objek dengan
nama yang sudah ditentukan) yang dapat diatur dengan aplikasi pendukung API
� .NET Framework (API Windows tergeneralisasi) yang dapat diatur dengan
Visual Studio.
Atau dapat dirumuskan dengan bahasa matematis sebagai berikut :
Setiap teori generalisasi yang tentunya bersifat umum, harus sedemikian
rupa susunannya, sehingga hipotesis ditransformasikan ke bentuk yang persis
sama bila peubah-peubah a � a’, atau b � b’ (domain masalah untuk solusi
terdahulu (framework terpisah)), dinyatakan dalam bentuk baru (a, b, … n) � A.
Dalam kaitan ini, huruf dengan tanda aksen (a’, b’, ... n’) menandakan framework
lama yang dipakai untuk pemecahan solusi, sedangkan A merupakan solusi yang
telah digeneralisasi (NET Framework yang mendukung solusi lama, misalnya
DirectShow, berarti kita dapat memakai NET 2.0 atau lebih tinggi).
50
4.4. Asas Manfaat Produk
Dengan capaian kajian kita sejauh ini, kita sudah mendapati bahwa
pemilihan program IDE C# (disertai library tambahannya) dan .NET Framework
terbukti efektif dan efisien dalam perjalanannya, karena selain gratis (minim
modal finansial), kita juga disediakan fitur-fitur yang berimplikasi pada cara
pandang memecahkan masalah dengan ICT yang dapat dibilang mudah. Sehingga
asas manfaat dasar (meminimalkan modal, memaksimalkan hasil yang didapatl)
telah terpenuhi. Tiba pada kajian lanjut (pemasaran, pengembangan, dan lainnya)
sehingga diskursus kita kali ini menjadi kompleks.
Untuk pemasaran sendiri aplikasi ini sejatinya non-komersial, namun
mengingat jumlah pengguna gadget yang ditanam fungsi kamera kian meningkat
dari hari ke hari, terutama di kalangan urban, penulis menyarankan kepada
pengembang aplikasi ini (penulis sendiri menyerahkan hak aplikasi ini kepada
semua yang ingin mengembangkan (freeware open source)) nantinya dapat
membuat aplikasi motion detection untuk suatu gadget misalnya iPod sehingga
kita dapat menjualnya secara online, atau menawarkan kerjasama bundling
dengan produk mereka.
BAB V
PENUTUP
5.1. Simpulan
Setelah melakukan perancangan dan implementasi pada sistem dapat
disimpulkan bahwa :
1. Webcam dapat digunakan sebagai sensor untuk mendeteksi gerakan, dengan
bantuan aplikasi .NET yang terintegrasi (komunikasi data objektif).
2. Penggunaan webcam sebagai input mengakibatkan keterbatasan pada
sistem, seperti warna tersebut tidak boleh terlalu menyerupai background,
dan jarak efektif yang cukup pendek karena citra kabur.
3. Sebuah ide menjadi penemuan hanya ketika kita menunjukkan bahwa ide
tersebut dapat bekerja. Pembuatan rencana yang sistematis-bekerja dengan
abstraksi dan diakhiri dengan uji, pada pembuatan aplikasi komputer sangat
membantu programmer.
4. Integrasi Visual C# 2008 Express Edition – Library tambahan dari mitov
(www.mitov.com) dapat menjadi solusi pembuatan dan pengembangan
aplikasi yang powerfull. Dapat dilihat pada situsnya yang menyediakan
banyak library yang dapat dimanfaatkan membuat aplikasi kaya guna, dari
instrumentasi digital, signal processing, hingga penghitungan kompleks
berbasis Artificial Intellegence dapat dibuat dengan integrasi ini dengan
relatif mudah. Hal ini karena Microsoft melalui NET Framework membuat
terobosan dengan mengintegrasikan banyak API yang telah mereka rilis.
5. Menurut hemat penulis, aplikasi motion detection ini sudah cukup efektif-
efisien, karena selain dapat dibuat dengan modal yang relatif sedikit (cukup
memerlukan webcam, karena Visual C# dan library tambahannya gratis),
dibanding membeli kamera pendeteksi gerakan otomatis yang relatif mahal,
kita masih dapat membuat sesuai keinginan kita selama potensi (kita dan
teknologi) masih mendukung, misalnya sensitifitas yang dapat diatur pada
aplikasi motion detection buatan penulis.
52
5.2. Saran
Bertolak pada semua poin simpulan di atas, penulis menyarankan supaya
pembaca mengembangkan alter ego (potensi diri) masing-masing seluas-luasnya,
tidak hanya dalam ICT, tapi juga ilmu-ilmu mendasar (matematika (baik aliran
simbolis-logikal-hukum), bahasa (baik era pra-modern, modern, postmodern), seni
(baik filsafati-praktik), ilmu alam, dan humaniora), karena dalam proses kreatif
(saturasi (kritis awal, mimpi) – inkubasi (riset) – iluminasi (pencerahan)), semua
dapat dipetakan dengan poin-poin simpulan di atas.
Mengenai ide pengembangan, C# dan library tambahannya (khusunya dari
www.mitov.com) masih memiliki ranah yang luar biasa luas, karena seperti sudah
disinggung pada manfaat penelitian, proyek TA penulis ini memang sengaja
dibuat relatif mendasar yang mudah-mudahan dapat menjadi pintu masuk ke
proyek yang lebih kreatif-inovatif. Khusus untuk pembaca yang tertarik
mengkomersialkan produknya, dalam buku putih Kementerian Ristek dan
Teknologi (dapat diunduh di www.ristek.go.id), mantan Menristek Kusmayanto
Kadiman telah mencanangkan program resolusi riset Indonesia dengan sinergi
ABG (Academic-Business-Government), di mana kita dapat mengajukan
penelitian kita ke bagian akademik yang berwenang di UNS, yang akan
membantu kita dalam langkah sinergis lanjutnya (Government-Business).
Untuk yang ingin menjadi penemu lepas (independent), dapat membaca
referensi lebih lanjut, salah satunya : Steven Caney – Buku Tentang Penciptaan,
terbitan Karisma Publishing.
DAFTAR PUSTAKA
Buku
Caney, Steven. 2008. Buku Tentang Penciptaan, Karisma Publishing : Tangerang.
Darmawan, Erico. 2009. Pemrograman Dasar C – Java – C#, Penerbit
Informatika : Bandung.
Einstein, Albert. 2005. Relativitas : Teori Umum dan Khusus, Cetakan Pertama,
Kepustakaan Populer Gramedia (KPG) : Jakarta, halaman : 59.
Hariyanto, Bambang. 2007. Esensi-esensi Bahasa Pemrograman Java, Edisi 2,
Cetakan Pertama, Penerbit Informatika : Bandung.
Kurniawan, Dayat. 2010. Aplikasi Elektronika dengan Visual C# 2008 Express
Edition (Menguasai Pembuatan Aplikasi Elektronika Sederhana Berbasis
ATMega 8). Eles Media Komputindo : Jakarta, halaman : 95-103.
Philbin, Tom. 2008. 100 Penciptaan Terbesar Sepanjang Sejarah, Cetakan
Pertama. Karisma Publishing : Tangerang, halaman : 259-262.
Popper, Karl R. 2008. Logika Penemuan Ilmiah, Cetakan Pertama. Pustaka
Pelajar : Yogyakarta.
Pranoto, Eka Dharma. 2007. The Art of Debugging, Cetakan Pertama, Andi Offset
: Yogyakarta.
Majalah dan Tabloid
Hutabarat, Bernaridho Immanuel. 2007. Sistem Olah Data: (Tidak) Asal Usul.
PCMedia edisi 04/2007, halaman 80.
Juhara, Zamrony P. 2010. DirectShow: Mengutak-atik Filter Graph. PCMedia
edisi 02/2010, halaman 199-122
Juhara, Zamrony P. 2010. Pemrograman DirectShow. PCMedia edisi 01/2010 ,
halaman 112-115:
Kurniawan, Agus. 2010. Integrasi Webcam de ngan Aplikasi .NET. PCMedia
05/2010, halaman 126-127:
Redaksi PCMild. 2010. How It Works : Augmented Reality. PCMild edisi
07/2010, halaman 3.
Sarjono, Gunung. 2010. Kinerja Plug n Play. PCMedia edisi 01/2007, halaman
96.
Slide Presentasi (PDF – Impress/Powepoint)
Rahman, Basirudin. 2009. PDF Presentasi Pemrograman .NET, diunduh gratis di
geeks.netindonesia.net sebagai member.
Stephen. 2007. Powerpoint Presentasi Pengantar Teknologi Informasi dan
Telekomunikasi : SMA Negeri 1 Tengaran.
Wely. Slide 2009. Powerpoint Presentasi C# Fundamental, diunduh gratis di
geeks.netindonesia.net sebagai member.
Catatan Kuliah
Palgunadi. 2007. Pengantar Algoritma. Universitas Sebelas Maret : Surakarta.
Seminar
Tim MSDN Institut Teknologi Bandung, Microsoft Innovation Road Trip 2010 :
Sesi Visual Studio, 8 Maret 2010 di Universitas Muhammadiyah
Surakarta.
Wawancara
Dayat Kurniawan, Peneliti Pusat Penelitian Elektronika dan Telekomunikasi,
Lembaga Ilmu Pengetahuan Indonesia (LIPI), melalui e-mail dan SMS :
Internet
Fotografer.net, team, 2007. Survey Alasan Orang Indonesia Membeli Kamera,
diakses 16 April 2007.
Kurniawan, Erick. 2009. OOP dengan C# (Bagian 1-4).
http://mugi.or.id/blogs/erick/default.aspx, diakses : 17 Juni 2009.
MITOV team, 2010. VisionLab Package.
http://turbomirror.com/wikidoc/index.php?title=Package_VisionLabPkg,
diakses 15 Juni 2010.
Setyadi, Gandhi Rahmawan. 2007. Beberapa Hal yang Gua Tahu dari Digital
Photography, http://gandirsetyadi.wordpress.com/2007/11/26/bahan-ii-
beberapa-hal-yang-gua-tahu-dalam-digital-fotografi/, diakses 15 Juni 2010.
Wikipedia Indonesia. 2010. Microsoft Visual Studio Express.
http://id.wikipedia.org/wiki/Microsoft_Visual_Studio_Express, diakses : 16
Juni 2010.
Wikipedia Indonesia. 2010. Antarmuka Pemrograman Aplikasi.
http://id.wikipedia.org/wiki/Antar_Muka_Pemrograman_Aplikasi, diakses :
16 Juni 2010.