BAB 2 TINJAUAN PUSTAKA
2.1 Sistem Operasi Android Android adalah sistem operasi berbasis Java yang berjalan pada Linux kernel versi 2.6. Sistemnya sangat ringan dan memiliki banyak fitur. Aplikasi Android dikembangkan menggunakan Java dan dapat porting lebih mudah untuk platform baru. Fitur lain dari Android mencakup mesin grafis 3-D dipercepat berdasarkan dukungan hardware, dukungan database oleh SQLite, dan web browser yang terintegrasi. Salah satu fitur yang lebih menarik dari Android adalah karena arsitekturnya, aplikasi pihak ketiga termasuk mereka yang ditanam, dieksekusi dengan prioritas sistem yang sama seperti mereka yang dibundel dengan sistem inti. Setiap aplikasi yang dijalankan dalam thread sendiri juga menggunakan mesin virtual yang sangat ringan (DiMarzio, 2008: 6-7). Menurut Lee (2011:2), Android adalah sistem operasi mobile yang berbasis pada versi Linux yang telah dimodifikasi. Android itu sendiri awalnya dikembangkan oleh sebuah startup dengan nama yang sama yaitu Android, Inc. Pada tahun 2005, sebagai bagian dari strategi untuk memasuki dunia
mobile,
Google
membeli
Android
dan
mengambil
alih
pengembangannya.
2.2 Database Menurut Connolly dan Begg (2010:15), database adalah sebuah koleksi bersama dari data logika terkait (entitas, atribut, dan hubungan logis antara entitas) dan deskripsi data ini, yang telah dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi. Menurut Connolly dan Begg (2010:36-38), terdapat tiga tingkatan pada arsitektur database, yaitu : 1. Tingkat Eksternal (External Level) Tingkat ini menggambarkan bagian dari database yang relevan kepada masing-masing pengguna.
7
8 2. Tingkat Konseptual (Conceptual Level) Tingkat ini menggambarkan data yang disimpan dalam database dan hubungan antar data. 3. Tingkat Internal (Internal Level) Representasi
fisik
dari
database
pada
komputer.
Tingkat
ini
menggambarkan bagaimana data disimpan dalam database.
2.3 DBMS Menurut Connolly dan Begg (2010:17), DBMS adalah sebuah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke database.
Gambar 2.1. Proses Database (Sumber: Database Systems: A practical approach to design, implementation, and management, p17) Menurut Connolly dan Begg (2010:50-54), DBMS diharapkan dapat memberikan 10 buah layanan dan fungsi, yaitu: 1. Penyimpanan data, pencarian, dan pembaharuan DBMS harus menyediakan user dengan kemampuan untuk menyimpan, mengambil, dan memperbaharui data. 2. Katalog yang dapat diakses pengguna DBMS harus menyediakan user sebuah katalog yang berisikan deskripsi dari data item dan dapat diakses oleh user.
9 3. Dukungan transaksi DBMS harus menyediakan sebuah mekanisme yang menjamin seluruh perubahan yang berhubungan dengan sebuah transaksi dapat dilakukan atau tidak. 4. Layanan pengendalian concurrency DBMS harus menyediakan sebuah mekanisme yang menjamin database dapat di update secara benar ketika banyak user yang melakukan update secara bersamaan. 5. Layanan pemulihan DBMS harus menyediakan sebuah mekanisme untuk memulihkan database apabila terjadi kerusakan. 6. Layanan otorisasi DBMS harus menyediakan sebuah mekanisme yang menjamin bahwa hanya user yang terotorisasi yang dapat mengakses database. 7. Dukungan untuk komunikasi data DBMS harus mampu untuk diintegrasikan dengan software komunikasi. 8. Layanan integritas DBMS harus menyediakan sebuah alat yang menjamin bahwa data di dalam database dan pengubahan yang dilakukan terhadap data mengikuti aturan-aturan tertentu. 9. Layanan untuk pempromosikan independensi data DBMS harus menyediakan fasilitas-fasilitas yang mendukung struktur aktual dari database agar tidak bergantung kepada program. 10.
Layanan utiliti
DBMS harus menyediakan serangkaian layanan kegunaan (utiliti). Menurut Connolly dan Begg (2010:27-30), DBMS memiliki beberapa keuntungan, yaitu: 1. Mengurangi redudansi data 2. Data yang konsisten 3. Informasi yang lebih banyak dari data dengan jumlah yang sama 4. Pembagian data antar sesama user 5. Meningkatan integritas data 6. Meningkatan keamanan 7. Standarisasi
10 8. Menghemat pengeluaran perusahaan/organisasi 9. Keseimbangan antara persyaratan yang saling bertentangan 10.
Meningkatakan aksesibilitas data dan keresponsifan
11.
Meningkatkan produktifitas
12.
Meningkatkan pemeliharaan melalui data independen
13.
Meningkatkan concurrency
14.
Meningkatkan fasilitas cadangan dan pemulihan data
2.4 JavaScript Object Notation (JSON) JavaScript Object Notation adalah format pertukaran data yang sangat populer. Dikembangkan oleh Douglass Crockford. JSON berbasis teks, ringan, dan format yang dapat dibaca manusia untuk pertukaran data antara klien dan server. JSON berasal dari javascript dan memiliki kemiripan dekat dengan objek javascript tetapi tidak bergantung, dan dukungan untuk format data JSON yang tersedia dalam semua bahasa populer, beberapa diantaranya adalah C#, PHP, Java, C ++, Phyton, dan Ruby (Sriparasa, 2013: 15).
2.5 Software Development Life-Cycle Menurut Agarwal dan Tayal (2009:22), Software Development LifeCycle digunakan untuk memfasilitasi pengembangan produk perangkat lunak yang besar secara sistematis, yang didefinisikan dengan baik dan biaya yang efektif. Sebuah sistem informasi berjalan melalui serangkaian tahapan dari konsepsi sampai implementasi. Proses ini disebut sebagai Software Development Life Cycle. Beberapa alasan menggunakan life cycle model adalah: •
Membantu memahami proses secara keseluruhan
•
Melakukan pendekatan terstruktur terhadap pengembangan
•
Memungkinkan perencanaan sumber daya
•
Membantu manajemen untuk memantau kemajuan dari sistem
11 Menurut Sommerville (2010: 30-32), model pertama yang diterbitkan dari proses software development berasal dari proses-proses system engineering yang umum. Model ini diilustrasikan pada Gambar 2. Karena perubahan yang mengalir kebawah dari satu proses ke proses lainnya, model ini dikenal sebagai waterfall model atau siklus hidup software. Model waterfall merupakan contoh dari proses yang terencana—pada prinsipnya, Anda harus mengatur dan merencanakan semua aktifitas proses sebelum memulai mengerjakannya.
Gambar 2.2. Model Waterfall (Sumber: Software Engineering, 9th Edition, p30) Tahapan utama pada model waterfall secara langsung mencerminkan aktifitas dasar pembangunan: 1. Requirements Analysis and Definition Layanan, batasan dan tujuan dari sistem ditetapkan dengan cara konsultasi dengan pengguna sistem atau user yang kemudian didefinisikan secara detil dan menjadi spesifikasi dari sistem. 2. System and Software Design Tahapan perancangan sistem mengalokasikan requirement menjadi sistem pada software ataupun hardware dengan cara membuat arsitektur sistem secara keseluruhan. Perancangan software
12 meliputi identifikasi dan menjelaskan abstraksi paling mendasar dari sebuah sistem software dan relasinya. 3. Implementation and Unit Testing Pada tahap ini, rancangan software direalisasikan sebagai suatu set program atau unit program. Unit testing meliputi proses verifikasi terhadap setiap unit untuk memastikan bahwa setiap unit memenuhi spesifikasinya. 4. Integration and System Testing Unit program yang individu atau program diintegrasikan dan diuji sebagai suatu sistem yang lengkap untuk memastikan bahwa software requirement sudah terpenuhi. Setelah testing, sistem software diserahkan kepada customer. 5. Operation and Maintenance Biasanya (meskipun tidak selalu), tahapan ini merupakan tahapan terlama. Sistem tersebut di install dan dipakai. Maintenance terdiri dari memperbaiki error yang tidak terdeteksi pada tahap-tahap awal dari siklus hidup, meningkatkan implementasi dari unit-unit sistem dan meningkatkan layanan sistem ketika requirement baru ditemukan.
2.6 UML (Unified Modeling Language) Unified Modeling Language (UML) dapat menangkap array yang menakjubkan dari proses dan struktur yang terkait dengan bisnis dan perangkat lunak. UML memiliki kekuatan sehingga modeler dapat menggunakannya untuk arsitektur umum dari setiap konstruksi yang memiliki kedua struktur statis dan perilaku dinamis. Sebuah proyek dapat mengandalkan UML sebagai bahasa standar untuk mengekspresikan kebutuhan, desain sistem, instruksi penyebaran, dan struktur kode. UML praktisi dapat menangkap ide-ide dengan menggunakan alat visual, efisien berbagi ide dengan orang lain, dan secara efektif menanggapi perubahan.
13 2.7.1 Use Case Diagram Use
case
diagram
menggambarkan
sistem
sebagai
sekumpulan dari use case, actor(user) dan hubungannya. Contoh dari use case diagram dapat dilihat pada Gambar 2.3. Gambar tersebut menunjukkan fungsi sistem atau business event (di dalam ellips), dan para aktor atau system user, yang berinteraksi dengan fungsi tersebut. Dari Gambar 2.3, aktor dapat diletakkan pada sebelah kiri atau kanan dari use case diagram dan dapat berinteraksi dengan satu atau lebih use case (Whitten & Bentley, 2007: 246).
Gambar 2.3. Contoh Use Case Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p246) Use case direpresentasikan secara grafis dengan sebuah ellips horizontal dengan nama use case dituliskan pada atas, bawah atau di dalam ellips. Sebuah use case merepresentasikan tujuan dari sistem dan mendeskripsikan sebuah urutan kegiatan dan interaksi user untuk mencapai tujuan tersebut.
Gambar 2.4. Simbol Use Case (Sumber: Systems Analysis and Design Methods (7th ed.), p246)
14
Use case diawali atau dimulai oleh user eksternal yang disebut aktor. Seorang aktor memulai aktifitas sistem, sebuah use case, untuk menyelesaikan beberapa tugas yang menghasilkan sesuatu yang berharga. Aktor merepresentasikan sebuah peran yang dilakukan oleh user dengan cara berinteraksi dengan sistem dan tidak dimaksudkan untuk menggambarkan satu individu atau pekerjaan tertentu. Aktor dapat berupa sebuah organisasi, sistem informasi lain, atau perangkat eksternal seperti sensor panas. Aktor direpresentasikan secara grafis sebagai stick figure dengan nama peran yang dilakukan oleh aktor tersebut (Whitten & Bentley, 2007: 247).
Gambar 2.5. Simbol Aktor (Sumber: Systems Analysis and Design Methods (7th ed.), p247) Terdapat 4 macam tipe aktor, yaitu : 1. Primary business actor
Stakeholder yang mendapat keuntungan dari eksekusi suatu use case. 2. Primary system actor
Stakeholder yang berinteraksi langsung dengan sistem untuk memulai business atau system event. Primary system actor dapat berinteraksi dengan primary business actor dengan tujuan menggunakan sistem sesungguhnya. Mereka memfasilitasi event tersebut dengan menggunakan secara langsung sistem untuk keuntungan dari primary business actor. 3. External server actor
Stakeholder yang merespon request dari use case. 4. External receiver actor
Stakeholder yang bukan merupakan primary actor tetapi mendapatkan suatu keuntungan dari use case.
15
Sebuah hubungan atau relasi digambarkan dengan sebuah garis antara 2 simbol di dalam use case diagram. Arti dari hubungan atau relasi bisa saja berbeda tergantung bagaimana garis tersebut digambarkan dan simbol apa yang dihubungkan. Berikut ini beberapa hubungan atau relasi yang ada dalam use case diagram (Whitten & Bentley, 2007: 248): 1. Associations
Asosiasi merupakan hubungan yang menunjukkan interaksi antara actor dan use case. Asosiasi yang mengandung anak panah pada ujung garis(ditunjukkan dengan angka 1 pada Gambar 2.6) memiliki makna bahwa aktor berkomunikasi atau berinteraksi secara langsung dengan use case. Sedangkan, asosiasi yang tidak mengandung anak panah pada ujung garis(ditunjukkan dengan angka 2 pada Gambar 2.6) memiliki makna bahwa aktor berinteraksi secara tidak langsung dengan use case. 2. Uses (or Includes)
Biasanya, terdapat dua atau lebih use case yang melakukan langkah-langkah fungsionalitas yang identik. Langkah-langkah tersebut dapat diekstrak dan dibuat menajdi suatu use case terpisah yang disebut sebagai use case abstrak. Sebuah use case abstrak
merepresentasikan
sebuah
bentuk
“reuse”
atau
penggunaan kembali dan sangat baik digunakan untuk mengurangi redudansi pada use case. Hubungan antara use case abstrak dan use case yang menggunakannya disebut sebagai hubungan uses (atau includes). Hubungan uses seperti pada Gambar 2.7, digambarkan dengan garis yang mempunyai anak panah (antara garis lurus atau garis putus-putus) yang dimulai dari use case awal dan menunjuk ke use case yang digunakannya. Tiap hubungan uses di beri label “<<uses>>” atau “<
>”.
16
Gambar 2.6. Asosiasi pada Use Case Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p248)
Gambar 2.7. Hubungan Uses pada Use Case Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p249)
2.7.2 Use Case Narrative Use case narrative, memberitahukan detil dari tiap business event dan menspesifikasikan bagaimana user berinteraksi dengan sistem pada event tersebut (Whitten & Bentley, 2007: 246). Use case narrative terdiri dari : 1.
Author Nama dari individu yang berkontribusi dalam pembuatan use case narrative.
17 2.
Date Tanggal terakhir use case narrative mengalami perubahan.
3.
Version Versi use case narrative saat ini.
4.
Use case name Nama dari use case narrative yang merepresentasikan tujuan dari use case.
5.
Use case type Tipe dari use case yang dikerjakan.
6.
Use case id Sebuah identifikasi unik untuk sebuah use case.
7.
Priority Menentukan prioritas use case tersebut.
8.
Source Suatu keadaan yang memicu terjadinya use case.
9.
Primary business actor Stakeholder yang mendapatkan keuntungan utama dari eksekusi use case tersebut.
10. Other participating actor Aktor lain yang ikut terlibat dalam use case tersebut. 11. Interested stakeholder(s) Stakeholder yang membantu dalam pengembangan dan operasi sistem software. 12. Description Penjelasan singkat mengenai tujuan dan aktifitas use case tersebut.
18
Gambar 2.8. Contoh Use Case Narrative (Sumber: Systems Analysis and Design Methods (7th ed.), p257)
Use case narrative memiliki beberapa komponen tambahan (Whitten & Bentley, 2007: 258), yaitu : 1. Precondition Keadaan sistem sebelum use case terjadi. 2. Trigger Suatu event yang memulai eksekusi use case tersebut. 3. Typical course of events Aktifitas secara berurutan yang dilakukan oleh aktor dan sistem untuk mencapai tujuan dari use case tersebut. 4. Alternate courses Terjadi ketika adanya pengecualian atau variasi dari suatu aktifitas dalam use case tersebut. 5. Conclusion Konklusi ketika use case tersebut selesai dilakukan. 6. Postcondition Keadaan sistem ketika use case telah selesai dilakukan. 7. Business rules Aturan yang digunakan untuk use case tersebut.
19
8. Implementation constraints and specifications Batasan dan spesifikasi yang mungkin berdampak pada use case dan mungkin dapat membantu dalam perencanaan dan pembatasan ruang lingkup. 9. Assumptions Asumsi yang dibuat oleh pembuat use case. 10. Open issues Pertanyaan yang harus dijawab atau diinvestigasi sebelum use case dapat diselesaikan.
Gambar 2.9. Komponen Tambahan dalam Use Case Narrative 1 (Sumber: Systems Analysis and Design Methods (7th ed.), p259)
20
Gambar 2.10. Komponen Tambahan dalam Use Case Narrative 2 (Sumber: Systems Analysis and Design Methods (7th ed.), p260)
2.7.3 Class Diagram Class diagram merupakan sebuah diagram yang menggambarkan struktur objek dari suatu sistem yang menunjukkan kelas-kelas objek dari sistem tersebut dan juga hubungan antara kelas-kelas objek tersebut (Whitten & Bentley, 2007: 400).
21
Gambar 2.11. Contoh Class Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p406)
Class diagram terdiri dari : 1. Class Kelas merupakan kumpulan objek yang memiliki atribut, dan perilaku yang sama. 2. Aggregation Agregasi merupakan hubungan dimana suatu kelas yang lebih besar mengandung satu atau lebih kelas yang lebih kecil.
22
Gambar 2.12. Agregasi pada Class Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p379) 3. Composition Kompisisi merupakan hubungan agregasi dimana kelas yang lebih besar bertanggung jawab atas pembuatan dan penghapusan kelas yang lebih kecil.
23
Gambar 2.13. Komposisi pada Class Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p379) 4. Multiplicity Multiplicity merupakan jumlah minimum dan maksimum kejadian dari sebuah kelas/objek untuk kejadian tunggal dari kelas/objek terkait.
24
Gambar 2.14. Multiplicity pada Class Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p377)
25 2.7.4 Sequence Diagram Sequence diagram memodelkan logika dari sebuah use case (atau bagian dari use case) dengan cara menggambarkan interaksi dari pesan antara objek dalam urutan waktu. Pesan-pesan tersebut diatur dalam urutan waktu dari atas ke bawah (Whitten & Bentley, 2007: 659). Sequence diagram dapat dilihat sebagai cara untuk mengintegrasikan langkah-langkah dari sebuah use case dengan objek dari class diagram. Sequence diagram dapat digunakan sebagai alat komunikasi dengan programmer untuk menentukan metode apa yang digunakan dalam mengimplementasi use case.
Gambar 2.15. Contoh Sequence Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p659)
Gambar diatas mengilustrasikan notasi-notasi sequence diagram berikut ini : 1. Actor Actor yang berinteraksi dengan user interface ditunjukkan dengan
use
case
actor
symbol.
Terkadang,
actor
direpresentasikan dengan kotak seperti kelas-kelas dengan notasi <>. Garis putus-putus vertikal memanjang ke bawah dari actor menunjukkan waktu hidup dari sequence. 2. Interface class
26 Kotak menunjukkan kode kelas dari user interface. Untuk memastikan tidak ada kebingungan seperti apa jenis kelas ini, diberikan notasi <>. Titik dua (:) merupakan notasi standar dari sequence diagram untuk menunjukkan “instance” yang sedang berjalan dari kelas tersebut. Garis putus-putus vertikal memanjang ke bawah dari kelas menunjukkan waktu hidup dari sequence. 3. Controller class Setiap use case memiliki satu atau lebih kelas controller, digambarkan sama dengan kelas interface dan diberikan notasi <>. 4. Entity classes Tambahkan kotak untuk tiap entitas yang memerlukan kolaborasi pada urutan langkah-langkah yang dilakukan. Titik dua (:) menandakan instansi objek. 5. Messages Garis horizontal dengan anak panah menunjukkan input message yang dikirim ke kelas-kelas. Tiap pesan memanggil metode dari kelas yang ditunjuk oleh anak panah. Aturan penamaan pesan dimulai dengan kata pertama dengan huruf kecil dan menambahkan kata selanjutnya dengan huruf pertama merupakan huruf besar dan tidak menggunakan spasi. Di dalam tanda kurung, masukkan parameter yang perlu dioper, mengikuti aturan penamaan pesan dan memisahkan parameter individu dengan koma. 6. Activation bars Balok yang diletakkan pada garis hidup menunjukkan waktu periode waktu dimana setiap instansi objek hidup. 7. Return messages Garis putus-putus horizontal dengan anak panah merupakan return message. Setiap metode sebaiknya mengembalikan sesuatu, setidaknya pesan benar/salah untuk menunjukkan bahwa metode tersebut sukses dijalankan.
27 8.
Self-call Sebuah objek yang dapat memanggil metodenya sendiri.
9.
Frame Frame digunakan untuk menunjukkan bahwa controller membutuhkan loop melalui setiap item yang ada.
2.7 Entity Relationship Diagram (ERD) Entity relationship diagram (ERD) merupakan model data yang memanfaatkan beberapa notasi untuk menggambarkan data dalam hal entitas dan hubungannya yang dideskripsikan oleh data tersebut (Whitten & Bentley, 2007: 271).
Gambar 2.16. Contoh Entity Relationship Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p270)
Entity relationship diagram terdiri atas : 1. Entity Entitas merupakan sebuah kelas dari orang, tempat, objek, event, atau konsep tentang apa yang kita butuhkan untuk menyimpan data.
28 2. Attribute Atribut merupakan properti deskriptif atau karakteristik dari suatu entitas. 3. Relationship Relationship merupakan asosiasi yang terjadi antara satu entitas dengan lainnya.
Gambar 2.17. Relationship pada Entity Relationship Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p275) Garis yang menghubungkan kedua entitas diatas merepresentasikan sebuah relationship. Frase kata kerja mendeskripsikan relationship. Semua relationship bersifat bidirectional, yang berarti dapat diinterpretasikan dalam kedua arah.
Cardinality merupakan jumlah minimum dan maksimum kejadian dari satu entitas yang berhubungan dengan dengan kejadian dari entitas lain.
29
Gambar 2.18. Cardinality pada Entity Relationship Diagram (Sumber: Systems Analysis and Design Methods (7th ed.), p276)
2.8 Interaksi Manusia dengan Komputer (IMK) Menurut Shneiderman dan Plaisant (2010: 88), terdapat delapan buah prinsip yang dinamakan sebagai aturan emas (golden rules), yang dapat dipakai dalam berbagai sistem interaktif. Prinsip-prinsip ini berasal dari pengalaman dan sudah disempurnakan selama lebih dari dua dekade, membutuhkan validasi dan penyesuaian untuk ruang lingkup desain yang spesifik. Delapan aturan emas tersebut adalah : 1. Berusaha untuk konsisten Aturan ini merupakan aturan yang paling sering dilanggar, tetapi sulit untuk mengikuti aturan ini karena terdapat banyak bentuk konsistensi. Urutan aksi yang konsisten diperlukan pada situasi/kondisi yang mirip; istilah-istilah yang sama harus dipakai
30 dalam prompts, menu-menu dan layar bantuan; dan warna, layout, kapitalisasi, font, dan sebagainya harus digunakan secara konsisten. 2. Memenuhi kegunaan universal Mengenali kebutuhan dari berbagai macam user dan merancang untuk plasticity, memfasilitasi perubahan konten. Perancangan antarmuka harus mempertimbangkan perbedaan-perbedaan yang meliputi, perbedaan usia, kebutuhan khusus, dan perbedaan teknologi. Penambahan fitur seperti penjelasan untuk pemula, dan fitur seperti shortcut untuk user yang sudah berpengalaman. 3. Memberikan umpan balik yang informatif Setiap aksi yang dilakukan oleh user, seharusnya disertakan feedback. Untuk aksi kecil atau yang sering dilakukan, dapat diberikan respon yang sederhana, sedangkan untuk aksi besar dan yang tidak sering dilakukan, respon yang diberikan harus lebih terlihat. 4. Merancang dialog yang memberikan keadaan akhir Urutan dari aksi-aksi harus diatur dalam kelompok awal, tengah, dan
akhir.
Umpan
balik
yang
informatif untuk
setiap
penyelesaian kelompok aksi memberikan user rasa kepuasan, rasa lega, sinyal untuk menyingkirkan rencana cadangan, sinyal untuk mempersiapkan diri terhadap kumpulan aksi yang akan datang. Sebagai contoh, halaman e-commerce memindahkan pengguna dari halaman pemilihan produk ke halaman checkout, diakhiri dengan halaman konfirmasi yang jelas bahwa transaksi sudah selesai. 5. Mencegah kesalahan Sebisa mungkin, desain sistem yang membuat user tidak dapat melakukan kesalahan yang serius. Jika user melakukan kesalahan, tampilan antarmuka harus mendeteksi kesalahan tersebut dan menawarkan instruksi yang sederhana, konstruktif dan spesifik untuk memperbaiki kesalahan.
31 6. Memperbolehkan pembalikan aksi yang mudah Sebisa mungkin, aksi dapat dibatalkan. Fitur ini dapat menguragi kecemasan, karena user tahu bahwa kesalahan dapat dibatalkan, sehingga mendorong user untuk mencoba opsi-opsi yang tidak dikenal. 7. Mendukung pusat kendali internal User yang berpengalaman memiliki keinginan kuat untuk memiliki rasa bahwa antarmuka di bawah tanggung jawab mereka dan antarmuka merespon aksi-aksi yang dilakukan. 8. Menguragi beban ingatan jangka pendek Keterbatasan pemrosesan informasi pada manusia di memori jangka pendek membuat tampilan harus sesederhana mungkin. Menurut Shneiderman dan Plaisant (2010:32), terdapat lima faktor manusia yang dapat diukur sebagai berikut: 1. Waktu belajar Waktu yang dibutuhkan oleh user untuk mempelajari suatu aksi yang relevan dengan satu set tugas. 2. Kecepatan performa Waktu yang dibutuhkan oleh user untuk melaksanakan tugastugas yang ditentukan. 3. Tingkat kesalahan yang dilakukan oleh user Seberapa banyak kesalahan yang dilakukan oleh user dan jenisjenis kesalahan apa saja yang dilakukan oleh user. 4. Daya ingat dalam jangka waktu tertentu Kemampuan user untuk mempertahankan pengetahuan mereka. Daya ingat mungkin berhubungan erat dengan waktu belajar, dan frekuensi penggunaan. 5. Kepuasan subjektif Kepuasan pengguna terhadap berbagai aspek dari antarmuka. Hal ini dapat dipastikan dengan melakukan wawancara atau dengan survei tertulis yang memuat skala kepuasan dan tempat untuk komentar dari user.
32 2.9 Kecerdasan Buatan (Artificial Intelligence) Kecerdasan Buatan merupakan salah satu bidang terbaru dalam sains dan teknik. Pekerjaan dimulai dengan sungguh-sungguh setelah Perang Dunia II, dan nama itu sendiri diciptakan pada tahun 1956. Kecerdasan Buatan saat ini meliputi berbagai macam subbidang, mulai dari yang umum (belajar dan persepsi) ke spesifik, seperti bermain catur, membuktikan teorema matematika, menulis puisi, mengendarai mobil di jalan yang ramai, dan mendiagnosis penyakit. Kecerdasan Buatan relevan untuk setiap tugas intelektual, benar-benar lapangan universal. Berikut merupakan delapan definisi Kecerdasan Buatan yang dibagi dalam empat dimensi : (Russell & Norvig:2010) Tabel 2.1. Pengertian AI dalam Empat Dimensi Berfikir Manusiawi
Berfikir Rasional
“Upaya baru yang menarik untuk “Studi tentang kemampuan mental melalui membuat komputer berpikir ... mesin penggunaan model komputasi.” (Charniak dengan pikiran, dalam arti penuh dan and McDermott, 1985) literal.” (Haugeland, 1985)
“Studi
tentang
perhitungan
yang
“Kegiatan yang kita kaitkan dengan memungkinkan untuk melihat, akal, dan pemikiran manusia, kegiatan seperti bertindak.” (Winston, 1992). pengambilan keputusan, pemecahan masalah, belajar…” (Bellman, 1978) Bertindak Manusiawi “Seni
menciptakan
Bertindak Rasional mesin
yang “Computional Intelligence adalah studi
melakukan fungsi yang membutuhkan tentang desain agen cerdas.” (Poole et al., kecerdasan
ketika
dilakukan
oleh 1998)
orang-orang.” (Kurzweil, 1990)
“AI … berkaitan dengan perilaku cerdas
“Studi tentang bagaimana membuat dalam artefak.” (Nilsson, 1998) komputer melakukan hal-hal di mana, pada saat ini, orang-orang yang lebih baik.” (Rich and Knight, 1991)
33 2.10 Computer Vision Menurut Bradski dan Kaehler (2008:2-5), Computer Vision adalah transformasi data dari gambar tetap atau video kamera menjadi salah satu keputusan atau representasi baru. Transformasi tersebut dilakukan untuk mencapai beberapa tujuan tertentu. Dalam sistem computer vision, komputer menerima grid angka dari kamera atau dari disk. Untuk sebagian besar, tidak ada built-in pengenalan pola, tidak ada kontrol otomatis fokus dan aperture, ada silang-asosiasi dengan pengalaman bertahun-tahun. Gambar 2.7 menunjukkan gambar sebuah mobil. Dalam gambar, kita melihat kaca spion pada sisi samping pengemudi mobil. Komputer melihatnya sebagai grid angka. Setiap angka yang diberikan dalam grid yang memiliki komponen suara yang agak besar dan dengan sendirinya memberi kita sedikit informasi, tetapi grid angka ini adalah yang komputer lihat. Tugas kita kemudian adalah mengaplikasikan sebuah gambar 3D kedalam gambar 2D untuk mengubah grid dari angka ke persepsi sesungguhnya yaitu kaca spion yang tentunya tidaklah mudah.
Gambar 2.19. Komputer Melihat Kaca Spion Mobil sebagai Barisan Angka (Sumber: Learning OpenCV, p3)
34 Masalah berikutnya yang dihadapi computer vision adalah kebisingan. Biasanya kebisingan dapat diatasi dengan menggunakan metode statistik. Sebagai contoh, mungkin mustahil untuk mendeteksi tepi dalam foto hanya dengan membandingkan titik untuk tetangga terdekatnya. Tetapi jika kita melihat statistik atas wilayah lokal, deteksi tepi menjadi lebih mudah. Tindakan atau keputusan yang dibuat computer vision berdasarkan data kamera yang dilakukan dalam konteks tujuan atau tugas tertentu. Mungkin ingin menghapus suara atau kerusakan dari gambar sehingga sistem keamanan akan mengeluarkan peringatan jika seseorang mencoba untuk memanjat pagar atau karena membutuhkan sistem monitoring yang menghitung berapa banyak orang melintasi suatu daerah di sebuah taman hiburan. Sebagai aturan umum: semakin dibatasi konteks computer vision, semakin kita bisa mengandalkan kendala untuk menyederhanakan masalah dan solusi akhir lebih dapat diandalkan. Menurut Szeliski (2010: 5-7) Computer Vision sudah digunakan saat ini dalam berbagai macam aplikasi dunia nyata, seperti: 1. Optical Character Recognition (OCR): mengenali karakter optik seperti membaca kode pos tulisan tangan pada surat dan plat nomor pengakuan otomatis. 2. Mesin Inspeksi: inspeksi bagian cepat untuk jaminan kualitas menggunakan visi stereo dengan pencahayaan khusus untuk mengukur toleransi pada sayap pesawat atau bagian tubuh otomatis,
atau
mencari
rincian
dalam
pengecoran
baja
menggunakan X-ray vision. 3. Retail: pegenalan objek untuk jalur check-out otomatis. 4. Bangunan Model 3D (fotogrametri): konstruksi otomatis model 3D sepenuhnya dari foto udara yang digunakan dalam sistem seperti peta bing.
35 5. Gambar Medis: mendaftar citra pra-operatif dan intra-operatif atau melakukan studi jangka panjang dari morfologi otak orang dengan bertambahnya usia mereka. 6. Otomotif Keselamatan: mendeteksi rintangan yang tak terduga seperti pejalan kaki di jalan, dalam kondisi di mana teknik visi aktif seperti radar atau lidar tidak bekerja dengan baik. 7. Pencocokan Gerakan: penggabungan citra yang dihasilkan komputer dengan cuplikan live action dengan melacak titik fitur dalam video sumber untuk memperkirakan kamera gerak 3D dan bentuk lingkungan. 8. Menangkap Gerakan: menggunakan retro-reflektif spidol dilihat dari beberapa kamera atau teknik berbasis visi-lain untuk menangkap aktor untuk animasi komputer. 9. Pengawasan: pemantauan untuk penyusup, menganalisis lalu lintas jalan raya dan pemantauan kolam renang untuk korban tenggelam. 10. Pengenalan Sidik Jari dan Biometrik: untuk otentikasi akses otomatis serta aplikasi forensik.
36
Gambar 2.20. Contoh Aplikasi Computer Vision (a) Optical Character Recognition (OCR). (b) Mesin Inspeksi. (c) Retail. (d) Gambar Medis. (e) Keselamatan Otomotif. (f) Pengawasan dan Monitor Kemacetan (Sumber: Computer Vision: Algorithms and Applications, p6) 2.11 Content Based Image Retrieval (CBIR) Menurut Ida, Hariadi, Purnama (2009:2), Content Based Image Retrieval adalah penggunaan algoritma analisa citra untuk mengekstrak secara otomatis sejumlah atribut citra suatu waktu pada database citra. Atribut ini dapat memasukkan nilai numerik terhadap warna, tekstur, dan shape. Disebabkan oleh kompleksitas informasi
37 citra, user tidak dapat berharap mendapatkan kecocokan dengan pasti diantara query dan citra yang akan ditampilkan kembali dari database.
Gambar 2.21. Diagram Sistem CBIR (Sumber: Image Retrieval Benchmarking Visual Information Indexing and Retrieval Systems).
CBIR merupakan teknik pencarian kembali image yang mempunyai kemiripan karakteristik atau content dari sekumpulan image. Proses secara umum dari CBIR pada image query dilakukan proses ekstrasi fitur. Parameter fitur image yang dapat digunakan untuk retrieval pada sistem ini seperti histogram, susunan warna, tekstur, bentuk, tipe spesifik dari obyek, tipe event tertentu, nama individu, lokasi, emosi. Image query terdiri atas 3 level, yaitu : •
Level 1
38 Retrieval dengan fitur primitif seperti warna, bentuk, tekstur dan fitur lain. a. Warna Setiap gambar yang ditambahkan ke koleksi telah dianalisis untuk dihitung histogram warna yang menunjukkan proporsi pixel setiap warna dalam gambar. Warna histogram untuk setiap gambar kemudian disimpan dalam database. Pada waktu pencarian, pengguna dapat mengirimkan contoh gambar. Lalu, proses pencocokan kemudian mengambil gambar-gambar dari histogram warna cocok dengan permintaan yang paling dekat. Teknik
pencocokan
yang
paling
umum
menggunakan
histogram persimpangan, pertama kali dikembangkan oleh Swain dan Ballard. Varian dari teknik ini sekarang digunakan dalam proporsi yang tinggi dari sistem CBIR saat ini.
Gambar 2.22. Ilustrasi Terjadinya Histogram dan Fitur Perhitungan (Sumber: Content Based Image Retrieval based on Color, Texture and Shape Features Using Image and Its Complement, p30)
39 Macam-macam teknik pencocokan warna: -
Jarak warna (Color Space)
-
Momen warna (Color Moment)
-
Histogram warna (Color Histogram)
-
Vektor koherensi warna (Color Coherence Vector)
-
Correlogram warna (Color Correlogram)
-
Fitur invariant warna (Color Invariant Feature)
b. Tekstur Kemampuan untuk mengambil gambar atas dasar kesamaan tekstur mungkin tidak tampak sangat berguna. Tetapi kemampuan untuk mencocokkan kemiripan tekstur dapat berguna dalam membedakan antara bidang gambar dengan warna yang sama. Berbagai teknik telah digunakan untuk mengukur kesamaan tekstur, yang terbaik mengandalkan perbandingan nilai-nilai yang dikenal sebagai statistik orde kedua dihitung dari permintaan dan gambar yang tersimpan. Pada dasarnya, teknik ini menghitung kecerahan relatif pasangan pixels terpilih dari setiap gambar. Dari sini dimungkinkan untuk menghitung ukuran tekstur gambar. Query tekstur dapat dirumuskan dengan cara yang sama untuk pertanyaan warna, dengan memilih contoh tekstur yang diinginkan dari palet, atau dengan menyediakan gambar contoh query. Sistem kemudian mengambil gambar dengan langkah-langkah tekstur paling mirip nilainya dengan query. Macam-macam teknik pencocokan tekstur: -
Fitur tamura
-
Fitur wold
-
Model Simultaneous Auto-Regressive (SAR)
-
Fitur filter gabor
-
Fitur transformasi wavelet
40 c. Bentuk Kemampuan
untuk
mengambil
bentuknya
mungkin
merupakan kebutuhan yang paling jelas di tingkat primitif. Tidak seperti tekstur, bentuk adalah konsep yang cukup didefinisikan dengan baik dan ada bukti bahwa benda-benda alam terutama diakui bentuknya. Sejumlah fitur karakteristik bentuk objek dihitung untuk setiap objek yang diidentifikasi dalam setiap gambar yang disimpan. Query kemudian menghitung set fitur yang sama untuk citra query dan mengambil gambar-gambar yang disimpan fitur yang paling cocok dengan query. Metode alternatif yang diusulkan untuk pencocokan bentuk telah memasukkan deformasi elastis template, perbandingan histogram arah tepi diekstraksi dari gambar dan guncangan, representasi kerangka bentuk objek yang dapat dibandingkan dengan menggunakan teknik pencocokan grafik. Macam-macam teknik pencocokan bentuk: -
Invariant momen
-
Pemutaran sudut
-
Empat deskriptor
-
Kelengkungan, keesentrikan dan orientasi sumbu utama
d. Fitur lain Salah satu cara tertua mengakses data bergambar adalah pengambilan posisi dalam sebuah gambar. Mengakses data dengan lokasi spasial merupakan aspek penting dari sistem informasi geografis dan metode yang efisien untuk mencapai hal ini. Beberapa jenis lain dari fitur gambar telah diusulkan sebagai dasar untuk CBIR. Sebagian besar bergantung pada transformasi kompleks intensitas pixel yang tidak memiliki mitra yang jelas dalam deskripsi manusia dari suatu gambar. Kebanyakan teknik tersebut bertujuan untuk mengekstrak fitur yang mencerminkan beberapa aspek kesamaan gambar yang dapat dilihat manusia, bahkan jika ia menemukan kesulitan untuk menjelaskan. Keuntungan dari teknik-teknik ini adalah
41 bahwa mereka dapat menjelaskan gambar di berbagai tingkat detail. •
Level 2 Retrieval dengan fitur logis seperti tipe objek, individu objek atau orang. Sebagian besar teknik CBIR saat ini dirancang untuk pengambilan tingkat primitif. Namun, beberapa peneliti telah berusaha untuk menjembatani kesenjangan antara pengambilan tingkat 1 dan tingkat 2. Salah satu sistem awal bertujuan untuk mengatasi masalah ini adalah GRIM_DBMS, yang dirancang untuk menafsirkan dan mengambil gambar garis objek dalam satu domain sempit yang telah ditetapkan, seperti rencana lantai untuk bangunan domestik.
•
Level 3 Retrieval dengan fitur abstrak seperti nama peristiwa, tipe aktifitas, emosi, religius. Laporan pengambilan gambar otomatis pada tingkat 3 sangat jarang. Satu-satunya penelitian yang jatuh ke dalam kategori ini telah berusaha untuk menggunakan konotasi subjektif warna seperti apakah warna yang dianggap hangat atau dingin, atau apakah dua warna cocok dengan satu sama lain. Tidak jelas seberapa sukses membuktikan pendekatan ini. Penelitian
dan
pembangunan
dalam
CBIR
mencakup
keseluruhan topik. Beberapa pokok persoalan yang terjadi dalam pembangunan CBIR dapat diuraikan sebagai berikut : •
Pemahaman gambar yang dibutuhkan oleh user dan pencarian informasi.
•
Pengidentifikasian cara yang sesuai dalam konten gambar atau karakteristik dari gambar
•
Proses ekstraksi fitur dari gambar Ekstraksi fitur merupakan proses penting pada sistem CBIR,
karena hasil dari proses ini perbedaan pada setiap gambar dapat diketahui berdasarkan cirinya seperti ciri bentuk, warna, tekstur dan lain-lain. Beberapa teknik yang dapat digunakan untuk ekstraksi fitur
42 antara lain: teknik analisis komponen utama, besaran statistik, histogram warna, transformasi wavelet dan lain-lain. Proses matching merupakan proses pencocokan gambar untuk memperoleh gambar yang mempunyai kemiripan dengan query gambar. Proses pencocokan dilakukan dengan menghitung jarak antara dua gambar yaitu query gambar dan target gambar pada sekumpulan gambar. Parameter yang digunakan dalam perhitungan jarak berdasarkan pada hasil ekstrasi fitur. •
Penyediaan antarmuka manusia dari sistem CBIR.
•
Penyediaan tempat penyimpanan untuk sekumpulan gambar.
•
Proses matching antara query gambar dan gambar yang ada pada sekumpulan gambar.
2.12 Pemrosesan Gambar Image processing memiliki input dan output yang berupa citra. Sebagai contoh, suatu citra di transformasikan ke bentuk citra yang lainnya. Pengolahan citra dapat dibagi menjadi tiga kategori yakni kategori rendah, menengah dan tinggi. Kategori rendah melibatkan operasi-operasi sederhana seperti prapengolahan citra untuk mengurangi derau, pengaturan kontras, dan pengaturan ketajaman citra. Pengolahan ini memiliki input dan output berupa citra. Pengolahan kategori menengah melibatkan operasi-operasi seperti segmentasi dan klarifikasi citra. Proses ini melibatkan input berupa citra dan output berupa atribut (fitur) citra yang dipisahkan dari citra input. Pengolahan citra kategori tinggi melibatkan proses pengenalan dan deskripsi citra (Putra, 2010: 1-2). Pengolahan citra digital menunjuk pada pemrosesan gambar dua dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu kedapa pemrosesan setiap data dua dimensi. Citra digital merupakan sebuah array yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu (Putra, 2010: 19).
43
Gambar 2.23. Koordinat Citra Digital (Sumber: Pengolahan Citra Digital, p20)
Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila niali x,y dan nilai amplitudo f secara keseluruhan berhingga dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital (Putra, 2010: 19).
Gambar 2.24. Bentuk Matriks dalam Citra Digital (Sumber: Pengolahan Citra Digital, p20)
44
Gambar 2.25. Ilustrasi Digitalisasi Citra (Sumber: Pengolahan Citra Digital, p21)
Gambar 2.26. Contoh Citra Grayscale (Sumber: Pengolahan Citra Digital, p21)
2.13 Fitur Warna Salah satu fitur penting yang memungkinkan manusia dalam mengenali gambar adalah warna. Manusia menggunakan warna untuk membedakan antar objek, lokasi, dan waktu dalam satu hari. Biasanya
45 warna dinyatakan dalam 3 dimensi ruang seperti RGB, HSV, atau HSB. HSV dan HSB bergantung pada persepsi manusia pada hue, saturation, dan brightness (Reddy & Prasad, 2011) Fitur warna merupakan salah satu fitur tingkat rendah yang banyak digunakan. Dibandingkan fitur bentuk dan fitur tekstur, fitur warna terlihat lebih stabil dan kebal terhadap perputaran dan perbesaran gambar. Warna tidak hanya menambahkan keindahan pada benda tetapi juga menambah informasi, sehingga baik untuk digunakan pada Content Based Image Retrieval (Sakhare & Nasre, 2011). Terdapat bebagai macam cara untuk mengeluarkan informasi warna pada gambar yaitu: 1. Histogram warna Diberikan ruang warna diskrit yang dinyatakan oleh beberapa sumbu warna misalnya merah, biru, dan hijau maka histogram warna diapatkan dengan mendiskritkan warna gambar dan menghitung jumlah kemunculan masing-masing warna pada gambar. Histogram kebal terhadap perpindahan dan perputaran terhadap sumbu penglihatan. Histogram hanya berubah sedikit jika terjadi perubahan pada sudut penglihatan dan perubahan dalam skala. Langkah yang diusulkan: 1. Convert warna RGB ruang gambar ke ruang warna HSV. 2. Warna kuantisasi dilakukan dengan menggunakan warna histogram dengan menetapkan 8 tingkat masing-masing untuk hue, saturation dan nilai untuk memberikan ruang HSV terkuantisasi dengan 8x8x8 = 512 histogram. 3. Histogram yang dinormalisasi diperoleh dengan membagi dengan jumlah piksel. 4. Ulangi langkah 1 sampai 3 pada gambar di database. 5. Hitung matriks kesamaan citra query dan gambar yang ada dalam database. 6. Ulangi langkah 4-5 untuk semua gambar dalam database. 7. Ambil gambar.
46
Gambar 2.27. Blok Diagram yang Diusulkan untuk Histogram Warna (Sumber: Content Based Image Retrieval using Color and Texture, p44). 2. Color Moments Color moments adalah ukuran yang dapat digunakan untuk membedakan gambar berdasarkan fitur warna gambar. Color moments berbasis pada asumsi yang menyatakan bahwa penyebaran warna dapat diartikan sebagai distribusi probabilitas. Distribusi probabilitas ditandai dengan jumlah kejadian unik. Sebagai contoh, distribusi normal dibedakan oleh rata-rata dan ragam mereka. Tiga color moments yang biasa digunakan adalah ratarata, standart deviasi dan skewness. Selanjutnya gambar ditandai dengan 9 moment yaitu 3 moment pada masing-masing 3 kanal warna. Misalkan kanal warna ke-i pada pixel gambar ke-j dinyatakan sebagai pij maka 3 color moment dinyatakan sebagai: a. Rata-rata
b. Standart deviasi
47 Standart deviasi adalah akar kuardat variasi dari distribusi. c. Skewness
Skewness bisa dianggap sebagai ukuran dari derajat asimetri pada distribusi. (S.A.Angadi & Naik, 2012)
2.14 Jarak Euclidean Pusat permasalahan pada pengenalan gambar dan computer vision adalah menentukan jarak antar gambar. Diantara berbagai metode perhitungan jarak, jarak euclidean paling banyak digunakan karena kesederhanaannya. Kesederhanaannya disebabkan jarak euclidean tidak menganggap posisi x,y sebagai bagian dari gambar tetapi sebagai pixel tersendiri (Ratnawati, 2013). Jarak Euclidean digunakan untuk menghitung kesamaan dua vektor dengan menghitung akar dari kuadrat perbedaan dua vektor tersebut. Rumus Jarak Euclidean :
= Jarak Euclidean vektor a dan vektor b. = komponen ke-i dari vektor a. = komponen ke-i dari vektor b. = jumlah komponen pada vektor a dan vektor b.
48