Abstraksi Komunikasi Data dengan DirectShow

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