bab 2 landasan teori 2.1 kecerdasan buatan 2.1.1 definisithesis.binus.ac.id/doc/bab2/2011-1-00128-if...
TRANSCRIPT
8
BAB 2
LANDASAN TEORI
2.1 Kecerdasan Buatan
2.1.1 Definisi
Definisi Kecerdasan Buatan
• H. A. Simon [1987] :
“Kecerdasan buatan (artificial intelligence) merupakan kawasan
penelitian, aplikasi dan instruksi yang terkait dengan pemrograman
komputer untuk melakukan sesuatu hal yang -dalam pandangan
manusia adalah- cerdas”
• Rich and Knight [1991]:
“Kecerdasan Buatan (AI) merupakan sebuah studi tentang bagaimana
membuat komputer melakukan hal-hal yang pada saat ini dapat
dilakukan lebih baik oleh manusia.”
• Encyclopedia Britannica:
“Kecerdasan Buatan (AI) merupakan cabang dari ilmu komputer yang
dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk
simbol-simbol daripada bilangan, dan memproses informasi
berdasarkan metode heuristic atau dengan berdasarkan sejumlah
aturan”
9
Dari definisi yang disebutkan di atas, kecerdasan buatan (bahasa
Inggris yaitu Artificial Intelligence) didefinisikan sebagai kecerdasan
yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya
dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam
suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang
dapat dilakukan manusia. Beberapa macam bidang yang menggunakan
kecerdasan buatan antara lain sistem pakar, permainan komputer (games),
logika fuzzy, jaringan syaraf tiruan dan robotika.
Pengertian AI dapat ditinjau dari dua pendekatan :
1. Pendekatan Ilmiah ( A Scientific Approach)
Pendekatan dasar ilmiah timbul sebelum invansi ke komputer, ini tidak
sama dengan kasus mesin uap. Pendekatan ilmiah melihat batas
sementara dari komputer, dan dapat diatasi dengan perkembangan
teknologi lanjutan. Mereka tidak mengakibatkan tingkatan pada konsep.
2. Pendekatan Teknik ( An Engineering Approach)
Usaha untuk menghindari definisi AI, tetapi ingin mengatasi atau
memecahkan persoalan-persoalan dunia nyata(real world problem).
Karena kecerdasan buatan adalah ilmu yang berdasarkan proses
manusia berpikir, maka penelitian bagaimana proses manusia berpikir
adalah hal yang pokok.
Pada saat ini para peneliti hanya mulai mengerti sedikit dari proses
berpikir tersebut, tetapi sudah cukup diketahui untuk membuat asumsi-
10
asumsi yang pasti tentang bagaimana cara berpikir dan menggunakan
asumsi-asumsi tersebut untuk mendesain suatu program komputer yang
mempunyai kecerdasan secara tiruan.
Semua proses berpikir menolong manusia untuk menyelesaikan
suatu masalah. Pada saat otak manusia mendapat informasi dari luar,
maka suatu proses berpikir reaksi otomatis dan respon yang spesifik
dicari untuk menyelesaikan masalah tertentu. Hasil akhir dari semua
proses berpikir tersebut disebut tujuan (goal).
Pada saat tujuan telah dicapai, pikiran akan segera berhadapan
dengan tujuan-tujuan lainnya yang akan dicapai. Di mana semua tujuan-
tujuan ini bila terselesaikan akan mengantar ke suatu tujuan utama.
Dalam proses ini tidak ada satupun cara berpikir yang mengarah ke
tujuan akhir dilakukan secara acak dan sembarangan.
Kecerdasan manusia dapat dipecah-pecah menjadi kumpulan
fakta-fakta (facts) dan fakta-fakta ini yang digunakan untuk mencapai
tujuan. Hal ini dilakukan dengan memformulasikan sekelompok aturan-
aturan (rules) yang berhubungan dengan fakta-fakta yang disimpan dalam
otak.
Walaupun Artificial Intelligence memiliki konotasi fiksi ilmiah
yang kuat, Artificial Intelligence membentuk cabang yang sangat penting
pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan
adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam Artificial
Intelligence menyangkut pembuatan mesin untuk mengotomatisasikan
tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya
11
adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk
menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan
tangan, suara dan wajah.
Sistem Artificial Intelligence sekarang ini sering digunakan dalam
bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah
dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan
video game.
Kecerdasan Buatan sendiri dimunculkan oleh seorang professor
dari Massachusetts Institute of Technology yang bernama John McCarthy
pada tahun 1956 pada Dartmount Conference yang dihadiri oleh para
peneliti Artificial Intelligence. Pada konferensi tersebut juga didefinisikan
tujuan utama dari Kecerdasan Buatan, yaitu : mengetahui dan
memodelkan proses-proses berfikir manusia dan mendesain mesin agar
rapat menirukan kelakuan manusia tersebut.
2.1.2 Latar Belakang Kecerdasan Buatan
Pada awal diciptakannya, komputer hanya difungsikan sebagai alat
komputasi belaka. Seiring dengan perkembangan waktu, penggunaan
komputer semakin mendominasi kehidupan manusia sehingga komputer
tidak hanya digunakan sebagai alat hitung saja, tetapi dapat menggantikan
beberapa pekerjaan yang biasanya dilakukan oleh manusia.
Manusia menjadi pintar dalam menyelesaikan segala permasalahan
yang dihadapi karena manusia mempunyai pengetahuan dan pengalaman.
Pengetahuan didapatkan dari proses belajar, pengalaman didapatkan
12
karena perjalanan waktu dan kehidupan yang dialami oleh manusia.
Semakin banyak bekal pengetahuan dan pengalaman yang dimiliki oleh
seseorang, diharapkan orang tersebut lebih mampu menyelesaikan
masalah yang dihadapinya.
Namun bekal pengetahuan saja tidak cukup, manusia juga
diberikan akal untuk melakukan penalaran, mengambil kesimpulan
berdasarkan pengetahuan dan pengalaman yang dimilikinya. Tanpa
memiliki kemampuan penalaran yang baik, tidak ada artinya manusia itu
memiliki pengetahuan dan pengalaman sebanyak apapun. Demikian juga
sebaliknya, walaupun seorang manusia memiliki kemampuan penalaran
yang baik, namun tanpa bekal pengetahuan dan pengalaman yang
memadai, manusia juga tidak dapat menyelesaikan masalahnya dengan
baik.
Agar komputer bisa bertindak seperti dan sebaik manusia, maka
komputer juga harus diberi bekal pengetahuan dan diberikan kemampuan
untuk menalar. Untuk itu, kecerdasan buatan akan mencoba untuk
memberikan beberapa metode untuk membekali komputer dengan kedua
komponen tersebut agar komputer bisa menjadi mesin yang cerdas.
2.1.3 Sejarah Kecerdasan Buatan
Program AI pertama yang bekerja ditulis pada 1951 untuk
menjalankan mesin Ferranti Mark I di University of Manchester (UK),
sebuah program permainan naskah yang ditulis oleh Christopher Strachey
dan program permainan catur yang ditulis oleh Dietrich Prinz. John
13
McCarthy membuat istilah "kecerdasan buatan" pada konferensi pertama
yang disediakan untuk pokok persoalan ini, pada 1956. Dia juga
menemukan bahasa pemrograman Lisp. Alan Turing, seorang
matematikawan Inggris, pertama kali mengusulkan adanya tes untuk
melihat bisa tidaknya sebuah mesin dikatakan cerdas. Hasil tes tersebut
kemudian dikenal dengan Turing Test, dimana si mesin tersebut
menyamar seolah-olah sebagai seseorang didalam suatu permainan yang
mampu memberikan respon terhadap serangkaian pertanyaan yang
diajukan. Turing beranggapan bahwa, jika mesin dapat membuat
seseorang percaya bahwa dirinya mampu berkomunikasi dengan orang
lain, maka dapat dikatakan bahwa mesin tersebut cerdas (seperti layaknya
manusia).
Kecerdasan Buatan sendiri dimunculkan oleh seorang professor
dari Massachusetts Institute of Technology (MIT) yang bernama John
McCarthy pada tahun 1956 pada saat Dartmouth Conference yang
dihardiri oleh parah peneliti AI.
Selama tahun 1960-an dan 1970-an, Joel Moses
mendemonstrasikan kekuatan pertimbangan simbolis untuk
mengintegrasikan masalah di dalam program Macsyma, program berbasis
pengetahuan yang sukses pertama kali dalam bidang matematika. Marvin
Minsky dan Seymour Papert menerbitkan Perceptrons, yang
mendemostrasikan batas jaringan syaraf sederhana dan Alain Colmerauer
mengembangkan bahasa komputer Prolog. Ted Shortliffe
mendemonstrasikan kekuatan sistem berbasis aturan untuk representasi
14
pengetahuan dan inferensi dalam diagnosa dan terapi medis yang
kadangkala disebut sebagai sistem pakar pertama. Hans Moravec
mengembangkan kendaraan terkendali komputer pertama untuk
mengatasi jalan berintang yang kusut secara mandiri.
Pada Pada tahun 1980-an, jaringan syaraf digunakan secara meluas
dengan algoritma perambatan balik, pertama kali diterangkan oleh Paul
John Werbos pada 1974. Tahun 1990-an ditandai perolehan besar dalam
berbagai bidang Artificial Intelligence dan demonstrasi berbagai macam
aplikasi. Lebih khusus Deep Blue, sebuah komputer permainan catur,
mengalahkan Garry Kasparov dalam sebuah pertandingan 6 game yang
terkenal pada tahun 1997.
Awal pekerjaan dipusatkan pada seperti game playing (misalnya:
audio dengan kecerdasan dan permainan catur (chess player), pembuktian
teorema (theorem proving) pada Tugas-tugas formal (Formal Tasks).
Samual (1963) menulis sebuah program yang diberi nama check-er-
playing program, yang tidak hanya untuk bermain game, tetapi digunakan
juga pengalamannya pada permainan untuk mendukung kemampuan
sebelumnya. Catur juga diterima, karena banyak sekali perhatian terhadap
permaianan catur yang merupakan permainan yang lengkap atau
kompleks, program catur di sini situasinya harus jelas dan rule atau
ketentuannya harus seperti dunia nyata. Kandidat AI harus mampu
menangani masalah-masalah yang sulit. Logic theorist diawal percobaan
untuk membuktikan teorema matematika. Ia mampu membuktikan
beberapa teorema dari bab 1 Prinsip Matematika Whiteheat dan Russell.
15
Theorema Gelernter (1963) membuktikan pencarian area yang lain dari
matematika yaitu geometri.
2.1.4 Tujuan Kecerdasan Buatan
Pengembangan AI dilakukan untuk mengembangkan metode dan
sistem untuk menyelesaikan masalah, masalah yang biasa diselesaikan
melalui aktifivitas intelektual manusia, misalnya pengolahan citra,
perencanaan, peramalan dan lain-lain, meningkatkan kinerja sistem
informasi yang berbasis komputer serta untuk meningkatkan pengertian /
pemahaman kita pada bagaimana otak manusia bekerja. Winston dan
Prendergas [1984] mengungkapkan ada tiga tujuan dari kecerdasan
buatan antara lain :
• Membuat mesin menjadi lebih pintar (tujuan utama)
• Memahami apa itu kecerdasan (tujuan ilmiah)
• Membuat mesin lebih bermanfaat (tujuan entrepreneurial)
Menurut Sri Kusumadewi [2003], tujuan kecerdasan buatan dapat
dilihat dari berbagai sudut pandang, antara lain :
• Sudut pandang kecerdasan.
AI adalah bagaimana membuat mesin yang “cerdas” dan dapat
melakukan hal-hal yang sebelumnya dapat dilakukan oleh
manusia.
16
• Sudut pandang penelitian.
AI merupakan studi yang menitik beratkan pada pertanyaan
bagaimana membuat computer dapat melakukan kegiatan
seperti yang dilakukan oleh manusia. Tidak menutup
kemungkinan hasil dari kegiatan tersebut dapat lebih baik dari
pada yang dikerjakan oleh manusia seperti dalam hal
kepresisian, ketepatan waktu.
• Sudut pandang bisnis.
AI adalah sekelompok alat bantu (tools) yang berdaya guna,
dan metodologi yang menggunakan alat-alat tersebut guna
menyelesaikan masalah-masalah bisnis.
• Sudut pandang pemrograman.
AI termasuk di dalamnya adalah studi tentang pemrograman
simbolik, penyelesaian masalah (problem solving), dan
pelacakan (searching).
2.1.5 Kecerdasan Buatan dan Kecerdasan Alami
Kita mengetahui bahwa kecerdasan buatan adalah diterapkan
untuk komputer, sedangkan kecerdasan alami merupakan kecerdasan
yang dimiliki oleh manusia. Jika dibanding kecerdasan alami, kecerdasan
buatan memiliki keuntungan komersial, antara lain :
1. Kecerdasan buatan lebih bersifat permanen, komputer tidak akan
mengalami perubahan selama hardware dan software-nya tidak rusak.
17
Kecerdasan alami akan cepat mengalami perubahan, Hal ini
dikarenakan sifat manusia yang pelupa.
2. Kecerdasan buatan lebih mudah diduplikasi dan disebarkan.
Mentranfer pengetahuan manusia dari satu orang ke orang lain
membutuhkan waktu yang lama dan sulit dilakukan, walaupun
diberikan waktu yang cukup lama untuk pembelajaran belum bisa
mentranfer ilmu pengetahuan dan keahlian dari sang pakar seratus
persen. Sedangkan jika pengetahuan tersebut sudah berada dalam
komputer, maka dalam waktu singkat pengetahuan dapat ditranfer ke
komputer lain seratus persen.
3. Kecerdasan buatan bersifat konsisten. Hal ini sangat mungkin karena
kecerdasan buatan sebagai bagian dari teknologi komputer, maka
kecerdasan buatan akan selalu konsisten dengan aturan-aturan yang
sudah ditetapkan dalam program. Apa yang dilakukan oleh komputer
pada saat ini akan tetap sama dengan apa yang akan dilakukan
komputer disaat yang akan datang selama tidak ada perubahan pada
aturan-aturan yang telah ditetapkan.
4. Kecerdasan buatan dapat didokumentasi. Komputer dapat
didokumentasi dengan mudah melalui pelacakan setiap aktivitas dari
sistem tersebut.
5. Kecerdasan buatan dapat mengerjakan pekerjaan lebih cepat
dibanding dengan kecerdasan alami. Jika komputer yang
mengerjakan, maka dapat dilakukan tepat waktu dan bahkan lebih
cepat dari waktu yang sudah ditetapkan.
18
6. Kecerdasan buatan dapat mengerjakan pekerjaan lebih baik dibanding
dengan kecerdasan alami. Dalam hal ketepatan atau kepresisian maka
komputer dapat menghitung dalam tingkat mikro atau lebih kecil dari
ukuran tersebut.
Keuntungan kecerdasan alami :
1. Kreatif. Kemampuan manusia untuk menambah pengetahuan yang
setiap waktu bertambah dan berubah. Pada kecerdasan buatan untuk
menambah pengetahuan harus dilakukan melalui sistem yang
dibangun.
2. Kecerdasan alami memungkinkan orang untuk menggunakan
pengalaman secara langsung. Sedang pada kecerdasan buatan harus
bekerja dengan input-input simbolik.
3. Pemikiran manusia dapat digunakan secara luas, sedangkan
kecerdasan buatan sangat terbatas.
2.1.6 Aplikasi Kecerdasan Buatan
Makin pesatnya perkembangan teknologi menyebabkan adanya
perkembangan dan perluasan lingkup yang membutuhkan kehadiran
kecerdasan buatan. Karakteristik ‘cerdas’ sudah mulai tidak hanya
dominan di bidang ilmu komputer (informatika), namun juga sudah
merambah di berbagai disiplin ilmu yang lain. Irisan antara psikologi dan
kecerdasan buatan melahirkan sebuah area yang dikenal dengan nama
Cognition & Psycolonguistics. Irisan antara teknik elektro dengan
19
kecerdasan buatan melahirkan berbagai ilmu seperti : pengolahan citra,
teori kendali, pengenalan pola dan robotika.
Adanya irisan penggunaan kecerdasan buatan di berbagai disiplin
ilmu tersebut menyebabkan cukup rumitnya untuk mengklasifikasikan
kecerdasan buatan menurut disiplin ilmu yang menggunakannya. Untuk
memudahkan hal tersebut, maka pengklasifikasian lingkup kecerdasan
buatan didasarkan pada output yang diberikan yaitu aplikasi komersial
(meskipun sebenarnya kecerdasan buatan itu sendiri bukan merupakan
medan komersial). Lingkup utama dalam kecerdasan buatan adalah :
a. Sistem Pakar (Expert System)
Kemampuan, keahlian dan pengetahuan tiap orang berbeda-beda.
Komputer dapat diprogram untuk berbuat seperti orang yang ahli dalam
bidang tertentu. Komputer yang demikian dapat dijadikan seperti
konsultan atau tenaga ahli di bidang tertentu yang dapat menjawab
pertanyaan dan memberikan nasehat-nasehat yang dibutuhkan. Sistem
demikian disebut Expert System (Sistem Pakar). Disini komputer
digunakan sebagai sarana untuk menyimpan pengetahuan para pakar.
Dengan demikian dengan meniru keahlian yang dimiliki oleh pakar.
Ada beberapa pengertian sistem pakar, antara lain :
• Menurut Durkin : Sistem pakar adalah suatu program komputer yang
dirancang untuk memodelkan kemampuan penyelesaian masalah yang
dilakukan oleh seorang pakar.
20
• Menurut Ignizio : Sistem pakar adalah suatu model yang prosedur
yang berkaintan, dalam suatu domain tertentu, yang mana tingkat
keahliannya dapat dibandingkan dengan keahlian seorang pakar.
• Menurut Giarratano dan Riley : Sistem pakar adalah suatu sistem
komputer yang bisa menyamai atau meniru kemampuan seorang
pakar.
• Menurut Sri Kusumadewi : Secara umum, sistem pakar adalah sistem
yang berusaha mengadopsi pengetahuan manusia ke komputer, agar
komputer dapat menyelesaikan masalah seperti yang biasa dilakukan
oleh para ahli.
Sistem pakar pertama kali dikembangkan oleh komunitas AI pada
pertengahan tahun 1960. Sistem pakar yang muncul pertama kali adalah
General-purpose Problem Solver(GPS) yang dikembangkan oleh Newel
dan Simon. GPS (dan program-program yang serupa) ini mengalami
kegagalan dikarenakan cangkupannya terlalu luas sehingga terkadang
justru meninggalkan pengetahuan-pengetahuan penting yang seharusnya
disediakan.
b. Game Playing
Game Playing (permainan game) merupakan bidang AI yang
sangat popular berupa permainan antara manusia melawan mesin yang
mempunyai intelektual untuk berpikir. Bermain dengan komputer
21
memang menarik, bahkan sampai melupakan tugas utama yang lebih
penting. Komputer dapat bereaksi dan menjawab tindakan-tindakan yang
diberikan oleh lawan mainnya. Kebanyakan permainan dilakukan dengan
menggunakan sekumpulan aturan. Dalam permainan digunakan apa yang
disebut dengan pencarian ruang, teknik untuk menentukan alternatif
dalam menyimak problema ruang merupakan sesuatu yang rumit.
c. Robotics
Robot berasal dari kata Robota, dari bahasa Chekoslavia yang
berarti tenaga kerja, kata ini digunakan oleh dramawan Karel Capek pada
tahun 1920 pada sandiwara fiksinya, yaitu R.U.R (Rossum’s Universal
Robots).
Robot adalah suatu mesin yang dapat diarahkan untuk
mengerjakan bermacam-macam tugas tanpa campur tangan lagi dari
manusia. Secara ideal robot diharapkan dapat melihat, mendengar,
menganalisa lingkungannya dan dapat melakukan tindakan-tindakan yang
terprogram. Robot digunakan untuk maksud-maksud tertentu dan yang
paling banyak adalah untuk keperluan industri. Diterapkannya robot
untuk industri terutama untuk pekerjaan 3D yaitu Dirty, Dangerous, atau
Difficult (kotor, berahaya dan pekerjaan yang sulit). Negara yang banyak
menggunakan robot untuk industri adalah Jepang, Amerika Serikat dan
Jerman Barat.
22
d. Pengenalan Ucapan (Speech Recognition)
Bidang ini juga masih dikembangkan dan terus dilakukan
penelitiannya. Kalau bidang ini berhasil dengan baik dan sempurna,
alangkah hebatnya komputer. Kita dapat berkomunikasi dengan komputer
hanya dengan bicara, kita bisa mengetik sebuah buku hanya dengan
bicara, dan selanjutnya komputer yang akan menampilkan tulisan hasil
pembicaraan kita. Akan tetapi bidang ini masih belum sempurna seperti
yang diharapkan. Hal ini dikarenakan jenis suara manusia berbeda-beda.
Suatu alat recognizer dapat ditambahkan pada komputer mikro
sehingga dapat digunakan untuk speech recognition, diantaranya yaitu:
- Voice Recognition Module (VRM) buatan Interstate Electronic.
- Voice Data Entry System (VDEC) buatan Interstate Electronic.
- SpeechLab buatan Heuristics Inc.
- Voice Entry Terminal (VET) buatan Scott Instruments.
- Cognivox buatan Voicetek.
e. Computer Vision
Computer vision merupakan kombinasi dari pencitraan,
pengolahan citra, pengenalan pola serta proses pengambilan keputusan.
Tujuan utama dari computer vision adalah untuk menerjemahkan suatu
pemandangan. Computer vision banyak dipakai dalam kendali kualitas
produk industri.
23
f. Intelligent Computer-Aided Instruction
Komputer yang mengajari manusia. Belajar melalui komputer
sudah lama digunakan, namun dengan menambahkan aspek kecerdasan di
dalamnya, dapat tercipta komputer “guru” yang dapat mengatur teknik
pengajarannya untuk menyesuaikan dengan kebutuhan “murid” secara
individual. System ini juga mendukung pembelajaran bagi orang yang
mempunyai kekurangan fisik atau kelemahan belajar.
g. Pengenalan Bahasa Alami (Natural Language Processing)
Suatu teknologi yang memberikan kemampuan kepada komputer
untuk memahami bahasa manusia sehingga pengguna komputer dapat
berkomunikasi dengan komputer dengan menggunakan bahasa sehari-
hari. Dengan pengolahan bahasa alami ini diharapkan user dapat
berkomunikasi dengan komputer dengan menggunakan bahasa sehari-
hari.
2.2 Computer Vision
Computer vision adalah ilmu pengetahuan yang mempelajari bagaimana
kompter dapat mengenali objek yang diamati atau diobservasi (transparansi
Computer Vision, Binus Univesity, 2002). Computer vision merupakan salah
satu disiplin ilmu dari Artificial Intelligence yang biasa juga di sebut kecerdasan
buatan, dimana computer vision berfokus pada informasi-informasi yang
dimiliki oleh data gambar. Data gambar memiliki banyak bentuk, seperti video
(gambar yang berjalan), gambar dari kamera, atau data multi-dimensional
24
scanner medis. Salah satu proses dari computer vision adalah image processing
atau lebih dikenal pengolahan citra. Sebagai disiplin teknologi, computer vision
berusaha untuk menerapkan teori dan model untuk pembangunan sistem
computer vision. Definisi computer vision dari beberapa ahli sebagai berikut :
• Menurut Andian Low (1991), computer vision berhubungan dengan
perolehan gambar, pemrosesan, klasifikasi, pengenalan, dan menjadi
penggabungan pengurutan pembuatan keputusan menuju pengenalan.
• Menurut Michael G. Fairhurst (1995), computer vision sesuai dengan
sifatnya, merupakan suatu subyek yang merangkul berbagai disiplin
tradisional secara luas guna mendasari prinsip-prinsip formalnya, dan dalam
mengembangkan suatu metodologi yang berlainan dari apa yang dimilikinya,
pertama-tama harus menggabungkan dan secara berurutan membangun
materi yang mendasari ini.
• Menurut Saphiro dan Stockman (2001), computer vision merupakan suatu
bidang yang bertujuan untuk membuat suatu keputusan yang berguna
mengenai objek fisik nyata dan keadaan berdasarkan atas sebuah citra.
Computer vision merupakan kombinasi antara pengolahan citra dan
pengenalan pola. Hasil keluaran dari proses computer vision adalah
pengertian tentang citra.
Contoh aplikasi dari computer vision mencakup sistem untuk :
• Pengendalian proses (misalnya, sebuah robot industri atau kendaraan
otonom).
25
• Mendeteksi peristiwa (misalnya, untuk pengawasan visual atau orang
menghitung).
• Mengorganisir informasi (misalnya, untuk pengindeksan database foto dan
gambar urutan).
• Modeling benda atau lingkungan (misalnya, inspeksi industri, analisis citra
medis atau model topografi).
• Interaksi (misalnya, sebagai input ke perangkat untuk interaksi manusia
komputer).
2.2.1 Citra Digital
Seperti yang dikemukan oleh Anvil K. Jain (1989), Citra digital
adalah Representasi dari suatu objek nyata baik dalam bentuk 2 dimensi
maupun 3 dimensi menjadi bentuk gambar digital yang dikenali oleh
komputer.
Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y),
dimana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas
citra pada koordinat tersebut dan nilai dari fungsi yang merupakan tingkat
intensitas warna atau tingkat keabu-abuan dari titik tersebut (Robert
J.schalkoff, 1989). Hal ini diilustrasikan pada gambar 2.1.
26
Gambar 2.1. Citra Digital
2.2.2 Pengolahan Citra Digital
Pengolahan citra merupakan bidang studi yang mempelajari proses
pengolahan gambar dimana baik masukan maupun keluarannya
berbentuk berkas citra digital (Aniati Murni Arymurthy, 1992).
Pengolahan citra digital dapat dikelompokkan dalam dua jenis kegiatan :
1. Memperbaiki kualitas suatu gambar, sehingga dapat lebih mudah
diinterpretasi oleh mata manusia.
2. Mengolah informasi yang terdapat pada suatu gambar untuk keperluan
pengenalan objek secara otomatis.
Kebutuhan untuk memproses sebuah gambar dengan cepat dalam
satu aplikasi merupakan salah satu masalah utama dalam melakukan
pengolahan citra, sedangkan untuk aplikasi yang bekerja secara real time
lebih bergantung pada pemrosesan piksel atau signal yang cepat daripada
metode optimisasi lain yang rumit dan memakan waktu (Chen, 2003).
27
Pengolahan citra dan pengenalan pola menjadi bagian dari proses
pengenalan citra. Kedua aplikasi ini akan saling melengkapi untuk
mendapatkan ciri khas dari suatu citra yang hendak dikenali. Secara
umum tahapan pengolahan citra digital meliputi akusisi citra, peningkatan
kualitas citra, segmentasi citra, representasi dan uraian, pengenalan dan
interpretasi.
2.2.3 Pengenalan Pola
Beberapa definisi tentang pengenalan pola :
• Menurut Michael G. Farnhurst (1988), pengenalan pola merupakan
bidang studi yang melakukan proses analisis gambar yang inputnya
adalah gambar ataupun citra digital dan menghasilkan output suatu
deskripsi dengan tujuan untuk mendapatkan informasi yang
disampaikan oleh gambar atau citra. Cara kerja pengenalan pola ini
seperti meniru kemampuan manusia (otak manusia) dalam mengenali
suatu objek atau pola tertentu.
• Menurut Aniati Murni Arymurthy (1992), pengenalan pola adalah
suatu proses analisis gambar, dimana masukkan berupa sebuah citra
dan hasil keluarannya berupa sebuah deskripsi citra tersebut. Proses
ini bertujuan untuk mengekstrak informasi yang disampaikan oleh
citra. Pada pengenalan pola dibutuhkan objek citra untuk
diidentifikasikan. Hasil dari pengenalan pola ini akan berupa kelas
yang merupakan kelompok dari klasifikasinya.
28
Sebuah contoh dari pengenalan pola adalah klasifikasi, yang
mencoba untuk memberikan setiap nilai masukan ke salah satu dari satu
perangkat class (misalnya, menentukan apakah email yang diberikan
adalah “spam” atau “non-spam”). Namun, pengenalan pola adalah
masalah yang lebih umum yang meliputi jenis lain output juga. Contoh
lain adalah regresi, yang memberikan sebuah output bernilai nyata untuk
setiap masukan, pelabelan urutan, yang memberikan kelas untuk setiap
anggota urutan nilai (misalnya, bagian dari penandaan pidato, yang
memberikan suatu bagian dari pidato untuk setiap kata di sebuah kalimat
input), dan parsing, yang memberikan sebuah pohon parse ke input
kalimat, menggambarkan struktur sintaksis kalimat.
2.2.4 Pengekstraksian Fitur (Feature Extraction)
Ekstraksi fitur adalah proses mendapatkan fitur atau penciri dari
suatu citra. Secara umum, fitur citra berupa warna, bentuk dan tekstur.
Acharya dan Ray (2005) mendefinisikan fitur bentuk sebagai
pendeskripsi suatu objek yang bebas terhadap posisi, orientasi, dan
ukuran. Fitur tekstur didefinisikan sebagai pengulangan pola atau pola-
pola yang ada pada suatu daerah bagian citra.
Pengekstraksian fitur dapat diartikan sebagai proses mengambil
informasi yang relevan, berhubungan dengan klasifikasi data input
dengan bantuan suatu alat. Biasanya pengekstrasian fitur dilakukan
dengan bantuan piranti lunak. Pemrosesan ini akan mengubah pola data
29
mentah dari gambar menjadi sebuah vektor ciri. Penggunanya akan
mengurangi data yang terulang dalam sebuah pola gambar (Saphiro dan
Stockman, 2001). Teknik pengekstrasian fitur ini digunakan dalam
proses, salah satunya deteksi muka.
2.2.5 RGB to Gray
Konversi RGB to Gray melakukan transformasi dari sebuah image
berwarna 24 bit dengan 3 channel menjadi sebuah image grayscale 8 bit
dengan single channel. Dengan demikian menambahkan merah untuk
menghasilkan hijau kuning. Tambahkan di beberapa biru untuk yang
campuran dalam jumlah yang sama dan mendapatkan warna netral. Penuh
pada [Red, Green, Blue] = [255 255 255] menghasilkan putih. [0, 0, 0]
hasil monitor hitam. Nilai Intermediate, ketika R = G = B semua sama
akan menghasilkan warna netral nominal tingkat tertentu abu-abu.
Konversi dari RGB ke grayscale tergantung pada kurva respon kepekaan
detektor untuk cahaya sebagai fungsi dari panjang gelombang. Rumus
yang digunakan adalah :
Rumus 2.1
Y = 0.299R + 0.587G + 0.114B
2.2.6 Equalisasi Histogram
Equalisasi histogram (Histogram Equalization) menyatakan
frekuensi kemunculan berbagai derajat keabuan dalam suatu citra dibuat
rata. Teknik pemodelan histogram mengubah citra hingga memiliki
30
histogram sesuai keinginan. Untuk dapat melakukan histogram
equalization ini diperlukan suatu fungsi distribusi kumulatif yang
merupakan kumulatif dari histogram.
Misalkan diketahui data sebagai berikut.
2 4 3 1 3 6 4 3 1 0 3 2
Maka histogram dari data di atas adalah.
Gambar 2.2. Contoh histogram
Proses perhitungan distribusi kumulatif dapat dijelaskan dengan tabel
berikut.
Tabel 2.1 Proses Perhitungan Distribusi Kumulatif
Nilai Histogram Distribusi Kumulatif 0 1 1 1 2 1+2=3 2 2 3+2=5 3 4 5+4=9 4 2 9+2=11 5 0 11+0=11 6 1 11+1=12
Dan diperoleh histogram kumulatif sebagai berikut.
31
Nilai hasil histogram equalization adalah sebagai berikut.
w = cw.th / nxny dimana w = nilai keabuan hasil histogram equalization, cw
= histogram kumulatif dari w, th = threshold derajat keabuan (256), nx
dan ny = ukuran gambar.
Hasil setelah histogram equalization adalah sebagai berikut.
Gambar 2.3. Histogram kumulatif
Histogram equalization (ekualisasi histogram) adalah suatu proses
dimana histogram diratakan berdasarkan suatu fungsi linier (garis lurus)
seperti terlihat pada gambar 2.3. Teknik ekualisasi histogram adalah
sebagai berikut.
Tabel 2.2 Teknik Ekualisasi Histogram
Nilai asal Histogram Kumulatif Nilai hasil
0 1 ½ 0 1 3 3/2 1 2 5 5/2 2 3 9 9/2 4 4 11 11/2 5 5 11 11/2 5 6 12 12/2 6
32
2 5 4 1 4 6 5 4 1 0 4 2
Gambar 2.4. Histogram dari hasil histogram equalization
2.2.7 Dilasi dan Erosi
Operasi dilasi dilakukan untuk memperbesar ukuran segmen objek
dengan menambah lapisan di sekeliling objek sehingga citra hasil dilasi
cenderung menebal. Operasi dilasi akan melakukan proses pengisian pada
citra asal yang memiliki ukuran lebih kecil dibandingkan structuring
element (strel). Sedangkan, operasi erosi adalah kebalikan dari operasi
dilasi. Pada operasi ini, ukuran objek diperkecil dengan mengikis
sekeliling objek sehingga citra hasil cenderung diperkecil menipis.
Operasi erosi akan melakukan pengurangan pada citra asal yang lebih
kecil disbanding elemen penstruktur (strel).
Gambar 2.5. Proses dilasi
33
Proses erosi yang dilanjutkan dengan proses dilasi dimana kedua
proses tersebut dilakukan secara berulang didefinisikan sebagai proses
opening. Operasi opening digunakan untuk memutus bagian-bagian dari
objek yang hanya terhubung dengan 1 atau 2 buah titik saja, dan
menghilangkan objek yang sangat kecil. Operasi opening bersifat
memperhalus kenampakan citra, menyambung fitur yang terputus (break
narrow joins), dan menghilangkan efek pelebaran pada objek (remove
protrusions).
Gambar 2.6. Proses erosi
Kombinasi antara operasi dilasi dan erosi yang dilakukan secara
berurutan adalah operasi closing. Citra asli didilasi terlebih dahulu,
kemudian hasilnya dierosi. Ada beberapa kegunaan operasi closing yaitu :
(1) menutup atau menghilangkan lubang-lubang kecil yang ada dalam
segmen objek, (2) menggabungkan 2 segmen objek yang saling
berdekatan (menutup sela antara 2 objek yang sangat berdekatan), (3)
juga dilakukan dalam beberapa rangkaian dilasi-erosi (misalnya 3 kali
dilasi, lalu 3 kali erosi) apabila ukuran lubang atau jarak objek cukup
besar. Operasi closing juga cenderung akan memperhalus objek pada
34
citra, namun dengan cara menyambung pecahan-pecahan (fuses narrow
breaks and thin gulf) dan menghilangkan lubang-lubang kecil pada objek.
Gambar 2.7. Proses closing
2.2.8 Model Warna
Model warna adalah sebuah model matematika abstrak yang
menjelaskan bagaimana warna dapat disajikan sebagai sebuah tupel dari
angka-angka, biasanya tiga atau empat nilai atau komponen warna.
Model warna RGB adalah sebuah model warna additif dimana
pancaran warna red (merah), green (hijau), dan blue (biru) ditambahkan
bersama dengan cara yang bervariasi untuk mereproduksi susunan warna
yang lebar. Warna aditif digunakan untuk lighting, video, dan monitor.
Monitor sebagai contoh, menciptakan warna dengan memancarkan
cahaya melalui merah, hijau dan biru fosfor. Tujuan utama dari model
warna RGB adalah untuk mempresentasikan ulang, dan menampilkan
gambar dalam sistem elektronik, misalnya dalam televisi dan komputer.
Model warna RGB juga digunakan dalam fotografi konvensional. RGB
35
adalah sebuah ruang warna yang sifatnya bergantung kepada perangkat.
Perangkat yang berbeda akan mendeteksi atau mereproduksi nilai RGB
secara berbeda. Untuk membentuk warna dengan RGB, tiga cahaya
berwarna balok (satu merah, satu hijau, dan satu biru) harus
ditumpangkan (misalnya dengan emisi dari layar hitam, atau dengan
refleksi dari layar putih). Masing-masing dari tiga balok disebut sebagai
komponen warna, dan masing-masing dapat memiliki intensitas yang
berbeda.
Model warna CMYK adalah kependekan dari Cyan, Magenta,
Yellow (kuning) dan warna utamanya yaitu blacK (hitam) dan sering kali
dijadikan referensi sebagai suatu proses pewarnaan dengan
mempergunakan empat warna. CMYK adalah bagian dari model
pewarnaan yang sering dipergunakan dalam pencetakan berwarna.
Namun ia juga dipergunakan untuk menjelaskan proses pewarnaan itu
sendiri. Meskipun berbeda-beda dari setiap tempat pencetakan, operator
surat kabar, pabrik surat kabar dan pihak-pihak yang terkait, tinta untuk
proses ini biasanya, diatur berdasarkan urutan dari singkatan tersebut. K
dalam CMYK berarti Key, karena dalam pencetakan empat warna yaitu
Cyan, Magenta, Yellow mencetak plat yang secara hati – hati terkunci
atau sejajar dengan kunci dari kunci plat hitam. Beberapa sumber
menyatakan bahwa K berasal dari huruf terakhir black, karena huruf
pertama yaitu B sudah digunakan untuk mendefinisikan warna Blue
(biru) dalam model warna RGB. Model ini, baik sebagian ataupun
keseluruhan, biasanya ditimpakan dalam gambar dengan warna latar
36
putih (warna ini dipilih, dikarenakan dia dapat menyerap panjang struktur
cahaya tertentu). Model seperti ini sering dikenal dengan nama
"subtractive", karena warna-warnanya mengurangi warna terang dari
warna putih. Dalam model yang lain "additive color", seperti halnya RGB
(Red-Merah, Green-Hijau, Blue-Biru), warna putih menjadi warna
tambahan dari kombinasi warna-warna utama, sedangkan warna hitam
dapat terjadi tanpa adanya suatu cahaya. Dalam model CMYK, berlaku
sebaliknya warna putih menjadi warna natural dari kertas atau warna
latar, sedangkan warna hitam adalah warna kombinasi dari warna-warna
utama. Untuk menghemat biaya untuk membeli tinta, dan untuk
menghasilkan warna hitam yang lebih gelap, dibuatlah satu warna hitam
khusus yang menggantikan warna kombinasi dari cyan, magenta dan
kuning.
2.2.9 Luminansi (Brightness)
Luminansi merupakan besaran penerangan yang terkait erat
dengan kuat penerangan-penerangan. Luminansi adalah pernyataan
kuantitatif jumlah cahaya yang dipantulkan oleh permukaan pada suatu
arah. Luminansi suatu permukaan ditentukan oleh kuat penerangan dan
kemampuan memantulkan cahaya oleh permukaan. Kemampuan
memantulkan cahaya oleh permukaan disebut factor refleksi atau
reflektasi.
Pengertian luminansi dapat dijelaskan sebagai berikut jika terdapat
monitor komputer diatas meja arus cahaya yang sampai pada monitor
37
maupun meja adalah sama demikian pula kuat penerangannya. Namun
luminasi untuk monitor lebih besar karena faktor reflekstasi monitor lebih
besar dibanding reflekstasi meja. Cahaya ini dapat diukur dengan suatu
light meter yang ditunjukkan atau diarahkan pada permukaan. Cahaya
tersebut bergantung pada intensitas dari sumber dan refleksi dari
permukaan mata.
2.2.10 Kontras (Contrast)
Kontras (Contrast) adalah perbedaan gradasi, kecerahan, atau nada
(warna) antara bidang gelap (shadow) dengan bidang terang, atau warna
putih yang mencolok sekali pada objek.
2.3 Open CV
2.3.1 Definisi OpenCV
OpenCV (Open Computer Vision) adalah program open source
berbasiskan C++ yang saat ini banyak digunakan sebagai program
computer vision. Dengan OpenCV dapat membuat interaksi antara
manusia dan komputer, misalnya wajah dari manusia dideteksi oleh
camera/webcam, lalu diproses oleh komputer, untuk melakukan aksi
tertentu seperti mengikuti/mengenal wajah orang tersebut. Kesemuanya
itu membutuhkan openCV sebagai program utama antara webcam dan
pengolahnya yaitu komputer. Library ini terdiri dari fungsi-fungsi
computer vision dan API (Aplication Programming Interface) untuk
image processing high level maupun low level dan sebagai optimasi
38
aplikasi realtime. OpenCV sangat disarankan untuk programmer yang
akan berkutat pada bidang computer vision, karena library ini mampu
menciptakan aplikasi yang handal, kuat dibidang digital vision, dan
mempunyai kemampuan yang mirip dengan cara pengolahan visual pada
manusia.
2.3.2 Fitur OpenCV
Berikut ini adalah fitur-fitur pada library OpenCV :
• Manipulasi data gambar (alokasi memori, melepaskan memori, kopi
gambar, setting serta konversi gambar)
• Image/Video I/O (Bisa menggunakan camera yang sudah didukung
oleh library ini)
• Manipulasi matrix dan vektor serta terdapat juga routines linear
algebra (products, solvers, eigenvalues, SVD)
• Image processing dasar (filtering, edge detection, pendeteksian tepi,
sampling dan interpolasi, konversi warna, operasi morfologi,
histograms, image pyramids)
• Analisis structural
• Kalibrasi kamera
• Pendeteksian gerak
• Pengenalan objek
• Basic GUI (Display gambar/video, mouse/keyboard kontrol,
scrollbar)
39
• Image Labelling (line, conic, polygon, text drawing)
2.4 Metode Pendeteksian Objek
Pendeteksian adalah salah satu jenis aplikasi di dalam bidang computer
vision dan image processing. Objek yang akan dideteksi adalah area mata.
Untuk memudahkan pendeteksian terhadap area mata, maka diawali dengan
pendeteksian terhadap wajah. Hal ini dilakukan dengan mempertimbangkan
beberapa hal yaitu :
• Pendeteksian citra wajah akan lebih mudah dilakukan dari pada pendeteksian
citra mata. Hal ini didasarkan pada ukuran wajah yang lebih besar dan
karakteristik wajah yang lebih mudah dikenali.
• Citra mata pasti terletak di dalam citra wajah.
• Dengan melakukan pendeteksian terhadap citra wajah terlebih dahulu maka
akan memperkecil kemungkinan dari kesalahan pendeteksian citra mata.
Selain itu waktu pendeteksian pun menjadi lebih cepat, karena ruang
pendeteksian objek diperkecil dari seluruh area citra gambar menjadi area
citra wajah saja.
2.4.1 Metode Viola-Jones
Proses deteksi adanya citra wajah dalam sebuah gambar pada
OpenCV, menggunakan sebuah metode yang dipublikasikan oleh Paul
Viola dan Michael Jones tahun 2001. Umumnya disebut metode Viola-
40
Jones. Pendekatan untuk mendeteksi objek dalam gambar
menggabungkan tiga konsep utama :
• Fitur segi empat sederhana yang disebut fitur haar.
• Metode machine learning AdaBoost.
• Pengklasifikasi bertingkat (Cascade classifier) untuk menghubungkan
banyak fitur secara efisien.
2.4.1.1 Cascade of Classifier
Viola Jones menggabungkan beberapa AdaBoots classifier
sebagai rangkaian filter yang cukup efisien untuk menggolongkan
daerah image. Masing-masing filter adalah satu AdaBoost
classifier terpisah yang terdiri classifier lemah atau satu filter
Haar. Threshold yang dapat diterima untuk masing-masing level
filter di set rendah. Selama proses pemfilteran, bila ada salah satu
filter gagal untuk melewatkan sebuah daerah gambar, maka
daerah itu langsung digolongkan sebagai bukan wajah. Namun
ketika filter melewatkan sebuah daerah gambar dan sampai
melewati semua proses filter yang ada dalam rangkaian filter,
maka daerah gambar tersebut digolongkan sebagai wajah. Viola
dan Jones memberi sebutan cascade. Urutan filter pada cascade
ditentukan oleh bobot yang diberikan AdaBoost. Filter dengan
bobot paling besar diletakkan pada proses pertama kali, bertujuan
untuk menghapus daerah gambar bukan wajah secepat mungkin.
41
2.4.1.2 Haar-like Feature
Adanya fitur Haar ditentukan dengan cara mengurangi
rata-rata piksel pada daerah gelap dari rata-rata piksel pada
daerah terang. Jika nilai perbedaannya itu diatas nilai ambang
atau threshold, maka dapat dikatakan bahwa fitur tersebut ada.
Untuk menentukan ada atau tidaknya dari ratusan fitur Haar pada
sebuah gambar dan pada skala yang berbeda secara efisien, Viola
dan Jones menggunakan satu teknik yang disebut Integral Image.
Pada umumnya, pengintegrasian tersebut berarti menambahkan
unit-unit kecil secara bersamaan. Dalam hal ini unit-unit kecil
tersebut adalah nilai-nilai piksel. Nilai integral untuk masing-
masing piksel adalah jumlah dari semua piksel-piksel dari atas
sampai bawah. Dimulai dari kiri atas sampai kanan bawah,
keseluruhan gambar itu dapat dijumlahkan dengan beberapa
operasi bilangan bulat per piksel.
Gambar 2.8. Integral image
Seperti yang ditunjukkan oleh gambar 2.8(a) di atas
setelah pengintegrasian, nilai pada lokasi piksel (x,y) berisi
42
jumlah dari semua piksel di dalam daerah segiempat dari kiri atas
sampai pada lokasi (x,y) atau daerah yang diarsir. Untuk
menentukan nilai rata-rata piksel pada area segiempat (daerah
yang diarsir) ini dapat dilakukan hanya dengan membagi nilai
pada (x,y) oleh area segiempat.
2.4.1.3 Algoritma Adaboost
Untuk memilih fitur Haar yang spesifik yang akan
digunakan dan untuk mengatur nilai ambangnya (threshold),
Viola dan Jones menggunakan sebuah metode machine learning
yang disebut Adaboost. Adaboost menggabungkan banyak
classifier lemah untuk membuat sebuah classifier kuat. Lemah
disini berarti urutan filter pada classifier hanya mendapatkan
jawaban benar lebih sedikit. AdaBoost memilih sejumlah
classifier lemah untuk disatukan dan menambahkan bobot pada
setiap classifier, sehingga akan menjadi classifier yang kuat.
2.4.2 Metode Pencarian Area Mata
Setelah berhasil mendeteksi wajah maka langkah
selanjutnya adalah mendeteksi mata. Metode yang kami gunakan
untuk pendeteksian mata adalah dengan melakukan perbandingan
dengan koordinat pusat mata dan pada posisi mata normal yang
sudah pasti, karena :
43
Pertama, representasi ini terlihat menjadi lebih tepat dalam
hal hasil perbandingan.
Kedua, biasanya algoritma pengenalan wajah memerlukan
pusat mata untuk sample
Ketiga, pendeteksian mata lebih cepat, lebih mudah, dan
lebih tepat daripada menandai wajah dengan empat persegi
panjang
Gambar 2.9. Skema representasi wajah
Keterangan gambar
EyeLeft dan EyeRight = koordinat mutlak terdeteksi masing-masing
mata kiri dan mata kanan
IEyes = jarak antara pusat mata
ILeft HEyes, IRight HEyes = jarak antara batas atas wajah dan tengah kiri
dan kanan mata
Sizehead = ukuran dari persegi panjang yang mewakili wajah
44
DEyes = diameter daerah mata diterima koordinat deviasi dari mata
yang benar lokasi EyeARight dan EyeALeft
CenterHead = mutlak koordinat wajah ditemukan.
2.5 Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari
sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan
“bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara actor
dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login
ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah
aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem
untuk melakukan pekerjaan-pekerjaan tertentu.
Use case diagram dapat sangat membantu bila kita sedang menyusun
requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan
merancang test case untuk semua feature yang ada pada sistem.
Sebuah use case dapat meng-include fungsionalitas use case lain sebagai
bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case
yang di-include akan dipanggil setiap kali use case yang meng-include
dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu
use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara
menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-
extend use case lain dengan behaviour-nya sendiri. Sementara hubungan
generalisasi antar use case menunjukkan bahwa use case yang satu merupakan
spesialisasi dari yang lain.
45
Gambar 2.10. Contoh Use Case Diagram
2.6 Activity Diagram
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagrams juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
Activity diagrams merupakan state diagram khusus, di mana sebagian
besar state adalah action dan sebagian besar trasisi di-trigger oleh selesainya
state sebelumnya (internal processing). Oleh karena itu activity diagrams tidak
menggambarkan behaviour internal sebuah sistem (dan interaksi antar
subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-
46
jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan
oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan,
sementara use case menggambarkan bagaimana aktor menggunakan sistem
untuk melakukan aktivitas.
Gambar 2.11. Contoh Activity Diagram