9
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) :
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 tugas-
tugas 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 tiap-
tiap 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/class-
diagram)
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 <<interface>> 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 <<controller>>.
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.
Top Related