1 BAB 2 LANDASAN TEORI. Pada bab ini akan diuraikan landasan teori yang mencakup pengertian dan

Teks penuh

(1)

6 1 BAB 2

LANDASAN TEORI

Pada bab ini akan diuraikan landasan teori yang mencakup pengertian dan konsep tentang: Laser, Computer Vision, dan Optical Flow. Selain itu akan dipaparkan pula Metode Perancangan Program dan Teknologi Pendukung yang digunakan.

2.1 Teori Umum

Teori umum berisi teori-teori pokok yang dijadikan sebagai landasan untuk teori-teori lainnya yang digunakan dalam skripsi ini.

2.1.1 Interaksi Manusia dan Komputer (IMK)

Menurut Ben Shneiderman (2010: 4-5), interaksi manusia komputer adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia.

Sebuah sistem dapat disebut interaktif apabila sistem tersebut dapat berkomunikasi dengan pengguna, dengan tujuan agar sistem dapat berguna bagi pengguna.

Dalam perancangan desain antarmuka (interface) terdapat delapan aturan emas yang perlu diperhatian: (Shneiderman & Plaisant, 2010: 88-89)

1. Berusaha untuk konsisten.

Diperlukan urutan aksi yang konsisten pada situasi yang sama. Konsistensi juga harus diterapkan pada promps, menus, dan layar bantu.

2. Memungkinkan penggunaan yang universal.

Mengenali kebutuhan pengguna yang beragam dari pengguna pemula (novice) sampai pengguna ahli (expert) dengan merancang konten yang beragam, misal

(2)

7

penjelasan untuk pengguna pemula sampai shortcut untuk pengguna yang sudah ahli.

3. Memberikan umpan balik yang informatif.

Untuk setiap tindakan yang dilakukan user, diharapkan adanya umpan balik dari sistem. Untuk tindakan yang sering terjadi dan tidak membutuhkan banyak aksi, umpan balik dapat dibuat sederhana, sedangkan tindakan yang jarang dilakukan dan memerlukan banyak aksi harus lebih ditonjolkan.

4. Merancang dialog yang memberikan penutupan (keadaan akhir).

Urutan aksi yang harus disusun ke dalam kelompok awal, tengah, dan akhir. Suatu umpan balik yang informatif pada akhir pekerjaan sebaiknya dibuat untuk mengindikasikan bahwa pekerjaan tersebut telah selesai dan siap melanjutkan ke aksi berikutnya.

5. Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana. Sistem yang dibuat diharapkan tidak memungkinkan user membuat kesalahan serius. Jika terjadi kesalahan, sistem harus dapat mendeteksi kesalahan tersebut dan menawarkan penanganan kesalahan yang sederhana.

6. Memungkinkan pengembalian aksi yang sebelumnya.

Fitur untuk mengurangi kekhawatiran user karena user tahu bahwa jika ada kesalahan yang dibuat dapat dikembalikan lagi ke aksi sebelumnya.

7. Mendukung pusat kendali internal.

Menjadikan user sebagai yang mengendalikan sistem, bukan yang dikendalikan oleh sistem

8. Mengurangi beban ingatan jangka pendek.

Mengingat keterbatasan manusia dalam pemrosesan informasi dalam jangka pendek, sebuah sistem diharapkan dibuat dengan tampilan sesederhana mungkin,

(3)

beberapa halaman dijadikan satu, frekuensi pergerakan window dikurangi dan harus ada waktu yang cukup bagi user untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaliknya tersedia.

Selain delapan aturan emas (Eight Golden Rules) dalam perancangan desain antarmuka terdapat juga lima faktor manusia terukur yang digunakan untuk mengevaluasi perancangan desain antarmuka, yaitu: (Shneiderman & Plaisant, 2010: 32)

1. Waktu pembelajaran (time to learn).

Berapa lama waktu yang dibutuhkan oleh anggota dari sekelompok komunitas pengguna untuk mempelajari cara menggunakan perintah-perintah yang digunakan untuk menyelesaikan sebuah tugas.

2. Kecepatan kinerja (speed of performance).

Berapa lama waktu yang diperlukan untuk menyelesaikan suatu tugas. 3. Tingkat kesalahan pengguna (rate of errors by users).

Mengukur berapa banyak kesalahan yang terjadi saat aplikasi menyelesaikan suatu tugas. Meskipun waktu untuk membuat dan memperbaiki kesalahan mungkin dimasukan ke dalam kecepatan kinerja, penanganan kesalahan merupakan hal yang penting dalam penggunaan antarmuka dan membutuhkan pembelajaran yang luas.

4. Daya ingat jangka panjang (retention over time).

Bagaimana pengguna menjaga pengetahuan mereka setelah beberapa jam, hari, atau minggu. Daya ingat sering dikaitkan dengan waktu pembelajaran dan biasanya frekuensi penggunaan juga memainkan peran penting.

(4)

9

Tools Methods

Process A Quality Focus

Mengukur sebarapa jauh pengguna menyukai berbagai aspek dari antarmuka pengguna.

2.1.2 Rekayasa Piranti Lunak

Piranti lunak atau software adalah instruksi-instruksi yang jika dijalankan akan menyediakan fitur, fungsi dan performa yang diinginkan, struktur data yang memungkinkan program untuk memanipulasi informasi, dan dokumen yang menyatakan operasi dan kegunaan program (Pressman, 2011: 4).

Rekayasa piranti lunak merupakan bagian penting dalam pembuatan sebuah piranti lunak. Definisi diatas menjelaskan bahwa pendekatan yang digunakan dalam pembuatan piranti lunak harus sistematis, disiplin, dan terukur.

Menurut Roger S. Pressman (2011: 14), rekayasa piranti lunak dapat dikelompokan dalam beberapa lapisan layers, yaitu:

Gambar 2.1 Software engineering layers (Pressman, 2011:14)

Landasan yang mendukung rekayasa piranti lunak adalah fokus terhadap kualitas atau a quality focus.

Dalam rekayasa piranti lunak lapisan a quality focus adalah landasan dari suatu rekayasa piranti lunak, dimana semua proses dalam rekayasa piranti lunak mengacu pada kualitas yang dihasilkan.

Dalam rekayasa piranti lunak lapisan process adalah pondasi dasar yang berfungsi sebagai penghubung lapisan teknologi, pengembangan rasional, dan

(5)

pengembangan piranti lunak yang teratur. Process mendefinisikan kerangka kerja untuk satu set key process areas (KPAs) yang harus dibentuk agar penyampaian teknologi rekayasa piranti lunak dapat berjalan dengan efektif. Key process areas menjadi dasar dalam kontrol manajemen proyek piranti lunak dan menetapkan konteks dimana metode teknis yang diterapkan, pekerjaan produk (model, dokumen, data, laporan, formulir, dan lainnya) dapat diproduksi, diterapkan, dipastikan kualitasnya, dan dikelola dengan baik.

Methods pada rekayasa piranti lunak menyediakan teknis bagaimana membangun sebuah piranti lunak. Methods mencakup array yang luas dari tugas-tugas yang mencakup analisis kebutuhan, desain, kontruksi program, pengujian, dan dukungan. Piranti lunak bergantung pada sekumpulan prinsip dasar yang mengatur setiap area teknologi termasuk aktivitas modeling dan teknik deskriptif lainnya.

Tools pada rekayasa piranti lunak menyediakan dukungan otomatis atau semi-otomatis untuk methods dan process. Ketika tools terintegrasi sehingga informasi yang dihasilkan suatu alat dapat digunakan oleh yang lain, sebuah sistem untuk mendukung pengembangan piranti lunak yang disebut computer-aided software engineering diterapkan. (Pressman, 2011: 13-14).

2.1.3 Unified Modeling Language (UML)

Menurut Whitten dan Bentley (2007: 371), UML versi 2.0 (Unified Modeling Language) adalah sekumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem piranti lunak yang terkait dengan objek.

Berdasarkan perspektif dalam memodelkan suatu sistem, UML dapat dikelompokan menjadi empat kelompok diagram, yaitu: Use case diagram, Activity diagram, Class diagram, dan Sequence diagram.

(6)

11

2.1.3.1 Use Case Diagram

Use case diagram adalah sebuah diagram yang menggambarkan interaksi antara sistem dengan sistem eksternal dengan pengguna. Dengan kata lain, secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem (Whitten & Bentley, 2007: 246).

Use case diagram memiliki dua elemen penting yaitu skenario dan aktor. Skenario adalah suatu urutan langkah-langkah yang menjelaskan interaksi antara user dengan sistem. Aktor adalah segala sesuatu yang berinteraksi denan sistem untuk bertukar informasi (Whitten & Bentley, 2007: 247).

Gambar 2.2 Contoh use case diagram

Dalam use case diagram terdapat hubungan, hubungan yang digunakan dalam use case diagram adalah (2007: 248-250):

1. Association

Association menggambarkan adanya interaksi antara sebuah use case dengan aktor. Association dimodelkan dengan simbol garis dengan, atau tanpa tanda panah. Association dibagi menjadi dua, yaitu bidirectional association dan unidirectional association. Bidirectional association adalah asosiasi yang

(7)

berlaku dua arah, dilambangan dengan garis lurus seperti (2), unidirectional association adalah asosiasi yang berlaku satu arah. Association dengan tanda panah menunjukkan bahwa aktor sebagai inisiator use case tersebut. Sedangkan asosiasi tanpa anak panah menandakan interaksi antara use case dengan aktor penerima.

Gambar 2.3 Contoh asosiasi pada use case diagram 2. Extends

Extends digunakan ketika sebuah use case terdiri dari beberapa tahap sehingga sulit dimengerti. Dengan menggunakan extends, use case akan menghasilkan use case baru yang mewakili fungsi tertentu dari use case awal. Hasil dari extends disebut dengan extended use case.

Gambar 2.4 Extended use case 3. Includes/Uses

Includes digunakan ketika terdapat dua atau lebih use case yang melakukan langkah yang sama. Langkah tersebut akan dipisahkan menjadi use case terpisah yang disebut abstract use case. Abstract use case berfungsi untuk mengurangi redundansi pada use case.

(8)

13

Gambar 2.5 Contoh includes pada use case diagram 4. Depends On

Depends On menunjukkan hubungan keterkaitan antara use case dimana ada use case yang tidak dapat dijalankan jika use case lainnya belum dilakukan.

Gambar 2.6 Contoh hubungan depends on 5. Inheritance

Inheritance digunakan ketika di antara dua atau lebih aktor terdapat langkah yang sama. Inheritance akan membentuk aktor abtrak (abstract actor) yang berfungsi untuk menyederhanakan use case.

(9)

Gambar 2.7 Contoh inheritance dalam use case 2.1.3.2 Activity Diagram

Activity diagram adalah diagram yang secara grafik digunakan untuk menggambarkan rangkaian aliran aktifitas baik proses bisnis, langkah-langkah use case, dan logika perilaku dari objek. Diagram ini digunakan untuk memodelkan action yang akan dilakukan ketika operasi dieksekusi dan memodelkan hasil dari action tersebut (Whitten & Bentley, 2007: 390-391).

(10)

15

Gambar 2.8 Contoh dan notasi activity diagram

Dalam activity diagram terdapat beberapa notasi yang berfungsi untuk mengilustrasikan diagram, yaitu (Whitten & Bentley, 2007: 391):

1. Initial node

Lingkaran dengan warna padat dan utuh yang merepresentasikan awal dari proses.

2. Actions

(11)

3. Flow

Panah dalam diagram yang mengindikasikan perkembangan dalam sebuah action.

4. Decision

Bentuk permata dengan satu flow yang masuk dan dua atau lebih flow yang keluar.Aliran yang keluar ditandai untuk mengidentifikasikan kondisi.

5. Merge

Bentuk permata dengan dua atau lebih flow yang masuk dan satu flow yang keluar. Notasi ini mengkombinasikan flow yang sebelumnya dipisahkan oleh decision kemudian diproses sehingga menjadi satu flow.

6. Fork

Balok hitam dengan satu flow masuk dan dua atau lebih flow keluar. Tindakan pada flow paralel di bawah fork dapat terjadi dalam urutan apapun atau bersamaan.

7. Join

Kotak hitam dengan dua atau lebih flow yang masuk dan satu flow keluar. Tindakan yang masuk ke dalam join harus selesai sebelum proses dilanjutkan. 8. Activity final

Lingkaran dengan warna padat di dalam lingkaran kosong merepresentasikan akhir dari proses.

2.1.3.3 Sequence Diagram

Sequence diagram adalah diagram UML yang memodelkan logika dari sebuah use case dengan cara menggambarkan bagaimana objek berinteraksi satu sama lain. Diagram ini mengilustrasikan bagaimana pesan dikirim dan diterima di antara objek dan dalam sekuen apa (Whitten & Bentley, 2007: 659).

(12)

17

Gambar 2.9 Contoh dan notasi sequence diagram

Dalam activity diagram terdapat beberapa notasi yang berfungsi untuk mengilustrasikan diagram, yaitu (Whitten & Bentley, 2007: 660):

1. Actor

Actor berinteraksi dengan objek kelas interface. 2. Interface class

Interface class adalah kotak yang mengindetifikasikan kode kelas dari tampilan antarmuka.

3. Controller class

Stiap use case akan memiliki satu atau lebih controller classes, digambar dengan notasi yang sama dengan interface class dan diberi tanda <<controller>>.

4. Entity classes

Entity classes adalah kotak tambahan untuk setiap kesatuan yang membutuhkan kolaborasi dalam tahap-tahap sequence.

5. Messages

(13)

6. Activation bars

Activation bars adalah kotak yang berfungsi untuk mengidentifikasikan waktu keberadaan dari setiap objek yang ada.

7. Return messages

Return messages adalah jawaban atas pesan yang disampaikan oleh suatu objek. 8. Self-call

Self-call adalah sebuah objek yang dapat mengirimkan pesan ke objek itu sendiri.

9. Frame

Frame digunakan untuk menandakan area pada diagram yang mengalami perulangan (looping), mengalami seleksi (alternative), atau memiliki sebuah ketentuan (optional)

2.1.3.4 Class Diagram

Class diagram adalah sebuah diagram yang menggambarkan struktur objek statis dari suatu sistem. Diagram ini menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga yang menghubungkan antar kelas objek tersebut (Whitten & Bentley, 2007: 400).

(14)

19

Gambar 2.10 Contoh class diagram Notasi-notasi yang terdapat di class diagram, yaitu: 1. Class

Class adalah rancangan dari suatu objek, dimana objek yang diciptakan dari suatu class akan memiliki semua yang dimiliki oleh class tersebut. Secara umum class digambarkan dengan sebuah kotak yang terdiri dari 3 bagian, yaitu (Whitten & Bentley, 2007:400):

a. Bagian atas: class name. b. Bagian tengah: attribute. c. Bagian bawah: operational. 2. Relationship

(15)

a. Association

Hubungan yang terjadi antara class yang ada. Association memungkinkan suatu class untuk menggunakan atau mengetahui attribute atau operation yang dimiki oleh class lain. Association juga menggambarkan interaksi yang mungkin terjadi antara satu class dengan class yang lain. Association digambarkan dengan sebuah garis tanpa tanda panah (Whitten & Bentley, 2007: 377).

Gambar 2.11 Notasi association (Whitten & Bentley, 2007: 377) b. Aggregation

Aggregation adalah suatu bentuk relasi yang jauh lebih kuat dari association. Aggregation dapat diartikan bahwa suatu class merupakan bagian dari class

(16)

21

yang lain namun bersifat tidak wajib. Aggregation digambarkan dengan sebuah garis yang memiliki bentuk diamond kosong di salah satu ujung garisnya(Whitten & Bentley, 2007: 379).

Gambar 2.12 Notasi aggregation (Whitten & Bentley, 2007: 379) c. Composition

Relasi ini merupakan relasi yang paling kuat dibandingkan dengan association maupun aggregation. Pada composition diartikan bahwa suatu class merupakan bagian wajib dari class yang lain. Komposisi digambarkan dengan sebuah garis yang memiliki bentuk diamond utuh di salah satu ujung garisnya(Whitten & Bentley, 2007: 379).

(17)

Gambar 2.13 Notasi composition (Whitten & Bentley, 2007: 379) d. Generalization

Generalization memungkinkan suatu class mewarisi attribute dan operation yang dimiliki oleh base class. Attribute dan operation yang bisa diwarisi oleh suatu class adalah yang memiliki access modifier public, protected, dan default. Generalization digambarkan dengan garis yang memiliki tanda panah tertutup kosong pada salah satu ujungnya yang mengarah ke base class (Whitten & Bentley, 2007: 376).

(18)

23

Gambar 2.14 Notasi generalization (Whitten & Bentley, 2007: 381)

Attribute dan method dalam class diagram dapat memiliki salah satu sifat berikut (Whitten & Bentley, 2007:650) :

1. Private (-), tidak dapat dipanggil di luar class yang bersangkutan.

