Bab 2 Landasan Teori
2.1
Interaksi Manusia dan Komputer Menurut Tan & Nijholt (2010), penelitian Interaksi Manusia dan Komputer (IMK) digunakan dalam ilmu pengetahuan ergonomi. Ergonomi adalah ilmu yang mempelajari interaksi antara manusia dengan elemen-elemen lain dalam suatu sistem. Interface yang digunakan terdiri dari keyboard, mouse dan segala hal apapun yang dapat ditampilkan pada layar monitor. Hal tersebut yang disebut Graphical User Interface (GUI). Pada masa sekarang, ketika kita berbicara tentang penelitian IMK kita berbicara tentang interaksi multimodal di lingkungan di mana kita meneliti karakteristik perilaku alami manusia secara umum, daripada melihat interaksi mouse dan keyboard terhadap komputer. Pengetahuan ini diperoleh dari perilaku interaksi kita, perilaku yang dapat diamati dan ditafsirkan dengan menggunakan pengetahuan yang tersedia dan yang dapat bersatu dengan kamera, mikrofon dan sensor. Hal ini memungkinkan lingkungan untuk tidak hanya bersikap reaktif, tetapi juga proaktif, mengantisipasi aktifitas, kebutuhan
dan preferensi
pengguna. Suatu sistem yang baik merupakan suatu sistem yang mudah untuk digunakan (user friendly), yang memperhatikan faktor – faktor yang datang dari manusia. Berikut ini adalah kelima faktor yang sangat penting untuk evaluasi (Shneiderman & Plaisant, 2010) : 9
10
1. Waktu belajar (time to learn) Berapa lama waktu yang dibutuhkan oleh pengguna dalam mempelajari sekumpulan perintah dalam suatu tugas? Dengan kata lain kemudahan dalam mengoperasikan sistem, sehingga pengguna dapat langsung menggunakan sistem tersebut. 2. Kecepatan kinerja (speed of performance) Berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas?. Pengguna menginginkan kecepatan penyajian informasi yang cepat. 3. Tingkat kesalahan (rate of errors by users) Berapa banyak kesalahan dan jenis kesalahan apa saja yang dilakukan oleh pengguna dalam menyelesaikan suatu tugas? Sistem tersebut harus memiliki tingkat kesalahan yang rendah bila sedang digunakan oleh pengguna. 4. Daya ingat (retention over time) Daya ingat berkaitan dengan waktu belajar dan frekuensi penggunaan sistem, semakin sering pengguna menggunakan sistem maka semakin mudah pengguna dalam mengingat sistem tersebut. Sistem juga harus mudah digunakan sehingga pengguna hanya memerlukan waktu belajar yang singkat. 5. Kepuasan subyektif (subjective satisfaction) Bagaimana tingkat kepuasan pengguna terhadap berbagai aspek dari sistem?. Kepuasan subyektif pengguna dapat diketahui dari hasil wawancara atau kuesioner. Menurut Shneiderman dan Plaisant (2010) terdapat Delapan Aturan Emas (Eight Golden Rules) yang dijadikan pedoman dalam perancangan antarmuka pengguna yang baik, yaitu:
11
1. Berusaha untuk konsisten. Bentuk
konsistensi
dalam
perancangan
antarmuka
pengguna
meliputi
penggunaan warna, layout, pemilihan jenis huruf, kapitalisasi, bahasa yang digunakan, dan hal lainnya yang harus konsisten diterapkan secara keseluruhan. 2. Mengenali kebutuhan pengguna yang beragam, baik secara fungsi maupun desain yang digunakan. Mampu membedakan pengguna dari novice sampai pengguna expert,rentang usia, kecacatan yang dimiliki, dan keragaman teknologi mempengaruhi persyaratan yang panduan desain. 3. Memberikan umpan balik (feedback) yang informatif. Untuk setiap aksi yang dilakukan oleh pengguna, harus disediakan umpan balik. Umpan balik tersebut harus dapat memvisualisasikan hasil dari aksi yang telah dilakukan oleh pengguna. 4. Merancang dialog yang memberikan keadaan akhir. Urutan dari setiap aksi haruslah terorganisasi ke dalam suatu kelompok dengan urutan awal, tengah, dan akhir sehingga mudah dimengerti oleh pengguna. Adanya umpan balik dapat memberikan pilihan untuk menyiapkan ke kelompok aksi yang berikutnya. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana. Sistem yang baik harus dapat menghindarkan pengguna dari kesalahan sebelum kesalahan itu terjadi. Contohnya yaitu dengan menggunakan pemilihan combo box dibandingkan dengan textbox, karena textbox dapat meminta jenis inputan ganda seperti karakter atau numerik. Hal ini akan menyebabkan pengguna bingung. Dengan menggunakan combo box, pengguna dapat langsung memilih dari daftar yang disediakan tanpa kebingungan.
12
6. Memungkinkan pembalikan aksi (undo) yang mudah. Sistem harus dapat memungkinkan untuk melakukan pembalikan aksi. Hal ini dapat mengurangi kegelisahan pengguna, karena pengguna mengetahui bahwa kesalahan dapat diperbaiki. Hal ini mendorong pengguna untuk melakukan penjelajahan pilihan yang tidak biasa dipakainya dan pengguna tidak bingung jika mendapatkan pesan kesalahan. 7. Mendukung pusat kendali internal (internal locus of control). Pengguna
yang
sudah
berpengalaman
menginginkan
bahwa
mereka
bertanggungjawab dan menguasai sebuah sistem, maka sistem tersebut harus dapat memberikan respon terhadap setiap aksi yang dilakukan oleh pengguna, karena manusia yang memegang kontrol sistem. 8. Mengurangi beban ingatan jangka pendek. Batasan jangka pendek pemrosesan informasi pada manusia memerlukan tampilan yang sederhana, mengurangi pergerakan window, dan waktu pelatihan yang cukup diberikan untuk kode – kode, hapalan, dan urutan aksi – aksi. 2.2
Graphical User Interface Graphical User Interface (GUI) adalah sebuah antar muka yang merupakan kumpulan teknik dan mekanisme untuk berinteraksi dengan sesuatu (Wilbert O. Galitz, 2007). GUI harus berfokus ke pada user bukan teknologi yang digunakannya, diawali dengan mengerti pengguna itu sendiri karena tujuan GUI adalah mempermudah pengguna, sehingga harus mengetahui siapakah pengguna dan bagaimana dengan karakteristiknya. Lalu selanjutnya harus mengerti pekerjaan pengguna, jangan sampai malah menyulitkan. Dengan begitu akan didapat rancngan GUI yang mempercepat pekerjaan pengguna itu sendiri. Pada
13
saat merancang GUI, harus dibuat secara interaktif dan disertai dengan penjelasan fungsi-fungsi yang harus tertulis dengan jelas. Fungsi harus di utamakan dibandingkan lapisan representasinya, karena jika fungsinya tak jalan maka akan hanya membuang waktu saja dalam membuat GUI. Penggunaan bahasa pun digunakan harus memikirkan dari sisi pengguna , tidak boleh membuat atau menggunakan bahasa yang hanya dimengerti oleh developer-nya sendiri. 2.3
User Experience User Experience (UX) adalah sebuah pengalaman yang dibuat oleh sebuah produk kepada orang-orang sebagai penggunanya didunia nyata (Garret, 2011). UX bukan semata sebuah rantai pekerjaan didalam produk tersebut atau layanan yang menjadi hal utama dalam produk. UX lebih menitik-beratkan
kepada
fungsi diluar produk tersebut ketika bersentuhan langsung atau terdapat kontak dengan pengguna. Interaksi yang dihasilkan ini merupakan pokok dari UX. Sebuah produk yang dibuat memiliki rancangan produk-nya sendiri, yang merupakan daya tarik mata dan terlihat nyaman bila disentuh. Rancangan produk yang baik menghasilkan harapan bahwa produk tersebut akan memiliki fungsi yang baik pula apabila digunakan. Namun, terkadang hal itu tidak terjadi. Masih ada produk yang memiliki tampilan serta rancangan yang menarik tetapi mengecewakan dalam fungsinya atau tidak memberikan kenyamanan terhadap penggunanya. Hal ini lah yang harus dihindari dengan merancang sebuah produk yang disertai dengan penerapan UX sebagai sebuah keluaran produk yang eksplisit.
14
Menurut Garret (2011), sebagai contoh adalah dalam rancangan sebuah mesin pembuat minuman kopi. Estetika desain produk memastikan bahwa tombol-tombol yang digunakan pada mesin pembuat minuman kopi memiliki desain yang elegan dan memiliki teksture. Fungsional desain memastikan tombol tersebut berfungsi dengan aksi yang telah ditentukan. UX desain memastikan aspek lain selain estetika dan fungsional sehingga berada dalam konteksnya. Seperti besar atau tidaknya ukuran tombol yang dipakai mempengaruhi sudut pandang pengguna, penempatan tombol-tombol atau hubungannya terhadap kenyamanan ketika beberapa tombol dipakai pada saat bersamaan. Terdapat element-element dari UX yang menjadi dasar dalam mendesain produk (dalam hal ini adalah software) yang kemudian dapat menciptakan UX yang berkesan (Garret, 2011). 1. The Strategy Plane Kebutuhan pengguna menjadi sebuah tujuan dari produk (software) yang dibuat. Hal ini harus kita pahami, apa yang menjadi keinginan pengguna dan bagaimana hal tersebut berdampak terhadap produk. Tetapi ada hal yang harus dipertimbangkan juga, yaitu apabila terdapat tujuan bisnis yang diusung oleh produk tersebut, harus ada keseimbangan antara keinginan pengguna dengan apa yang menjadi tujuan bisnis produk yang dikembangkan atau dibuat.
15
Gambar 2.1 Tingkatan Plane ( Garret, 2011, p27) 2. The Scope Plane Di sisi fungsi, “the strategy plane” tersebut diterjemahkan ke dalam lingkup melalui penciptaan spesifikasi fungsional, yaitu penjelasan rinci tentang kumpulan fitur dari produk. Di sisi informasi, ruang lingkup mengambil bentuk persyaratan konten, yaitu deskripsi dari elemen berbagai konten yang akan diperlukan. 3. The Structure Plane “The scope plane” diberikan struktur di sisi fungsionalitas melalui rancangan interaksi, di mana kita mendefinisikan bagaimana sistem berperilaku dalam menanggapi pengguna. Untuk sumber daya informasi,
16
struktur adalah arsitektur informasi, yaitu susunan elemen konten untuk memfasilitasi pemahaman manusia. 4. The Skeleton Plane “The skeleton plane” terurai menjadi tiga komponen. Pada kedua sisinya, kita harus menunjuk desain informasi yaitu penyajian informasi dengan cara pemahaman terhadap fasilitas. Untuk fungsi yang berorientasi terhadap produk, “the skeleton plane” juga mencakup desain antarmuka, atau mengatur elemen antarmuka untuk memungkinkan pengguna berinteraksi dengan fungsi dari sistem. Antarmuka untuk sumber daya informasi adalah rancangan navigasi yaitu himpunan elemen layar yang memungkinkan pengguna untuk bergerak melalui arsitektur informasi. 5. The Surface Plane Terlepas dari apakah kita berhadapan dengan produk yang berorientasi terhadap fungsi atau sumber informasi, perhatian di sini adalah sama yaitu pengalaman sensorik yang diciptakan oleh produk yang sudah jadi. 2.4
Proses Pencitraan Suatu gambar terbentuk dari dua dimensi fungsi , f(x,y), di mana x dan y adalah kordinat spasial atau planar, dan amplitudo dari f pada setiap pasangan kordinat (x,y) disebut intensitas atau tingkat abu-abu pada suatu gambar. Pada saat x,y dan nilai amplitudo memiliki nilai, jumlah diskrit, maka gambar tersebut merupakan gambar digital. Pengolahan citra digital mengacu pada pengolahan gambar digital dengan menggunakan komputer digital.
17
Gambar digital itu sendiri pun terdiri dari jumlah elemen yang terbatas, masing-masing elemen memiliki lokasi tertentu dan nilainya sendiri. Hal ini disebut elemen gambar, pels, dan pixel. Pixel adalah istilah yang paling banyak digunakan untuk menunjukkan unsur-unsur gambar digital. Bentuk - bentuk image processing : •
Image acquisition : seperti scaling (memperbesar atau memperkecil gambar).
•
Image enhancement : mempercantik gambar, seperti meningkatkan kontras pada gambar agar terlihat lebih indah.
•
Image restoration : meningkatkan tampilan dari suatu gambar, berbeda dengan enhancement, lebih subjektif, yang berpacu pada matematika atau model probabilistik dari degradasi gambar
•
Color Image Processing : mengubah warna pada tampilan gambar.
•
Wavelets : representasi gambar pada tingkat yang berbeda - beda dari suatu resolusi, yang biasa digunalan kompresi data dan representasi piramid, dan dimana gambar dibagi menjadi area yang lebih kecil.
•
Compression : suatu teknik untuk mengurangi ukuran file pada saat menyimpan gambar, atau bandwith yang dibutuhkan pada saat dikirimkan.
•
Morphological processing : menggunakan tool untuk mengeluarkan komponen suatu gambar yang berguna dalam representasi gambar dan deskripsi dari suatu bentuk.
18
•
Segmentasi : suatu prosedur partisi dari suatu gambar menjadi suatu bagian atau objek. secara umum, segmentasi adalah satu dari pekerjaan yang paling berat dalam digital image processing.
•
Recognition : proses penambahan label pada suatu objek berdasarkan deskripsi.
2.5
Real Time Image Processing Real-time system (Dougherty & Laplante, 1985) adalah respon terhadap suatu event atau aksi yang harus dilakukan pada waktu yang ditentukan, jika tidak ada respon dari sistem tersebut, maka sistem dianggap telah gagal. Dari perspektif image processing , sistem real time imaging system adalah pengambilan gambar secara regular, menganalisa gambar - gambar tersebut untuk mendapatkan suatu data, dan lalu menggunakan data tersebut untuk mengontrol suatu aktifitas.
Semua proses harus terjadi dalam waktu yang
ditentukan (bisa secara frame rate atau tidak). Contoh dari real-time image processing sangat banyak, misal dalam penglihatan mesin, algoritma image processing digunakan untuk inspeksi atau kontrol proses. Beberapa sistem penglihatan digunakan untuk melihat jalur atau mengontrol robot pada saat waktu yang sangat dibutuhkan. Dalam sistem transmisi video, frame yang sudah berhasil diolah harus ditransmisikan dan diperlihatkan pada sequence yang benar dan dengan jitter (perbedaan waktu antara waktu keberangkatan dan kedatangan) yang minimum untuk menghindari kerusakan yang mengakibatkan kualitasnya menurun.
19
Sistem real-time dikategorikan menjadi 2 tipe yaitu hard dan soft real time. Hard real-time system adalah suatu sistem yang dianggap gagal jika keluaran tidak dapat dihasilkan pada waktu yang sudah ditentukan. Soft real-time system adalah sistem yang jika deadline tidak terpenuhi maka akan berdampak mengurangi performanya. Sebagai contoh, sebuah transmisi video melalui internet, jika frame selanjutnya terlambat atau tidak dapat di decode dengan cepat, kualitas video yang dihasilkan memburuk. Sistem tersebut adalah sistem soft real-time, karena jika masih belum mencapai deadline, dan sebuah keluaran masih dihasilkan, maka sistem tersebut tidak gagal. Dari perspektif proses sinyal, real time dapat berarti bahwa gambar yang diproses harus selesai sebelum gambar yang selanjutnya datang (Kehtarnavaz & Gamadia, 2006). Untuk proses video, ini berarti total proses per-pixel harus diselesaikan dalam waku pixel sample. Dan tentu, tidak semua pixel dapat selesai sebelum pixel selanjutnya datang, karena banyak data dari hasil operasi proses gambar di dapatkan dari banyaknya pixel yang keluar. Bagaimanapun juga, hal ini menyediakan batasan pada kecepatan proses, termasuk juga segala pixel yang tersimpan sementara yang akan digunakan selanjutnya (Kehtarnavaz dan Gamadia, 2006). Sebuah sistem yang bukan real-time mungkin memiliki komponen yang real-time. Sebagai contoh, interface pada sebuah kamera, sebuah sistem gambar harus melakukan sesuatu terhadap setiap pixel yang dihasilkan oleh sebuah kamera, dengan kemungkinan untuk langsung di proses ataupun juga disimpan ke dalam frame buffer, sebelum pixel selanjutnya datang. Jika tidak, maka data pada pixel tersebut dapat hilang, hal ini dapat terjadi pada proses soft real-time
20
ataupun hard real-time tergantung pada konteksnya. Pixel yang hilang tersebut dapat mengakibatkan kualitas gambar menjadi berkurang (berpengaruh pada soft real time), hilangnya kualitas dapat berpengaruh buruk pada performa aplikasi gambar (berpengaruh pada hard real time). Demikian pula, pada saat menyediakan pixel untuk tampilan, jika pixel
yang dibutuhkan tidak dapat
disediakan pada waktu yang telah ditentukan, bagian tampilan tersebut akan terlihat kosong. Pada kasus pengambilan image dan tampilan, deadlines terjadi pada sekitar sepuluh nano seconds, membutuhkan komponen yang harus implementasi pada hardware. Kebutuhan algoritma untuk semua proses gambar harus terikat pada eksekusi waktu yang mengimplikasikan setiap operasi yang juga terikat dengan waktu yang telah ditentukan. Karakteristik ini mengatur kelas tertentu pada level algoritma dari real time processing. Khususnya, operasi harus berdasarkan pada algoritma iterasi atau rekursif yang hanya dapat digunakan jika mereka dapat memastikan keberhasilan pada iterasi yang telah ditentukan, untuk segala jenis masukan yang akan dihadapi. Satu pendekatan yang memastikan respon time yang berhasil adalah dengan membuat sistem sinkronisasi gambar, seperti sistem yang dijadwalkan setiap operasi atau langkah untuk mengeksekusi pada waktu tertentu. Hal ini cocok jika masukan terjadi pada interval biasa atau yang sudah dipastikan, sebagai contohnya, frame yang berhasil dari sebuah kamera video.
Namun, sistem
sinkronisasi kurang handal jika digunakan pada saat terjadi acak, khususnya pada saat waktu sangat minim antara kejadian yang kurang dari waktu proses untuk setiap kejadian.
21
Ada dua cara untuk mengatasi permasalahan ini. Cara pertama
adalah
dengan membatasi semua proses pada saat waktu antara item yang berhasil dikirim pada posisi inspeksi, secara efektif menyediakan batasan real-time yang lebih ketat. Jika batasan waktu yang baru tidak dapat menghasilkan hasil yang baik, maka cara lainya adalah dengan menyebarkan atau mendistribusikan eksekusi pada beberapa processor atau bisa dibilang di proses secara paralel, untuk menjaga batasan waktu yang sudah ditentukan. Hal ini membuat waktu yang ditentukan menjadi terjaga, dengan menambah throughput maka waktu dapat ditentukan sesuai dengan yang diinginkan. Kesalahpahaman umum tentang sistem real time dan sistem real time imaging, biasanya membutuhkan kecepatan yang cepat atau performa yang tinggi (Dougherty dan Laplante, 1989). Waktu respon yang ditentukan berpengaruh pada aplikasi dan diutamakan pada proses pokok untuk mengaplikasikan proses gambar. Contohnya, kamera monitor yang memonitori pasir pantai dalam sehari ataupun bisa dalam seminggu. Aplikasi tersebut mungkin saja tak membutuhkan speed yang cepat, real time atau tidak real time membutuhkan performa komputasi yang tinggi yang bergantung pada kompleksitas algoritma. Kebalikanya, aplikasi gambar yang membutuhkan performa komputasi yang tinggi mungkin saja tak harus real time (sebagai contoh, algoritma rekontruksi iterasi kompleks). 2.5.1
Parallelism Untuk mempercepat komputasi image process dapat dilakukan secara paralel dan algoritma yang di implementasi dalam paralel harus signifikan. Proses pencitraan dapat di proses secara paralel, khususnya
22
pada level rendah yang berada pada pyramid processing. Pararellisme dapat dibentuk dalam beberapa bentuk. Secara virtual semua algoritma proses pencitraan terdiri dari sekuensial proses operasi citra. Ini adalah bentuk dari temporal parallelism.
Struktur
tersebut
menyarankan
untuk
menggunakan
processor yang terpisah untuk setiap operasi, seperti yang terlihat pada gambar 2.1 yang disebut arsitektur pipeline. Struktur ini bekerja seperti barisan produk di dalam data yang berjalan melewati setiap tahap pada saat
berjalan.
Setiap
processor
mengaplikasikan
prosesnya
dan
mengirimkan hasilnya ke tahap selanjutnya. Jika setiap prosesor yang sukses harus menunggu sampai processor sebelumnya menyelesaikan prosesnya, pengaturan ini tidak mengurangi total waktu proses. atau waktu respon. Namun, throughut dapat menambah, karena pada saat processor kedua bekerja pada keluaran dari operasi satu, processor satu dapat memulai memproses citra atau gambar selanjutnya.
Gambar 2.2 Temporal parallelism di eksploitasi menggunakan prosesor pipeline (Bailey, 2011, p15) Banyak pararelisme berada dalam operasi algoritma berbentuk perulangan. Perulangan yang paling luar didalam setiap operasi biasanya iterasi pada pixel di dalam image, karena banyak operasi melakukan
23
fungsi yang sama pada pixel yang banyak. Ini adalah spatial parallelism, yang
dapat
di
eksploitasi
dengan
mempartisi
gambarnya
dan
menggunakan prosesor yang terpisah untuk melakukan operasi pada setiap operasi (Bailey, 2011). Skema partisi umum adalah membagi gambar menjadi blok baris, blok kolom dan blok persegi, seperti yang di ilustrasikan pada gambar 2.3. Untuk proses video, urutan gambar mungkin juga di partisi tepat waktu, dengan menandakan frame yang telah berhasil ke processor yang terpisah (Downton & Crookes, 1998).
Gambar 2.3 Spatial Parallelism dieksploitasi dengan cara mempartisi gambarnya (Bailey, 2011, p16) Pada kasus yang ekstrim, processor terpisah mungkin dialokasi untuk setiap pixel didalam gambar (sebagai contohnya MPP; Batcher, 1980). Mendedikasikan processor untuk setiap pixel dapat membuat algoritma menjadi lebih efisien. Sebagai contoh, menyaring gambar mungkin dapat dilakukan dengan clock cycle yang sedikit. Namun, satu masalah dengan paralellisme adalah membutuhkan pendistribusian data gambar ke dan dari setiap processor. Banyak algoritma untuk parallel
24
processor yang sangat banyak berasumsi bahwa data sudah siap pada awalnya. Yang harus diketahui pada saat mempartisi gambar adalah untuk mengurangi
informasi
antara
processor,
yang
sesuai
untuk
meminimalisasikan komunikasi antara partisi yang berbeda. Untuk proses gambar pada tingkat yang rendah, meningkatkan performa tergantung pada jumlah processor yang ada. Namun, performa akan berkurang sebagai hasil dari komunikasi overhead atau konten pada saat membagi sumberdaya bersama. Karena itu, setiap processor harus memiliki memory local untuk mengurangi segala tundaan yang bersangkutan dengan contention pada memory global. Partisi sangat menguntungkan pada saat operasi hanya memerlukan data dari daerah lokal, dimana lokal tergantung pada batasan partisi. Jika operasi dilakukan di dalam daerah yang identik, ini mengarah kepada SIMD (single instruction, multiple data) arsitektur proses parallel menurut Flynn's taxonomy (Flynn,1972). Dengan bebrapa operasi level menengah, waktu proses untuk setiap partisi mungkin akan sangat berpengaruh pada isi dari gambar yang berada pada bagian tersebut. Strategi partisi akan lebih kurang efisien dalam hal ini karena performa kasus terburuk harus di perbolehkan untuk pada saat mengalokasi partisi kepada processor. Sebagai hasilnya, banyak processor yang hanya menunggu menghabiskan waktu. Dalam kasus tersebut, performa yang lebih baik hanya dapat didapatkan dengan menambahkan partisi dibandingkan processor, dan menggunakan processor farm approach (Downton dan Crookes, 1998). Lalu untuk
25
setiap partisi akan dialokasi secara dinamis kepada processor yang tersedia. Dan lagi, ini penting untuk meminimalisasikan komunikasi antara processor. Untuk operasi pengolahan citra tingkat tinggi, data tidak lagi berbasis pencitraan (gambar). Namun, partisi data metode ini masih dapat dimanfaatkan dengan menetapkan sebuah pemisahan data secara struktur, region, atau objek ke processor yang terpisah. Tugas seperti itu umumnya memerlukan pendekatan partisi dinamis dari sebuah processor farm. 2.6 Pengertian Rekayasa Perangkat Lunak Menurut Pressman (2010,p13), rekayasa perangkat lunak adalah sebuah teknologi yang terdiri dari lapisan (layer), yaitu : 1. Fokus pada kualitas (A Quality Focus) Pendekatan teknik apapun (termasuk rekayasa perangkat lunak) harus bersandar pada komitmen organisasi terhadap suatu mutu. Total kualitas manajemen dan filosofi yang sama mendorong budaya perbaikan proses yang berkesinambungan dan budaya inilah yang pada akhirnya mengarah pada pengembangan pendekatan yang semakin lebih dewasa untuk rekayasa perangkat lunak. Pondasi yang mendukung rekayasa perangkat lunak terfokus pada kualitas. 2. Proses (Process) Dasar untuk rekayasa perangkat lunak adalah lapisan proses. Proses pada rekayasa perangkat lunak adalah perekat yang memegang teknologi lapisan (layer) bersama - sama dan memungkinkan pengembangan perangkat lunak yang rasional dan tepat waktu. Proses mendefinisikan
26
sebuah kerangka kerja untuk satu set key process areas (KPAs) yang harus ditetapkan untuk penyampaian (delivery) yang efektif dari teknologi rekayasa perangkat lunak. Key process areas membentuk dasar bagi kontrol manajemen proyek perangkat lunak dan menetapkan konteks metode-metode teknis mana yang diterapkan, produk kerja (model, dokumen, data, laporan, form, dll) yang diproduksi, milestone yang ditetapkan, kualitas terjamin, dan perubahan yang dikelola dengan baik. 3. Metode (Method) Metode rekayasa perangkat lunak menyediakan teknis "bagaimana" untuk membangun perangkat lunak. Metode mencakup tugas yang mencakup analisis kebutuhan (requirement analysis), memodelkan desain (design modelling), program konstruksi (program construction), pengujian (testing), dan dukungan (support). 4. Alat bantu (Tools) Alat bantu otomatis atau semi-otomatis menyediakan dukungan untuk proses dan metode ketika alat-alat diintegrasikan sehingga informasi yang dibuat oleh salah satu alat dapat digunakan oleh alat lainya, sebuah sistem untuk mendukung pengembangan perangkat lunak, yang disebut Computer-Aided Software Engineering (CASE) (Pressman, 2010,p14).
27
Gambar 2.4 Lapisan Rekayasa Perangkat Lunak (Pressman, 2010, p14) 2.6.1
Kerangka Proses (Process Framework) Sebuah kerangka proses (process framework) menetapkan dasar bagi proses perangkat lunak yang lengkap dengan mengidentifikasi sejumlah kecil aktivitas kerangka kerja yang berlaku untuk semua proyek perangkat lunak, tanpa memandang ukuran atau kompleksitas. Selain itu, kerangka proses mencakup serangkaian kegiatan yang berlaku di seluruh proses perangkat lunak. Berikut kerangka proses (process framework) yang berlaku untuk sebagian besar proses perangkat lunak : 1. Communication Aktivitas kerangka kerja ini melibatkan komunikasi dan kolaborasi dengan pelanggan (dan stakeholder lainya) dan meliputi persyaratan pengumpulan dan kegiatan terkait lainya.
28
2. Planning Aktivitas kerangka kerja ini menetapkan suatu rencana untuk rekayasa perangkat lunak yang menggambarkan tugastugas teknis yang akan dilakukan, resiko yang mungkin, sumber daya yang akan dibutuhkan, pekerjaan produk yang harus dihasikan, dan jadwal kerja. 3. Modeling Aktivitas kerangka kerja ini meliputi pembuatan model yang memungkinkan pengembang (developer) dan client untuk lebih memahami kebutuhan perangkat lunak (software requirement) dan desain untuk pencapaian requirement tersebut. 4. Construction Aktivitas kerangka kerja ini meliputi proses pembuatan code pemograman. Penerjemahaan transaksi yang diminta dari kebutuhan aplikasi ke dalam coding atau pengkodean dilakukan disini. Aktivitas inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu aplikasi, artinya penggunaan komputer akan dimaksimalkan dalam tahapan ini. Dalam tahapan ini pun dilakukan testing terhadap code pemograman serta sistem yang telah dibuat tadi.
29
5. Deployment Perangkat lunak (sebagai entitas lengkap atau selesai sebagian) diberikan kepada client dimana client yang melakukan evaluasi dan memberikan umpan balik berdasarkan hasil evaluasi. 2.6.2
Model Proses Waterfall Menurut Pressman (2010,p39), model proses Waterfall, yang juga dikenal dengan Classic Life Cycle, adalah model proses yang sistematis, pendekatan yang berurutan dalam pengembangan perangkat lunak yang diawali dengan spesifikasi kebutuhan-kebutuhan (requirement) client dan akan melalui perencanaan (planning), pemodelan (modeling), konstruksi (contruction), dan deployment,
yang berpuncak pada penyelesaian
perangkat lunak. Waterfall model biasanya digunakan oleh organisasi yang aktifitas pengembanganya dilakukan secara sekuensial. Dengan menyelesaikan satu fase aktifitas dapat dilanjutkan ke fase berikutnya. Model waterfall menjadi model yang sering digukan untuk pengembangan saat ini. Tetapi karena ketidak fleksibilitas dalam beradaptasi dalam mengganti requirement atau knowledge, hal itu dilakukan pada tahap selanjutnya yaitu, pada tahap pengembangan, dan juga desain yang buruk yang dilakukan pada awal pengembangan, perubahan untuk memperbaikinya dipisahkan pada tahap-tahap kegiatan selanjutnya. Pada model waterfall yang ketat, sulit untuk memperbaiki kesalahan, jika hal tersebut sudah melewati fase aktifitasnya.
30
Banyak variasi dari model waterfall, misalkan, model waterfall dengan tambahan feedback. Tetap saja bergerak secara sekuensial tetapi dapat juga melakukan komunikasi backward (contohnya : dari aktifitas implementasi ke aktifitas disain) dengan itu model waterfall menjadi lebih fleksibel.
Gambar 2.5 Waterfall Model (Pressman,2010,p39) 2.7
Unified Modeling Language Unified Modeling Language (UML) adalah sekumpulan pemodelan konvensi yang digunakan untuk menentukan atau menggambarkan sebuah sistem perangkat lunak dalam kaitannya dengan objek (Whitten & Bentley, 2007). UML dapat juga diartikan sebuah grafik standar yang digunakan untuk memodelkan perangkat lunak berbasis objek. UML pertama kali dikembangkan pada pertengahan tahun 1990an dengan kerjasama antara James Rumbaugh, Grady Booch dan Ivar Jacobson, yang masing-masing telah mengembangkan notasi mereka sendiri di awal tahun 1990an (Lethbride & Laganiere, 2002). UML terdiri dari diagram-diagram, dimana setiap diagram di dalam UML memperlihatkan sistem dari berbagai sudut pandang yang berbeda.
31
a. Use Case Diagram Use case adalah sebuah teknik dalam requirements discovery yang pertama kali diperkenalkan dalam metode Objectory (Jacobson, 2000). Use case saat ini telah menjadi fitur yang mendasar dari UML (Unified Modeling Language).
Gambar 2.4 Use Case Diagram (Sommerville, 2011) Dalam bentuk sederhananya, sebuah use case mengidentifikasi aktor-aktor atau pelaku yang terlibat adalam sebuah interaksi dan memberi nama pada tiaptiap interaksi tersebut (Sommerville, 2011). Hali ini kemudian akan dilengkapi oleh informasi tambahan yang menggambarkan interaksi dengan sistem. Informasi tambahan ini bisa merupakan sebuah deskripsi secara tekstual atau satu atau lebih model grafikal seperti UML sequence atau state charts. Perangkat dari use case menampilkan seluruh kemungkinan interaksi yang terjadi dan kemudian digambarkan dalam sebuah sistem permintaan. Aktor, dalam hal ini manusia atau sebuah sistem, diwakilkan dengan gambar “stick figures”. Kelas-kelas interaksi diwakilkan dengan bentuk gambar eclipse yang
32
diisi penamaan didalamnya. Garis-garis menghubungkan antara aktor dengan interaksi yang ada. Garis dengan tanda panah diujung dapat dipakai untuk menunjukan bagaimana interaksi terjadi. b. Class Diagram Class diagram digunakan saat pengembangan atau pembuatan sebuah model dengan sistem object-oriented untuk menampilkan kelas-kelas dalam sebuah sistem dan hubungan diantara kelas-kelas tersebut (Sommerville, 2011). Class Diagram merupakan gambaran grafik dari sebuah struktur system’s static object, menunjukkan object classes yang menyusun sistem tersebut dan juga hubungan antar object classes (Whitten & Bentley, 2007). Dalam class diagram atribut-atribut dan method-method yang di akses oleh kelas lain didefinisikan oleh visibility. UML menyediakan 3 level dari visibility tersebut, yaitu •
Public – dilambangkan dengan simbol ‘+’.
•
Protected – dilambangkan dengan simbol ‘#’.
•
Private – dilambangkan dengan simbol ‘-‘. Atribut public dapat diakses dan method public dapat dipanggil oleh method
lain oleh class lainnya. Atribut protected dapat di akses dan method protected dapat dipanggil oleh method lain di class dimana atribut dan method didefinisikan dan di subclass dari class tersebut. Atribut private dapat diakses dan method private dapat dipanggil oleh method lain yang didefinisikan pada class itu sendiri (Whitten & Bentley, 2007).
33
Hubungan-hubungan yang ada dalam class diagram : 1. Association and Multiplicity Association merupakan hubungan yang menyatakan apa yang perlu diketahui suatu objek terhadap lainnya. Sedangkan kalau multiplicity adalah yang mengatur association. 2. Generalization/Specialization Merupakan hubungan yang terdiri dari supertype classes dan subtype classes. Kalau supertype classes memiliki atribut-atribut yang umum sedangkan kalau subtype classes memiliki atribut-atribut yang khusus dan juga mewarisi atribut dari supertype class-nya 3. Aggregation/Composition Merupakan sebuah hubungan unik dimana suatu objek merupakan bagian dari objek yang lain. Bersifat asimetris, yaitu bila objek A merupakan bagian dari objek B maka tidak sebaliknya.
Gambar 2.5 Contoh Class diagram dengan hubungannya (Sumber: http://sourcemaking.com/uml/modeling-it-systems/structural-view/classdiagram)
34
c. Activity Diagram Activity diagram merupakan diagram yang dapat digunakan secara grafik menggambarkan flow dari proses bisnis, langkah – langkah dari sebuah use case atau logika dari sebuah object behavior (method) (Whitten & Bentley, 2007).
35
Gambar 2.6. Activity diagram (Whitten & Bentley, 2007)
36
d. System Sequence Diagram System Sequence Diagram adalah diagram yang menggambarkan interaksi antara aktor dan sistem untuk skenario use case. Namun belum termasuk analisis terhadap tiap object classes. Untuk sekarang masih berpikir sistem sebagai keseluruhan (Whitten & Bentley, 2007). Gambar 2.7 merupakan contoh dari sistem sequence diagram. Berikut ini adalah penjelasan dari notasi-notasi yang dipakai dalam diagram tersebut: 1. Aktor – aktor berinteraksi dengan user interface yang ditampilkan dengan simbol aktor user case. 2. Interface class – kotak mengindikasikan kode class user interface. Untuk memastikan agar tidak terjadi kekeliruan, maka <
> dituliskan. Titik dua merupakan notasi standar sequence diagram untuk mengindikasikan sebuah instance yang berjalan dalam sistem. 3. Controller class – setiap use case pasti memiliki satu atau lebih class controller, digambarkan dengan notasi yang sama dengan interface class, dan diberikan tulisan <>. 4.
Entity class – tambahkan boks-boks untuk setiap entity yang membutuhkan untuk berkolaborasi dalam langkah-langkah sequence. Titik dua menunjukkan instance objek.
5. Input messages – panah horizontal dari aktor ke sistem mengindikasikan message inputs. 6. Activation bars – bar yang diset di atas lifelines mengindikasikan periode waktu ketika participant aktif dalam interaksi.
37
7. Output messages – panah horizontal dari sistem ke aktor ditunjukkan sebagai garis putus-putus. 8. Self call – sebuah object dapat memanggil method-nya sendiri. 9. Frame – untuk mengindikasikan satu atau lebih message merupakan langkah optional, atau dapat berupa loop yang berarti controller dapat melakukan loop melalui item tersebut.
Gambar 2.7. Contoh system sequence diagram (Whitten & Bentley, 2007) 2.8
Pengertian Screen Sharing Screen sharing adalah proses menyebarkan isi dari salah satu layar ke layar lainya. Screen sharing berguna pada saat seseorang ingin memberikan ide, mendemonstrasikan produk baru atau memperlihatkan sebuah website pada saat
38
pertemuan berlangsung. Screen sharing yang terjadi biasanya menyebarkan seluruh tampilan yang ada, tetapi bisa juga hanya menyebarkan sebagian layar dari layar pengirim, hal ini dikarenakan ada kemungkinan beberapa bagian dari layar tersebut merupkan suatu privasi dan tidak dibuat untuk diperlihatkan kepada orang lain (Kendauli, 2011). 2.9
Qt Qt adalah sebuah cross-platform, grafis, toolkit untuk pengembangan aplikasi yang memungkinkan untuk menyusun dan menjalankan aplikasi-aplikasi di Windows, Mac OS X, Linux dan merek-merek lainnya dari Unix (Thelin, 2007). Qt dikembangkan oleh Trolltech dan menjadi fondasi untuk K Desktop Environment (KDE), selain juga telah dipergunakan dalam berbagai aplikasi komersial. Qt digolongkan sebagai software open source karena dilisensi dual: dengan General Public License (GPL) dan Qt Public License (QPL). Qt dirancang untuk pengembangan aplikasi dengan C++. Oleh karenanya, Qt berisi sekumpulan kelas-kelas yang tinggal dimanfaatkan saja, mulai dari urusan antarmuka (user interface), operasi input ouput, networking, timer, template library, dan lain-lain. Qt mendukung penuh Unicode (mulai versi 2.0) sehingga internationalization (I18N) dan encoding teks bukan menjadi masalah. Walaupun merupakan free software, Qt terbukti stabil dan lengkap. Dibandingkan toolkit lain, Qt juga mudah untuk dipelajari dan dipersenjatai dengan dokumentasi dan tutorial yang ekstensif dan rinci. Qt dirancang cocok untuk digunakan di lingkungan Unix, oleh karena itu seharusnya tidak akan ditemukan hambatan dalam proses kompilasi (Hidayat, 2003).
39
2.9.1
Qt Quick Qt Quick adalah sebuah deklaratif pemograman yang terdiri dari Qt Meta object Language (QML), komponen dasar, dan terikat dengan JavaScript dan C++ ( Rischpater & Zucker, 2010). Pengembangan Qt Quick ini berdasarkan atas alasan untuk mengatasi hambatan dalam mempelajari API yang ada, sehingga memudahkan pengembang dan pembuat aplikasi dalam membuat aplikasinya. Qt Quick memiliki pendekatan yang berbeda terhadap user interface dibandingkan Qt dengan C++. Qt Quick menggunakan QML, sebuah bahasa yang mirip JavaScript untuk membentuk interface yang diinginkan.
2.9.2
QML QML adalah bahasa pemograman yang deklaratif. Objek dari user interface dideklarasikan dalam pemograman ini. Dalam C++ dengan Qt, untuk menggambar objek kotak (rectangle) yang baru digunakan pseudocode seperti ini (Rischpater & Zucker, 2010): QRect rect(0, 0, 32, 32); QPainter painter; painter.setBrush(QBrush(Qt::red)); painter.drawRect(rect);
dalam QML, ditulis secara lebih sederhana : import QtQuick 1.0 Rectangle {
40
height:200 width: 200 color: "red" } Penulisan dalam QML tersebut menjabarkan spesifikasi dari objek kotak (rectangle) berupa tinggi, lebar dan warna. Spesifikasi tersebut merupakan default properties dari objek kotak (rectangle). QML pun bisa berisi script, seperti contoh dibawah ini : import QtQuick 1.0 Item { width: 200 height: 100
Text { id: label text: "Click Me" color: "black" anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter font { family: "Helvetica"; pixelSize: 12; bold: true } } MouseArea { anchors.fill: parent
41
onClicked: { label.text = "Hello World" } } } Seperti yang terlihat, QML bersifat deklaratif. Dengan sintaks berdasarkan JavaScript, QML memberikan sebuah sintaks yang singkat untuk menentukan tree dari objek beserta properties-nya. 2.9.3
C++ dengan QML QML meskipun merupakan powerful environment dalam Qt, namun C++ masih tetap bisa digunakan dalam pengembangan Qt. Contohnya, interaksi interface dengan platform enablers seperti QtDBus di MeeGo yang masih membutuhkan C++ dalam pengembangannya, meskipun UI yang dipakai keseluruhan menggunakan QML.
2.10
Jaringan Komputer Jaringan komputer digunakan untuk membuat pekerjaan serta komunikasi lebih efisien. Jaringan komputer menghubungkan antara komputer dengan komputer, tetapi dapat juga menghubungkan perangkat lain seperti printer, removable media drives, scanner, dan perangkat lainnya. Kemampuan ini membuat sebuah resources baik itu berupa data atau perangkat bisa digunakan oleh banyak komputer sehingga mengurangi jumlah perangkat atau sumber data yang digunakan. Hal ini lah yang menjadi dasar ide dari dibuatnya jaringan komputer, untuk menghubungkan sumber resources yang dibutuhkan ke pemakainya (Ciccarelli, Faulkner, Fitzgerald, Dennis, Groth, & Skandier, 2013).
42
Manfaat yang akan diperoleh dengan membuat jaringan komputer antara lain, yaitu •
Memberikan kesempatan kepada pengguna komputer untuk mempergunakan sumber daya secara bersama-sama, seperti penggunaan printer maupun memakai koneksi internet bersama.
•
Optimalisasi pemakaian perangkat sehingga tercapainya efisiensi seperti tidak perlunya masing-masing komputer dilengkapi dengan printer dikarenakan adanya jaringan sehingga 2 (dua) atau lebih komputer dapat mempergunakan 1 (satu) printer.
•
Komunikasi antar sistem operasi yang berbeda sehingga tidak perlu dalam sebuah jaringan komputer semuanya harus memakai sistem operasi yang sama. Adapun manfaat yang dapat diperoleh dengan adanya jaringan, yaitu sebagai berikut :
•
Jaringan memungkinkan manajemen sumberdaya efisien.
•
Jaringan membantu mempertahankan informasi agar tetap andal dan up to date.
•
Jaringan membantu mempercepat proses berbagi data.
•
Jaringan memungkinkan kelompok kerja agar dapat berkomunikasi dengan lebih efisien.
•
Jaringan membantu usaha dalam melayani klien mereka secara lebih efektif. 2.10.1 Komponen Jaringan Jaringan pada umumnya mempunyai 3 dasar komponen perangkat keras yaitu satu atau lebih server atau komputer host (termasuk microcomputer dan mainframe), client, dan sebuah sirkuit atau sistem
43
jaringan yang saling berhubungan untuk bisa berkomunikasi satu sama lain (Ciccarelli et al., 2013).
Gambar 2.8 Contoh sebuah jaringan yang mudah dikenali (Ciccarelli et al., 2013,p8). Server menyimpan data dan client dapat mengakses data tersebut. Server yang digunakan dapat berjumlah lebih dari satu server dan bekerja bersama dalam sebuah jaringan bersama komputer client dalam aktivitasnya. Client berfungsi sebagai perangkat keras untuk input-output yang digunakan oleh pengguna jaringan komputer dalam mengakses berbagai data, software dan sumber resource yang lainnya. Untuk server sendiri tidak selalu membutuhkan perangkat yang khusus didesain sebagai server. Komputer client pada saat ini mampu
44
berperan ganda sebagai client dan server dikarenakan memang didesain dengan perangkat-perangkat yang mendukung. Selain kabel atau jalur transmisi data lainnya dalam sebuah jaringan yang menghubungkan client dan server serta perangkat resources lainnya, terdapat perangkat lainnya yang masing-masing mempunyai fungsi khusus, seperti hub, switch, router, bridges dan gateways.
Gambar 2.9 Contoh Sebuah Jaringan (Ciccarelli et al. ,p10) 2.10.2 Model Jaringan Terdapat dua dasar model jaringan yaitu model client/server dan model peer-to-peer (Ciccarelli et al., 2013) Model client/server adalah sebuah model yang menyerupai model jaringan
mainframe,
satu
atau
lebih
komputer
didesain
untuk
diperuntukan sebagai server yang menyediakan resource, dan sisanya adalah komputer client yang mengkonsumsi resource tersebut. Dalam model client/server ini, pengguna memiliki kontrol terpusat untuk
45
mengontrol keamanan jaringan. Kontrol ini memungkinkan untuk mengatur sistem yang dijalankan dalam sebuah jaringan, serta pengguna tersebut berhak mengatur data-data atau resource yang dimiliki oleh server dalam jaringan tersebut. Tentu saja ini bergantung pada level access yang dimiliki oleh pengguna itu sendiri. Sebagai contoh terdapat client dengan level access pengguna yang hanya bisa membaca resource dan ada client dengan level access bisa menyimpan dan membaca resource. Keuntungan dari client/server : •
Terpusat : resource dan keamanan data terkontrol melalui server.
•
Mempunyai skala : satu atau semua elemen bisa di ganti bergantung pada kebutuhan.
•
Fleksibel : teknologi baru dengan mudah dapat di integrasikan ke dalam sistem.
•
Interoperability : semua komponen (client/jaringan/server) bekerja bersama-sama.
•
Mudah di akses : server dapat di akses dari jauh dan melewati multiple platform. Kerugian dari Client/Server :
•
Harga/biaya : memerlukan investasi awal yang lumayan besar.
•
Perawatan : jaringan besar akan membutuhkan seorang karyawan untuk mengefisienkan operasi
46
Dalam sebuah model jaringan peer-to-peer, resource dari server bisa diakses, tetapi client tidak mempunyai kontrol yang terpusat terhadap jaringan atau resource tersebut. Peer-to-peer disebut juga sebagai workgroup merupakan jaringan dengan desain yang kecil. Microsoft merekomendasikan jaringan ini untuk tidak digunakan lebih dari dua belas node. Dalam sebuah jaringan peer-to-peer, client yang terdapat dalam jaringan berperan sebagai server dan client. Keuntungan dari Peer to Peer : •
Murah, karena tidak memerlukan server.
•
Instalasi mudah di lakukkan. Kerugian dari Peer to Peer :
•
Desentralisasi - tidak ada posisi sentral untuk file dan aplikasi.
•
Keamanan - tidak ada keamanan pada jaringan.
2.10.3 Server dan Client Perbedaan mendasar antara server dan client terletak pada perangkat lunak yang digunakan. Client menggunakan atau menjalankan client operating system. Operating system tersebut memberikan akses ke dalam jaringan dan dalam beberapa versi bisa menjadikan client sebagai sebuah peer server. Contoh client operating system, yaitu Microsoft Windows XP, Windows Vista dan Windows 7 (Ciccarelli et al., 2013). Server mempunyai server operating system atau network operating system yang merupakan operating system yang memungkinkan sebuah komputer menjadi server dan mempunyai manajemen keamanan terpusat.
47
Contoh dari server operating system yang familiar adalah Windows Server System seperti Windows 2003 Server dan Windows Server 2008. 2.10.4 Kategori Jaringan Komputer Local Area Network (LAN), merupakan jaringan internal di dalam sebuah gedung. LAN seringkali digunakan untuk menghubungkan komputer-komputer pribadi dan workstation dalam kantor suatu organisasi, perusahaan atau pabrik-pabrik untuk memakai bersama sumber daya (misalnya printer, media penyimpanan/storage) dan saling bertukar informasi. Metropolitan Area Network (MAN), merupakan versi LAN yang dengan area yang lebih luas dan biasanya menggunakan teknologi yang sama dengan LAN. MAN dapat mencakup kantor-kantor perusahaan yang letaknya berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk keperluan pribadi (swasta) atau umum. MAN mampu menunjang data dan suara, bahkan dapat berhubungan dengan jaringan televisi kabel. Wide Area Network (WAN), jangkauannya mencakup daerah geografis yang luas, seringkali mencakup sebuah negara bahkan benua. WAN terdiri dari kumpulan mesin-mesin yang bertujuan untuk menjalankan program-program (aplikasi) pemakai. Orang yang terhubung ke jaringan sering berharap untuk bisa berkomunikasi dengan orang lain yang terhubung ke jaringan lainnya. Keinginan seperti ini memerlukan hubungan antar jaringan yang seringkali tidak kompatibel dan berbeda. Kumpulan jaringan yang saling terhubung (terinterkoneksi) inilah yang disebut dengan internet.
48
2.11
Bandwidth Bandwidth (lebar pita) adalah
luas atau lebar cakupan frekuensi yang
digunakan oleh sinyal dalam media transmisi. Dalam kerangka ini, bandwidth dapat diartikan sebagai perbedaan antara komponen sinyal frekuensi tinggi dan sinyal frekuensi rendah. Frekuensi sinyal diukur dalam satuan hertz (Hz). Di dalam jaringan komputer (termasuk internet), bandwidth (kecepatan transfer data) yaitu jumlah data yang dapat ditransfer (dikirimkan atau diterima) dari sebuah titik ke titik lain dalam jangka waktu tertentu (pada umumnya dalam detik). Bandwidth ini biasanya dinyatakan dalam ukuran bps (bits per second). Ada kalanya dalam Bps (Bytes per second). Jadi, sebuah modem yang bekerja pada 57.000 bps mempunyai bandwidth dua kali lebih besar daripada modem yang bekerja pada 28.800 bps. Secara umum, koneksi dengan bandwidth yang besar/tinggi memungkinkan pengiriman informasi yang besar seperti pengiriman gambar dalam konferensi video (Maryono & Istiana, 2008). Namun kapasitas bandwidth yang dipakai dalam jaringan tidak selalu dapat mendukung sebuah pengiriman data, terkadang terdapat data yang terlampau besar yang tidak dapat ditampung oleh bandwidth itu sendiri. Maka diperlukan sebuah penghematan terhadap data yang dikirim maupun pembagian bandwidth yang harus diatur. 2.12
Multicast Multicast adalah sebuah teknologi konservasi bandwidth yang khusus didesain untuk mengurangi trafik jaringan yang secara simultan mengirimkan sebuah aliran informasi tunggal yang berpotensi diterima oleh ribuan penerima yang bekerjasama (Joseph & Mulugu, 2011). Komunikasi secara multicast
49
memberikan kemampuan kepada programmer aplikasi untuk membuka atau membuat sebuah socket UDP (User Datagram Protocol) dan mengirimkan potongan paket dalam sekali kirim (Makofske & Almeroth, 2003). Dalam layer transport, multicast hanya bisa bekerja pada UDP. Tidak bekerja pada TCP (Transmission Control Protocol). Hal ini dikarenakan UDP merupakan protokol yang tidak perlu melakukan koneksi terlebih dahulu dengan host,sehingga memungkinkan transmisi secara broadcast atau multicast, tidak seperti TCP (Transport Control Protocol) yang didesain hanya untuk komunikasi point-to-point. Pada dasarnya, UDP tidak memiliki kontrol kongesti, tidak mempunyai pengirim data yang reliable, dan biasa digunakan untuk streaming data dengan bandwidth tinggi seperti audio dan video. Sedangkan TCP memiliki pengiriman yang reliable, mempunyai kontrol kongesti. Namun untuk koneksi secara multicast, UDP lebih menguntungkan untuk dipakai, dikarenakan dalam sebuah streaming audio atau video UDP tidak akan berhenti dan melakukan retransmit terhadap paket data yang hilang. Multicast bekerja dengan cara yang sama seperti televisi dan radio. Jika kita ingin mendengar siaran dari stasiun televisi tertentu, kita memilih frekuensi tertentu tempat siaran televisi tersebut memancar . Hal yang sama terjadi pada multicasting , hanya saja kali ini komputer dibuat hanya mendengar pakat data dengan IP address tertentu yang khusus digunakan untuk keperluan multicasting. Untuk dapat mendengar paket multicast dari server tertentu, komputer penerima memerintahkan card ethernet agar ”mendengarkan” paket dengan IP address tertentu , tempat server memancarkan datanya.
50
Gambar 2.10 Jaringan dengan Multicast Pihak pemancar yang harus mengumumkan terlebih dahulu ada tidaknya siaran ini agar client mengetahui ada tidaknya suatu siaran yg dipancarkan dengan IP address tertentu. Server multicast biasanya mengumumkan jadwal siarannya menggunakan protokol yang dinamakan SDP ( Session Description Protocol). Dengan menggunakan protokol ini , diumumkanlah informasi penting diantaranya : •
Nama dan deskripsi acara,
•
Jadwal acara ini
•
Tipe media yang digunakan ( video, audio, teks )
•
IP address dan nomor port yang digunakan. Informasi ini kemudian di pancarkan menggunakan IP address tertentu (dedicated) yang memang disediakan untuk keperluan ini. Client multicast tinggal mendengarkan informasi ini saja.
51
Setelah mengetahui acara apa saja yang hendak dipancarkan, komputer client kemudian mendaftar ke router multicast yang bersangkutan. Dengan proses pendaftaran ini, multicast router mengetahui ada client di networknya yang berminat mendengarkan siaran tertentu. Proses pendaftaran ini dilakukan melalui protokol yang dinamakan IGMP (Internet Group Management Protocol). 2.13
Broadcast Broadcast merupakan pengiriman pesan ke semua titik jaringan. Broadcast bekerja secara simplex, yaitu membentuk komunikasi antara dua belah pihak dengan sinyal-sinyal dikirim secara satu arah (Misra, Woungang & Misra, 2008). Broadcast membentuk basis dari segala komunikasi pada jaringan ad hoc. Bentuk dari broadcast yang paling sederhana bisa disebut blind flooding. Pada blind flooding, titik mentransmisikan sebuah paket, yang diterima oleh seluruh titik tetangga yang masuk kedalam jarak transmisi. Pada saat menerima paket broadcast, setiap titik menentukan jika data tersebut telah di transmisikan (Misra, Woungang & Misra, 2008). Masalah pada blind flooding : - Redundant Broadcast Terjadi ketika sebuah titik memutuskan untuk rebroadcast sebuah pesan kepada tetangganya, namun semua tetangga telah menerima pesanya. sehingga transmisi menjadi redundan dan tak berguna. - Medium contention Terjadi pada saat titik tetangga menerima broadcast message dan memilih untuk broadcast ulang pesan. Titik - titik ini harus bersaing dengan satu sama lainya untuk mendapatkan broadcast.
52
- Packet collision : karena kurangnya mekanisme back-off, RTS/CTS dialog, dan ketiadaan CD, tabrakan mungkin akan terjadi dan hasilnya pesan dapat hilang atau data rusak 2.13.1 Broadcast Networks Menurut Agarawal & Tayal (2009) : - Sistem Broadcast umumnya dapat mengirimkan data paket ke seluruh tujuan dengan menggunakan kode yang spesial pada address field. Pada saat paket ditransmisikan, paket akan diterima dan diproses oleh setiap mesin pada jaringan . - Jaringan broadcast memiliki satu saluran komunikasi yang di bagi atau digunakan oleh semua mesin pada jaringan. - Beberapa sistem broadcast juga mendukung pada subnet sebuah mesing, yang disebut multicast. - Pada saat menerima paket, mesin memeriksa address field. jika paket ditujukan kepada address tersebut, maka paket di proses, jika tidak paket akan dibuang. 2.14
Toleransi standar loss bandwidth Menurut standar dari ITU-T (International Telecommunication Union Telecommunication Standardization Sector), toleransi untuk tipe paket multimedia yang dibawa menggunakan protokol Real-Time-Protocol (RTP) dengan transport protokol UDP (User Datagram Protocol) berdasarkan QoS untuk layanan multimedia dapat ditunjukan dengan tabel berikut.
53
Tabel 2.1 Tabel Parameter QoS paket video/audio Parameter
Nilai sesuai standard ITU-T
Packet loss
0% - 1% untuk interactive video 0%-2% untuk streming video
2.15
OpenCV Menurut Bradski & Kaebler(2008), OpenCV (Open Source Computer Vision) library adalah suatu open source computer vision library yang tersedia di http://SourceForge.net/projects/opencvlibrary. Library ini di tulis pada C dan C++ dan bekerja pada Linux, Windows, dan Mac OS X. Dan ada pengembangan selanjutnya pada Phyton, Ruby, Matlab, dan bahasa lainya. OpenCV didesain untuk efisiensi pada komputasi dan dengan fokus yang kuat pada realtime aplikasi. OpenCV ditulis dalam bahasa C yang dioptimasi dan mengambil kelebihan dari multicore processor. Salah satu dari tujuan OpenCV adalah untuk mendukung penggunaan sebuah infrastruktur computer vision yang mudah digunakan yang akan membantu orang untuk membangun vision application dengan mutakhir dan cepat. OpenCV library mempunyai lebih dari 500 fungsi yang kebanyakan untuk vision, termasuk factory inspection, medical imaging, keamanan, tampilan pengguna, pengujian kamera, stereo vision dan robotika. Computer vision adalah transformasi data dari kamera diam atau video kedalam bentuk lain atau tampilan lain (Bradski & Kaebler, 2008). Perubahan tersebut dilakukan untuk mendapatkan beberapa hal yang ingin dicapai dalam
54
input data visual yang dilakukan oleh komputer. Input data tersebut bisa merupakan input-an yang tidak berupa data visual,melainkan informasi kontekstual seperti informasi jarak dari komputer ke suatu benda atau berapa meter lebar benda atau adakah orang atau tidak dalam visualisasi yang dilakukan computer vision.