Abstraksi Percabangan Penggunaan Library Tambahan OOP

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