2. Protected (#), hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya.

3. Public (+), dapat dipanggil oleh semua class lain. 2.1.4 Digital Image

Menurut Shapiro dan Stockman (2001: 29), digital image adalah image 2D I(r,c) yang direpresentasikan oleh array diskrit 2D dari intensitas sampel, dimana masing-masing titik direpresentasikan dengan ketelitian terbatas.

Menurut Jayaraman, Esakkirajan, & Veerakumar (2009: 1-2) secara dasar merupakan representasi numerik dari sebuah objek. Digital Image juga dapat diartikan sebagai sebuah gambar yang terdiri dari elemen-elemen piksel yang

(19)

dikomposisi menjadi satu. Sebuah piksel merepresentasikan kecerahan pada satu titik.

Beberapa jenis digital image yang digunakan dalam computer vision antara lain (Jayaraman, Esakkirajan, & Veerakumar, 2009: 20-22):

1. Binary image

Binary image yaitu digital image dengan nilai piksel 1 dan 0. 2. Grayscale image

Grayscale image yaitu digital image monokrom dengan satu nilai intensitas setiap piksel. Setiap piksel menggambarkan kuantitas kecerahan gambar. Tingkat kecerahan dapat dibedakan pada grayscale image. Dalam grayscale image setiap piksel digambarkan dengan byte atau word, setiap nilai tersebut merepresentasikan intensitas cahaya pada poin tersebut. Pada umumnya gambar 8 bit akan memiliki tingkat kecerahan dari 0 sampai 255, dimana ‘0’ merepresentasikan hitam dan ‘255’ merepresentasikan putih.

3. Colour image

Colour image memiliki tiga nilai pada setiap pikselnya dan ini mengukur intensitas dan chrominance dari cahaya. Setiap piksel adalah vektor dari komponen warna. Pada umumnya warna direpresentasikan dalam RGB (Red, Green and Blue), HSV (Hue, Saturation, Value), dan CMYK (Cyan, Magenta, Yellow, Black).

4. Volume image

Gambar tiga dimensi merupakan contoh volume image. Volume image dapat diperoleh dari peralatan medis dimana setiap poin data disebut ‘voxels’. Voxels merupakan singkatan dari volume pixels.

(20)

25

5. Range image

Range image adalah kelas khusus dari digital images. Setiap piksel menggambarkan jarak antara referensi kerangka yang diketahui dengan poin yang kelihatan di layar. Range image membuat struktur 3D yang baru. Range images juga disebut sebagai depth images.

6. Multispactral image

Multispactral image adalah gambar 2D yang memiliki vektor nilai pada setiap piksel. Jika image-nya berwarna, maka vektornya memiliki tiga elemen.

2.1.5 Computer Vision

Menurut Szeliski (2011: 3) computer vision (atau machine vision) adalah ilmu yang bertujuan untuk mendeskripsikan dunia yang dilihat dalam satu atau lebih gambar dan merekonstruksikan properti-properti yang ada seperti bentuk, iluminasi, dan distribusi warna. Computer vision memiliki keterkaitan dengan teori Artificial Intelligence yang menangkap informasi dari gambar, Data gambar ini bisa dalam berbagai macam bentuk, seperti, gambar, foto, video, maupun data multi-dimensi dari pemindai medis.

Dewasa ini, Computer Vision adalah bidang yang berkembang dengan sangat pesat, baik dalam bidang industri, sains, maupun dunia entertainment. Computer vision mengaplikasikan model dan teori-teori untuk perancangan dan pembentukan sistem computer vision. Contoh aplikasinya dalam sistem sekarang ini adalah (Szeliski, 2011: 5):

1. Optical Character Recognition (OCR).

(21)

2. Inspeksi Mesin.

Bagian pemeriksaan cepat untuk memastikan kualitas dengan menggunakan stereo vision dengan pencahayaan khusus untuk mengukur toleransi pada sayap pesawat atau bagian tubuh otomotif.

3. Retail.

Pengenalan objek untuk sistem checkout secara otomatis. 4. Permodelan bangunan secara 3D.

Konstruksi model 3D secara otomatis berdasarkan foto dari udara, seperti yang digunakan oleh Bing Maps.

5. Penggambaran medis.

Mendaftarkan gambar pra-operasi dan intra-operasi untuk melakukan studi jangka panjang dari morfologi otak manusia seiring bertambahnya usia.

6. Sistem keamanan kendaraan.

Mendeteksi penghalang yang tidak terduga seperti pejalan kaki d jalan, ketika teknik active vision seperti radar atau lidar tidak beroperasi dengan baik.

7. Penyesuaian pergerakan.

Menggabungkan computer-generated imagery (CGI) dengan keadaan nyata dengan fitur pelacakan untuk memperkirakan pergerakan kamera 3D dan bentuk dari lingkungan sekitar. Teknik ini banyak digunakan di Hollywood, seperti di film Jurrasic Park.

8. Motion capture (mocap).

Menggunakan sistem penanda retro-reflective dilihat dari beberapa kamera atau teknik berbasis visi (vision based techniques) untuk menangkat pergerakan aktor-aktor yang digunakan untuk animasi komputer.

(22)

27

9. Keamanan.

Mengawasi jika ada penyusup, menganalisa lalu lintas jalan raya, dan mengawasi kolam renang untuk mendeteksi orang yang tenggelam.

10. Pengenalan sidik jari dan biometrik.

Digunakan untuk otentikasi akses secara otomatis serta sebagai aplikasi forensik. Berikut ini adalah sekma yang dapat menggambarkan ruang lingkup Computer Vision:

Gambar 2.15 Skema computer vision menurut Bolye dan Thomas (1998) Boyle dan Thomas (1998), mengatakan bahwa computer vision lebih daripada pengenalan, computer vision melakukan operasi “low level processing” sebagai algoritma image processing yang murni.

2.1.6 Metode Pengembangan Aplikasi

Pada tahun 2001, Kent Beck dan 16 orang pengembang aplikasi, penulis dan konsultan lainnya menyepakati “Manifesto for Agile Software Development” yang berisi bahwa interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan

(23)

pengguna lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana (Pressman, 2011: 65).

Metode agile mementingkan keluaran atau hasil dari proses pengembangan software, pengerjaan software, dan memaksimalkan nilai untuk pengguna. Metode agile ini dapat didefinisikan sebagai aturan yang berorientasi pad apenggunaan manusia dan komunikasi dalam hubungannya dengan aturan prosedur proyek yang sifatnya ringan namun sesuai.

Salah satu metode agile yang banyak digunakan adalah extreme programming. Ide pengembangan dengan extreme programming pertama kali dilakukan pada akhir era 1980an, dan diperkenalkan oleh Kent Beck. Kent Beck mendefinisikan lima nilai yang menjadi dasar dari semua pekerjaan sebagai bagian dari extreme programming adalah komunikasi, penyederhanaan, umpan balik, keberanian, dan menghormati. Setiap nilai ini digunakan sebagai pendorong bagi aktivitas, aksi, dan tugas extreme programming secara spesifik (Pressman, 2011: 72-73).

1. Komunikasi

Untuk mencapai komunikasi yang efektif antara pembuat software dan pemegang kepentingan lainnya, extreme programming menekankan pada komunikasi yang dekat dan informal antara pengguna dan pengembang. Pembentukan komunikasi yang penting ini berfungsi untuk mengkomunikasikan konsep-konsep penting, umpan balik terus menerus, dan menghindari dokumentasi tebal sebagai media komunikasi.

2. Penyederhanaan

Extreme programming membatasi pengembang untuk mendesain hanya pada apa yang dibutuhkan sekarang, dibandingkan dengan memikirkan apa yang

(24)

29

dibutuhkan pada masa depan. Ini bertujuan untuk membuat desain yang sederhana yang dapat diimplementasikan pada code dengan mudah. Jika desain harus ditingkatkan, ini dapat di refactoring di kemudian hari.

3. Umpan balik

Umpan balik didapat dari tiga sumber: software yang telah diimplementasikan itu sendiri, pengguna, dan tim pengembang software yang lain. Extreme programming menggunakan unit test sebagai taktik untuk melakukan tes awal. Dengan berkembangnya setiap class, setiap tim mengembangkan unit test untuk melakukan tes sesuai dengan fungsinya secara spesifik. Setiap perkembangan yang di kirim ke pengguna, maka kebutuhan baru akan menjadi bagian dari perencanaan secara iterasi, tim pengembang menyediakan penggunan dengan umpan balik yang cepat mengenai biaya dan jadwal.

4. Keberanian

Keberanian disini lebih menekankan pada bahwa setiap anggota tim dari extreme programming harus berana melakukan desain untuk saat ini dibandingkan dengan memikirkan kebutuhan masa depan yang dapat berubah secara drastis. 5. Menghormati

Dengan mengikuti setiap nilai-nilai yang ada, setiap tim extreme programming saling menghormati satu sama lain, baik itu tim pengembang, anggota tim lainnya, dan pemegang kepentingan lainnya.

Proses dalam extreme programming secara garis besar dapat dibagi menjadi empat kerangka kerja. Gambar 2.12 mengilustrasikan proses pengembangan dengan extreme programming (Pressman, 2011: 73-77):

(25)

Gambar 2.16 Langkah-langkah extreme programming (Pressman, 2011: 74)

1. Perencanaan

Tahap perencanaan, yaitu sebuah cara pengumpulan kebutuhan yang memungkinkan anggota teknikal tim XP untuk mengerti konteks bisnis untuk piranti lunak dan mendapatkan wawasan yang luas untuk hasil yang dibutuhkan dan fitur utama serta fungsionalitas. Proses mendengarkan akan mengarahkan pada pembuatan “cerita” yang menggambarkan kebutuhan akan hasil, fitur, dan fungsionalitas piranti lunak yang akan dibuat.

2. Perancangan

Perancangan XP mengikuti prinsip “Keep It Simple” (KIS). Desain yang sederhana selalu lebih dipilih dibandingkan dengan yang kompleks. Apabila ditemukan masalah perancangan yang sulit sebagai bagian dari perancangan cerita, XP merekomendasikan untuk membuat prototype operasional dari perancangan tersebut dengan segera. Dikenal sebagai spike solution, rancangan

(26)

31

prototype diimplementasikan dan dievaluasi. Tujuannya adalah agar mengurangi resiko saat pengimplementasian yang sesungguhnya dimulai dan untuk memastikan perkiraan asli untuk cerita yang mengandung masalah perancangan. 3. Coding

Tahap ini akan dilakukan setelah pembuatan user stories dan perancangan pendahuluan selesai dibuat, serta dilanjutkan dengan pengembangan urutan pengujian unit pada user stories yang akan dimasukkan kedalam rilis. Pengembang sebaiknya memfokuskan pada hal yang akan diimplementasikan untuk melewati pengujian, setelah pengujian unit dibuat, sehingga akan dihasilkan umpan balik langsung bagi pengembang, konsep utama selama coding adalah pair programming, yaitu proses pembuatan kode untuk user stories yang dilakukan oleh dua orang secara bersama-sama. Hal ini menyediakan mekanisme untuk pemecahan masalah, penjaminan kualitas pada saat pengerjaan, dan membuat pengembang tetap fokus pada permasalahan yang ada. Pada tahap ini juga dilakukan refactoring. Refactoring memungkinkan pengembang aplikasi untuk meningkatkan struktur internal dari desain (source code) tanpa mengubah sifat atau fungsionalitas eksternal. Dengan kata lain refactoring dapat digunakan untuk meningkatkan efisiensi, kemampuan dibaca, atau performa dari desain atau code yang mengimplementasikan desain.

4. Pengujian

Pengujian unit yang dibut sebelum coding dimulai adalah elemen kunci untuk pendekatan dalam XP. Pengujian unit yang dibuat harus diimplementasikan menggunakan framework yang memungkinkan pengujian unit dilakukan secara otomatis. Hal ini mendorong sebuah strategi pengujian regresi setiap saat kode diubah. Integrasi dan pengujian validasi dari sistem dapat terjadi secara harian

(27)

karena pengujian unit secara individu diorganisasikan menjadi “universal testing suite”. Hal ini menyediakan indikasi dari kemajuan yang didapat dan juga memberikan peringatan dini terhadap kesalahan yg terjadi kepada tim XP. XP acceptance tests, yang disebut juga pengujian klien, ditentukan oleh klien dan berfokus pada keseluruhan fitur sistem dan fungsionalitas yang terlihat dan dapat diulas kembali oleh klien. Acceptance tests diperoleh dari cerita pengguna yang telah diimplementasikan sebagai bagian dari piranti lunak yang dirilis.

2.2 Teori Khusus

Teori khusus adalah teori yang berhubungan dengan topik yang dibahas dalam skripsi ini.

2.2.1 Laser Pointer

Laser pointer banyak dijumpai dimana-mana karena berguna, laser pointer memancarkan cahaya sampai dengan 5 mW, yang mana dapat menyilaukan mata walau hanya terlihat sebentar.

Laser pointer kebanyakan menghasilkan sinar berwarna merah, yang antara 638.2 nm helium neon sampai 670 nm untuk dioda GaAIAs, dengan hasil kekuatan laser antara 0.5 sampai 5 mW. Semakin mahal sebuah laser, maka semakin jauh jaraknya, jarak cahaya laser pada umumnya 670nm, tetapi beberapa dioda baru menghasilkan panjang gelombang yang lebih pendek (misalnya 635 sampai 650 nm). Karena visibilitas radiasi monokromatik dan variasi panjang gelombang sebagaimana diukur oleh fungsi efisiensi CIE photopic bercahaya V(λ) dimana spektral efeisiensi cahaya mencapai maksimum di 555nm.

Kecerahan titik laser dari sinar laser tergantung dari kekuatan optk dari laser, refleksifitas permukaan, dan respon mata manusia. Untuk daya optik yang sama laser hijau akan tampak lebih terang dari warna lain karena mata manusia paling sensitif

(28)

33

pada tingkat cahaya rendah di wilayah spektrum sinar hijau (panjang gelombang 520-570 nm). Tingkat sensitivitas akan menurun untuk panjang gelombang merah dan biru.

Daya keluaran laser pointer biasanya dinyatakan dalam miliwatt (mW). Menurut standart International Electrotechnical Commision (IEC 60825-1), laser dibagi menjadi beberapa kelas:

1. Kelas 1 : laser kelas 1 aman dalam kondisi apapun dari penggunaan normal. Artinya saat kita melihat laser dengan mata telanjang, laser tersebut tidak melebihi paparan maksimum yang diizinkan (MPE). Contohnya: printer laser dan pemutar CD.

2. Kelas 1M: laser kelas 1M aman dalam kondisi apapun, kecuali jika melewati lensa pembesar, seperti mikroskop dan teleskop. Laser kelas 1M menghasilkan sinar dengan diameter yang besar dan divergen. Contohnya: laser yang digunakan untuk fibre-optic.

3. Kelas 2 : laser kelas 2 aman karena reflek berkedip yang dimilikinya jika tidak dilihat melalui instrumen optik. Seperti kelas 1M yang memiliki sinar laser dengan diameter besar dan tingkat divergen yang tinggi, hanya saja untuk laser kelas 2 sinar yang melewati pupil tidak dapat melampaui batas maksimal. Contohnya: barcode scanner.

4. Kelas 3R : laser kelas 3R aman bila digunakan secara hati-hati, dengan larangan melihat cahaya laser secara langsung. Dengan laser kelas 3 MPE dapat dilampaui, tetapi dengan resiko terluka yang kecil. Laser 3R yang dapat dilihat dibatasi sampai 5mW. Contohnya: beberapa produk yang digunakan untuk perbaikan pekerjaan rumah.

(29)

5. Kelas 3B: laser kelas 3B berbahaya untuk mata jika terkena langsung. Tetapi refleksi difusi seperti dari permukaan kertas atau materi lainnya tidak berbahaya. Kacamata pelindung biasanya diperlukan untuk melihat sinar laser kelas 3B. Laser kelas 3B harus dilengkapi dengan sakelar pengunci atau pengaman. Contohnya: laser yang digunakan untuk perawatan fisioterapi.

6. Kelas 4: laser kelas 4 adalah yang tertinggi dan paling berbahaya dari semua laser. Laser kelas 4 dapat membakar kulit atau menyebabkan kerusakan mata permanen. Laser ini memicu bahan mudah terbakar, dengan kata lain dapat memicu kebakaran. Contohnya: laser yang digunakan untuk operasi dan memotong metal.

Laser pointer biasanya tergolong dalam laser kelas 2, dan memiliki panjang gelombang antara 1-5mW. (anonim1, 2006)

Sinar laser memiliki tiga karakteristik unik yang membuatn sinar laser

berbeda dibandingkan dengan sinar yang ada pada umumnya, yaitu (http://ehs.unc.edu/training/self_study/laser/characteristics.html):

1. Monokromatik.

Monokromatik berarti sinar laser terdiri dari satu warna atau panjang gelombang. Meskipun beberapa laser dapat menghasilkan lebih dari satu panjang gelombang, sinar laser sangat murni dan terdiri dari spektrum sinar yang sangat sempit.

2. Searah.

Searah artinya sinar laser terkolimasi dengan sangat baik (sangat paralel) dan dapat menempuh jarak jauh dengan sedikit pemencaran.

(30)

35

3. Koheren.

Koheren artinya setiap gelombang cahaya bergerak secara bersamaan melalui ruang dan waktu.

2.2.2 Optical Flow Lucas-Kanade

Menurut Szeliski (2011: 360) optical flow adalah vektor-vektor yang menjelaskan perpindahan setiap piksel pada sebuah wilayah gambar. Vektor ini dihitung dari pengaruh brightness. Fitur ini banyak digunakan pada segmentasi pergerakan objek dan aplikasi tracking. Salah satu metode optical flow yang sering digunakan adalah optical flow dengan metode Lucas Kanade.

Pelacakan dengan algoritma Lucas-Kanade menggunakan titik pada fitur sebelumnya untuk menentukan posisi titik fitur pada frame selanjutnya.

Gambar 2.17 Ilustrasi tracking titik

Menurut Baker & Iain (2004: 2-6) Algoritma Lucas-Kanade berfungsi untuk menemukan sebuah template gambar T(x) didalam sebuah gambar I(x) dimana x = (x,y)z adalah vektor dari koordinat piksel pada gambar. Jika algoritma Lucas-Kanade digunakan untuk melacak gambar dari t=1 sampai t=2, template T(x) merupakan sub-bagian yang di ekstrak (misal: ukuran gambar 64x64 piksel) dari gambar t=1 dan I(x) adalah gambar di t=2.

(31)

Gambar 2.18 Pemetaan gambar T(x) pada gambar I(W(x;p)) Perpindahan sebuah template pada gambar T(x) ke gambar I(x) dapat ditulis dengan persamaan berikut:

W(x;p)= (1)

Dimana W(x;p) merupakan fungsi warp parameter, sedangkan x dan p merupakan vektor optical flow. Nilai p dapat berubah-ubah tergantung dari parameter dimana p=(p1,p2,….,pn)

T

. Perpindahan affine pada template secara 3 dimensi pada gambar dapat ditulis sebagai berikut:

W(x;p)= (2)

Dimana terdapat 6 parameter p=(p1,p2,p3,p4,p5,p6)T pada ruang 3 dimensi. Secara umum, nilai dari parameter n dapat berubah-ubah besarnya dan W(x;p) dapat berubah-ubah secara kompleks.

Tujuan dari algoritma Lucas-Kanade adalah untuk meminimalisasi kesalahan penemuan template gambar T(x) di dalam sebuah gambar I(x) yang digambarkan pada persamaan berikut:

(32)

37

Pencarian nilai p pada gambar tidak linear, oleh karena itu Lucas-Kanade mengasumsikan nilai p telah diketahui dan diperbaharui dengan nilai ∆p secara iteratif dan menambahkan persamaan menjadi:

(4)

dimana nilai p akan diperbaharui dengan persamaan:

p ← p +∆p (5)

Dua persamaan diatas akan diiterasi secara terus - menerus sampai nilai estimasi dari parameter p menjadi konvergen. Secara umum tes untuk ke-konvergenan dilihat dari apakah standar vektor ∆p dibawah nilai threshold , ||∆p||≤ .

Ekspansi Taylor orde pertama digunakan untuk melinearisasikan persamaan (4) karena perpindahan jarak template sangatlah kecil, sehingga hasil orde pertama deret Taylor adalah:

(6)

dimana dalam persamaan ini merupakan gradien koordinat frame pada

gambar I ke koordinat frame pada gambar T dan nilai jacobian dari W oleh persamaan berikut:

=

(33)

Untuk menemukan jalan koordinat posisi template pada gambar T ke gambar I maka digunakan metode steepest descent yaitu sehingga menambahkan persamaan

menjadi:

(8)

Untuk menentukan nilai ∆p maka dipergunakan matriks Hessian yang dapat ditemukan melalui persamaan berikut:

(9)

Dan nilai dapat ditemukan dengan persamaan berikut:

(10)

Sehingga dengan demikian posisi jendela pendeteksian dapat ditentukan pada gambar I(W(x;p+ )).

(34)

37

(35)
(36)

39

Algortima optical flow Lucas-Kanade adalah sebagai berikut:

1. Temukan template dengan perkiraan pada gambar I dengan menggunakan W(x;p) untuk menghitung I(W(x;p)).

2. Hitung nilai kesalahan T(x)-I(W(x;p)). 3. Tentukan nilai gradien dengan W(x;p).

4. Hitung nilai Jacobian pada (x;p).

5. Hitung nilai steepest descent .

6. Hitung nilai matriks Hessian dengan menggunakan persamaan (9). 7. Hitung persamaan

8. Hitung nilai .

9. Update parameter .

10. Ulangi algoritma hingga ||∆p||.

Dalam penerapannya algoritma Lucas-Kanade menggunakan enam parameter untuk penghitungan, yaitu:

1. Image<Gray,byte> prev,

Gambar awal yang akan digunakan untuk penghitungan metode Lucas-Kanade. 2. Image<Gray,byte> curr,

Gambar yang didapat saat ini untuk menghitung posisi objek yang akan dilacak pada gambar berikutnya.

3. PointF[] prevFeatures,

(37)

4. Size winSize,

Ukuran jendela pencari pada setiap level.

5. Int Level

Nilai maksimal dari level Lucas-Kanade. 6. McvTermCriteria

Menspesifikan kapan iterasi untuk setiap titik harus berhenti dilakukan. 2.2.3 EmguCV

EmguCV merupakan pembungkus (wrapper) .NET untuk library OpenCV yang digunakan untuk pemrosesan gambar. Library OpenCV (Open Source Computer Vision) sediri merupakan library yang digunakan untuk pemrosesan dalam Computer Vision secara real time, dikembangkan oleh Intel dan didukung oleh Willow Garage. Dengan menggunakan EmguCV, fungsi OpenCV dapat dipanggil melalui bahasa yang kompatibel dengan .NET, seperti C#, VB, VC++, IronPython, dan sebagainya.

EmguCV memiliki dua lapisan layer pembungkus (wrapper), yaitu:

1. Layer dasar (basic layer) meliputi pemetaan fungsi, struktur, dan numerasi yang menuju langsung ke OpenCV.

2. Layer ke-2 (second layer) meliputi kelas yang digabungkan dengan keuntungan di dalam dunia .NET.

(38)

41

Gambar 2.20 Arsitektur EmguCV

Versi terbaru EmguCV adalah versi 2.4.2. Versi ini mengikuti versi OpenCV yang sama, yaitu versi 2.4.2 (http://www.emgu.com/wiki/index.php/Main_Page). 2.2.4 C#

C# merupakan bahasa berorientasi objek yang sederhana, yang memungkinkan pemrogram untuk membangun aplikasi yang kompleks. Pengembang yang biasa dengan C, C++, atau Java, biasanya dapat mulai menggunakan C# dan dapat menggunakan C# secara produktif. C# mendukung konsep enkapsulasi, pewarisan dan polimorfisme. Semua variabel dan metode, termasuk metode utama, entry poin aplikasi, diringkas dalam definisi kelas.

(39)

Selain prinsip-prinsip berorientasi objek dasar, C# membuat pengembangan komponen piranti lunak mejadi mudah melalui beberapa konstruksi bahasa yang inovatif, termasuk yang berikut:

1. Metode enkapsulasi, yang disebut delegasi, yang memungkinkan pemberitahuan event yang aman.

2. Properti, yang berfungsi sebagai asesor untuk anggota variabel private. 3. Atribut, yang menyediakan metadata deklaratif tentang jenis pada run time. 4. Dokumentasi inline XML.

5. Language-Integrated Query (LINQ), yang menyediakan kemampuan untuk query di berbagai sumber data.

Visual C# menyediakan kode editor yang canggih, desain antar muka yang mudah digunakan, debugger yang terintegrasi, dan banyak alat-alat lain yang membuatnya lebih mudah digunakan dalam pengembangan aplikasi berbasis versi 4.0 dari bahasa C# dan versi 4.0 dari kerangka kerja .NET.

2.3 Related Works

Pengembangan software untuk deteksi dan tracking menggunakan optical flow lucas-kanade sudah pernah dilakukan sebelumnya. Tingkat keakuratan yang diperoleh tergolong cukup baik.

Pada tahun 2009, Datta, Bhattacherjee, & Ghosh dengan paper berjudul “Path Detection of a Moving Object” melakukan penelitian terhadap algoritma untuk menemukan jalur pergerakan objek yang bergerak di frame yang berbeda. Beberapa langkah dilakukan untuk melakukan deteksi terhadap objek, yaitu: akusisi gambar, merubah gambar dari yang berwarna menjadi hitam-putih, pengenalan objek, dan memperkirakan pergerakan dari objek. Dengan menggunakan langkah-langkah tersebut tracking terhadap objek dapat dilakukan dan menghasilkan

(40)

43

ketepatan hingga 92%. Tracking dilakukan dengan kecepatan frame 25 frame per sekon.

Pada tahun 2011, Font, Tresanchez, Pallejà, Teixidó, & Palacín dengan paper berjudul “Characterization of Low-Cost Optical Flow Sensor When Using an External Laser as a Direct Illumination Source” melakukan pengukuran berdasarkan cahaya yang koheren ke permukaan yang berdifusi dan menggunakan optical flow untuk menganalisa sinar yang dipantulkan dan yang diteruskan untuk memperkirakan titik sinar laser. Hasil yang diperoleh adalah dengan menambah jarak antara permukaan dengan sensor optical flow maka sensitivitas dan pengukuran akan bertambah.

Pada tahun 2012, Kaur dengan paper “Detection of Moving Objects in Colour based and Graph’s axis Change method” melakukan penelitian terhadap dua algoritma untuk mendeteksi objek yang bergerak. Algoritma pertama melakukan deteksi terhadap objek berdasarkan tingkat perubahan keabu-abuan diantara dua frame yang berdekatan. Akan tetapi dengan menggunakan algoritma pertama, terdapat informasi dari warna yang terbuang. Pada algoritma kedua kekurangan dari metode pengurangan latar dan metode warna menjadi hitam-putih dapat dikurangi. Dengan algoritma kedua pendeteksian dilakukan terhadap perubahan piksel yang terjadi pada sumbu x dan y. Hasilnya dengan menggunakan dengan menggunakan algoritma kedua tracking dapat dilakukan lebih baik dan memakan waktu pemrosesan yang lebih sedikit.

Figur

Gambar 2.1 Software engineering layers (Pressman, 2011:14)

Gambar 2.1

Software engineering layers (Pressman, 2011:14) p.4
Gambar 2.2 Contoh use case diagram

Gambar 2.2

Contoh use case diagram p.6
Gambar 2.3 Contoh asosiasi pada use case diagram  2. Extends

Gambar 2.3

Contoh asosiasi pada use case diagram 2. Extends p.7
Gambar 2.4 Extended use case  3. Includes/Uses

Gambar 2.4

Extended use case 3. Includes/Uses p.7
Gambar 2.5 Contoh includes pada use case diagram

Gambar 2.5

Contoh includes pada use case diagram p.8
Gambar 2.6 Contoh hubungan depends on  5. Inheritance

Gambar 2.6

Contoh hubungan depends on 5. Inheritance p.8
Gambar 2.7 Contoh inheritance dalam use case  2.1.3.2  Activity Diagram

Gambar 2.7

Contoh inheritance dalam use case 2.1.3.2 Activity Diagram p.9
Gambar 2.8 Contoh dan notasi activity diagram

Gambar 2.8

Contoh dan notasi activity diagram p.10
Gambar 2.9 Contoh dan notasi sequence diagram

Gambar 2.9

Contoh dan notasi sequence diagram p.12
Gambar 2.10 Contoh class diagram  Notasi-notasi yang terdapat di class diagram, yaitu:  1

Gambar 2.10

Contoh class diagram Notasi-notasi yang terdapat di class diagram, yaitu: 1 p.14
Gambar 2.11 Notasi association  (Whitten &amp; Bentley, 2007: 377)  b. Aggregation

Gambar 2.11

Notasi association (Whitten &amp; Bentley, 2007: 377) b. Aggregation p.15
Gambar 2.12 Notasi aggregation (Whitten &amp; Bentley, 2007: 379)  c. Composition

Gambar 2.12

Notasi aggregation (Whitten &amp; Bentley, 2007: 379) c. Composition p.16
Gambar 2.13 Notasi composition (Whitten &amp; Bentley, 2007: 379)  d. Generalization

Gambar 2.13

Notasi composition (Whitten &amp; Bentley, 2007: 379) d. Generalization p.17
Gambar 2.14 Notasi generalization (Whitten &amp; Bentley, 2007: 381)

Gambar 2.14

Notasi generalization (Whitten &amp; Bentley, 2007: 381) p.18
Gambar 2.15 Skema computer vision menurut Bolye dan Thomas (1998)  Boyle dan Thomas (1998), mengatakan bahwa computer vision lebih daripada  pengenalan,  computer  vision  melakukan  operasi  “low  level  processing”  sebagai  algoritma image processing ya

Gambar 2.15

Skema computer vision menurut Bolye dan Thomas (1998) Boyle dan Thomas (1998), mengatakan bahwa computer vision lebih daripada pengenalan, computer vision melakukan operasi “low level processing” sebagai algoritma image processing ya p.22
Gambar 2.16 Langkah-langkah extreme programming (Pressman, 2011: 74)

Gambar 2.16

Langkah-langkah extreme programming (Pressman, 2011: 74) p.25
Gambar 2.17 Ilustrasi tracking titik

Gambar 2.17

Ilustrasi tracking titik p.30
Gambar 2.18 Pemetaan gambar T(x) pada gambar I(W(x;p))  Perpindahan  sebuah  template  pada  gambar  T(x)  ke  gambar  I(x)  dapat  ditulis  dengan persamaan berikut:

Gambar 2.18

Pemetaan gambar T(x) pada gambar I(W(x;p)) Perpindahan sebuah template pada gambar T(x) ke gambar I(x) dapat ditulis dengan persamaan berikut: p.31
Gambar 2.19 Algoritma optical flow Lucas-Kanade (Szeliski, 2011: 353)

Gambar 2.19

Algoritma optical flow Lucas-Kanade (Szeliski, 2011: 353) p.34
Gambar 2.20 Arsitektur EmguCV

Gambar 2.20

Arsitektur EmguCV p.38

Referensi

Memperbarui...

Pindai kode QR dengan aplikasi 1PDF
untuk diunduh sekarang

Instal aplikasi 1PDF di