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: