BAB 2 LANDASAN TEORI 2.1
Teori Umum Teori umum merupakan teori-teori pokok yang akan dijadikan landasan untuk
teori-teori lainnya dalam penulisan skripsi ini. 2.1.1
Perangkat Lunak (Software) Pressman (2010, p. 4) mendefinisikan perangkat lunak sebagai berikut :
1. Instruksi (program komputer) yang ketika dijalankan akan memberikan fungsi dan performa yang diinginkan. 2. Struktur data yang memungkinkan program untuk memanipulasi informasi secara memadai. 3. Dokumen-dokumen yang menggambarkan operasi dan kegunaan dari program. Menurut Pressman (2010, p. 5), perangkat lunak memiliki karakteristik sebagai berikut : 1. Perangkat lunak dikembangkan atau direkayasa, bukan dibuat dalam arti klasik. 2. Perangkat lunak tidak usang. 3. Meski sebagian besar industri telah memproduksi dengan cara perakitan berbasis komponen, tetapi perangkat lunak tetap dibangun secara tradisional. 2.1.2
Rekayasa Perangkat Lunak Istilah rekayasa perangkat lunak merupakan terjemahan dari Software
Engineering. Istilah ini dipopulerkan pada Software Engineering Conference yang diselenggarakan oleh NATO pada tahun 1968. 8
9 Pressman (2010, p. 13) mendefinisikan rekayasa perangkat lunak sebagai sebuah teknologi yang memiliki lapisan-lapisan, sebagai berikut :
Gambar 2.1 Lapisan Teknologi Rekayasa Perangkat Lunak ( Pressman, 2010, p. 14) 1. Berpusat pada kualitas (a quality focus) Semua pendekatan perekayasaan (termasuk rekayasa perangkat lunak) harus berdasarkan pada komitmen organisasi terhadap kualitas. Berpusat pada kualitas merupakan landasan yang mendukung rekayasa perangkat lunak. 2. Proses (process) Lapisan proses merupakan dasar dari rekayasa perangkat lunak. Lapisan ini merekatkan lapisan-lapisan teknologi dan memungkinkan pengembangan rekayasa perangkat lunak secara rasional dan selesai tepat waktu. Proses mendefinisikan kerangka kerja untuk suatu Key Process Areas (KPAs) yang harus ditetapkan agar pengiriman teknologi rekayasa perangkat lunak dapat berjalan secara efektif. KPAs membentuk dasar untuk manajemen kontrol dari proyek perangkat lunak dan membentuk hubungan metode teknis yang diterapkan. Dengan adanya KPAs produk yang digunakan dalam pekerjaan seperti model, dokumen, data, laporan, form, dan sebagainya dapat
10 dihasilkan, milestone dapat ditetapkan, kualitas dapat dipastikan, dan perubahan ditangani dengan tepat. 3. Metode (methods) Lapisan ini menerangkan secara teknis tentang bagaimana cara membangun perangkat lunak. Lapisan metode ini meliputi tugas-tugas seperti analisis kebutuhan (requirement analysis), desain (design), pembuatan program (program
construction),
pengujian
(testing),
dan
pemeliharaan
(maintenance). 4. Alat (tools) Alat rekayasa perangkat lunak menyediakan dukungan secara otomatis ataupun semi-otomatis dalam proses dan metode pengembangan perangkat lunak. Ketika alat tersebut diintegrasikan maka informasi yang dihasilkan oleh suatu alat dapat digunakan oleh alat lainnya, sistem untuk mendukung perkembangan rekayasa perangkat lunak yang disebut Computer-Aided Software Engineering (CASE). CASE menggabungkan perangkat lunak, perangkat keras, dan database (suatu penyimpanan yang mengandung informasi penting tentang analisis, desain, pembuatan program, dan pengujian) untuk membentuk suatu lingkungan yang sejalan dengan CAD/CAE (Computer-Aided Design/Engineering) untuk perangkat keras. 2.1.3
Model Proses Perangkat Lunak Pressman (2010, p. 26) mendefinisikan proses sebagai kumpulan dari
aktivitas, tindakan, dan pekerjaan yang dilakukan ketika sebuah produk ingin dihasilkan. Masing-masing aktivitas, tindakan dan pekerjaan ditempatkan pada
11 sebuah kerangka kerja atau model yang mendefinisikan hubungannya dengan proses dan maupun antar proses. Proses perangkat lunak dapat direpresentasikan pada gambar 2.2. Dari gambar, masing-masing aktivitas pada kerangka kerja dikumpulkan menjadi satu set tindakan rekayasa perangkat lunak. Masing-masing tindakan pada rekayasa perangkat lunak didefinisikan oleh beberapa pekerjaan yang mengidentifikasi pekerjaan itu telah selesai dikerjakan. Model yang dipakai untuk pengembangan skripsi ini adalah model sekuensial linear (waterfall model).
Gambar 2.2 Proses Perangkat Lunak (Pressman, 2010, p. 32)
12 2.1.4
Model Sekuensial Linear (Waterfall Model) Software process models pertama kali berasal dari sistem rekayasa proses
yang lebih umum. Model ini dapat diilustrasikan seperti gambar 2.3. Karena adanya aliran dari satu tahap ke tahap yang lain, model ini dikenal sebagai waterfall model atau software life cycle (Sommerville, 2007, p. 66).
Gambar 2.3 Software Life Cycle (Sommerville, 2007, p. 66) Tahapan utama dari kegiatan-kegiatan pengembangan model : 1. Requirements analysis and definition Kebutuhan sistem, batasan dan tujuan merupakan hal yang didapatkan dari konsultasi atau komunikasi dengan pengguna sistem. Hal inilah yang kemudian secara detil menjadi bagian dari spesifikasi sistem. 2. System and software design Desain sistem membagi kebutuhan kepada masing-masing sistem perangkat keras dan perangkat lunak. Desain sistem juga membentuk keseluruhan
13 arsitektur sistem. Desain perangkat lunak melibatkan analisis serta penjelasan abstraksi dan hubungan sistem perangkat lunak yang mendasar. 3. Implementation and unit testing Pada tahapan ini, desain perangkat lunak direalisasikan sebagai set program atau unit program. Unit testing melibatkan verifikasi bahwa tiap unit mencapai spesifikasinya masing-masing. 4. Integration and system testing Unit program harus terintegrasi dan diuji sebagai suatu sistem yang utuh untuk memastikan kebutuhan sistem telah tercapai. Setelah pengujian, sistem perangkat lunak diberikan kepada pelanggan. 5. Operation and maintenance Pada umumnya (meskipun tidak dibutuhkan) ini adalah tahap yang paling panjang dalam tahapan life-cycle. Sistem telah digunakan secara praktis. Maintenance melibatkan koreksi terhadap kesalahan yang tidak ditemukan pada tahap-tahap sebelumnya pada tahapan life-cycle, meningkatkan implementasi dari unit sistem dan meningkatkan servis sistem sebagai sebuah kebutuhan yang baru. Pada dasarnya, hasil dari setiap tahap adalah sebuah atau lebih dokumen yang disetujui. Tahap berikutnya tidak dapat dimulai sebelum tahap sebelumnya selesai. Pada praktisnya, tahap-tahap ini tumpang tindih dan memberikan informasi satu sama lain. Saat melakukan desain, masalah-masalah dengan kebutuhan sistem dapat diidentifikasi. Model proses perangkat lunak bukanlah sebuah model linier yang sederhana melainkan meliputi berbagai sekuensi dari perulangan aktivitasaktivitas pengembangan (Sommerville, 2007, p. 67).
14 2.1.5
UML (Unified Modelling Language) Menurut Whitten dan Bentley (2007, p. 371), Unified Modelling Language
(UML) adalah suatu kumpulan aturan atau ketentuan pemodelan yang digunakan untuk menentukan dan menggambarkan sebuah sistem perangkat lunak yang berhubungan dengan objek. UML telah menjadi standar dalam bahasa pemodelan di bidang perancangan perangkat lunak. Standarisasi UML diatur dan dibuat oleh Object Management Group
(OMG).
Untuk
menjalankan
fungsinya
dalam
menentukan
dan
menggambarkan rancangan perangkat lunak, UML versi 2.0 menggunakan diagramdiagram sebagai berikut : 1. Use Case
8. Interaction Overview
2. Activity
9. Timing
3. Class
10. Component
4. Object
11. Deployment
5. State Machine
12. Package
7. Communication
13. Composite Structure
Meskipun UML memiliki banyak diagram, tidak semuanya diperlukan dan harus digunakan dalam perancangan. Apabila sistem telah digambarkan dan dapat dipahami dengan baik menggunakan diagram yang ditentukan, maka tujuan dari UML telah tercapai. Class Diagram Class diagram merupakan gambaran mengenai objek-objek bernama kelas yang menyusun suatu sistem dan juga hubungan antara kelas-kelas tersebut (Whitten & Bentley, 2007, p. 371).
15
Gambar 2.4 Contoh Class Diagram (Whitten & Bentley, 2007, p. 374) Dalam class diagram terdapat istilah visibility yang fungsinya untuk menentukan apakah atribut atau operasi dari suatu kelas dapat digunakan oleh kelas lainnya. Tabel 2.1 Tabel Penjelasan Visibility Visibility
Simbol
Deskripsi
Private
-
Hanya dapat digunakan mendefinisikannya.
Protected
#
Dapat digunakan oleh class yang mendefinisikan dan turunannya.
Public
+
Dapat digunakan berhubungan.
oleh
oleh
semua
class
class
yang
yang
Relasi antar kelas pada class diagram dapat terdiri dari : •
Asosiasi Asosiasi merupakan relationship antar kelas yang dilambangkan oleh sebuah garis yang menghubungkan kedua kelas tersebut. Garis ini dapat
16 melambangkan hubungan antar kelas (bisa diberi nama atau tidak) dan juga dapat menampilkan multiplicity pada relationship.
Gambar 2.5 Asosiasi Kelas dan Multiplicity (Whitten & Bentley, 2007, p. 377)
17 •
Agregasi Merupakan hubungan “bagian dari” atau “terdiri dari”. Hubungan agregasi digunakan ketika satu kelas (whole part) dibuat dari beberapa kelas lainnya (is part of).
Gambar 2.6 Contoh Agregasi (Whitten & Bentley, 2007, p. 379) •
Turunan Ketika satu kelas adalah spesialisasi dari kelas lain, maka hubungan antar kelas tersebut disebut turunan. Kelas induk disebut sebagai supertype class dan kelas anak disebut sebagai subtype class. Pada hubungan ini, terdapat pewarisan atribut dan behavior kelas induk kepada kelas anak.
18
Gambar 2.7 Contoh Turunan (Whitten & Bentley, 2007, p. 376) •
Komposisi Komposisi merupakan bentuk agregasi yang lebih kuat. Komposisi menyatakan ‘kepemilikan’ yang kuat antara kelas yang berperan sebagai whole class dan kelas-kelas bagiannya (part class). Siklus hidup part class sangat bergantung pada whole class sehingga bila instance dari whole class dihapus maka instance dari part class juga akan terhapus.
19
Gambar 2.8 Contoh Komposisi (Whitten & Bentley, 2007, p. 379) Class diagram digunakan untuk menggambarkan objek dan hubungan diantaranya. Berikut langkah yang dilakukan dalam membuat class diagram : 1. Mengidentifikasi hubungan (asosiasi) dan multiplicity. Pada langkah ini, dilakukan identifikasi hubungan yang ada di antara obyek dan kelompok serta ditambahkan multiplicity untuk memperjelas hubungan antar objek tersebut. 2. Mengidentifikasi hubungan generalisasi/spesialisasi. Setelah mengidentifikasi hubungan (asosiasi) dan multiplicity, harus ditentukan hubungan generalisasi/spesialisasi-nya. Supertype class bersifat umum karena di dalamnya terdiri dari atribut umum dan behavior. Subtype class bersifat khusus, di dalamnya berisi atribut dan behavior unik dari
20 sebuah objek dan dia juga mewarisi atribut dan behavior dari supertype class. 3. Mengidentifikasi hubungan agregasi. Pada langkah ini ditentukan apakah ada hubungan agregasi atau komposisi dasar. Misalnya ada dua objek A dan B, objek B terdapat di dalam A, tetapi jika objek
A hilang,
objek
B tetap
ada.
Hubungan
ini
tidak
mengimplikasikan pewarisan, dalam hal ini objek B tidak mewarisi behavior atau atribut objek A. Contohnya seperti objek ruang kelas yang di dalamnya terdapat objek meja dan kursi, tetapi meja dan kursi tetap ada bila tidak ada ruang kelas. Sedangkan hubungan komposisi sebaliknya, objek B akan hilang bila objek A hilang, misalnya pada objek kampus terdapat objek mata kuliah, mata kuliah akan hilang apabila kampus tersebut tidak ada. 4. Menyiapkan class diagram. Model ini merefleksikan hubungan objek/kelas dan multiplicity yang diidentifikasi pada langkah 1, hubungan generalisasi/spesialisasi yang ditemukan pada langkah 2, dan hubungan agregasi yang ditemukan pada langkah 3. Use Case Diagram Use case adalah diagram yang menggambarkan interaksi antara sistem dan pengguna, mengenai siapa yang menggunakan sistem dan bagaimana pengguna berinteraksi dengan sistem. Use case direpresentasikan secara grafis oleh elips horizontal disertai dengan nama use case pada bagian atas, bawah maupun didalam elipsnya. Sebuah use case mendeskripsikan tujuan sistem dan urutan aktivitas serta interaksi pengguna dalam mencapai tujuan (Whitten & Bentley, 2007, p. 242).
21
Gambar 2.9 Contoh Use Case Diagram (Whitten & Bentley, 2007, p. 246) Hubungan yang digunakan dalam use case (Whitten & Bentley, 2007, p.248) : •
Asosiasi Asosiasi menggambarkan adanya interaksi antara sebuah use case dengan aktor. Sebuah asosiasi digambarkan dengan simbol garis dengan atau tanpa anak panah. Asosiasi dengan anak panah yang berasal dari aktor menunju ke use case menandakan bahwa aktor sebagai inisiator use case tersebut. Asosiasi tanpa anak panah menandakan interaksi antara use case dengan aktor penerima.
Gambar 2.10 Asosiasi pada Use Case Diagram (Whitten & Bentley, 2007, p. 248)
22 •
Extends Extends digunakan ketika fungsi dari sebuah use case terdiri dari beberapa tahap sehingga sulit dimengerti. Dengan menggunakan extends, use case tersebut menghasilkan use case baru yang mewakili fungsi tertentu dari use case awal. Use case hasil dari extends disebut dengan extension use case yang menunjuk ke use case yang menggunakan extends, Extension use case hanya dapat digunakan oleh use case yang menggunakan extends.
Gambar 2.11 Extends pada Use Case Diagram (Whitten & Bentley, 2007, p. 249) •
Includes / Uses Includes digunakan ketika terdapat dua atau lebih use case yang melakukan langkah yang sama. Langkah tersebut akan menjadi sebuah entitas baru yang disebut use case abstract, yang berfungsi untuk mengurangi redundansi dalam use case diagram.
23
Gambar 2.12 Contoh Uses pada Use Case Diagram (Whitten & Bentley, 2007, p. 249) •
Depends On Depends On digunakan ketika terdapat hubungan antara use case dimana suatu use case tidak dapat dilakukan apabila use case tertentu belum dilakukan.
24
Gambar 2.13 Contoh Depends On pada Use Case Diagram (Whitten & Bentley, 2007, p. 250) •
Inheritance Inheritance digunakan untuk menggambarkan hubungan antara dua atau lebih aktor dalam sistem dengan sebuah aktor abstrak. Aktor abstrak ini memiliki langkah yang dimiliki aktor lain. Aktor abstrak dibuat untuk menyederhanakan rancangan diagram.
25
Gambar 2.14 Contoh Inheritance pada Use Case Diagram (Whitten & Bentley, 2007, p. 250) Sequence Diagram Sequence diagram menggambarkan model logika dari sebuah use case dengan menggambarkan pesan yang dikirimkan antar objek dalam suatu urutan waktu (Whitten & Bentley, 2007, p. 394).
26
Gambar 2.15 Contoh Sequence Diagram (Whitten & Bentley, 2007, p. 295) Berdasarkan Whitten dan Bentley (2007, p. 660) Elemen-elemen yang digunakan dalam sequence diagram : •
Aktor Simbol yang digunakan untuk mewakili pengguna dalam berinteraksi dengan objek kelas interface. Aktor bisa direpresentasikan dengan simbol seperti objek.
27
Gambar 2.16 Aktor •
Objek Digambarkan dengan simbol persegi panjang yang mewakili kelas-kelas pada class diagram.
Gambar 2.17 Objek •
Aktivasi Simbol
persegi
panjang
pada
garis
putus-putus
menggambarkan lamanya waktu dari objek saat digunakan.
Gambar 2.18 Objek, Aktivasi dan Lifeline
(lifeline)
yang
28 •
Pesan Pesan digunakan untuk menyampaikan method dari setiap objek.
Gambar 2.19 Pesan •
Self-call Sebuah objek dapat mengirimkan pesan ke objek itu sendiri.
Gambar 2.20 Self-call •
Pesan kembali (return) Jawaban atas pesan yang disampaikan oleh suatu objek. Memiliki simbol seperti pesan tapi dengan garis putus-putus.
Gambar 2.21 Pesan Kembali (Return) •
Frame Digunakan untuk menandakan area pada diagram yang mengalami perulangan (looping), mengalami seleksi (alternative), atau memiliki sebuah ketentuan (optional).
29 Activity Diagram Activity diagram digunakan untuk memberikan gambaran mengenai alur dari sebuah proses bisnis, langkah dalam sebuah use case, dan logika dari sebuah perilaku objek (Whitten & Bentley, 2007, p. 390).
Gambar 2.22 Contoh Activity Diagram (Podeswa, 2008, p. 281) Elemen-elemen yang digunakan dalam activity diagram : Tabel 2.2 Elemen Activity Diagram
Simbol
yang
dimulainya proses.
Initial Node
merepresentasikan
30
Simbol yang merepresentasikan suatu aktivitas. Keseluruhan aktivitas dari diagram mengikuti urutan actions. Action Simbol yang merepresentasikan jalur dari satu aktivitas ke aktivitas lain.
Flow Simbol yang merepresentasikan keadaan kondisional, yaitu decision dan merge.
1. Decision Mengindikasikan
kondisi untuk
memilih salah satu alur aktivitas.
Decision / Merge
2. Merge Mengindikasikan
bergabungnya
alur aktivitas yang dipisahkan oleh decision sebelumnya.
Simbol
yang
merepresantasikan
keadaan paralel, yaitu fork dan join.
31
Fork / Join
1. Fork Mengindikasikan adanya dua atau
lebih
actions
yang
berlangsung bersamaan. 2. Join Mengindikasikan berakhirnya proses paralel.
Simbol
yang
merepresentasikan
berakhirnya proses.
Activity Final
2.1.6
Multimedia Menurut Vaughan (2011, p. xiv), multimedia adalah kombinasi dari teks,
seni grafis, suara, animasi, dan video yang memiliki suatu informasi tertentu dan disampaikan dengan computer atau media elektronik lain yang dapat dimanipulasi secara digital. Menurut Vaughan (2011, p. 18-164), multimedia terdiri dari lima elemen, yaitu : 1. Teks
32 Merupakan jenis data yang paling sederhana dan merupakan elemen multimedia yang menjadi dasar dalam penyampaian informasi. Teks dapat memiliki banyak arti. Oleh karena itu, pemilihan kata-kata dalam menyampaikan informasi harus diperhatikan. 2. Gambar Gambar merupakan elemen visual yang membentuk multimedia. Elemen grafis ini dapat diubah ke ukuran yang berbeda, diwarnai, diberi pola, dibuat terlihat atau transparan. 3. Suara Suara merupakan elemen paling sensasional dalam multimedia. Dengan adanya fasilitas suara, hasil visualisasi akan menjadi lebih sempurna dan nyata jika digunakan dengan benar. 4. Animasi Animasi membuat gambar statik menjadi lebih hidup. Animasi sebenarnya adalah sebuah objek yang bergerak menyeberangi, ke dalam, atau keluar dari layar. Dengan animasi, gambar-gambar berubah sedikit demi sedikit dan dengan cepat secara berkelanjutan sehingga terlihat menyatu menjadi sebuah ilusi gerakan. 5. Video Video merupakan elemen yang paling menarik dari bidang multimedia dan merupakan alat yang ampuh untuk mendekatkan user kepada dunia nyata. Video yang tidak direncanakan dan diproduksi dengan baik dapat menurunkan nilai informasi dari sebuah presentasi. 2.1.7
Interaksi antara Manusia dan Komputer
33 Menurut Shneiderman dan Plaisant (2010, p. 88-89), terdapat delapan aturan emas (eight golden rules) yang digunakan dalam perancangan antarmuka pengguna (user interface), yaitu :
1. Berusaha untuk konsisten Konsistensi diperlukan pada urutan tindakan dalam situasi yang mirip, terminologi yang identik harus digunakan pada prompt, menu, dan layar bantuan; serta kekonsistenan dalam penggunaan warna, tata letak, huruf kapital, jenis huruf, dan sebagainya secara menyeluruh. 2. Menyediakan usability universal Mengenali kebutuhan user yang beragam dengan desain yang fleksibel, sehingga
dapat
memfasilitasi
user
yang
berbeda-beda.
Contohnya
memfasilitasi user yang masih pemula sampai yang telah ahli (expert) yaitu dengan memberikan penjelasan dan panduan pada user yang masih pemula dan memberikan shortcut untuk yang lebih ahli. Hal ini dapat memperkaya desain antarmuka dan meningkatkan kualitas sistem. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan pengguna, sebaiknya diberikan sebuah umpan balik. Tindakan yang sering dilakukan dan tidak terlalu penting dapat diberikan umpan balik yang sederhana. Untuk tindakan yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara atau pesan kesalahan ketika salah menekan tombol pada waktu input data. 4. Merancang dialog untuk menghasilkan suatu penutupan
34 Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya.
5. Memberikan pencegahan kesalahan dan penanganan yang sederhana Sedapat mungkin perancangan sistem dibuat agar pengguna tidak akan melakukan kesalahan yang serius. Jika pengguna membuat kesalahan, antarmuka harus bisa mendeteksi kesalahan tersebut dan memberikan petunjuk perbaikan yang sederhana, membangun, dan spesifik. 6. Memungkinkan pembalikan aksi yang mudah Sebisa mungkin, pengguna dapat membalikkan tindakan yang telah dilakukan. Fitur ini dapat mengurangi kekhawatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan . Selain itu, juga dapat mendorong pengguna untuk mencoba melakukan tindakantindakan baru yang pernah dilakukan sebelumnya. 7. Mendukung pusat pengendali internal (internal locus of control) Pengguna yang berpengalaman biasanya menginginkan untuk bertindak sebagai pemegang kendali, baik dalam mengambil suatu keputusan maupun dalam mengambil sebuah tindakan. Selain itu, pengguna juga mengharapkan rancangan antarmuka yang dapat memberikan respon yang baik. 8. Mengurangi beban ingatan jangka pendek Manusia mempunyai keterbatasan kapasitas untuk memproses informasi dalam ingatan jangka pendek. Hal ini mendorong untuk dihindarinya desain
35 antar muka yang memaksa pengguna untuk mengingat informasi pada suatu layar. Sebaiknya tampilan dibuat sederhana dan frekuensi perpindahan layar dikurangi.
Menurut Shneiderman dan Plaisant (2010, p. 32), lima faktor manusia terukur (Measureable Human Factors) dalam perancangan antarmuka pengguna terdiri dari : 1. Waktu pembelajaran Faktor yang mengukur berapa lama waktu yang dibutuhkan oleh anggota perwakilan dari komunitas pengguna untuk mempelajari tindakan-tindakan yang relevan untuk menyelesaikan suatu tugas. 2. Kecepatan performa Faktor yang mengukur berapa lama waktu yang dibutuhkan agar tugas-tugas diselesaikan oleh sistem. Faktor ini akan mempengaruhi kepuasan subjektif pengguna terhadap sistem. 3. Tingkat kesalahan pengguna Faktor yang mengukur banyaknya jumlah kesalahan dan jenis kesalahan yang dilakukan oleh pengguna ketika melakukan tugas-tugas tersebut. Meskipun waktu yang digunakan untuk memperbaiki kesalahan dapat diperhitungkan pada bagian kecepatan performa, namun penanganan kesalahan merupakan suatu komponen penting dalam perancangan antarmuka sehingga dibutuhkan evaluasi tersendiri. 4. Daya ingat setelah jangka waktu tertentu
36 Faktor yang membutuhkan seberapa banyak atau seberapa baikkah pengguna mengingat informasi atau pengetahuan setelah satu jam, satu hari atau setelah jangka waktu tertentu. Daya ingat sangat berhubungan dengan waktu pembelajaran serta frekuensi penggunaan.
5. Kepuasan subjektif Faktor yang mengukur seberapa besar rasa suka pengguna dalam menggunakan bermacam-macam aspek antarmuka. Jawabannya dapat diperoleh melalui wawancara atau survei dimana diberikan skala kepuasan dan kesempatan untuk memberikan saran. 2.1.8
Storyboard Menurut Simon (2007, p. 3-7), storyboard adalah sebuah bentuk ilustrasi
seperti sebuah komik, yang menggambarkan sebuah produk final. Storyboard merupakan cara komunikasi yang paling efektif antara desainer dan programmer. Setiap gambar menghubungkan semua informasi yang diperlukan secara instan dan menggambarkan sebuah pandangan tentang produk final yang akan dicapai. Storyboard kini digunakan sebagai pengembangan sebuah script, menuangkan ideide, dan memvisualisasikan sebuah perencanaan yang telah selesai. 2.1.9
Extensible Markup Language (XML) eXtensible Markup Language (XML) adalah sebuah kumpulan data yang
menggambarkan struktur dari data tersebut. Konsep dari dokumen XML adalah sebuah elemen yang dibagi menjadi dua tag. XML mengakses data dengna menggunakan fungsi-fungsi parser dan mengubahnya menjadi text. Dengan
37 menggunakan parser dokumen XML akan dibaca dan diterima oleh sistem dalam bentuk string (Kumar, Organero, & Agrawal, 2010). Menurut Powell (2006, p. 3), keuntungan dari penggunaan XML secara umum antara lain data yang fleksible, integrasi dengan web, ketentuan yang terbuka, peningkatan dalam skala dan kompresi, dan tidak memperdulikan urutan data. Menurut Powell (2006, p. 13-19), XML memiki aturan sintaks dasar yang sederhana namun sangat ketat : •
XML tag : baris pertama dalam dokumen XML menunjukkan dan mendeklarasikan versi XML yang digunakan.
•
Including style sheets : baris kedua bersifat opsional yang isinya adalah referensi yang menunjukkan style sheet yang digunakan oleh dokumen XML tersebut.
•
Root node : di baris berikutnya akan terdapat root node dari struktur tree dokumen XML tersebut. Root node tersebut akan menampung semua node lain yang ada di dokumen XML tersebut baik secara langsung ataupun tidak langsung.
•
Single root node : sebuah dokumen XML hanya boleh memiliki sebuah root tag dan akan menampung semua tag yang lain. Sebuah tag XML biasanya disebut sebagai element.
•
Ending root tag : pada baris terakhir dari sebuah dokumen XML akan terdapat element penutup untuk root element. Sebuah ending element memiliki nama yang sama dengan starting element nya dan ditandai dengan adanya tanda slash ( / ) pada awal nama nya.
38 •
Opening and closing elements : semua element dalam XML harus memiliki sebuah element penutup. Apabila sebuah element tidak memiliki penutup, maka akan menyebabkan error.
•
Case sensitive : element dalam XML memiliki sifat case sensitive.
•
Element attributes : sebuah element dalam XML dapat memiliki attribute. Sebuah attribute memiliki value di dalamnya. Sebuah element dalam XML dapat memiliki satu atau lebih pasangan attribute-value dan semua value harus diikuti tanda petik.
•
Comments : XML menggunakan cara comment yang sama dengan HTML. Untuk mendesain XML, dapat menggunakan Element atau Attribute
untuk menyimpan data yang kita inginkan. Element •
Nama dari sebuah element dapat mengandung huruf dan angka apapun namun tidak boleh diawali oleh angka dan tidak boleh mengandung spasi.
•
Hubungan antar element : sebuah root hanya memiliki children, sedangkan node yang lain memiliki sebuah parent node dan nol atau banyak children node.
•
Isi dari element : sebuah element XML dapat memiliki konten sebuah teks sederhana, atau memiliki attribute yang berhubungan dengan element tersebut, atau bisa juga menampung child element.
Attributes Element dapat memiliki attribute-attribute. Sebuah element dapat memiliki nol atau banyak attribute di dalam nya. Attribute biasa digunakan saat attribute
39 tersebut tidak termasuk dalam data tekstual di dalam XML tersebut. Attribute juga dapat ditampung dalam bentuk child element di dalam sebuah element. Ada beberapa alasan mengapa lebih baik menggunakan element daripada attribute : •
Element dapat membantu menunjukkan struktur dari XML tersebut sedangkan attribute tidak.
•
Attribute tidak dapat menyimpan banyak nilai atau value sedangkan element bisa.
•
Programming akan menjadi lebih kompleks apabila menggunakan attribute.
•
Attribute lebih susah diubah saat XML sudah menjadi lebih kompleks.
Gambar 2.23 Contoh XML (Powell, 2006, p. 4) Untuk mendokumentasikan XML, bisa menggunakan XML schema. Menurut Powell (2006, p. 370), XML schema adalah suatu mekanisme untuk menggambarkan logical structure dari desain XML. Beberapa hal yang didefinisikan oleh XML schema adalah tipe data, attribute, serta element.
40
Gambar 2.24 Contoh XML schema (Powell, 2006, p. 374) Menurut Powell (2006, p. 376-379), tipe data dalam XML schema secara general dapat dikelompokan menjadi 2 kelompok, yaitu simple data types dan complex data types. Simple data types adalah predefined data type, seperti string dan integer. Simple data types tidak dapat mengandung element ataupun attribute di dalamnya. Sedangkan complex data types adalah tipe data yang melibatkan structure, mengandung satu atau lebih element ataupun attribute lain.
Gambar 2.25 Contoh Penggunaan Simple Data Types (Powell, 2006, p. 377)
Gambar 2.26 Contoh Penggunaan Complex Data Types (Powell, 2006, p. 379)
41 Agar XML schema lebih mudah dibaca, maka umumnya XML schema ditampilkan dalam bentuk XML schema diagram.
Gambar 2.27 Contoh XML Schema Diagram (IBM, 2009) Berdasarkan informasi dari IBM (2009), belum ada format tertentu dalam merepresentasikan informasi pada schema diagram. Schema editor dan pembaca masing-masing memiliki pendekatan yang berbeda dalam membuat diagram. Berikut ini penjelasan simbol-simbol yang digunakan oleh IBM : Tabel 2.3 Elemen XML Schema Diagram Optional element Min. occurrence = 0 Max. occurrence = 1 Required single element Min. occurrence = 1 Max. occurrence = 1 Required repeated element dengan cardinality. Min. occurrence = 1 Max. occurrence = unbounded (tak terhingga) Simple Data Types (teks, angka, tanggal, dll) Complex Data Types Complex element yang memiliki child element
42 no element content (bisa berupa simple type, attributes saja, atau element yang tidak memiliki child element) Sequence element, child element harus ditampilkan dengan urutan persis seperti pada gambar schema diagram Choice element, hanya satu element dari child element yang akan ditampilkan All element, digunakan apabila urutan dari child element belum pasti, child element dapat terlihat sekali ataupun tidak sama sekali.
2.2
Teori Khusus Teori khusus merupakan teori-teori yang berhubungan dengan topik yang
dibahas dalam skripsi ini. 2.2.1
Android Android adalah sistem operasi berbasis Java yang dijalankan pada kernel
Linux 2.6 (DiMarzio, 2008, p. 24). Adapun fitur-fitur android adalah pengaksesan wi-fi (wireless fidelity), pengiriman data/telepon dengan GSM (Global System for Mobile Communications), EDGE (Enhanced Data Rate for GSM), dan jaringan 3G (third generation technology) untuk mengirim dan menerima telepon, SMS (Short Message Service), ataupun data, layanan API (Application Programming Services) untuk GPS (Global Positioning System), pengaksesan perangkat keras multimedia (seperti pemutaran dan perekaman dengan kamera dan mikrofon), API untuk
43 penggunaan sensor perangkat keras (seperti accelerometer dan kompas), libraries untuk pengiriman data dengan bluetooth dan peer to peer, browser berbasis WebKit HTML5, hardware accelerated graphics, lokalisasi, dan berbagai kemampuan handphone lainnya. Android juga menyediakan open source libraries seperti SQLite, WebKit, OpenGL, dan Media Manager, yang dapat digunakan untuk pengembangan aplikasi pada android. Adapun definisi open source adalah semua orang diperbolehkan untuk membaca dan memodifikasi source code tersebut (J. Eddy & P. D. Eddy, 2009, p. 2). 2.2.2
Sejarah Android Awalnya, Google Inc. membeli Android Inc. yang merupakan pendatang
baru dalam pembuatan peranti lunak untuk smartphone. Kemudian untuk mengembangkan android, dibentuklah Open Handset Alliance, konsorsium dari tiga puluh empat perusahaan piranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia (Safaat, 2011, p.1). Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode android dibawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler. Pada masa ini kebanyakan vendor-vendor telah memproduksi smartphone dan tablet berbasis Android, vendor-vendor itu antara lain HTC, Samsung, LG, Sony Ericsson, Nexian dan masih banyak lagi vendor di dunia yang memproduksi smartphone maupun perangkat tablet berbasis Android. Hal ini dikarenakan Android adalah
44 sistem operasi yang open source sehingga bebas didistribusikan dan dipakai oleh vendor manapun (Safaat, 2011, p.2). 2.2.3
Arsitektur Sistem Android Berikut adalah gambar arsitektur dari sistem Android :
Gambar 2.28 Arsitektur Sistem Android (Safaat, 2011, p. 5) Menurut Safaat (2011, p. 6-8), Setiap lapisan menggunakan layanan yang dihasilkan oleh lapisan dibawahnya. Berikut ini penjelasan dari setiap lapisan pada arsitektur Android dimulai dari lapisan paling bawah : 1. Linux Kernel Android menggunakan sistem operasi Linux kernel. Linux kernel menangani berbagai layanan yang utama pada Android (termasuk hardware drivers, manajemen proses dan memori, security, network, power management, dan berbagai layanan sistem operasi lainnnya).
45 2. Libraries (Native Libraries) Lapisan di atas Linux kernel adalah lapisan native libraries. Native libraries merupakan libraries yang ditulis dalam bahasa C / C++, di-compile untuk arsitektur perangkat keras tertentu yang digunakan oleh telepon, dan diinstall oleh phone vendor. Beberapa contoh native libraries yang penting : • Surface Manager digunakan untuk mengatur akses pada subsistem tampilan dan dengan mulus menggabungkan lapisan grafis 2D dan 3D dari beberapa aplikasi. • Graphics libraries mencakup SGL dan OpenGL untuk grafik 2D dan 3D. • Media library digunakan untuk pemutaran dan perekaman media audio dan video. • SQLite database engine untuk pengelolaan database. • WebKit digunakan untuk web browser dan SSL untuk keamanan internet. 3. Android Runtime Android runtime adalah engine yang mendayai aplikasi dan bersama dengan libraries, membentuk dasar dari kerangka kerja aplikasi. Android runtime mencakup Dalvik virtual machine dan core libraries. • Dalvik virtual machine Dalvik adalah mesin virtual berbasis register yang telah dioptimalkan sehingga perangkat dapat menjalankan beberapa aplikasi secara efisien. • Core libraries
46 Core libraries pada Android menyediakan sebagian besar fungsi yang ada pada core Java libraries dan libraries khusus Android lainnya. 4. Application Framework Application framework mencakup kelas-kelas yang digunakan untuk menciptakan aplikasi Android. Application framework ini membantu dalam pengaksesan perangkat keras dan mengelola sumber daya user interface dan aplikasi. 5. Application dan Widgets Application atau aplikasi adalah program yang bisa mengambil alih seluruh layar dan berinteraksi dengan pengguna. Sementara, widgets (kadang disebut gadgets), merupakan bagian dari aplikasi. 2.2.4
Komponen Android Berdasarkan Android Developer (2013), berikut ini merupakan komponen-
komponen dari Android : 1. Activity Activity adalah sebuah kegiatan tunggal yang dapat dilakukan oleh pengguna. Hampir semua activity dapat berinteraksi langsung dengan pengguna dan juga activity yang bertugas untuk membuat sebuah tempat dimana kita bisa memasang komponen-komponen tampilan antarmuka android. 2. LinearLayout Sebuah layout dimana komponen di dalamnya akan diposisikan seperti kolom tunggal atau baris tunggal. 3. FrameLayout
47 FrameLayout digunakan mengisi penuh seluruh bagian layar dengan menggunakan sebuah komponen. 4. RelativeLayout Sebuah layout dimana posisi komponen di dalamnya terkait satu sama lain. 5. TextView Menampilkan teks yang ditujukan untuk pengguna dan dapat di ubah oleh user apabila dibutuhkan. 6. WebView Sebuah view yang dapat menampilkan sebuah halaman web. 7. SurfaceView Menyediakan sebuah drawing surface didalam sebuah view. SurfaceView bertugas untuk memasang setiap surface di lokasi yang tepat pada layar. 8. ListView Sebuah view yang menampilkan komponen di dalamnya dengan bentuk seperti list yang dapat di scroll secara vertical. 9. VideoView Digunakan untuk menampilkan sebuah file video. 10. ImageView Digunakan untuk menampilkan sebuah gambar. 11. ScrollView Sebuah penampung untuk sebuah view dimana view tersebut dapat di scroll oleh user dan memperbolehkan view itu memiliki besar melibihi ukuran layar device. 12. ImageButton
48 Menampilkan sebuah tombol yang terbuat dari sebuah gambar dan dapat ditekan atau klik oleh pengguna. 13. AlertDialog Digunakan untuk menampilkan sebuah dialogi dengan satu, dua, atau tiga tombol. 14. ProgressBar Sebuah indikator yang menunjukkan progress dari sebuah operasi. 2.2.5
Optical Character Recognition Optical Character Recognition disingkat OCR adalah sebuah sistem
komputer yang dapat membaca huruf, baik yang berasal dari sebuah pencetak (printer atau mesin ketik) maupun yang berasal dari tulisan tangan. Dengan adanya OCR, gambar yang berisi tulisan, tulisan mesin ketik atau computer text, dapat dimanipulasi. OCR dipatenkan pada tahun 1929 di Jerman oleh Gustav Tauschek. Pada saat itu, diterapkan pada mesin yang menggunakan alat optik (sekarang ini umumnya berupa scanner). Saat ini konsep dasar dari OCR banyak digunakan di beberapa aplikasi pengenalan teks (Pallavi & Saxena, 2012). Menurut Pallavi dan Saxena (2012), dua metode dasar yang digunakan pada teknologi OCR adalah matrix matching dan feature extraction. Matrix matching lebih sederhana dibanding feature extraction. Namun, keakuratan matrix matching kerap lebih rendah dibandingkan feature extraction. Metode matrix matching atau pattern matching akan mendeteksi karakter yang dipindai lalu menyamakan dengan database berdasarkan pola dari setiap karakter huruf yang disimpannya dalam bentuk bitmap image. Ketika scanner memindai sebuah huruf maka aplikasi akan mendeteksi bentuk huruf tersebut dan
49 menyamakan bentuk, sudut, dan pola karakter dari gambar bitmap yang ada di database. Jika ada yang cocok, maka huruf yang dipindai tersebut akan diidentifikasi sebagai huruf yang sama dalam database. Teknik ini memiliki kekurangan, karena database memiliki keterbatasan akan jumlah variasi bentuk karakter. Kesulitan penggunaan teknik ini disebabkan oleh font yang beraneka ragam, dan bentuk karakter yang semakin kompleks dan beraneka pola. Metode feature extraction dikenal juga sebagai ICR atau intelligent character recognition atau topological feature analysis. Metode ini adalah metode pengenalan karakter yang tidak tergantung dari template karakter pada aplikasi. Aplikasi dengan metode ini akan mendeteksi identitas sebuah karakter dari ruang kosong, bentuk yang berdekatan, garis diagonal, perpotongan dan sebagainya. Feature Extraction biasanya digunakan untuk mendeteksi karakter yang bentuknya tidak standar, seperti tulisan tangan atau huruf-huruf berornamen. Matrix Matching umumnya digunakan pada document yang menggunakan jenis huruf yang umum, seperti Times New Romans, Arial, atau font yang memiliki bentuk dasar. Pada beberapa tahun terakhir, pengenalan tulisan tangan menjadi salah satu topik penelitian yang paling menarik dan menantang dalam bidang image processing dan pattern recognition. Beberapa karya penelitian telah berfokus pada teknik dan metode baru yang diharapkan dapat mengurangi waktu pemrosesan namun juga meningkatkan recognition accuracy (Pradeep, Srinivasan, & Himavathi, 2011).
Tesseract
50 Menurut Smith (2007), Tesseract adalah suatu engine Optical Character Recognition. Engine ini pertama kali dikembangkan oleh Hewlett-Packard pada tahun 1985. Pada tahun 2005, Tesseract dirilis sebagai open source oleh HewlettPackard dan UNLV. Semenjak tahun 2006, pengembangan Tesseract disponsori oleh Google dan dirilis dengan lisensi apache versi 2.0. Versi stabil Tesseract pada saat ini adalah 3.01. Berikut ini algoritma dari Tesseract engine : 1. Image input Gambar berwarna atau grayscale diberikan sebagai input. Tesseract menerima file dengan ekstensi .tiff dan .bmp secara native namun terdapat plug-in untuk memproses gambar dengan format kompresi lainnya. Input yang ideal bagi Tesseract adalah gambar yang flat. 2. Adaptive Thresholding Melakukan reduksi dari grayscale image ke binary image. Algoritma mengasumsikan gambar terdiri dari foreground pixel dan background pixel. Kemudian, menghitung threshold yang optimal untuk memisahkan kedua pixel tersebut. 3. Connected-Component labeling Tesseract menelusuri pixel dalam gambar, mengidentifikasi foreground pixel, dan ditandai sebagai blob atau potential character. 4. Line Finding Algorithm Garis dari teks ditemukan dari hasil analisa space gambar yang berdekatan dengan potential character. Algoritma ini mencari lokasi yang memiliki
51 pixel kurang dari threshold tertentu. Hasilnya berupa area yang ditandai sebagai potential line. 5. Baseline fitting algorithm Setelah setiap garis dari teks ditemukan, Tesseract memeriksa garis teks untuk memperkirakan tinggi teks. Proses ini merupakan langkah awal dalam mengenali karakter. 6. Fixed Pitch Detention Tesseract memperkirakan lebar karakter. Nilai ini merupakan nilai incremental yang akan digunakan oleh Tesseract dalam mengekstrak karakter demi karakter. 7. Non-fixed pitch spacing delimiting Karakter yang tidak seragam dengan lingkungan disekitar karakter tersebut akan diklasifikasi ulang untuk diproses secara terpisah dari keseluruhan gambar. 8. Word Recognition Setelah menemukan seluruh possible character dan possible line dalam gambar, Tesseract melakukan word recognition dengan menelusuri garis. Kata kemudian dikirim kepada contextual dan syntactical analyzer untuk meningkatkan tingkat akurasi. 2.2.6
Bahasa Jepang Penulisan di Jepang terbukti sudah ada sejak abad ke lima, tetapi hingga
pertengahan abad ke tujuh penulisan di Jepang baru mulai menyebar luas. Selama masa itu penulisan di Jepang ditulis dengan menggunakan kanji sepenuhnya (Frellesvig, 2010, p. 12).
52 Mulai dari akhir zaman Nara (710-794), penulisan di Jepang melalui proses penyederhanaan dan penyingkatan. Pada awalnya proses tersebut berjalan lambat namun selama tahun-tahun awal zaman Heian (794-1185) proses tersebut mengalami percepatan, dan akhirnya menghasilkan penulisan hiragana dan katakana sepenuhnya (Frellesvig, 2010, p. 157). 1. Hiragana Hiragana dipakai untuk menuliskan kata-kata yang berasal dari bahasa Jepang asli, dan dipakai untuk menggantikan kata-kata dari tulisan kanji. Hiragana juga digunakan untuk menulis partikel, bagian dalam kata kerja dan kata sifat yang dapat berubah pada bahasa Jepang. Sebelum perang dunia kedua Hiragana hanya dipakai oleh golongan wanita. Huruf Hiragana menunjukkan bunyinya dan pada umumnya satu kana (huruf Jepang) mewakili satu mora (satuan bunyi bahasa Jepang) (Semita, 2009, p. 24). 2. Katakana Digunakan untuk kata-kata penyerapan dari bahasa asing, nama orang asing, media elektronik, nama negara, dan lain-lainnya. Sering pula dipakai orang untuk
menulis
nama-nama
perusahaan
dan
kata-kata
yang
perlu
diperlihatkan dalam sebuah kalimat. Huruf Katakana menunjukkan bunyinya dan pada umumnya satu kana (huruf Jepang) mewakili satu mora (satuan bunyi bahasa Jepang) (Semita, 2009, p. 25). 3. Kanji Kanji adalah tulisan bahasa Jepang yang berasal dari tulisan bahasa Cina. Sebuah aksara kanji melambangkan suatu arti tertentu. Setiap kanji bisa memiliki minimal dua macam pengucapan yaitu sebagai kata adaptasi dari
53 bahasa kata Cina dan sebagai kata asli dari bahasa Jepang (Semita, 2009, p. 25). Okita menyatakan bahwa cara mempelajari kanji berbeda-beda sesuai dengan tingkatan dari pembelajar bahasa. Pembelajar tingkat lanjut lebih menyukai cara belajar kanji dengan menggunakan kamus atau memahami kanji tersebut tanpa menerjemahkannya ke dalam bahasa asal pembelajar (Gamage, 2003, p. 5). 2.2.7
Sistem Penulisan Bahasa Jepang Menurut Unger (2006, p. 95), elemen utama dari penulisan bahasa Jepang
modern adalah kanji ‘Chinese characters’ dan dua kumpulan suku kata yang disebut hiragana dan katakana (biasa juga disebut kana). Pencampuran dari karakterkarakter ini sering menyebabkan orang berkata bahwa bahasa Jepang memiliki tiga penulisan yang berbeda, tetapi itu merupakan hal yang keliru. Semua pengucapan pada bahasa Jepang dapat ditulis seutuhnya dalam hiragana atau katakana tetapi tidak semua pengucapan pada bahasa Jepang dapat ditulis dengan hanya menggunakan kanji. Dulu ada penulisan yang hanya menggunakan kanji saja, namun sekarang cara penulisan tersebut sudah jarang ditemui. Dua set dari kana terdiri dari 48 bentuk dasar, dimana 47 diantaranya tersusun secara tradisional, seperti yang dapat dilihat pada gambar 2.20. Penyusunan ini dikenal dengan sebutan gojuon-zu atau ’50 sound chart’, yang mulai digunakan sejak sekitar tahun 901. ’50 sound chart’ tersebut dapat dibaca dari ujung kanan atas seperti gaya bahasa Cina sehingga urutan dari mora adalah a i u e o, ka ki ku ke ko, sa si su se so, dan seterusnya. (Unger, 2006, p. 95).
54
Gambar 2.29 Kana Modern Beserta Sumber Kanji (Unger, 2006, p. 95) Dalam membaca tabel pada gambar 2.29, perlu diperhatikan bahwa katakana ditunjukkan pada sebelah kanan dari hiragana bersangkutan dalam sel yang tidak gelap. Kanji yang diyakini merupakan asal dari kana bersangkutan ditunjukkan dibawah pada sel yang gelap. Kepala kolom memberikan inisial konsonan dari mora yang diwakili oleh kana dibawahnya, kepala baris menunjukkan huruf vokal akhir (Unger, 2006, p. 96).