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:
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.
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
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_Clickobject 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_ProcessDataobject
Sender, Mitov.VideoLab.VideoProcessDataEventArgs Args
{ System.Drawing.Bitmap ABitmap = Args.InBuffer.ToBitmap;
pictureBox1.Image = ABitmap; pictureBox1.Image.SaveE: + Convert.ToStringulang + .bmp;
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