BAB 2 LANDASAN TEORI
Dalam landasan teori ini, pada dasarnya akan dijelaskan mengenai teori yang relevan, lengkap, dan terkini sejalan dengan permasalahan yang dihadapi. Di sini juga terdapat hubungan antara permasalahan dan teknik yang digunakan dalam perancangan program aplikasi ini.
2.1
System Development Life Cycle (SDLC) Dalam membuat sebuah program aplikasi terdapat beberapa paradigma atau model proses, lima di antaranya adalah The Classic Life Cycle atau yang biasa dikenal dengan Waterfall Model, Prototyping Model, Fourth Generation Techniques (4GT), Spiral Model, dan Combine Model. Dalam pengembangan program aplikasi Motion Detection ini model proses yang digunakan adalah Waterfall Model. Menurut Winston W. Royce (1929–1995), secara umum ada enam tahapan dalam Waterfall Model, seperti gambar di bawah ini:
8
Gambar 2.1 Waterfall Model Sumber: http://www.varsys.com/images/knowledgecenter/WaterfallModel.gif
Tahap-tahap tersebut disusun seperti model aliran air terjun sehingga disebut dengan Waterfall Model. Model ini menjadi panduan langkah-langkah pembuatan program aplikasi yang sesuai dengan kebutuhan dan harapan dari pengguna, supaya proyek pengembangan program aplikasi tersebut dapat diselesaikan dengan sempurna.
2.2
Use Case Diagram Use Case menunjukkan hubungan interaksi antara aktor dengan use case di dalam suatu sistem (Mathiassen, 2000, p343) yang bertujuan untuk menentukan bagaimana aktor berinteraksi dengan sebuah sistem. Aktor adalah orang atau sistem lain yang berhubungan dengan sistem.
9 Ada tiga simbol yang mewakili komponen sistem seperti terlihat pada gambar dibawah ini.
Gambar 2.2 Notasi Use Case Diagram Sumber : Mathiassen (2000, p343)
Menurut Schneider dan Winters, ada lima hal yang harus diperhatikan dalam pembuatan diagram use case (Schneider dan Winters, 1997, p26): 1) Aktor: segala sesuatu yang berhubungan dengan sistem dan melaksanakan use case yang terkait. 2) Precondition: kondisi awal yang harus dimiliki aktor untuk masuk ke dalam sistem untuk terlibat dalam suatu use case. 3) Postcondition: kondisi akhir atau hasil apa yang akan diterima oleh aktor setelah menjalankan suatu use case. 4) Flow of Events: kegiatan-kegiatan yang dilakukan pada sebuah proses use case. 5) Alternative Paths: kegiatan yang memberikan serangkaian kejadian berbeda yang digunakan dalam Flow of Events.
10 2.3
Flowchart Flowchart adalah representasi skematik dari sebuah algoritma atau sebuah proses yang teratur, menunjukkan langkah-langkah dalam kotak-kotak yang bervariasi dan urutannya dengan menghubungkan kotak-kotak tersebut dengan panah. Flowchart digunakan dalam mendesain atau mendokumentasikan sebuah proses atau program (Wikipedia 2008). Flowchart pertama kali diperkenalkan oleh Frank Gilbreth kepada anggota ASME (American Society of Mechanical Engineers) pada tahun 1921 sebagai representasi “Process Charts – First Steps in Finding the One Best Way” dan saat ini menjadi alat yang sering digunakan untuk menunjukkan aliran proses dalam suatu algoritma. Sebuah Flowchart pada umumnya memiliki simbol-simbol sebagai berikut: 1)
Start and end symbols Direpresentasikan dalam bentuk oval, atau persegi panjang dengan ujung yang membulat, biasanya mengandung kata “Start” atau “End” atau frase lainnya yang menujukkan awal proses atau akhir dari proses, seperti “submit enquiry” atau “receive product”.
2)
Arrows Menunjukkan apa yang disebut sebagai “flow of control” dalam ilmu computer. Sebuah arrow datang dari sebuah simbol dan berakhir pada simbol lainnya merepresentasikan bahwa kontrol berpindah pada simbol yang ditunjukkan oleh arrow.
3)
Processing steps Direpresentasikan sebagai sebuah persegi panjang. Contoh: “tambahkan 1 pada X”; “ganti bagian yang diidentifikasi”; “simpan data”.
11 4)
Input / Output Direpresentasikan sebagai sebuah jajaran genjang. Contoh: “ambil X dari user”; ”tampilkan X”.
5)
Conditional or decision Direpresentasikan sebagai sebuah belah ketupat / bentuk berlian. Biasanya berisi pertanyaan yang mempunyai jawaban “yes” atau “no”, ataupun “true” atau “false”. Simbol ini unik karena ada dua arrows yang keluar dari simbol ini. Biasanya terdapat pada bagian bawah dan kanan, dan berkorespondensi pada jawaban “yes” atau “no”, ataupun “true” atau “false”. Tiap arrow harus diberi label di dalamnya. Lebih dari dua arrows dapat digunakan, tetapi secara normal berarti bagian tersebut dapat dipecah lagi secara lebih mendalam.
12
Gambar 2.3 Flowchart Sumber: http://www.novagraph.com/images/HowToFlowchart.png
2.4
Sequence Diagram Sequence Diagram digunakan untuk memodelkan scenario penggunaan (Hariyanto 2004, p309). Skenario penggunaan adalah barisan kejadian yang terjadi selama satu eksekusi system. Cakupan scenario dapat beragam, mulai dari semua kejadian di sistem atau hanya kejadian pada objek-objek tertentu. Skenario menjadi rekaman historis eksekusi sistem atau gagasan eksperimen eksekusi sistem yang diusulkan. Sequence Diagram menunjukkan objek sebagai garis vertikal dan tiap kejadian sebagai panah horizontal dari objek pengirim ke objek penerima. Waktu
13 berlalu dari atas ke bawah dengan lama waktu tidak relevan. Diagram ini hanya menunjukkan barisan kejadian, bukan pewaktuan nyata. Kecuali untuk sistem waktu nyata (Real Time System) yang mengharuskan konstrain barisan kejadian. Sequence Diagram digunakan untuk:
2.5
1)
Overview perilaku sistem,
2)
menunjukkan objek-objek yang diperlukan,
3)
mendokumentasikan scenario dari suatu use case diagram,
4)
memeriksa jalur-jalur pengaksesan.
State Transition Diagram Ide dasar dari State Transition Diagram adalah untuk menjelaskan sebuah
mesin yang memiliki beberapa keadaan. Mesin tersebut mendapatkan masukan dari luar dan setiap masukan akan merubah keadaan dari mesin tersebut. Gambar berikut ini adalah salah satu contoh State Transition Diagram yang menunjukkan keadaan sebuah botol kosong, yang lalu diisi kemudian ditutup. Selama diisi, jika belum penuh maka masih akan menunjukkan keadaan kosong.
14
Gambar 2.4 State Transition Diagram Sumber: http://www.cs.unc.edu/~stotts/145/CRC/smState.gif
2.6
Interaksi Manusia dan Komputer (IMK) Berdasarkan evaluasi dari sudut interaksi manusia dan komputer, program simulasi yang dirancang harus bersifat interaktif. Suatu program yang interaktif dan baik harus bersifat user friendly, dengan lima kriteria (Shneiderman 2005, p15) sebagai berikut: 1)
Waktu belajar yang tidak lama.
2)
Kecepatan penyajian informasi yang tepat.
3)
Tingkat kesalahan pemakaian rendah.
4)
Penghafalan sesudah melampaui jangka waktu.
5)
Kepuasan pribadi.
15 Menurut (Shneiderman 2005, p74), dalam merancang sistem interaksi manusia dan komputer yang baik juga harus memperhatikan delapan aturan utama (eight golden rules), yaitu: 1)
Strive for consistency (berusaha untuk konsisten).
2)
Enable frequent user to use shortcuts (memungkinkan pengguna untuk menggunakan jalan pintas).
3)
Offer informative feedback (memberikan umpan balik yang informatif).
4)
Design dialogs to yield closure (pengorganisasian yang baik sehingga pengguna mengetahui kapan awal dan akhir dari suatu aksi).
5)
Offer simple error handling (memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana).
6)
Permit easy reversal of actions (memungkinkan kembali ke aksi sebelumnya dengan mudah).
7)
Support internal locus of control (memungkinkan pengguna untuk menguasai dan mengontrol sistem).
8)
Reduce short term memory load (mengurangi beban ingatan jangka pendek, sehingga pengguna tidak perlu banyak menghafal).
2.7
Motion Detection Definisi dari motion detection adalah sebuah aksi dalam merasakan pergerakan fisik pada suatu area yang diberikan. Motion dapat dideteksi dengan mengukur adanya perubahan pada kecepatan atau vektor dari sebuah objek atau objek pada sebuah sudut pandang. Hal ini dapat dicapai dengan alat mekanik yang secara fisik berinteraksi dengan
16 lingkungan yang diamati ataupun dengan alat elektronik yang dapat mengukur perubahan pada lingkungan yang diberikan. Sebuah algoritma sederhana untuk motion detection oleh sebuah kamera akan membandingkan gambar aktual saat ini dengan sebuah gambar referensi dan secara sederhana akan menghitung banyaknya pixel yang berbeda. Gambargambar akan berbeda karena secara natural tergantung pada beberapa faktor seperti pencahayaan yang bervariasi, kedipan kamera, dan intensitas cahaya. Oleh sebab itu, pre-processing sangat berguna untuk mengurangi tingkat kesalahan pengenalan gambar. Algoritma yang lebih kompleks diperlukan untuk mendeteksi gerakan apabila kameranya juga ikut bergerak, atau apabila gerakan dari suatu objek yang spesifik harus dideteksi pada suatu lingkungan yang terdiri dari pergerakan lain yang dapat diabaikan.
2.8
Image Processing Pemrosesan gambar adalah salah satu bentuk dari pemrosesan sinyal, di mana input yang diberikan adalah sebuah gambar, seperti foto atau frame dari sebuah video; sedangkan output dari pemrosesan gambar dapat berupa sebuah gambar atau sebuah set dari karakteristik atau parameter yang terkait dengan gambar tersebut.
17 2.8.1
Grayscale Dalam istilah pemrosesan gambar, sebuah grayscale atau gambar digital grayscale adalah sebuah gambar di mana nilai dari tiap-tiap pixel adalah sebuah single sample, sebagai satu-satunya yang membawa informasi penuh tentang intensitasnya. Gambar yang termasuk dalam kategori ini tersusun secara eksklusif dari bayangan abu-abu netral, bervariasi dari warna hitam pada intensitas terlemah sampai dengan warna putih pada intensitas yang terkuat. Gambar grayscale berbeda dengan gambar hitam dan putih, di mana pada konteks gambar komputer adalah gambar yang hanya mempunyai dua warna, hitam dan putih (juga disebut sebagai bilevel, gambar biner); gambar grayscale memiliki banyak bayangan abu-abu diantaranya. Pada kebanyakan konteks di luar penggambaran digital, kata “hitam dan putih” digunakan untuk menggantikan “grayscale”; sebagai contoh, fotografi pada bayangan abu-abu disebut sebagai “fotografi hitam dan putih”. Intensitas dari sebuah pixel diekspresikan dalam batasan minimum dan maksimum yang diberikan. Batasan ini direpresentasikan dalam sebuah langkah abstrak sebagai jarak dari 0 (ketiadaan cahaya, hitam) dan 1 (keberadaan cahaya, putih), dengan nilai-nilai fraksional diantaranya. Mengkonversi sebuah gambar berwarna menjadi grayscale tidaklah unik; perbedaan berat dari channel warna secara efektif merepresentasikan efek dari film hitam dan putih dengan pewarnaan berbeda dari filter fotografi pada kamera. Sebuah strategi umum adalah untuk menyamakan pencahayaan dari gambar grayscale dengan pencahayaan dari gambar berwarna.
18 Untuk mengkonversi warna apapun menjadi representasi grayscale dari pencahayaannya, pertama-tama nilai dari warna primer yaitu merah, hijau dan biru (RGB) pada encoding intensitas linear harus ditemukan terlebih dahulu dengan menggunakan ekspansi gamma. Kemudian ditambahkan sebanyak 30% ke dalam value warna merah, 59% ke dalam value warna hijau, dan sisanya 11% ke dalam value warna biru (berat tersebut tergantung pada pemilihan dari warna primer RGB, tetapi secara tipikal sama). Apapun skala yang dimasukkan (0.0 sampai 1.0, 0 sampai 255, 0% sampai 100%, dan lain sebagainya), bilangan resultannya adalah value dari pencahayaan linear yang diinginkan; hal ini secara tipikal memerlukan gamma yang dikompresi untuk kembali pada representasi grayscale konvensional.
2.8.2
Binary Threshold Definisi dari binary threshold adalah filter yang melakukan binerisasi gambar dengan menggunakan value pembatas yang spesifik. Semua pixel dengan intensitas yang sama atau lebih tinggi dari value pembatas akan dikonversi menjadi pixel putih. Semua pixel lainnya dengan intensitas di bawah value pembatas akan dikonversi menjadi pixel hitam. Hal ini akan menghasilkan gambar yang hanya mempunyai warna hitam dan putih.
2.9
Histogram Histogram gambar adalah sebuah tipe dari histogram yang berfungsi sebagai representasi grafik dari distribusi tonal pada sebuah gambar digital. Histogram gambar membuat bagian pada banyak pixel untuk setiap tonal value.
19 Dengan melihat pada histogram untuk gambar yang spesifik, pengamat akan dapat mengetahui semua distribusi tonal dalam sekali pandang. Dalam statistika, sebuah histrogram adalah gambar grafik dari frekuensi yang ditabulasi, ditampilkan dalam bentuk batang. Histogram menunjukkan jumlah proporsi bagian yang masuk pada beberapa kategori yang ada. Sebuah histogram berbeda dengan diagram batang pada area yang menotasikan value, bukan sebagai tinggi sebagaimana yang terdapat pada diagram batang, perbedaan krusial apabila pada kategori yang ada tidak mempunyai lebar yang seragam. Kategori-kategori yang ada biasanya dispesifikasikan sebagai interval yang tidak melebihi batas dari variabel yang telah ditentukan. Kategori-kategori tersebut (batang) haruslah berdekatan.
Gambar 2.5 Histogram Sumber: http://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Black_cherry_tree_hi stogram.svg/180px-Black_cherry_tree_histogram.svg.png
20 2.10
Artificial Neural Networks Manusia, demikian juga dengan binatang memproses informasi dengan jaringan syaraf. Jaringan tersebut terbentuk dari trillions (1012) dari neuron (sel saraf) yang saling bertukar sinyal listrik dan sering disebut sebagai potensial aksi. Algoritma komputer yang meniru struktur biologis tersebut secara formal disebut sebagai jaringan syaraf tiruan untuk membedakannya dengan apa yang dimiliki oleh binatang. Tetapi, kebanyakan ilmuwan dan insinyur tidak menggunakannya secara formal dan tetep menggunakan ungkapan jaringan syaraf untuk mencakup semua sistem biologis dan non-biologis. Penelitian jaringan syaraf tiruan dimotivasi oleh dua sebab, yaitu untuk mendapatkan pengertian yang lebih mendalam tentang otak manusia, dan untuk mengembangkan komputer yang dapat menghadapi masalah abstrak dan masalah yang sulit untuk dijelaskan. Sebagai contoh, komputer konvensional mengalami masalah untuk mengerti percakapan dan mengenali wajah masing-masing orang. Sebagai perbandingan, manusia sangat baik dalam melakukan kegiatan tersebut. Banyak struktur jaringan syaraf yang telah dicoba, beberapa didasarkan dari meniru apa yang dilihat oleh ilmuwan di bawah mikroskop, beberapa lebih didasarkan pada analisis matematika dari masalah yang ada. Struktur yang paling banyak digunakan dapat dilihat pada pembahasan lebih lanjut mengenai macammacam arsitektur neural networks.
21
Gambar 2.6 Generalized Network. Sumber: http://www.seattlerobotics.org/encoder/nov98/nnfig1.jpg
Salah satu aplikasi dari jaringan syaraf buatan yang paling umum adalah pemrosesan gambar. Beberapa contoh antara lain: mengidentifikasi tulisan tangan, mencocokkan foto dari wajah seseorang dengan foto lain pada database, melakukan kompresi data pada sebuah gambar dengan kehilangan yang minimal. Aplikasi lainnya bisa untuk: pengenalan suara, analisis RADAR signature, prediksi stock market. Masalah-masalah tersebut mencakup data yang sangat banyak, dan hubungan yang sangat kompleks di antara parameter yang berbeda. Sangatlah penting untuk diingat bahwa dengan solusi dari jaringan syaraf buatan, user tidak harus mengerti solusinya sama sekali. Ini adalah keuntungan terbesar dari pendekatan jaringan syaraf buatan. Dengan teknik yang lebih tradisional, user harus mengerti input, algoritma, dan output dalam detil yang banyak. Dengan jaringan syaraf buatan, cukup ditunjukkan bahwa : ‘ini adalah output yang benar, apabila diberikan input ini’. Dengan latihan yang cukup, maka jaringan akan meniru fungsi yang didemonstrasikan. Dengan jaringan syaraf buatan, bisa juga untuk mengaplikasikan input yang tidak relevan dengan
22 solusinya, karena pada proses latihan, jaringan akan belajar untuk menolak input yang tidak memberikan kontribusi pada output. Akan tetapi, jika tidak dimasukkan input yang penting, maka jaringan akan gagal untuk membuat solusi.
2.11
Algoritma Back Propagation Dalam algoritma Backpropagation terdapat proses training yang meliputi feedforward, backward serta perbaikan bobot dan bias. Sedangkan proses selanjutnya untuk mengenali pola yang telah dilatih, akan disebut dengan proses recall yang dilakukan hanya dengan mengulangi proses feedforward. Berikut ini merupakan langkah-langkah yang digunakan dalam proses training dan recall menggunakan algoritma Backpropagation: 1)
Inisialisasi bobot
2)
Selama kondisi berhenti false, lakukan langkah 3 – 10
3)
Untuk setiap pasangan data pelatihan, lakukan langkah 4 – 9
Feed Forward (langkah maju) 4)
Setiap unit input (Xi, i = 1, …, n) menerima sinyal input xi dan meneruskan sinyal tersebut ke semua unit pada lapis di atasnya (hidden layer).
5)
Setiap unit tersembunyi (Zj, j = 1, …, p) menjumlahkan sinyal-sinyal input berbobot, n
z _ in j = v0 j + ∑ xi vij i =1
23 Gunakan fungsi aktivasi untuk menghitung sinyal output-nya, z j = f (z _ in j )
Lalu kirimkan sinyal tersebut ke semua unit di lapis atasnya (unit-unit output). 6)
Setiap unit output (Yk , k = 1, …, m) menjumlahkan sinyal-sinyal input berbobot, p
y _ ink = w0 k + ∑ z j w jk j =1
Gunakan fungsi aktivasi untuk menghitung sinyal output-nya, y k = f ( y _ in k )
Backward (langkah mundur) 7)
Tiap-tiap unit output (Yk , k = 1, …, m) menerima pola target yang berhubungan dengan pola input pembelajaran, hitung informasi errornya,
δ k = (t k − y k ) f ′( y _ in k ) Hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai wjk), Δw jk = αδ k z j
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k), Δw0 k αδ k Dan kirimkan nilai δ k ke unit-unit yang ada di lapis bawahnya.
24 8)
Tiap-tiap hidden unit (zj , j = 1, …, p) menjumlahkan delta input-nya (dari unit yang berada pada lapis atasnya), m
δ _ in j = ∑ δ k w jk k =1
Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error-nya,
δ j = d _ in j f ′(z _ in j ) Kemudian hitung koreksi bobot (yang nantinya digunakan untuk memperbaiki nilai v ij ), Δv ij = αδ j x i
Hitung juga koreksi bias (yang nantinya digunakan untuk memperbaiki nilai v 0 j ), Δv 0 j = αδ j
Perbaikan bobot dan bias 9)
Setiap unit output (yk , k = 1, …, m) memperbaiki bobot dan biasnya (j = 0, …, p), w jk (baru ) = w jk (lama ) + Δw jk
Setiap unit tersembunyi (zj , j = 1, …, p) memperbaiki bobot dan biasnya (I = 0, …, n), v ij (baru ) = v ij (lama ) + Δv ij
10)
Tes kondisi berhenti.
25 Setelah proses training, sebuah jaringan syaraf backpropagation akan diaplikasikan dengan hanya menggunakan fase feedforward dari algoritma training saja. Prosedur aplikasi tersebut adalah sebagai berikut: 1)
Inisialisasi matriks bobot (dari algoritma training).
2)
Untuk setiap vektor input, lakukan langkah 3-5.
3)
Untuk i = 1, …, n: set nilai aktivasi untuk setiap input unit x.
4)
Untuk j = 1, …, p: n
z _ in j = v0 j + ∑ xi vij i =1
z j = f (z _ in j )
5)
Untuk k = 1, …, m: p
y _ ink = w0 k + ∑ z j w jk j =1
y k = f ( y _ in k ) .
Jadi, pada landasan teori ini, telah dibahas teori-teori yang berhubungan dengan perancangan program aplikasi, seperti metode perancangan program, image processing, histogram, Artificial Neural Networks, dan algoritma Back Propagation. Penggunaan dari teori-teori tersebut akan dijelaskan lebih lanjut pada bab selanjutnya.