• Tidak ada hasil yang ditemukan

Video recording dengan motion detection melalui integrasi webcam - aplikasi .net 160

N/A
N/A
Protected

Academic year: 2017

Membagikan "Video recording dengan motion detection melalui integrasi webcam - aplikasi .net 160"

Copied!
69
0
0

Teks penuh

(1)

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

(2)

Disusun Oleh :

MUHAMMAD MUHSIN DEMOKRAT NIM. M3307054

Laporan Tugas Akhir ini disetujui untuk dipresentasikan pada Sidang Tugas Akhir

tanggal : 21 Juli 2010

Pembimbing

(3)

HALAMAN PENGESAHAN

VIDEO RECORDING DENGAN MOTION DETECTION MELALUI INTEGRASI WEBCAM - APLIKASI .NET

Disusun Oleh : 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

(4)

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.

(5)

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.

(6)

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!”

(7)

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.

(8)

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.

(9)

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

(10)

ABSTRACT... iv

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

(11)

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

(12)

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

(13)

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

(14)
(15)

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

(16)

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;

(17)

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

(18)

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;

(19)

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.

(20)

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

(21)

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?

(22)

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

(23)

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

(24)

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):

(25)

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

(26)

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.

(27)

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

(28)

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

(29)

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

(30)

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

D: .NET 4.0 Bilangan Kompleks,

(31)

17

(32)

18

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

(33)

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.

(34)

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.

(35)

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

(36)

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

(37)

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.

(38)

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.

(39)

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

(40)

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 :

(41)

27

Langkah 6

Akan muncul form Choose Toolbox Items, seperti terlihat pada gambar di bawah ini, klik browse.

Gambar19 : FormChoose 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.

Gambar20 : Lokasi Instalasi VisionLab Langkah 8

(42)

Gambar21 : 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 :

(43)

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

(44)

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

(45)

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 :

(46)

Gambar26 : 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

(47)

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 :

(48)

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

(49)

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

(50)

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;

}

(51)

37

Langkah 14

Klik tombol Start, lalu tuliskan program di bawah ini. Private void button2_Click(object sender,EventArgs e)

{

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(); }

(52)

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

(53)

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

(54)

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

(55)

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

(56)

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

(57)

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

(58)

// BERIKUT ADALAH BARIS MULAI PENJELASAN AKTIVASI

// BERIKUT ADALAH AKHIR DARI PENJELASAN AKTIVASI

}

// BERIKUT ADALAH BARIS MULAI PENJELASAN PENGHENTIAN

else

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

(59)

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

(60)

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;

(61)

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

Gambar

Gambar 5 : Jendela Welcome to Setup
Gambar 7 : Jendela Pilihan Fitur Program
Gambar 9 : Jendela Proses Instalasi
Gambar 11 : Jendela Peringatan VisionLab
+7

Referensi

Dokumen terkait

Berawal dari peranan Telkom tersebut, dapat dijelaskan bahwa peranan Telkom sebagai perusahaan yang bergerak di bidang jasa telekomunikasi di Indonesia begitu strategis guna

Berdasarkan pengertian-pengertian tersebut diatas, maka dapat dinyatakan bahwa kepuasan kerja adalah suatu perasaan senang atau tidak senang terhadap pekerjaanya atau hal-hal

Tanah longsor dapat di bagi enam berdasarkan proses kejadiannya, yaitu: longsoran translasi, longsoran rotasi, pergerakan blok, runtuhan batu, rayapan tanah, dan aliran

Selanjutnya dalam pasal 129 disebutkan bahwa Pendidikan khusus bagi peserta didik berkelainan berfungsi memberikan pelayanan pendidikan bagi peserta didik yang memiliki

Metode yang di usulkan pada penelitian ini adalah metode data mining dengan menggunakan pendekatan algoritma decisison tree, dan dapat diterapkan pada studi kasus

Sejalan dengan uraian tersebut, dengan melihat gejala sosial antara bagian yang satu dengan bagian yang lain tidak dapat dipisahkan (holistik) usaha penulis untuk

Kepeloporan dan ketauladanan Sultan Mahmud Riayat Syah dalam perjuangan f isik melawan Belanda dengan perang gerilya laut dan kegigihan serta kecekalan hati Baginda dalam

Sedangkan pada smoothie apel, tidak terjadi proses penyarian (pembuatan perasan) dan tidak semua bagian buah dapat dihaluskan seperti bila menggunakan juicer karena pisau yang