library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2013-1... · Web viewDecision...
Transcript of library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2013-1... · Web viewDecision...
BAB 2
TINJAUAN PUSTAKA
2.1 Perangkat Lunak
Menurut Sommerville (2011:6) perangkat lunak (software) merupakan
sebuah program komputer dimana program tersebut dapat dikembangkan untuk
pelanggan tertentu maupun untuk pasar umum.
2.2 Agile Method
Sommerville (2011:59-60) menjelaskan bahwa agile method cocok untuk
jenis pengembangan aplikasi seperti:
1. Pengembangan aplikasi yang berskala kecil hingga menengah.
2. Mengizinkan banyak ruang untuk user ikut terlibat dalam
pengembangannya, karena aplikasi yang dibuat adalah aplikasi yang sesuai
dengan keinginan user.
Adapun prinsip-prinsip dari agile method, antara lain:
1. Customer involvement
Customer seharusnya terlibat selama proses pengembangan, untuk
menyediakan memprioritaskan kebutuhan sistem yang baru serta untuk
mengevaluasi iterasi dari sistem.
2. Incremental delivery
Software yang dikembangkan secara bertahap dengan customer menentukan
kebutuhan yang harus dimasukan dalam tiap tahapnya.
3. People not process
Skill dari developer harus diakui dan dimanfaatkan sedemikian rupa
sehingga hasil kerja dari developer bisa mencapai hasil yang maksimal.
4. Embrace change
Mengharapkan kebutuhan aplikasi untuk perubahan, sehingga perancangan
sistem sebagai akomodasi perubahan tersebut.
5. Maintain simplicity
Membuat aplikasi yang sederhana, baik dalam proses pengembangan
maupun hasil akhir aplikasi sehingga aplikasi bisa digunakan dengan efisien
dan tidak rumit.9
10
2.3 Extreme Programming (XP)
Sommerville (2011:65-66) menjelaskan bahwa extreme programming
adalah salah satu metode yang paling dikenal didalam agile method. Didalam
extreme programming, kebutuhan dinyatakan sebagai skenario (user stories),
yang dilaksanakan langsung sebagai serangkaian tugas. Programmer bekerja
secara berpasangan dan mengembangkan uji coba untuk setiap tugas sebelum
menuliskan code. Semua uji coba tersebut harus berhasil dieksekusi ketika
kode baru yang terinteraksi dalam sistem. Adapun prinsip-prinsip dari extreme
programming, antara lain:
1. Incremental planning
Kebutuhan ditulis kedalam story card dan story dimasukkan kedalam rilis
yang ditentukan oleh waktu yang tersedia dan prioritas relatif. Kemudian
pengembang mengubah story tersebut menjadi pengembangan.
2. Small releases
Kumpulan fungsi minimal yang berguna memberikan nilai bisnis pada
pengembangan yang pertama.
3. Simple design
Perancangan cukup membawa keluar kebutuhan saat ini.
4. Test-first development
Sebuah unit kerangka pengujian otomatis yang digunakan untuk menulis uji
coba untuk fungsi yang baru sebelum fungsi tersebut diimplementasikan.
5. Refactoring
Development diharapkan dapat menyusun ulang code secepat mungkin
ketika perbaikan code ditemukan. Hal ini membuat code menjadi sederhana
dan dapat diurus. Dan yang perlu diperhatikan adalah ketika akan
melakukan pengembangan aplikasi, perubahan di masa depan haruslah bisa
diantisipasi. Dengan selalu melakukan refactoring terhadap code yang
dikembangkan, programming team dapat melihat possible improvement dari
aplikasi dan dapat segera diimplementasikan. Walaupun memang tidak
segera dibutuhkan, tetapi hal ini berguna untuk mengantisipasi perubahan di
masa depan daripada harus kembali meninjau ulang code dari awal.
6. Pair programming
Pengembang bekerja secara berpasangan, mengecek satu sama lain dan
selalu mendukung untuk melakukan pekerjaan yang baik.
11
7. Collective ownership
Pasangan pengembang bekerja dalam semua area sistem, sehingga semua
pengembang bertanggungjawab untuk semua code.
8. Continous integration
Secepat mungkin, tugas pekerjaan diselesaikan, hal ini untuk
mengintegrasikan kedalam keseluruhan sistem.
9. Sustainable pace
Sejumlah besar lembur tidak dianggap diterima sebagai efek bersih, karena
digunakan untuk mengurangi kualitas code dan produktivitas jangka
mengengah.
10. On-site customer
Customer harus menyediakan waktunya secara penuh dalam tim XP. Dalam
proses extreme programming, customer menjadi anggota dari tim
pengembangan dan berganggung jawab untuk membawa kebutuhan sistem
kepada tim sebagai implementasi.
2.4 Unified Modelling Language (UML)
Dalam pengembangan aplikasi, dibutuhkan penggunaan UML untuk
memudahkan perancangan struktur aplikasi.
2.4.1 Pengertian UML
Menurut Whitten dan Bentley (2007:371), UML merupakan
pembuatan model standar dalam pengembangan sistem yang berbasis
object oriented yang direpresentasikan dalam bentuk diagram. Diagram
yang dihasilkan biasanya merupakan relasi antara objek-objek yang
berada di dalam sistem.
2.4.2 Use Case Diagram
Whitten dan Bentley (2007:246-250, 382) menjelaskan bahwa use
case diagram digunakan untuk menggambarkan interaksi antara sistem
dan eksternal sistem serta pengguna. Dengan kata lain, menggambarkan
siapa yang akan menggunakan sistem dan langkah apa yang pengguna
harapkan ketika berinteraksi dengan sistem.
12
Komponen-komponen yang penting dan yang perlu diperhatikan
di dalam use case diagram ini adalah:
1. Use case
Fungsi yang dijalankan di dalam sistem digambarkan dengan
menggunakan lambang use case dan biasanya dilambangkan dengan
bentuk elips. Use case menunjukkan urutan dari aktivitas dan
interaksi user terhadap sistem.
Gambar 2.1 Contoh Penggunaan Use Case Di Dalam Use Case
Diagram
(Sumber: Whitten & Bentley, 2007:246)
2. Actors
Use case dipicu oleh eksternal user yang disebut actors. Actors akan
memulai aktivitas yang ada di dalam sistem dengan tujuan untuk
menyelesaikan business task yang menghasilkan nilai terukur.
Seorang actor hanya merepresentasikan peran user ketika
berinteraksi dengan sistem dan tidak menggambarkan seorang
individu maupun jabatan kerja.
13
Gambar 2.2 Simbol Actor Dalam Use Case Diagram
(Sumber: Whitten & Bentley, 2007:247)
Actors ini dibagi ke dalam empat tipe yaitu:
a. Primary bussiness actor
Seorang stakeholder yang mendapatkan keuntungan dari eksekusi
use case. Primary business actor mungkin atau mungkin tidak
dapat menjalankan business event. Contohnya di dalam sebuah
business event dari seorang karyawan yang menerima gaji dari
sistem penggajian pada hari Jumat, karyawan tersebut tidak
menjalankan event tersebut melainkan hanya menjadi penerima
dari event yaitu menerima gaji.
b. Primary system actor
Stakeholder yang secara langsung berinteraksi dengan sistem
untuk menjalankan business atau system event. Primary system
actor dapat berinteraksi dengan primary business actor dengan
tujuan untuk memfasilitasi primary business actor dalam
menjalankan business event.
c. External server actor
Stakeholder yang merespons permintaan dari use case.
d. External receiver actor
Stakeholder yang menerima nilai terukur dari use case tetapi
bukanlah primary actor.
3. Relationships
Relationships digambarkan dengan garis yang berada diantara dua
simbol pada use case diagram. Pengertian dari relationships ini
berbeda menurut cara penggambaran garis dan simbol-simbol apa
14
saja yang saling terhubung. Relationships ini terbagi menjadi lima
tipe, yaitu:
a. Associations
Hubungan antara seorang actor dan sebuah use case yang muncul
ketika use case menjelaskan interaksi antar kedua simbol tersebut.
Hubungan ini digambarkan dengan sebuah garis lurus yang solid.
Jika pada garis terdapat panah ketika menunjuk sebuah use case,
maka hal ini menunjukkan bahwa use case ditiru oleh actor. Jika
pada garis tidak terdapat panah, maka hal ini menunjukkan
interaksi antara use case dan external server atau receiver actor.
Ketika actor manapun diasosiasikan dengan use case, ini
dianggap bahwa actor sedang berkomunikasi dengan use case.
Hubungan asosiasi ini dapat bersifat bidirectional maupun
unidirectional.
Gambar 2.3 Contoh Association Relationship Use Case
(Sumber: Whitten & Bentley, 2007:248)
b. Extends
Untuk menyederhanakan use case, tahapan yang rumit didalam
use case dapat dikeluarkan dan dipindahkan menjadi sebuah use
case tersendiri. Hasilnya berupa extension use case yang
merupakan perpanjangan dari fungsi use case yang sebelumnya
lebih kompleks. Sebuah use case dapat memiliki banyak extended
relationship tetapi extended use case hanya dapat dipanggil oleh
use case awal. Setiap extended relationship line diberi label
<<extends>>.
15
Gambar 2.4 Contoh Extended Relationship Use Case
(Sumber: Whitten & Bentley, 2007:249)
c. Uses (or Includes)
Dalam pembuatan use case diagram, ada kemungkinan
ditemukannya dua atau lebih use case yang memiliki fungsi yang
hampir serupa. Akan lebih baik jika tahapan use case yang
hampir serupa ini dipisahkan ke dalam use case tersendiri yang
disebut abstract use case. Abstract use case ini membantu untuk
mengurangi redudancy diantara use cases. Abstract use case
dapat digunakan untuk mereferensikan use case lain yang
membutuhkan fungsi ini. Hubungan antara abstract use case dan
use case yang menggunakan fungsi ini disebut uses relationship
atau includes relationship. Pada garis penghubung antar use case
terdapat label <<uses>> atau <<includes>> untuk menunjukkan
relasi ini.
Gambar 2.5 Contoh Uses Relationship Use Case
(Sumber: Whitten & Bentley, 2007:249)
16
d. Depends on
Ketika sedang membuat use case diagram, sering kali ditemukan
use case yang saling bergantung dengan use case lainnya untuk
menentukan bagaimana urutan use case yang perlu
dikembangkan. Pada garis penghubung antar use case terdapat
label <<depends on>> untuk menunjukkan relasi ini.
Gambar 2.6 Contoh Depends On Relationship Use Case
(Sumber: Whitten & Bentley, 2007:250)
e. Inheritance
Ketika dua atau lebih actors berbagi use case yang sama, dapat
dilakukan pembagian actor tersebut ke dalam sebuah abstract
actor yang baru sehingga mengurangi komunikasi yang
redundant di dalam sistem. Contohnya didalam use case sistem
perpustakaan, seorang patron yang adalah actor yang dapat
melakukan “search library inventory” dan “check out book”.
Sementara visitor adalah actor yang dapat melakukan “search
library inventory” dan bisa mengajukan “apply for membership”.
Dengan menciptakan sebuah abstract baru yaitu customer yang
mana akan menjadi pewaris actor patron dan visitor.
17
Gambar 2.7 Contoh Penggunaan Inheritance Dalam Use Case
(Sumber: Whitten & Bentley, 2007:250)
2.4.3 Use Case Narrative
Whitten dan Bentley (2007:246-260) menjelaskan bahwa use case
narrative digunakan untuk menggambarkan interaksi tentang
bagaimana pengguna melakukan suatu kegiatan untuk menyelesaikan
suatu tugas tertentu melalui suatu deskripsi tertulis. Use case narrative
dapat dideskripsikan dengan beberapa bagian, diantaranya:
1. Use case name
Use case name digunakan untuk menyatakan suatu tujuan tertentu
yang ingin dicapai didalam suatu use case.
2. Actor
Menyatakan stakeholder yang berinteraksi dengan sistem, dimana
actor berperan penting dalam melaksanakan jalannya use case.
3. Description
Merupakan ringkasan yang menggambarkan tujuan dari use case dan
aktivitasnya.
4. Precondition
Menyatakan suatu kondisi tertentu sebelum suatu use case
dijalankan.
5. Flow of events
Merupakan tahapan yang dilakukan oleh user atau sistem dalam
menjalankan suatu use case.
18
6. Postcondition
Menyatakan kondisi yang akan terjadi sesudah suatu use case
dijalankan.
2.4.4 Activity Diagram
Whitten dan Bentley (2007:382, 391) menjelaskan bahwa activity
diagram digunakan untuk menggambarkan urutan alur aktivitas dari
sebuah use case atau proses bisnis. Activity diagram juga dapat
digunakan sebagai logika model dengan sistem. Activy diagram
diilustrasikan dengan simbol-simbol berikut:
Tabel 2.1 Simbol Activity Diagram
GambarKeterangan
Initial node adalah simbol
berbentuk lingkaran yang
merepresentasikan mulainya
activity diagram.
Actions adalah simbol yang
berbentuk rounded
rectangle yang
merepresentasikan langkah-
langkah dalam proses
activity diagram.
Flow adalah simbol yang
berbentuk panah yang
menunjukkan alur dari
activity diagram.
19
GambarKeterangan
Decision adalah simbol
yang berbentuk diamond
dengan satu flow masukkan
dan menghasilkan output
dua atau lebih flow. Simbol
ini menunjukkan kondisi
yang membutuhkan pilihan
actions yang akan dilakukan
selanjutnya.
Merge adalah simbol yang
berbentuk diamond dengan
dua atau lebih flow
masukkan dan
menghasilkan hanya satu
flow output. Simbol ini
menggabungkan flows
masukkan yang sebelumnya
dipisahkan oleh decision,
dan berlanjut
Fork adalah simbol yang
berbentuk black bar dengan
satu flow masukkan dan
menghasilkan output dua
atau lebih flow. Aksi output
pararel ini dapat dilakukan
dalam urutan apapun
maupun secara bersamaan.
20
GambarKeterangan
Join adalah simbol yang
berbentuk black bar dengan
dua atau lebih flow
masukkan dan
menghasilkan hanya satu
output flow. Semua flow
masukkan harus dikerjakan
terlebih dahulu sebelum bisa
melanjutkan ke proses
berikutnya.
Activity final adalah simbol
yang berbentuk lingkaran
dengan lingkaran kecil solid
didalamnya. Simbol ini
menunjukkan akhir dari
seluruh proses activity
diagram.
2.4.5 Class Responsibility Collaboration (CRC) Cards
Whitten dan Bentley (2007:657-658) menjelaskan bahwa Class
Responsibility Collaboration (CRC) cards adalah salah satu cara untuk
mengidentifikasi aktivitas yang dilakukan berhubungan dengan kelas
yang mana dan mengidentifikasikan hubungan antar kelas tersebut.
2.4.6 Class Diagram
Whitten dan Bentley (2007:370-381, 400-406) menjelaskan
bahwa class diagram digunakan untuk menggambarkan kelas-kelas
objek yang menyusun suatu sistem beserta hubungan antar kelas
tersebut.
21
Class diagram terdiri dari tiga bagian utama, yaitu:
1. Nama kelas.
2. Atribut kelas.
3. Operasi kelas.
Gambar 2.8 Struktur Class Diagram
Di dalam class diagram terdapat beberapa komponen/hal penting,
yaitu:
1. Visibility
Visibility berfungsi untuk mendefinisikan apakah atribut dan operasi
pada suatu kelas dapat diakses oleh kelas lain atau tidak.
Tabel 2.2 Keterangan Visibility
Visibility Level Simbol Keterangan
Private -Hanya dapat diakses oleh kelas
itu sendiri
Protected #
Hanya dapat diakses oleh kelas
itu sendiri dan kelas
turunannya
Public +Dapat diakses oleh semua kelas
yang berhubungan
2. Multiplicity
Multiplicity berfungsi untuk menentukan banyaknya kelas yang
berhubungan.
22
Tabel 2.3 Keterangan Multilicity
Multiplicity Notasi Multiplicity
Exactly 1
1
or
leave blank
Zero or 1 0..1
Zero or more
0..*
or
*
1 or more 1..*
Spesific range 7..9
Gambar 2.9 Contoh Multiplicity
(Sumber: Whitten & Bentley, 2007:377)
3. Generalization/specialization
Generalization/specialization merupakan sebuah teknik dimana
atribut dan operasi yang umum pada beberapa tipe kelas
dikelompokkan ke dalam kelasnya sendiri, yang disebut dengan
supertype. Atribut dan operasi dari objek kelas supertype diturunkan
(inherited) ke kelas objek lainnya, yang disebut dengan subtypes.
23
Gambar 2.10 Contoh Generalization
(Sumber: Whitten & Bentley, 2007:376)
4. Aggregation
Aggregation merupakan suatu hubungan yang menyatakan bahwa
suatu kelas merupakan bagian dari kelas lain yang lebih besar.
Sedangkan composition merupakan sebuah aggregation yang lebih
kuat, dimana secara keseluruhan bertanggung jawab atas
terbentuknya dan hancurnya suatu part, dan setiap part berasosiasi
hanya kepada satu whole object. Pada UML 2.0, aggregation
dihapuskan karena hubungannya kurang kuat dan kurang jelas.
24
Gambar 2.11 Contoh Aggregation
(Sumber: Whitten & Bentley, 2007:379)
Gambar 2.12 Contoh Composition
(Sumber: Whitten & Bentley, 2007:379)
2.4.7 Sequence Diagram
Menurut Whitten dan Bentley (2007:659), sequence diagram
adalah diagram UML yang memberikan gambaran mengenai logika dari
use case diagram dengan menggambarkan hubungan antar objek dalam
waktu yang berurutan. Sequence diagram mempunyai notasi sebagai
berikut:
25
Tabel 2.4 Simbol Sequence Diagram
GambarKeterangan
Actor adalah represemtasi
dari user yang berinteraksi
dengan user interface.
Interface class adalah
representasi yang
menggambarkan user
interface class code.
Controller classes berfungsi
untuk menentukan aktivitas
apa yang akan dilakukan
sebuah kelas dan parameter
apa saja yang diterima dan
dikembalikan serta
menghubungkan kelas
interface dengan kelas
entity.
Entity Class adalah kelas
yang melakukan suatu
aktivitas terhadap data yang
ada di dalam database.
Messages mengindikasikan
bahwa adanya pesan yang
masuk yang dikirimkan ke
kelas tertentu.
26
GambarKeterangan
Activation bars berfungsi
untuk menunjukkan alur
hidup dari setiap instance
object yang digunakan
selama periode waktu
tertentu.
Return messages merupakan
pengembalian atau respon
yang diberikan dari sebuah
messages.
Self Call adalah sebuah
objek yang dapat
memanggil methodnya
sendiri.
Frame adalah sebuah kotak
yang menggambarkan
bahwa ada satu atau lebih
pesan yang opsional.
27
Gambar 2.13 Sequence Diagram of the Place New Order Use Case
(Sumber: Whitten & Bentley, 2007:659)
2.5 Data Dictionary
Menurut Connolly & Begg (2010:65), data dictionary merupakan suatu
penggambaran sifat database yang menyediakan data independence dimana
terdapat nama entitas dan deskripsi dari entitas tersebut. Setiap atribut yang
diidentifikasikan memberikan fungsi yang berguna bagi pengguna.
2.6 Interaksi Manusia dan Komputer
Untuk menunjang kemudahan pengguna ketika berinteraksi dengan
komputer, maka diperlukan dasar-dasar teori berikut:
2.6.1 Pengertian Interaksi Manusia dan Komputer
Menurut Shneiderman dan Plaisant (2010:22), interaksi manusia
dan komputer adalah pengaplikasian metode-metode yang digunakan
oleh manusia dalam penerapan penggunaan komputer sehingga dapat
meningkatkan efektivitas, efisiensi, dan kepuasan dalam melakukan
sebuah pekerjaan.
2.6.2 Lima Faktor Manusia Terukur
Menurut Shneiderman dan Plaisant (2010:32), faktor-faktor yang
harus diperhatikan dalam merancang user interface disebut lima faktor
28
manusia terukur. Lima faktor manusia terukur merupakan sebuah
standarisasi untuk mengukur apakah sebuah aplikasi telah mencapai
tujuannya atau belum agar aplikasi tersebut dapat menjadi lebih efektif,
efisien, dan memberikan kepuasan kepada user. Faktor-faktor tersebut
antara lain:
1. Time to learn (waktu belajar)
Lamanya waktu yang diperlukan oleh user agar dapat mempelajari
bagaimana cara menggunakan aksi-aksi yang relevan dalam
mengerjakan suatu tugas.
2. Speed of performance (kecepatan kinerja)
Lamanya waktu yang dibutuhkan dalam mengerjakan suatu tugas.
3. Rate of errors by users (tingkat kesalahan)
Seberapa banyak dan tipe kesalahan apa saja yang dibuat oleh
pengguna dalam mengerjakan suatu tugas.
4. Retention over time (daya ingat)
Seberapa baik pengguna mempertahankan pengetahuannya dalam
jangka waktu tertentu.
5. Subjective satisfaction (kepuasan subjektif)
Banyaknya pengguna yang suka menggunakan antarmuka (interface)
yang beraneka ragam. Untuk mengetahui hal tersebut, dapat
dilakukan wawancara (interview) dan surveys.
2.6.3 Delapan Aturan Emas
Shneiderman dan Plaisant (2010:88-89) menjelaskan tentang
delapan prinsip yang disebut sebagai “aturan emas”. Prinsip ini
merupakan sebuah panduan dalam pembuatan user interface yang baik
agar user dapat mengendalikan sistem sehingga produktivitas kerja
menjadi meningkat. Prinsip-prinsip tersebut, antara lain:
1. Strive for consistency
Konsistensi dibutuhkan dalam segala situasi, dalam pengunaan
tampilan seperti menu, help screen, warna, layout, kapitalisasi, font,
dan sebagainya.
29
2. Cater to universal usability
Mengenali kebutuhan dari pengguna yang berbeda-beda serta
memfasilitasi perubahan konten. Perbedaan tersebut meliputi rentang
usia ketidakmampuan, dan perbedaan teknologi dalam setiap
kebutuhan panduan desain.
3. Offer informative feedback
Untuk setiap aksi pengguna, seharusnya ada umpan balik (feedback)
yang jelas.
4. Design dialogs to yield closure
Urutan langkah suatu aksi seharusnya disusun ke dalam grup dengan
awal, tengah, dan akhir. Umpan balik yang informatif pada akhir
aksi haruslah memberikan kepuasan.
5. Prevent errors
Dalam melakukan perancangan sistem, sebaiknya menghindari
terjadinya kesalahan (error) yang serius atau fatal ketika sistem
digunakan oleh user.
6. Permit easy reversal of actions
Aksi-aksi yang dilakukan didalam sistem harus dapat dikembalikan
ke aksi atau keadaan yang sebelumnya, sehingga ketika pengguna
mengetahui adanya kesalahan aksi tersebut dapat dibatalkan
(cancel).
7. Support internal locus of control
Pengguna yang berpengalaman menginginkan experience
pengendalian dimana pengguna menguasai antarmuka dan
antarmuka tersebut merespons aksi tersebut.
8. Reduce short-term memory load
Keterbatasan pemrosesan informasi dalam memori jangka pendek
pengguna merupakan salah satu hal yang harus diperhatikan.
2.7 Microsoft Visual Studio 2012
Microsoft Visual Studio 2012 adalah sebuah software yang esensial
untuk menjalankan tugas pengembangan sederhana. Software ini
menyederhanakan pembuatan aplikasi, debugging, dan peluncuran dari aplikasi
diberbagai platform termasuk SharePoint dan Cloud. Visual Studio 2012 juga
30
terintegrasi bantuan untuk pengembangan dengan metode test-driven, serta
debugging tool yang menjamin kualitas program yang baik. (Anonim1, 2013)
2.8 OpenCV
OpenCV adalah sebuah library yang berisi fungsi programming untuk
ilmu computer vision. (Anonim2, 2013)
2.9 Emgu CV
Emgu CV adalah sebuah .NET wrapper lintas platform untuk library
OpenCV dalam pengolahan citra digital sehingga fungsi-fungsi dari OpenCV
dapat dipanggil dari bahasa-bahasa .NET, seperti C#, VB, VC++, IronPhyton,
dan sebagainya. (Anonim3, 2013)
2.10 MongoDB
MongoDB adalah sebuah basis data dokumen yang open source dan
merupakan NoSQL database terkemuka serta ditulis dalam C++. (Anonim4,
2013)
2.11 Tesseract OCR
Tesseract OCR merupakan OCR engine yang dapat membaca image dan
mengubahnya menjadi text. (Anonim5, 2013)
2.12 ITextSharp
ITextSharp merupakan library yang dapat membantu suatu aplikasi untuk
dapat mengelola file PDF. (Anonim6, 2013)
2.13 AForge.NET Framework
AForge.NET merupakan framework yang dirancang untuk meneliti pada
bidang computer vision dan artificial intelligence, yang meliputi image
processing, neural network, machine learning, robotic, dan lain-lain.
(Anonim7, 2013)
31
2.14 Artificial Intelligence (AI)
Pada dasarnya, banyak pandangan serta pengertian mengenai AI, dan
secara garis besar, Russel dan Norvig (2010:2) membagi pengertian AI
kedalam empat kategori utama, diantaranya:
1. Thinking humanly
Pada kategori ini, AI dijelaskan sebagai suatu usaha baru untuk dapat
membuat komputer dapat berpikir, suatu mesin yang memiliki pikiran
secara penuh dan memiliki rasa, atau dengan kata lain dapat juga disebut
sebagai kegiatan yang mengadopsi cara manusia berpikir, seperti
pengambilan keputusan, penyelesaian masalah, pembelajaran, dan
sebagainya.
2. Thinking rationally
Pada kategori ini, AI dijelaskan sebagai suatu studi melalui pemodelan
komputasi, dimana studi AI ini dapat membuat segala sesuatu mungkin
untuk dapat dipersepsikan dan memiliki alasan untuk dilakukan.
3. Acting humanly
Pada kategori ini, AI dijelaskan sebagai suatu seni untuk membuat mesin
dapat menampilkan fungsi yang membutuhkan kecerdasan ketika digunakan
oleh manusia.
4. Acting Rationally
Pada kategori ini, AI dijelaskan sebagai studi tentang perancangan agen-
agen kecerdasan (intelligent agents) dan AI difokuskan pada perilaku yang
cerdas.
2.15 Computer Vision
Menurut Shapiro dan Stockman (2001:1) computer vision adalah sebuah
cabang studi dari ilmu kecerdasan buatan yang bertujuan untuk membantu
pengambilan keputusan yang tepat mengenai deskripsi objek maupun scenes
yang ada didalam sebuah image.
2.16 Image Processing
Menurut Russel dan Norvig (2010:965) Image Processing adalah suatu
proses untuk mengekstraksi informasi visual yang dibutuhkan untuk
menjalankan tugas manipulasi, navigasi, dan recognition.
32
2.17 Digital Image
Saphiro dan Stockman (2001:3, 10-11, 29) menyatakan bahwa sebuah
image dua dimensi (2D) yang direpresentasikan oleh array diskrit 2D I[r,c]
dimana I merupakan nama array, dan r dan c adalah angka row dam column.
Digital image memiliki jumlah baris dan kolom picture element (pixel)
yang tetap, dan bernilai antara 0 – 255 yang menyatakan brightness pada titik-
titik gambar. Angka 0 menyatakan titik tergelap sementara 255 menyatakan
titik terterang dari gambar.
Nilai pixel dapat dibuah berdasarkan hubungannya dengan sejumlah nilai
pixel yang bersebelahan (kolom dan baris) untuk mengurangi noise yang
mungkin terjadi pada saat digitization process serta dapat berfungsi untuk
menyederhanakan konten dari sebuah gambar, seperti pada proses background
subtraction.
Gambar 2.14 Array Pixel Pada Digital Image
(Sumber: Saphiro & Stockman, 2001:2)
Gambar 2.15 Representasi Gambar Dari Pixel Pada Digital Image
(Sumber: Saphiro & Stockman, 2001:2)
33
2.18 Detection
Menurut Forsyth dan Ponce (2012:549) detection merupakan metode
untuk mengindentifikasi image yang memiliki sebuah objek yang
mendominasi.
2.19 Recognition
Bradski dan Kaehler (2008:461) menjelaskan bahwa recognition
merupakan suatu keadaan ketika komputer memberikan nama dari suatu objek.
2.20 Grayscale
Menurut Saphiro dan Stockman (2001:30), grayscale image adalah
sebuah monochrome digital image I[r,c] dengan satu nilai intensitas per pixel.
Gambar 2.16 Contoh Grayscale Image
(Sumber:
http://www.aforgenet.com/framework/docs/html/img/imaging/sample1.jpg,
2013)
2.21 Binary Image
Menurut Saphiro dan Stockman (2001:30, 51-52) binary image adalah
sebuah digital image dengan semua nilai pixel adalah 0 atau 1 yang didapatkan
dari sebuah image grayscale atau color image melalui proses segmentasi.
Angka 1 digunakan sebagai foreground pixel, sedangkan angka 0 digunakan
sebagai background pixel. Binary image dinyatakan dalam bentuk B[r,c].
34
Gambar 2.17 Array pixel of binary image
(Sumber: Saphiro & Stockman, 2001:5)
Dari array diatas kemudian didapatkan gambar sebagai berikut:
Gambar 2.18 Representasi Gambar Binary Image
(Sumber: Saphiro & Stockman, 2001:5)
2.22 Red, Green, Blue
Saphiro dan Stockman (2001:191-193) menjelaskan bahwa dengan
menggunakan tiga tipe receptors, manusia dapat membedakan beribu macam
warna. Trichromatic red green blue (RGB) didalam sistem grafis biasanya
menggunakan three bytes enabling (28)3 dan menghasilkan kurang lebih 16 juta
kode warna yang berbeda. Tiap 3-byte atau 24-bit RGB pixel selalu ada
masing-masing 1 byte (range antara 0 – 255) untuk warna merah, hijau, biru.
Urutan munculnya warna pada memory bisa berbeda-beda dan penting dalam
programming.
35
Tabel 2.5 Digital Trichromatic Color Encoding System
Color RGB
Red (255, 0, 0)
Yellow(255, 255, 0)
(100, 100, 50)
Green (0, 255, 0)
Blue (0, 0, 255)
White (255, 255, 255)
Grey
(192, 192, 192)
(127, 127, 127)
(63, 63, 63)
…
Black (0, 0, 0)
Sistem RGB adalah sebuah sistem penambahan warna karena warna yang
diciptakan dihasilkan dari penambahan komponen ke warna hitam: (0, 0, 0).
Hasilnya akan direspons baik terhadap monitor yang memiliki tiga tipe fosfor
untuk memancarkan cahaya.
Di dalam RGB terdapat persamaan normalisasi yang digunakan untuk
melakukan normalisasi data gambar. Normalisasi tersebut berfungsi sebagai
interpretasi oleh program komputer dan orang-orang dalam melakukan
transformasi ke dalam sistem warna lainnya. Adapun persamaan normalisasi
tersebut antara lain:
Intensity
Nomalized red
Nomalized green
Nomalized blue
2.23 Binary Image Morphology
Menurut Saphiro dan Stockman (2001:63-68), istilah morfologi dalam
computer vision digunakan untuk merujuk bentuk sebuah area tertentu.
36
Morfologi ini digunakan untuk memproses area dari operasi component
labelling yang saling terhubung.
Operasi pada morfologi binary adalah dengan memasukkan sebuah
binary image B dan structuring element S, yang umumnya adalah sebuah
binary image yang lebih kecil. Structuring element merepresentasikan sebuah
bentuk dimana ukurannya bisa bervariasi. Tetapi ada ukuran tertentu untuk
structuring element umum seperti bentuk segi empat dengan dimensi yang
spesifik [BOX(h,w)] atau daerah lingkaran dengan diameter yang spesifik
[DISK(d)].
Gambar 2.19 Contoh BOX(3,5)
(Sumber: Saphiro & Stockman, 2001:64)
Gambar 2.20 Contoh DISK(5)
(Sumber: Saphiro & Stockman, 2001:64)
Ada empat operasi dasar untuk melakukan morfologi binary yaitu
dilatasi, erosi, closing dan opening. Dilatasi digunakan untuk memperbesar
wilayah, sementara erosi digunakan untuk memperkecil wilayah. Closing dapat
digunakan untuk menutup internal holes di dalam wilayah dan menghilangkan
bays sepanjang boundary. Opening dapat digunakan untuk menghilangkan
bagian kecil dari wilayah yang keluar dari boundary.
Rumus untuk dilatasi adalah sebagai berikut:
Rumus untuk erosi adalah sebagai berikut:
37
Rumus untuk closing adalah sebagai berikut:
Rumus untuk opening adalah sebagai berikut:
Gambar 2.21 Binary Image B
(Sumber: Saphiro & Stockman, 2001:67)
Gambar 2.22 Structuring Element
(Sumber: Saphiro & Stockman, 2001:67)
38
Gambar 2.23 Dilation
(Sumber: Saphiro & Stockman, 2001:67)
Gambar 2.24 Erotion
(Sumber: Saphiro & Stockman, 2001:67)
Gambar 2.25 Closing
(Sumber: Saphiro & Stockman, 2001:67)
39
Gambar 2.26 Opening
(Sumber: Saphiro & Stockman, 2001:67)
2.24 Thresholding
Menurut Jain, Kasturi, Schunck (1995:28-31) thresholding adalah sebuah
proses segmentasi untuk mengidentifikasikan objek-objek yang berada di
dalam sebuah gambar. Dengan thresholding, grayscale image dapat diubah
menjadi binary image sehingga objek dapat dipisahkan dari background. Agar
proses thresholding ini lebih efektif dalam memisahkan objek dan background,
perlu diketahui level intensitas dari objek dan background serta memiliki
kontras yang cukup.
Jika sebuah binary image adalah B[i,j] sama dengan sebuah thresholded
gray image FT[i,j] yang didapat dengan cara threshold T untuk original gray
image F[i,j], maka:
B[i,j] = FT[i,j]
dimana untuk objek yang lebih gelap dan background yang lebih terang:
Jika diketahui nilai intensitas objek berada didalam range [T1, T2], maka:
40
Sebuah skema thresholding yang intensitas level dari objeknya mungkin
berasal dari beberapa interval yang terurai dapat direpresentasikan sebagai
berikut:
dimana Z adalah sekelompok nilai intensitas untuk komponen objek.
2.25 Algoritma
Deitel dan Deitel (2010:87) menjelaskan bahwa algoritma merupakan
sebuah prosedur yang digunakan untuk menyelesaikan suatu masalah
(problem) dengan mengurutkan suatu langkah aksi yang akan dieksekusi.
2.26 Teks
Menurut definisi Kamus Besar Bahasa Indonesia (KBBI), teks
merupakan wacana tertulis.
2.27 Machine Print and Handwriting Text
Srivasva, Raj, Patnaik, dan Kumar (2013) menjelaskan beberapa
perbedaan karakteristik antara text machine print dan handwriting:
1. Penulisan karakter pada machine print akan selalu lurus sedangkan karakter
handwriting bisa lurus dan bisa juga tidak.
2. Jarak spasi pada tulisan machine print mempunyai jarak yang jelas dan kecil
kemungkinan untuk terjadi overlapping antar tulisan, sementara
handwriting memungkinan terjadinya overlapping sehingga menyulitkan
tejadinya proses segmentasi.
3. Tulisan machine print memiliki tinggi tulisan yang cenderung sama,
sedangkan handwriting memiliki tinggi yang berbeda-beda.
2.28 Optical Character Recognition (OCR)
Charles, Harish, Swathi, dan Deepthi (2012) menjelaskan bahwa Optical
Character Recognition merupakan suatu sistem yang dapat mengenali karakter
tulisan yang dicetak atau tulisan tangan dengan melakukan scan pada
dokumen.
41
2.29 Jaringan Syaraf Tiruan (Neural Network)
Menurut Fausett (1994:3-19) jaringan syaraf tiruan adalah sistem
pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf
biologi. JST dapat digunakan sebagai pengenalan pola (pattern recognition),
signal processing, peramalan, dan hal lainnya lagi. JST ditentukan oleh tiga
hal, antara lain:
1. Pola hubungan antar neuron (arsitektur jaringan).
Beberapa arsitektur jaringan yang sering dipakai antara lain:
a. Jaringan layar tunggal (single layer network)
Dalam jaringan ini, sekumpulan input neuron dihubungkan langsung
dengan sekumpulan output.
Gambar 2.27 Jaringan Layar Tunggal
(Sumber: Fausett, 1994:13)
b. Jaringan layar jamak (multi layer network)
Jaringan ini merupakan perluasan dari jaringan layar tunggal, dimana
selain unit input dan output, terdapat unit lainnya lagi yang disebut layar
tersembunyi (hidden layer). Jaringan ini dapat menyelesaikan masalah
yang lebih kompleks dibandingkan dengan jaringan layar tunggal,
meskipun terkadang proses pelatihan lebih kompleks dan lama.
42
Gambar 2.28 Jaringan Layar Jamak
(Sumber: Fausett, 1994:13)
c. Jaringan competitive
Jaringan ini membentuk bagian yang besar pada neural network.
Competitive interconnections mempunyai bobot –ε dan menggunakan
operasi winner-take-all competition.
Gambar 2.29 Jaringan Competitive
(Sumber: Fausett, 1994:14)
43
2. Metode untuk menentukan bobot penghubung (metode
training/learning/algoritma).
Berdasarkan cara memodifikasi bobotnya, ada dua macam pelatihan, antara
lain:
a. Pelatihan dengan supervisi (supervised)
Dalam pelatihan ini, terdapat sejumlah pasangan data (input dan target
output) yang dipakai untuk melatih jaringan hingga diperoleh bobot yang
diinginkan. Pada setiap kali pelatihan, suatu input diberikan ke jaringan.
Jaringan akan memproses dan mengeluarkan output. Selisih antara output
dan target output merupakan kesalahan (error) yang terjadi. Jaringan
akan memodifikasi bobot sesuai dengan kesalahan tersebut. Contoh
jaringan yang menggunakan pelatihan ini adalah perceptron, ADALINE,
dan backpropagation.
b. Pelatihan tanpa supervisi (unsupervised)
Dalam pelatihan ini, perubahan bobot jarignan dilakukan berdasarkan
parameter tertentu dan jaringan dimodifikasi menurut ukuran parameter
tersebut.
3. Fungsi aktivasi.
Fungsi aktivasi dipakai untuk menentukan keluaran suatu neuron. Argumen
fungsi aktivasi adalah net masukan (kombinasi linier masukan dan
bobotnya). Jika net = , maka fungsi aktivasinya adalah
Beberapa fungsi aktivasi yang sering dipakai antara
lain:
a. Fungsi identitas
b. Fungsi threshold (binary step)
c. Fungsi sigmoid biner
Nilai dari fungsi ini terletak antara 0 dan 1. Turunan dari fungsi ini
adalah:
44
d. Fungsi sigmoid bipolar
Nilai dari fungsi ini terletak antara -1 dan 1. Turunan dari fungsi ini
adalah:
Terkadang dalam jaringan ditambahkan sebuah unit masukan yang
nilainya selalu satu (1), yang disebut dengan bias. Bias berfungsi untuk
mengubah nilai threshold menjadi nol (0). Jika melibatkan bias, maka
keluaran unit penjumlah adalah:
2.30 Backpropagation
Fausset (1994:289-296) menjelaskan bahwa backpropagation melatih
jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk
mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan
untuk memberikan respon yang benar terhadap pola masukan yang serupa
dengan pola yang dipakai selama pelatihan. Backpropagation sendiri memiliki
kelemahan yaitu pelatihan yang memerlukan waktu yang lama.
1. Arsitektur backpropagation
Gambar 2.30 Backpropagation Dengan Satu Hidden Layer
45
(Sumber: Fausett, 1994:291)
2. Fungsi aktivasi
Fungsi aktivasi yang dipakai harus memenuhi beberapa syarat, yaitu
kontinu, terdiferensial dengan mudah, dan merupakan fungsi yang tidak
turun. Fungsi yang sering dipakai dan memenuhi ketiga syarat tersebut
adalah fungsi sigmoid biner serta fungsi sigmoid bipolar.
3. Pelatihan standar backpropagation
Adapun algoritma yang digunakan dalam pelatihan backpropagation antara
lain:
a. Inisialisasi semua bobot dengan bilangan acak kecil (-0.5 s/d 0.5).
b. Jika kondisi penghentian belum terpenuhi, lakukan langkah c sampai i.
c. Untuk setiap pasang data pelatihan, lakukan langkah d sampai i.
Fase I: Propagasi maju
d. Tiap unit masukan menerima sinyal dan meneruskannya ke unit
tersembunyi di atasnya.
e. Hitung semua keluaran di unit tersembunyi
f. Hitung semua keluaran jaringan di unit
Fase II: Propagasi mundur
g. Hitung faktor unit keluaran berdasarkan kesalahan di setiap unit
keluaran
46
merupakan unit kesalahan yang akan dipakai dalam perubahan bobot
layardi bawahnya (langkah h)
Hitung suku perubahan bobot dengan laju percepatan
h. Hitung faktor unit tersembunyi berdasarkan kesalahan di setiap unit
tersembunyi
Faktor unit tersembunyi
Hitung suku perubahan bobot (yang akan dipakai nanti untuk
merubah bobot )
Fase III: Perubahan bobot
i. Hitung semua perubahan bobot
Perubahan bobot garis yang menuju ke unit keluaran:
Perubahan bobot garis yang menuju ke unit tersembunyi:
Setelah pelatihan selesai dilakukan, jaringan dapat dipakai untuk
pengenalan pola. Pada pengenalan pola, hanya digunakan algoritma e dan
f saja. Apabila fungsi aktivasi yang digunakan bukan sigmoid biner,
maka langkah e dan f harus disesuaikan, demikian juga turunannya pada
langkah g dan h.
2.31 Jarak
Kadir dan Susanto (2013:567) menjelaskan bahwa jarak adalah
pendekatan yang umum dipakai untuk menentukan kesamaan atau
47
ketidaksamaan dua vektor fitur yang dinyatakan dengan ranking. Semakin
kecil nilai ranking, semakin dekat kesamaan kedua vektor tersebut.
Pengukuran jarak dapat dilakukan dengan beberapa cara, akan tetapi yang
umum digunakan adalah jarak Euclidean. Jarak Euclidean didefinisikan
sebagai berikut:
dimana dan adalah dua vektor yang jaraknya akan dihitung dan N
menyatakan panjang vektor.
2.32 Hasil Penelitian Sebelumnya
Pada jurnal yang ditulis oleh Dongre dan Mankar (2011), dapat diketahui
bahwa dalam bidang ilmu machine learning dapat dilakukan pengenalan huruf.
Dongre dan Mankar mengembangkan sebuah metode untuk komputer
mengenali tulisan Devganari, tulisan Hindi India. Dengan melakukan
segmentasi sebelum proses pengenalan huruf, maka dapat dicapai pengenalan
huruf yang lebih baik karena tingkat akurasi pengenalan huruf sangat
bergantung dengan proses segmentasi. Hal pertama yg perlu dilakukan adalah
melakukan preprocessing terhadap image yaitu thresholding dan binarization,
noise reduction untuk mengurangi kecacatan image, skew detection and
correction, dan thining dilakukan untuk menipiskan tulisan supaya tulisan lebih
mudah dideteksi. Preprocessed image selanjutnya akan disegmentasi. Ada 3
tahapan segmentasi yang dilakukan yaitu line segmentation, word
segmentation, character segmentation. Dari hasil segmentasi yang dilakukan,
dapat diketahui bahwa tingkat keberhasilan line segmentation adalah hampir
mendekati 100%. Word segmentation akurat selama dokumen hanya
mengandung karakter. Ketika muncul angka numeral Devganari, maka tingkat
akurasi akan menurun sampai sekitar 91%. Tetapi untuk tingkat akurasi
character recognition sekitar 55% dikarenakan karakter yang disegmentasi
menjadi lebih banyak jumlahnya daripada karakter yang tertera pada dokumen
aslinya. Hal ini terjadi karena Devganari merupakan dua dimensional script
sebagai konsonan yang dimodifikasi dari berbagai sisi, atas, bawah, kanan, kiri
48
untuk membentuk sebuah kata yang memiliki makna. Hasil penelitian ini
walaupun tidak sempurna, tetap dapat membuktikan bahwa optical character
recognition (OCR) dapat dilakukan.
Kemudian dari jurnal yang dituliskan oleh Thungamani dan Kumar
(2012), dapat diketahui bahwa proses OCR juga dapat diterapkan dalam
mengenali huruf Kannada, sebuah bahasa yang digunakan oleh penduduk di
bagian India Selatan tepatnya di provinsi Karnataka, Kannada. Sama seperti
penelitian yang dilakukan oleh Vikas dan Vijay sebelumnya, Thugamani dan
Kumar juga melakukan preprocessing image dan segmentasi. Segmentasi
tersebut juga dilakukan dalam 3 tahap yaitu line segmentation, word
segmentation, character segmentation. Selain itu, dilakukan juga proses
horizontal and vertical projection untuk memisahkan karakter huruf Kannada.
Kemudian dalam proses segmentasi ini juga terdapat proses untuk menemukan
connected component (CC) didalam binary image, dimana setiap CC, ratio
antara tinggi dan lebar maupun pixel hitam dan putih diperhitungkan didalam
kotak pembatas CC. Hal ini lakukan supaya analisis karakter dapat diproses
lebih cepat. Hasil dari penelitian ini adalah dengan penggunaan metode
horizontal and vertical projection serta pencarian CC meningkatkan kecepatan
proses OCR 4 kali lebih cepat dibandingkan dengan projection analysis.
Anupama, Rupa, dan Reddy (2013) melakukan penelitian mengenai
segmentasi terhadap Telugu image document dengan menggunakan multiple
histogram projection. Telugu adalah bahasa yang paling populer digunakan di
India Selatan. Serupa dengan penelitian yang telah dilakukan sebelumnya,
dilakukan preprocessing image sebelum masuk ke tahapan segmentasi. Setelah
itu, Anupama, Rupa, dan Reddy melakukan proses false line exclusion
meniadakan noise yang mungkin ada didekat daerah text line. Ketika sudah
disegmentasi, kemudian akan dikalkulasikan rata-rata dari tinggi daerah garis
untuk meniadakan false lines yang mungkin terdeteksi. Lalu, dengan
menghitung rata-rata lebar dari kata yang berada pada sumbu X dan jika kata
tersebut tidak sesuai dengan threshold maka akan dianggap sebagai kata yang
salah. Proses ini disebut false word exclusion. Hasil yang didapatkan dari
penelitian ini adalah dengan melakukan proses-proses diatas, tingkat akurasi
pengenalan huruf Telugu adalah 99% untuk dokumen yang memiliki kualitas
yang baik. Kekurangan dari penelitian ini adalah ketika ada karakter yang
49
saling menempel akan mengakibatkan kegagalan segmentasi. Selain itu masih
terjadi error terhadap segmentasi baris yang saling menumpuk. Algoritma
heuristik diperlukan untuk menyelesaikan masalah tersebut dan untuk
mengembalikan kata yang hilang.
Dari ketiga penelitian diatas diketahui bahwa proses OCR ini lebih sulit
dilakukan pada huruf Hindi seperti Devganari, Kannada, maupun Telugu.
Tetapi tidak menutup kemungkinan bahwa proses OCR ini dapat dilakukan
untuk huruf latin. Dengan proses yang serupa, pengenalan karakter tulisan
dapat dilakukan.
Tabel 2.6 Hasil Penelitian Sebelumnya
No Nama Judul Metode Keterangan
1. Vikas J Dongre,
Vijay J Mankar
Devgnari
Document
Segmentation
Using Histogram
Approach (2011)
Menggunakan
line
segmentation,
word
segmentation,
character
segmentation.
Penelitian ini
membahas
bahwa
pengenalan
huruf
Devganari
dengan
menggunakan
line
segmentation,
word
segmentation,
character
segmentation
dapat dilakukan
walaupun
hasilnya belum
100% akurat.
2. M.
Thungamani, P.
Ramakhanth
A Survey of
Methods and
Strategies in
Melakukan
vertical
horizontal
Penelitian ini
dilakukan
untuk
50
No Nama Judul Metode Keterangan
Kumar Handwritten
Kannada
Character
Segmentation
(2012)
projection
dan
menghitung
ratio
connected
component
didalam
proses
segmentasi.
mengetahui
seberapa cepat
pengenalan
huruf dengan
metode vertical
horizontal
projection.
3. N. Anupama,
Ch. Rupa &
Prof. E.
Sreenivasa
Reddy
Character
Segmentation for
Telugu Image
Document using
Multiple
Histogram
Projections(2013)
Menggunakan
proses false
line exclusion
dan false
word
exclusion.
Penelitian ini
bertujuan untuk
mengetahui
metode
pengenalan
telugu image
document.