BAB II LANDASAN TEORI
Untuk merancang aplikasi ini sangatlah dibutuhkan landasan teori yang dapat membantu penulis dalam merancang aplikasi. Berikut adalah beberapa teori yang dipergunakan dalam pembuatan aplikasi ini.
2.1.
Teori Simulasi Yang dimaksud dengan simulasi atau pengimitasian adalah teknik meniru atau menggambarkan operasi-operasi yang terjadi pada berbagai macam fasilitas atau proses yang terjadi pada kehidupan nyata dengan menggunakan komputer sebagai alat bantu. Fasilitas atau proses yang disebutkan diatas itulah yang dimaksud dengan sistem. Secara umum, sistem adalah kumpulan kesatuan yang bekerja dan berinteraksi bersama-sama menuju hasil akhir yang logis. Dalam simulasi, komputer digunakan sebagai alat bantu untuk mengevaluasi sebuah model secara numerik, dan data-data dikumpulkan untuk mengestimasi karakteristik sesungguhnya dari sebuah model.
2.2.
Image Processing M erupakan istilah yang digunakan untuk semua bentuk signal processing yang mana inputannya berupa image seperti foto ataupun frame video. Adapun output dari image processing dapat berupa image ataupun sekumpulan parameter
8
yang menunjukkan karakteristik dari image yang telah diproses. Secara umum , image processing mengolah gambar 2 dimensi yang berupa image digital. Adapun proses yang umum terjadi dalam image processing meliputi : a. Geometrical transformation M eliputi : rotasi , pengecilan dan pembesaran gambar. b. Color correction M eliputi : brightness dan contrast adjustment , quantization dan konversi ke warna yang berbeda. c. Digital compositing atau optical compositing M eliputi : penggabungan dua atau lebih image ke dalam sebuah image. d. Image Editing M eliputi : peningkatan kualitas dari sebuah image digital. e. Image Segmentation M eliputi : pemotongan dan pembagian sebuah image menjadi beberapa bagian sesuai dengan kriteria tertentu.
2.2.1
Image Yang dimaksud dengan image ( Wikipedia 2008 ) adalah representasi visual
dari sebuah object , gambaran dari apa saja yang telah diciptakan , dibuat dan disimpan dalam bentuk elektronik. Sebuah image dapat dinyatakan dengan fungsi dua variabel riil sebagai contoh Z (x , y) dimana Z adalah amplitudo misalkan terang gambar pada posisi (x , y). Sebuah image dapat digambarkan sebagai vector graphics atau raster graphics.
9
Vector graphics adalah image yang disusun oleh bentuk dasar geometri seperti titik , garis , kurva dan poligon yang mana dibuat berdasarkan persamaan matematika yang dapat digunakan untuk mewakili object didalam graphic komputer. Sedangkan raster graphics adalah image yang tersusun dari sekumpulan pixel yang umumnya digunakan untuk mewakili object hasil proses fotografi. Adapun beberapa format image yang umum digunakan adalah : a. Joint Picture Expert Group ( JPEG ) M erupakan format standart yang digunakan untuk mengkompresi gambar fotografi. Format ini hanya menentukan bagaimana image diubah menjadi aliran bit bukan bagaimana bit disimpan dalam media penyimpanan khusus. Sedangkan untuk penyimpanan dan transmisi file format ini digunakan JPEG File Interchange Format ( JFIF ) yang merupakan standar untuk web. JFIF dibuat oleh Independent JPEG Group. Adapun cara kerja dari format ini (Wikipedia 2008) adalah : JPEG membagi image kedalam 8 x 8 blok pixel , kemudian melakukan perhitungan terhadap tiap blok menggunakan Discrete Cosine Transform (DCT). Proses ini menghasilkan sifat lossy tetapi memiliki rasio kompresi lebih besar. Teknik kompresi menggunakan variable length code dan kemudian melakukan write terhadap aliran data kedalam output file yang berformat *.jpg. Sedangkan untuk proses dekompresi dilakukan proses transformasi inverse yang kemudian menghasilkan image.
10
b. Bitmap ( BMP ) M erupakan format file yang digunakan untuk merepresentasikan informasi warna pixel dari suatu gambar. Pada format ini mapping dilakukan antara pixel dan warna yang bersangkutan. Setiap format file terdiri dari : 1) BITMAPFILEHEADER bmfh Bagian ini berisi informasi mengenai tipe , ukuran file , dan rancangan dari DIB ( Device Independent Bitmap ). Selain itu bagian ini juga menyimpan offset untuk array bit. 2) BITMAPINFOHEADER bmih Bagian ini berisi informasi mengenai dimensi dari image , tipe kompresi dan format warna. 3) RGBQUAD aColors[] Bagian ini berisi informasi mengenai color table yang merupakan array yang terdiri dari sejumlah elemen yang sama dengan jumlah warna dalam bitmap. 4) BYTE aBitmapBits[] Bagian ini tersusun dari bitmap bits yang langsung mengikuti color table yang ada. c. Tag Image File Format ( TIFF ) Format ini dikembangkan oleh Aldus Corp dan banyak digunakan oleh beberapa platform terkenal dan menjadi format standar dari scanner. Format ini menggunakan 1-24 bit warna per pixel.
11
d.
Graphics Interchange Format ( GIF ) Format ini dikembangkan oleh CompuServe, Inc dan banyak digunakan secara luas dalam web. Format ini mudah digunakan tetapi tidak dapat dipakai untuk aplikasi yang membutuhkan ketajaman tinggi karena format ini hanya menggunakan 8-bit encode.
2.2.2
Webcam Webcam ( singkatan dari web camera ) adalah sebutan bagi kamera realtime
yang gambarnya bisa diakses melalui web , messenger atau aplikasi video call. Di pasaran terdapat berbagai macam merk webcam yang umumnya mempunyai resolusi sebesar 352 x 288 / 640 x 480 pixel. Sebuah webcam biasanya dihubungkan dengan komputer melalui port USB ( Universal Serial Bus ) ataupun port COM ( Component Object Model ). Sebuah webcam sederhana terdiri dari sebuah lensa standar , dipasang pada sebuah papan sirkuit untuk menangkap sinyal gambar , cover ( casing ) , lubang lensa untuk memasukkan gambar , kabel support yang dibuat dari bahan flexsibel sehingga memungkinkan untuk webcam dikontrol secara manual tentang ketinggian, arah dan sudut pandang kamera. Frame rate adalah satuan jumlah gambar yang dapat diambil dan ditransfer dalam satu detik melalui sebuah webcam. Semakin bagus kualitas dari sebuah webcam maka semakin tinggi frame rate dan resolusi yang dimiliki.
12
Secara umum permasalahan yang dihadapi dalam penggunaan sebuah webcam adalah ketinggian , sudut pandang dan arah lensa kamera yang harus diatur secara manual. Adapun beberapa fitur yang dapat didukung dari sebuah webcam adalah : a. Image Archiving Pengguna dapat membuat sebuah archive yang menyimpan sebuah gambar dari webcam pada saat interval pre-set. b. Custom coding M emperbolehkan user untuk mengakses kode dan fungsi yang disediakan oleh vendor untuk keperluan aplikasi. c. Streaming media Webcam dapat digunakan sebagai alat streaming video dan suara yang dapat dipergunakan untuk berbagai aplikasi lainnya.
2.3.
Computer Vision 2.3.1 Computer Vision Computer vision adalah cabang ilmu dari kecerdasan buatan yang lebih memfokuskan pada pengolahan dan pengambilan informasi dari image. Adapun image dapat diambil dari berbagai sumber seperti video, scanner atau digital image. Computer vision pada umumnya terdiri dari sistem antara lain : a. pengaturan proses Contoh : industri robot atau kendaraan otomatis. b. mendeteksi kejadian atau object
13
Contoh : menghitung orang, mengawasi pergerakan, dan mengenali mata. c. mengatur informasi Contoh : mengatur image didatabase dan mengurutkan image. d. pemodelan object Contoh : pemodelan bentuk bumi, analisis medical image dan pengawasan industri. e. Interaksi Contoh : sebagai alat inputan untuk interaksi antara manusia dan komputer. Computer vision dapat digambarkan sebagai perkembangan dari penglihatan biologi pada manusia. Computer vision mempelajari dan menggambarkan sistem penglihatan buatan yang diimplementasikan kedalam software atau hardware. Secara umum bidang didalam computer vision dapat dibagi menjadi : a. Recognition M erupakan permasalahan mendasar dari computer vision yaitu mengenali apakah didalam sebuah image terdapat object, feature atau aktivitas tertentu. Permasalahan ini dapat dengan mudah dipecahkan oleh manusia, namun tetap menjadi hal yang tidak mudah bagi komputer secara umum terlebih apabila object dan situasi yang dihadapi selalu berubah. Kadang-kadang metode yang ada hanya dapat digunakan pada permasalahan tertentu seperti bentuk geometri sederhana namun menjadi susah diterapkan untuk pendeteksian wajah, pengenalan kendaraan dan tindakan.
14
b. Motion Tracking Berkaitan dengan gerakan yang akan diamati yang mana image yang diolah merupakan urutan dari sebuah kegiatan tertentu atau pergerakan dari sebuah object yang telah dikenali ( tracking). Untuk bagian ini, object telah dikenali dahulu sehingga dapat diketahui pergerakan object yang dimaksud. Adapun contoh dari bagian ini adalah mengetahui pergerakan dari mata, pergerakan dari sebuah mobil atau mengetahui pergerakan tangan dan jari manusia. c. Scene Recontruction Bagian ini berkaitan dengan mengatur urutan dari image menjadi sebuah grafik video setelah diketahui tindakan apa yang dilakukan oleh masing-masing gambar. M erupakan proses kelanjutan dari bagian motion tracking. Banyak digunakan
pada
permainan-permainan
komputer
yang dinamis
untuk
memperkecil ukuran program sebagai respon dari pemain. d. Image Restoration Tujuan utama dari bagian ini adalah mengurangi noise dari image. Pendekatan paling mudah untuk mengurangi noise
adalah menggunakan
beberapa tipe filter seperti low-pass filter atau median filter. Atau dapat juga menggunakan metode tertentu seperti Rank Deficient Methode. Sedangkan secara umum tahapan-tahapan yang terdapat didalam computer vision meliputi : a. Image acquisition Fungsi ini berkaitan dengan bagaimana mendapatkan gambar dari yang akan diproses baik dari sensor maupun dari gambar yang telah tersedia. Nilai
15
dari pixel pada gambar berhubungan dengan intensitas cahaya ( gray images atau colour images ). b. Preprocessing Sebelum sebuah metode computer vision dapat diterapkan pada gambar dilakukan beberapa proses yang dibutuhkan untuk memastikan bahwa gambar yang digunakan tepat. Proses tersebut dapat meliputi: 1)
Pengambilan gambar ulang untuk memastikan apakah kordinat yang dimaksud sudah tepat.
2)
Pengurangan noise dengan tujuan mengurangi inputan salah untuk proses selanjutnya.
3)
Perbaikan nilai contrast untuk memastikan bahwa informasi terkait dapat terdeteksi.
4)
Pengaturan skala dari gambar agar sesuai dengan yang dibutuhkan.
c. Feature Extraction M endapatkan feature-feature yang terdapat didalam gambar meliputi lines, edges, ridges, corner, blobs atau titik, texture, dan bentuk dari gambar. d. Detection/Segmentation Pada tahapan ini, gambar dibagi menjadi beberapa bagian yang lebih kecil dan dianggap lebih tepat untuk proses selanjutnya. Dapat dilakukan dengan cara memilih kumpulan pixel yang dianggap sesuai atau dengan membagi gambar menjadi beberapa bagian berbeda sesuai kebutuhan.
16
e. High Level processing Potongan gambar yang dianggap telah sesuai selanjutnya diproses sesuai tujuan dari program. Pada tahapan ini, algoritma dan metode lain dapat diterapkan agar program dapat berjalan optimal.
2.3.2 OpenCV OpenCV (Open Computer Vision) adalah teknologi computer vision yang dikembangkan oleh perusahaan semikonduktor terbesar di dunia yaitu
Intel
Corporation. OpenCV pertama kali diluncurkan pada tahun 1999. Pada awalnya OpenCV dibuat untuk meningkatkan kinerja CPU dalam membuat animasi 3D. Tetapi seriring perkembangan OpenCV lebih difokuskan pada pengembangan teknologi computer vision. OpenCV merupakan software yang dapat digunakan secara bebas baik untuk kepentingan penelitian maupun komersial selama penggunaannya berada dibawah lisensi BSD. OpenCV bersifat cross-platform sehingga dapat bekerja di sistem operasi apapun. Kinerja OpenCV dikhususkan pada realtime image processing sehingga sangat cocok untuk digunakan dalam membantu proses perhitungan image dengan skala besar namun dalam waktu yang singkat. OpenCV bekerja dengan memanfaatkan Intel’s Integrated Performance Primitives ( IIPP) yang ada di dalam sistem.
17
Area pengembangan OpenCV meliputi : a. Human Computer Interface M erupakan teknik perancangan sistem dimana komputer dan manusia dapat berinteraksi. b. Object Identification Bagaimana komputer dapat mengenali object tertentu. c. Motion Understanding / Tracking Bagaimana komputer dapat mengenali gerakan,membaca dan mengawasi pergerakan dari object. d. Segmentation and Identification Berkaitan dengan komputer dalam mengolah image, misalnya membagi sebuah image menjadi beberapa image lain. OpenCV sendiri dibuat dalam bahasa C yang memungkinkan untuk dikenali dibanyak merk prosesor. Namun semua library yang terdapat didalamnya dapat digunakan oleh bahasa lain seperti C#.
2.4.
Rank Deficient Method Rank Deficient Method adalah sebuah metode yang digunakan dalam proses perhitungan pendekatan cepat untuk mendukung fungsi vector didalam sebuah pendeteksian object. Secara umum, metode ini bekerja dengan mengurangi inputan yang mempengaruhi proses pendeteksian object menjadi serangkaian inputan yang valid berdasarkan kategori umum yang merupakan hasil analisis manusia.
18
Untuk aplikasi yang membutuhkan scanning object berukuran besar, metode ini mampu mengurangi waktu perhitungan dalam jumlah yang besar. Percobaan oleh Wolf Kienzle membuktikan dengan menggunakan metode ini, sebuah proses pendeteksian object menjadi empat sampai enam kali lebih cepat daripada percobaan biasa tanpa metode ini. M etode ini dikembangkan dari Burge’s method yang menjadi dasar dari metode pengurangan input.Untuk penjelasan lebih lanjut, misalkan sebuah image dapat direpresentasikan dengan matriks h x w. M isalkan sebuah matriks akan digunakan untuk proses pengenalan, { X 1 ,..., X m } adalah kumpulan set inputan, b adalah nilai bias, k( .,. ) adalah fungsi kernel maka pola dari x dapat ditentukan dengan ⎛m ⎞ f ( X ) = sgn⎜ ∑ y i ai k ( X i , X ) + b ⎟ ⎝ i =1 ⎠ dimana apabila nilai bias b setara dengan 0 maka persamaan diatas dapat dirumuskan dengan: ⎧− 1 , ⎪ f ( X ) = ⎨0, ⎪1, ⎩
y i ai k ( X i , X ) < 0 y i ai k ( X i , X ) = 0 y i ai k ( X i , X ) > 0
jika I adalah input image, H adalah response dan J adalah output image maka J=I*H Jika H adalah matriks image dengan ukuran h x w maka dibutuhkan operasi O ( h . w) untuk setiap pixel output, tetapi H sendiri dapat dipisahkan menjadi dua kolom vector yaitu a dan b. Sehingga persamaan persamaan diatas dapat diubah menjadi
19
J = [ I * a] * b
T
Hal ini membuat sebuah image dapat diubah menjadi proses perhitungan dengan ukuran h x 1 dan 1 x w. Sehigga kompleksitas proses perhitungan berkurang dari O ( h . w) menjadi O (h+w) per piksel. Seperti yang telah disebutkan diatas metode ini bekerja dengan cara mengurangi jumlah inputan yang harus diproses dengan data yang merupakan hasil analisis manusia. Seperti pada gambar dibawah ini , dimana bagian-bagian tubuh manusia khususnya wajah disusun dari penggabungan beberapa image yang telah dikenali sebelumnya.
Gambar 2.1 Perbandingan inputan antara metode Rank Deficient dan metode lain. Sumber: http://www.kyb2.mpg.de/publications/pdfs/pdf2776.pdf
Pada gambar diatas, kumpulan gambar disebelah kiri menunjukkan proses pengenalan image yang menggunakan metode lain, sedangkan kumpulan gambar disebelah kanan menunjukkan penggunaan metode ini. Dapat disimpulkan jumlah data yang digunakan untuk mengenali object wajah menjadi lebih sedikit. Adapun gambar berikut ini memperlihatkan hasil perbandingan kecepatan yang dibutuhkan
20
antara metode rank deficient dengan metode lainnya. Terlihat bahwa metode ini membutuhkan waktu yang lebih singkat dibandingkan metode lain.
Gambar 2.2 Perbandingan kecepatan metode Rank Deficient dengan metode lain. Sumber: http://www.kyb2.mpg.de/publications/pdfs/pdf2776.pdf
Secara umum metode ini menggunakan dua buah filter yang paling banyak digunakan untuk memperkecil image yang akan diproses. Filter yang dimaksud disini adalah teknik pengolahan image dengan memanfaatkan properti dari image itu sendiri misalnya pixel dan warna. Adapun dua buah filter yang sering digunakan adalah : a. Pixel Group Filter ( PGF ) Filter ini digunakan sebagai langkah awal dari image processing dengan tujuan untuk mengurangi ukuran dari image berdasarkan warna yang dikehendaki. Karena warna yang dikehendaki telah diketahui didalam cascade set maka pengguna dari filter ini tidak lagi perlu repot-repot untuk mencari kelompok warna yang dianggap tepat untuk suatu permasalahan misalnya mendeteksi wajah atau mata. Filter ini bekerja dengan cara sebagai berikut:
21
1). Kelompokkan pixel image berdasarkan warna. 2). Berikan batasan pada image untuk menandakan kelompok pixel yang dominan. 3) Dengan menggunakan cascade set yang ada, kelompok warna yang ada dipilih sesuai dengan kelompok warna kulit manusia dalam cascade set. 4) Secara otomatis akan terbentuk image baru yang mengandung wajah dari pengguna. 5) Kemudian area dari image yang besarnya sesuai dengan wajah dari user yang akan digunakan untuk proses selanjutnya.
Gambar 2.3 Contoh penggunaan Pixel Group Filter yang menghasilkan bagian wajah. Sumber: http://ieeexplore.ieee.org/iel5/9605/30345/01394426.pdf?irnumber=1394426
Hasil dari penggunaan filter ini adalah image yang sudah terfokus kepada pengguna. Sehingga ukuran image menjadi lebih kecil dari ukuran sebelumnya.
22
b. Dark Pixel Filter ( DPF ) Filter ini digunakan khusus untuk mendeteksi wajah manusia secara cepat namun terlebih dahulu image yang akan diproses haruslah merupakan hasil dari Pixel Group Filter yang telah dijelaskan diatas. Filter ini bekerja berdasarkan pengelompokkan warna pixel berdasarkan tingkat intensitas cahaya yang dimiliki oleh masing-masing pixel. Adapun cara kerja dari filter ini adalah sebagai berikut : 1) Jika Pixel(x,y) < dark lanjutkan ke langkah 2 , jika tidak ke langkah 5. 2) Jika Pixel(x,y+t 1 ) - Pixel(x,y)>edge maka UpB = y –t 1 kemudian lakukan langkah 3. Jika tidak maka lakukan langkah 5. 3) Jika Pixel(x,y+t 2 ) – Pixel(x,y) > edge maka DoB = y - t 2 kemudian lakukan langkah 4. Jika tidak maka lakukan langkah 5. 4) Jika DoB – UpB ≤ r maka Pixel(x,y) diperkirakan adalah pixel mata. 5) Lakukan hal yang sama untuk pixel selanjutnya. Keterangan : t
: index pencarian pixel.
dark
: batasan warna gelap yang membedakan warna mata dengan warna sekitarnya.
edge
: batasan warna gelap yang membedakan garis yang mengelilingi mata.
UpB : variabel yang menyimpan batasan atasan dari proses pengolahan pixel. DoB : variabel yang menyimpan batasan bawah dari proses pengolahan pixel.
23
Gambar 2.4 Gambar yang menunjukkan hasil pengunaan DPF pada sebuah image Sumber: http://ieeexplore.ieee.org/iel5/9605/30345/01394426.pdf?irnumber=1394426
Hasil dari penggunaan filter ini adalah image yang sudah terfocus hanya pada bagian wajah dari pengguna. Sehingga ukuran dari image menjadi jauh lebih kecil untuk digunakan pada proses selanjutnya. Image hasil proses ini dapat digunakan lebih lanjut untuk berbagai macam aplikasi seperti pendeteksian wajah, mata atau bagian wajah lainnya. Perlu diperhatikan bahwa tingkat keberhasilan dari Dark Pixel Filter sangat tergantung kepada hasil penggunaan Pixel Group Filter dan cascade set yang
24
dipakai. Semakin baik cascade set maka hasil yang didapat akan semakin akurat. Cascade set didapat dari proses training dan pengenalan pola terhadap suatu object. Adapun cascade set yang telah teruji telah banyak disediakan di internet. Salah satu web yang menyediakan cascade set yang telah dianggap valid dan mempunyai tingkat akurasi tinggi adalah www.sourceforge.net.
2.5.
Interaksi Manusia dan Komputer ( IMK ) M enurut S hneiderman ( 1998 , p15 ) dalam merangcang suatu program atau sistem perlu diperhatikan beberapa hal terutama interaksi antara user dan program atau sistem hendaknya bersifat user friendly yang berarti program atau sistem hendaknya mudah digunakan oleh siapa saja termasuk user awam sekalipun. Adapun beberapa kriteria yang harus diperhatikan dalam merancang sebuah sistem adalah : a. Waktu belajar yaitu berama lama seorang pengguna dapat beradaptasi untuk dapat menggunakan sistem tersebut. b. Tingkat kesalahan pengguna yaitu jumlah dan jenis kesalahan yang paling sering dilakukan oleh seorang user hendaknya rendah. c. Daya ingat pengguna artinya informasi yang disajikan hendaknya dapat diingat oleh pengguna. d. Kepuasan pengguna artinya dalam menggunakan sistem , pengguna hendaknya memiliki kepuasan sehingga dia akan menggunakan sistem tersebut lagi. e. Kecepatan sistem yaitu kecepatan sistem dalam menerima respon dan memberikan respon balik terhadap user.
25
Untuk itu , S hneiderman ( 1998 , p74-75 ) mengatakan agar dapat mencapai suatu sistem yang memiliki antar muka yang baik , perlu diperhatikan delapan aturan emas dalam perancangan sebuah sistem ( eight golden rules ) yang meliputi : a. Konsisten M eliputi konsisten dalam urutan aksi , penggunaan istilah yang sama , font , image , dll. b. Pengunaan shortcut Penyediaan shortcut pada sistem memungkinkan user untuk mengerjakan sesuatu lebih cepat tanpa harus mengingat banyak command. c. Adanya umpan balik yang informatif Suatu sistem yang baik hendaknya mampu memberikan umpan balik sesuai dengan inputan pengguna seperti suara atau tampilan visual agar tidak membinggungkan pengguna. d. Adanya pencegahan kesalahan dan penanganan kesalahan yang sederhana Hendaknya sistem dirancang agar user tidak melakukan kesalahan yang besar dan apabila terjadi kesalahan maka sistem dapat memberikan pesan peringatan yang sederhana , spesifik dan konstruktif. e. M emungkinkan pembalikan aksi yang mudah Sistem dirancang agar user dapat melakukan pembalikan aksi sebelum aksi tersebut dilakukan. Sehingga user memiliki keberanian untuk mengekspolari sistem dan dapat membatalkan aksi tersebut. f. Pengguna dapat menguasai sistem
26
Pengguna harus dapat menguasai sistem dengan baik ,baik melalui command ataupun melalui shortcut. g. M engurangi beban ingatan jangka pendek Sistem hendaknya dirancang sesederhana mungkin dimana informasi yang ada dikelompokkan , diatur dalam multipage , serta pengaturan urutan aksi yang tepat. h. M erancang dialog untuk menghasilkan keadaaan akhir yang baik Setiap aksi harus mempunyai kondisi permulaan , tengah dan akhir. Setelah aksi dilakukan sangat baik apabila ada umpan balik dari sistem sehingga user mengetahui keadaan tersebut.
2.6.
Software Development Life Circle ( S DLC ) 2.6.1. Waterfall Model Secara umum dalam membuat sebuah sistem terdapat beberapa pemodelan proses , salah satu diantaranya adalah waterfall model. M enurut Royce ( 1929 – 1995 ) secara umum waterfall model dapat dibagi menjadi enam bagian yaitu : a. Rekayasa sistem Pada tahapan ini , ditentukan terlebih dahulu elemen – elemen yang ada didalam sistem. b. Analisis kebutuhan piranti lunak Pada tahapan ini semua kebutuhan , informasi dan spesifikasi kebutuhan piranti lunak dikumpulkan.
27
c. Perancangan Pada tahap ini lebih menitikberatkan kepada tiga komponen program yaitu struktur data , arsitektur piranti lunak , dan prosedur detail. d. Pengkodean ( pembuatan program ) Pada tahap ini program dirancang sesuai dengan informasi , kebutuhan dan prosedur yang telah dikumpulkan. e. Pengujian Sebuah sistem yang baik hendaknya diuji terlebih dahulu untuk memastikan sistem berjalan sesuai keinginan. f. Pemeliharaan Pemeliharaan piranti lunak dilakukan untuk mengantisipasi kebutuhan pengguna akan fungsi-fungsi baru ataupun kesalahan sistem. Berikut adalah gambar 2.5 yang menjelaskan urutan tahapan dalam Waterfall Model yang dimulai dari Rekayasa Sistem sampai dengan Pemeliharaan.
Gambar 2.5 Gambar Waterfall Model. Sumber : http://students.mimuw.edu.pl
28
2.6.2. Alat Bantu Perancangan A. Flowchart Flowchart adalah representasi skema dari suatu algoritma atau suatu proses ( Wikipedia , 2008 ). Pertama kali diperkenalkan oleh Frank Gilbreth pada tahun 1921 dan saat ini menjadi alat yang sering digunakan untuk menunjukkan aliran proses dalam sebuah algoritma. Sebuah flowchart umumnya terdiri dari simbol-simbol antara lain: a. Simbol oval atau persegi panjang dengan ujung-ujung tumpul Simbol ini menandakan Mulai atau Selesai yang menunjukkan awal atau akhir dari sebuah proses. b. Anak panah Simbol ini menunjukan “alur kontrol” dalam suatu algoritma. Anak panah keluar dari suatu simbol dan berakhir pada simbol lain yang menunjukkan kontrol beralih kepada simbol yang ditunjukkan oleh anak panah. c. Persegi panjang Simbol ini mewakili langkah proses , input atau output. Contoh : “ nilai x dikurang 1”. d. Belah ketupat Simbol ini mewakili kondisi atau keputusan yang umumnya mempunyai dua jawaban saja.
29
Gambar 2.6 Gambar contoh Flowchart Sumber:http://en.wikipedia.org/wiki/Flowchart
B. Sequence Diagram Sequence
diagram
digunakan
untuk
memodelkan
scenario
penggunaan yaitu barisan kejadian yang terjadi selama satu eksekusi sistem ( Hariyanto , 2004 , p309 ). Cakupan scenario mulai dari semua kejadian dalam sistem sampai kejadian yang terjadi pada object tertentu saja. Diagram ini menunjukkan object sebagai garis vertikal dan tiap kejadian sebagai panah horizontal dari object pengirim kepada object penerima. Adapun panjang garis tidak menunjukkan waktu secara relevan kecuali memang diinginkan real time. Diagram ini pada umumnya digunakan untuk a. M endokumentasikan skenario dari suatu diagram usecase. b. M emeriksa jalur-jalur pengaksesan.
30
c. M enunjukkan object yang diperlukan. d. M engamati prilaku sistem.
Gambar 2.7 Gambar contoh Sequence diagram Sumber:http:// http://en.wikipedia.org/wiki/S equence_diagram
Jadi, pada landasan teori ini, telah dibahas teori-teori yang berhubungan dengan perancangan program aplikasi, seperti image processing, Computer Vision, Rank Deficient Method, dan Software Development Life Circle. Penggunaan dari teori-teori tersebut akan dijelaskan lebih lanjut pada bab selanjutnya.