BAB 2 LANDASAN TEORI 2.1
Teori Umum
2.1.1
Perangkat Lunak (Software)
2.1.1.1 Definisi Perangkat Lunak Komputer merupakan mesin yang memproses fakta atau data menjadi informasi. Komputer di gunakan orang untuk meningkatkan hasil kerja dan memecahkan berbagai masalah. Yang menjadi pemroses data atau pemecah masalah itu adalah perangkat lunak. Menurut Pressman (2010, p4), umumnya buku teks menjelaskan definisi perangkat lunak sebagai berikut: (1) Perintah (program computer) yang jika dijalankan akan menampilkan hasil sesuai dengan yang diinginkan. (2) Struktur data yang memungkinkan sebuah program untuk mengubah suatu informasi. (3) Informasi deskriptif dalam bentuk hardcopy atau softcopy yang menjelaskan cara kerja dan manfaat sebuah program. 2.1.1.2 Karakteristik Perangkat Lunak Secara garis besar, karakteristik perangkat lunak berbeda dengan perangkat keras. Menurut Pressman (2010, p4) karakteristik dari perangkat lunak adalah: 1. Perangkat lunak direkayasa, bukan dibuat dalam bentuk fisik. 2. Perangkat lunak tidak usang, namun memburuk. 3. Meski industri telah menuju perakitan berbasis komponen, tetapi sebagian besar perangkat lunak masih direkayasa secara unik.
7
8
2.1.1.3 Rekayasa Perangkat Lunak Dalam buku yang ditulis Pressman (2010, p13), Fritz Bauer menjelaskan bahwa definisi dari rekayasa perangkat lunak adalah pembuatan perangkat lunak dengan menggunakan prinsip rekayasa yang kuat untuk menghasilkan perangkat lunak yang ekonomis, handal, dan bekerja secara efisien. Pressman (2010, p13), mendefinisikan rekayasa perangkat lunak merupakan teknologi yang bertingkat atau berlapis, lapisanlapisan teknologi tersebut adalah sebagai berikut:
Gambar 2.1 Lapisan Teknologi Rekayasa Perangkat Lunak (Sumber: Pressman, 2010, p14) 1. Berpusat pada kualitas (a quality focus) Semua proses perancangan (termasuk rekayasa perangkat lunak) sangat dipengaruhi oleh komitmen organisasi terhadap kualitas. Filosofi – filosofi tentang kualitas akan terus memperbaiki proses perancangan dan akhirnya akan berpengaruh terhadap pendekatan rekayasa perangkat lunak yang lebih efektif. 2. Proses (process) Lapisan ini merupakan lapisan yang menghubungkan teknologi – teknologi yang digunakan dalam perancangan program dan memungkinkan pembuatan program
9
diselesaikan dengan tepat waktu. Proses ini mendefinisikan framework yang harus dibuat agar teknologi yang digunakan dalam pembuatan program dapat dimanfaatkan dengan efektif. 3. Metode (Methods) Lapisan metode dari rekayasa perangkat lunak menjelaskan secara teknis bagaimana cara membangun perangkat lunak. Lapisan ini terdiri dari tugas-tugas yang mencakup tentang: analisis kebutuhan (requirement analysis), model desain (design modelling), pembuatan program (program construction), pengujian (testing) dan pendukung (support). 4. Alat (Tools) Lapisan ini menyediakan bantuan secara otomatis dan semi-otomatis untuk Lapisan proses dan metode. Ketika alat sudah terintegrasi sehingga informasi yang dihasilkan oleh suatu alat dapat digunakan oleh yang lain, maka terbentuklah sebuah sistem untuk membantu proses perekayasaan perangkat lunak yang disebut Computer Aided Software Engineering. 2.1.1.4 Paradigma Rekayasa Perancangan Perangkat Lunak Dalam rekayasa perangkat lunak aplikasi ini, paradigma yang digunakan adalah Software Development Life Cycle atau yang biasa disebut dengan Waterfall Model. Paradigma ini berguna untuk mengidentifikasi aktivitas-aktivitas yang terjadi dalam proses pengembangan perangkat lunak. Tahapan-tahapan model Software Life Cycle digambarkan sebagai berikut:
10
Gambar 2.2 Waterfall model (Sumber: Sommerville, 2011, p30) Tahapan
utama
dari
waterfall
model
mencakup
serangkaian
kegiatan
pengembangan mendasar, yaitu: 1. Analisis dan definisi kebutuhan Fitur, pembatas, dan tujuan dari sistem dibuat berdasarkan konsultasi dengan user. Hal – hal itu kemudian menjadi spesifikasi dari sistem tersebut. 2. Perancangan sistem dan piranti lunak Proses ini mengalokasi kebutuhan – kebutuhan yang ada ke perangkat keras atau sistem perangkat lunak dengan membuat arsitektur sistem secara keseluruhan. Desain perangkat lunak melibatkan identifikasi dan penjelasan fundamental dari abstrak sistem dan hubungannya. 3. Implementasi dan unit testing
11
Pada tahap ini, desain perangkat lunak diwujudkan dalam bentuk unit – unit program. Unit testing bertujuan untuk memastikan bahwa setiap unit program dibuat sesuai dengan spesifikasinya. 4. Penggabungan dan pengujian sistem Unit – unit program di uji sebagai satu sistem yang utuh untuk memastikan bahwa semua spesifikasi telah dipenuhi. Setelah diuji, sistem dikirimkan ke user. 5. Pengoperasian dan pemeliharaan Walau tidak harus dilakukan, ini merupakan tahap yang membutuhkan waktu paling lama. Sistem telah terpasang dan dijalankan sebagaimana mestinya. Pemeliharaan meliputi perbaikan kesalah yang tidak ditemukan pada tahap – tahap sebelumnya, memperbaiki sistem dan menjadikan sistem lebih baik untuk memenuhi spesifikasi yang baru. 2.1.2
Interaksi Manusia dan Komputer
2.1.2.1 Pengertian Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer adalah suatu disiplin ilmu yang melibatkan disiplin – disiplin ilmu lainnya, namun dalam hal ini lebih berfokus pada computer science (Dix, 2004, p3). Dalam sudut pandang computer science, IMK melibatkan perancangan, implementasi dan evaluasi sistem dalam kaitannya dengan manusia (pengguna) dan kegiatan yang dilakukannya. 2.1.2.2 Delapan Aturan Emas Untuk membuat suatu interface yang user friendly, umumnya menggunakan “Delapan Aturan Emas” (Shneiderman & Plaisant, 2010, p88-89) sebagai acuan, yaitu: 1. Berusaha untuk selalu konsisten.
12
Menggunakan font, warna, symbol, bentuk tombol, tata letak yang konsisten bila masih dalam konteks yang sama diseluruh bagian aplikasi. 2. Memungkinkan frequent users untuk menggunakan shortcut. Supaya pengguna lebih mudah memasuki bagian yang diinginkan secara langsung tanpa harus melewati bagian-bagian lainnya terlebih dahulu. 3. Memberikan umpan balik yang informatif. Bertujuan agar tidak membingungkan pengguna. 4. Merancang dialog yang memberikan penutupan (keadaan akhir) sehingga pengguna tahu kapan awal dan akhir dari suatu aksi. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. Sistem harus dapat mendeteksi kesalahan dan dapat memberikan solusi untuk mengatasi kesalahan tersebut. 6. Memungkinkan pembalikan aksi yang mudah. Kesalahan yang terjadi dapat dikembalikan pada aksi sebelumnya. Dengan begitu, user tidak merasa takut akan melakukan suatu kesalahan.. 7. Mendukung pusat kendali internal (internal locus of control). Memberikan kesan bahwa pengguna mempunyai kuasa penuh atas sistem tersebut. Pengguna yang berpengalaman menginginkan kuasa penuh terhadap sistem yang mereka pakai dan mengharapkan sistem memberikan tanggapan atas aksi yang dilakukannya. 8. Mengurangi beban ingatan jangka pendek (short-term memory). Dengan terbatasnya kemampuan manusia untuk mengingat, tampilan pada sistem hendaklah mudah diingat dan sederhana.
13
2.1.2.3 Faktor Manusia Terukur Menurut Dastbaz (2003, p108), beberapa peneliti mengkritik penggunaan istilah User Friendliness karena dapat menyesatkan pendefinisian proses yang rumit seperti cara kerja sistem dan perilaku manusia. Beberapa diantaranya telah mengusulkan untuk menggunakan istilah yang lebih umum seperti “kegunaan” dalam mengevaluasi dan mengukur proses-proses ini. Shackel dalam Dastbaz (2003) mendefinisikan “kegunaan” sebagai efektivitas, learnability, fleksibilitas dan sikap. Nielsen dalam Dastbaz (2003) memperluas definisi “kegunaan” dengan mengusulkan lima atribut berikut: 1. Waktu belajar. Sistem harus mudah digunakan sehingga pengguna tidak membutuhkan waktu yang lama untuk belajar. 2. Kecepatan kinerja (efisiensi). Dengan tingginya tingkat efisiensi suatu sistem, maka produktivitas dari pengguna juga akan meningkat. 3. Tingkat kesalahan. Sistem harus memiliki tingkat kesalahan yang kecil. 4. Daya ingat. Sistem harus dapat dengan mudah diingat, sehingga jika pengguna tidak menggunakan sistem dalam jangka waktu yang cukup lama, mereka tidak perlu mempelajari sistem dari awal. 5. Kepuasan subjektif. Sistem harus dapat digunakan dengan nyaman, sehingga pengguna merasa puas secara subjektif.
14
2.1.3
Multimedia Menurut Vaughan (2011, p1), multimedia adalah gabungan dari teks, gambar,
suara, animasi, dan video yang disampaikan kepada kita melalui komputer, media elektronik, atau dimanipulasi secara digital. Menurut Vaughan (2011, p20-164) multimedia memiliki 5 unsur, yaitu: 1. Teks Teks adalah suatu alat komunikasi yang telah digunakan oleh manusia sejak ribuan tahun yang lalu. Sebuah kata dapat memliki arti yang beragam, sehingga kata-kata yang digunakan haruslah singkat, padat, dan jelas sehingga pesan pengirim dapat tersampaikan dengan baik kepada penerima. 2. Suara Suara merupakan salah satu unsur terpenting dalam multimedia. Cara penggunaan suara dapat membedakan antara presentasi yang biasa dengan yang professional. Walaupun begitu, penggunaan suara pada waktu dan tempat yang tidak tepat justru dapat memperburuk presentasi. (Vaughan, 2011, p104). Ada dua macam suara yang biasa digunakan didalam multimedia, yaitu: -
Digital Audio Digital Audio adalah hasil konversi dari gelombang suara yang disimpan ke dalam informasi berbentuk bits atau bytes. Proses konversi ini disebut digitizing. Kualitas dari hasil digitizing ini bergantung pada jumlah sampel yang diambil yang biasa disebut sampling rate dan berapa banyak angka yang digunakan untuk mempresentasikan tiap-tiap sampel atau disebut juga bitdepth (Vaughan, 2011, p106).
15
-
MIDI MIDI (Musical Instrument Digital Interface) adalah jenis suara yang paling mudah digunakan didalam sebuah multimedia. MIDI adalah bentuk konversi dari suara yang disimpan dalam bentuk numerik (Vaughan, 2011, p134).
3. Gambar Menurut Vaughan (2011, p70), gambar dapat menjadi unsur terpenting dari proyek multimedia anda. Ada dua jenis gambar yang dapat dihasilkan oleh komputer menurut Vaughan (2011, p70) yaitu: -
Bitmap adalah sebuah matriks yang terdiri dari titik-titik warna dan membentuk sebuah gambar. Variasi warna pada bitmap ditentukan oleh jumlah bit, dimana nbit gambar bitmap memiliki 2n macam warna. (Vaughan, 2011, p71-72).
-
Vector Drawing adalah gambar yang dihasilkan dari perhitungan angka – angka koordinat Cartesian oleh computer. Jenis gambar ini sering digunakan untuk website karena ukuran size gambarnya yang kecil (Vaughan, 2011, p80-82).
4. Video Penggunaan video didalam sebuah presentasi multimedia dapat menjadi sebuah media penyampaian pesan maupun informasi yang sangat efektif. Tetapi penggunaan video yang tidak dipikirkan dengan baik dapat menurunkan kualitas dari pesan yang ingin disampaikan. (Vaughan, 2011, p164). 5. Animasi Menurut Vaughan (2011, p104) Animasi digunakan untuk membuat sesuatu yang statis terlihat hidup. Animasi sering digunakan untuk mempresentasikan sesuatu yang tidak terlalu banyak memerlukan interaksi penggunanya sehingga presentasi
16
tersebut akan mengalir berjalan seperti sebuah film. Animasi juga digunakan dalam membantu sebuah presentasi, seperti efek transisi slide dan lainnya. 2.1.4
Storyboard Menurut Rahman (2008, xxxviii), sebuah storyboard yang sederhana haruslah
mencakup materi-materi seperti video, wawancara, dokumenter, potongan narasi dan sebagainya. Selain itu pada sebuah storyboard harus terdapat komponen-komponen seperti dialog, teks, suara, video, animasi dan sebagainya. Hal tersebut bertujuan agar sebuah storyboard dapat menghubungkan sebuah tim antara desainer dan developer.
Gambar 2.3 Contoh Storyboard (Sumber: Vaughan, 2011, p301) 2.1.5
Object Oriented Programming (OOP)
17
Menurut Clark (2011, p1-3), OOP adalah sebuah pendekatan dalam pengembangan perangkat lunak dimana struktur perangkat lunak ini berdasarkan pada interaksi dari suatu objek dengan objek yang lain untuk menyelesaikan tugas. Interaksi ini membutuhkan bentuk pesan bolak-balik antara objek, yang kemudian diproses oleh objek dalam bentuk suatu tindakan atau metode. Contohnya seperti ketika seseorang ingin pergi ke toko menggunakan sebuah mobil. Objek mobil terdiri dari objek – objek lain yang berinteraksi satu sama lain seperti: ban, mesin, bensin, dan sebagainya, untuk menyelesaikan tugasnya mengantar orang tersebut ke toko. Orang tersebut memasukkan kunci dan menyalakannya. Tindakan tersebut mengirimkan pesan (melalui sinyal listrik) ke objek starter mobil, yang berinteraksi dengan objek mesin untuk menyalakan mobil. Sebagai pengendara, dia tidak perlu tahu tentang logika bagaimana objek - objek pada mobil itu bekerja sama untuk menyalakan mobil. Orang tersebut hanya menjalankan metode mulai dari objek starter mobil dengan kunci, dan kemudian menunggu apakah mobil menyala atau tidak. Banyak pengembang software yang beralih ke metode object oriented untuk menyelesaikan berbagai masalah yang ada. Kelebihan dari object oriented adalah sebagai berikut: a. Transisi yang lebih intuitif dari model analisis bisnis ke model implementasi perangkat lunak. b. Pemeliharaan dan modifikasi program yang lebih efisien dan cepat. c. Memungkinkan pembuatan sistem perangkat lunak dengan tim, dengan itu para ahli (specialists) dapat mengerjakan bagian tertentu yang dikuasai pada sistem.
18
d. Kemampuan untuk menggunakan kembali potongan kode dalam program lain atau membeli kode yang ditulis oleh pengembang lain untuk meningkatkan fungsi dari program mereka dengan mudah. e. Integrasi yang lebih baik dengan sistem komputasi lain walaupun hanya menggunakan sedikit informasi dari sistem lain.. f. Integrasi yang lebih baik dengan sistem operasi modern. g. Dapat membuat tampilan antarmuka yang lebih intuitif untuk pengguna. 2.1.6
Karakteristik OOP Menurut Clark (2011, p3-5), beberapa karakteristik yang terdapat dalam OOP
adalah: a. Object Dalam OOP, objek adalah sebuah struktur untuk menggabungkan data dan prosedur untuk memproses data tersebut b. Abstraction Suatu konsep dalam OOP yang melibatkan berbagai cara penggunaan sebuah objek berdasarkan objek lain yang menggunakannya. c. Encapsulation Enkapsulasi adalah proses dimana tidak ada akses langsung yang diberikan untuk mengakses suatu data. Untuk mendapatkan akses ke data tersebut, diperlukan interaksi objek yang mempunyai akses terhadap data tersebut. d. Polymorphism Polimorfisme adalah kemampuan dari dua objek yang berbeda untuk merespon perintah yang sama dengan cara yang berbeda.
19
e. Inheritance Dalam OOP, inheritance digunakan untuk mengklasifikasikan objek dalam program sesuai dengan karakteristik dan fungsi yang umum. Ini membuat pengerjaan objek – objek yang ada lebih mudah dan intuitif. Ini juga membuat pemrograman lebih mudah karena karakteristik umum yang ada di parent dapat diwariskan ke child. f. Aggregation Agregasi adalah suatu konsep dimana sebuah objek dibangun dari objek – objek lain yang bekerja sama untuk melakukan suatu tugas tertentu. 2.1.7
Object Oriented Analysis and Design (OOAD) Menurut Allen dan Terry (2005), Object Oriented Design merupakan metodologi
campuran yang menggambarkan sistem dalam bentuk objek, karakteristik data dalam bentuk atribut dan karakteristik proses dalam bentuk metode. Object Oriented Analysis and Design menggabungkan elemen-elemen teknik perancangan berorientasi data dan fungsi dengan sistem model sebagai kumpulan objek-objek yang bekerja bersama-sama. Kelebihan dari Object Oriented Analysis and Design antara lain, membangun model objek dengan tepat, penggunaan objek kembali dan pertukaran objek menjadi lebih mudah. 2.2
Teori Khusus
2.2.1
Database
2.2.1.1 Pengertian Database Menurut Connoly dan Begg (2010, p65), database adalah sekumpulan data beserta definisinya yang saling berhubungan dan dapat digunakan secara keseluruhan untuk memenuhi kebutuhan informasi dari suatu organisasi.
20
Record pada setiap file harus memungkinkan adanya hubungan ke record pada file lain. Contohnya, database sales harus memiliki record yang berhubungan dengan record lain pada database customer dan product. File adalah kumpulan dari record yang sama. Record adalah kumpulan dari field yang disusun dalam format yang telah ditetapkan. Field adalah satuan terkecil dari data yang mempunyai arti tertentu untuk disimpan dalam file atau database. 2.2.1.2 Database Management System (DBMS) Database management system adalah suatu sistem perangkat lunak yang berfungsi untuk mendefinisikan, mengelola dan mengontrol akses ke database (Connolly & Begg, 2010, p66). 2.2.2
Unified Modelling Language (UML) Menurut Whitten dan Bentley (2007, p371), UML adalah sekumpulan konvensi
pemodelan yang digunakan untuik menspesifikasi atau mendeskripsikan sebuah sistem perangkat lunak dalam bentuk objek. UML terdiri dari beberapa tipe diagram, yaitu: a.
Use-Case Diagram Menurut Whitten dan Bentley (2007, p246-250), use-case diagram adalah
diagram yang menggambarkan interaksi antara sistem dan pengguna dari sudut pandang pihak ketiga dalam bentuk yang dapat mereka mengerti. 1. Use case adalah urutan tindakan – tindakan yang saling berhubungan, baik terotomatisasi maupun secara manual, untuk menyelesaikan suatu tugas.
21
Gambar 2.4 Contoh Diagram Model Use-Case (Sumber: Whitten & Bentley, 2007, p246) 2. Pelaku (Actor) adalah segala sesuatu yang harus berinteraksi dengan sistem untuk mendapatkan atau memberikan informasi.
Gambar 2.5 Simbol Aktor (Sumber: Whitten & Bentley, 2007, p247) 3. Hubungan (Relationship) pada diagram use case adalah sebuah garis antara dua symbol pada use-case diagram. Jenis – jenis hubungan bergantung dari bagaimana garis tersebut digambar dan simbol apa yang dihubungkan oleh garis tersebut. Beberapa jenis hubungan yang ada pada diagram use case, yaitu sebagai berikut:
22
1) Gabungan (Association): hubungan antara actor dengan use-case dimana terdapat suatu interaksi antara mereka.
Gambar 2.6 Contoh Hubungan Asosiasi (Sumber: Whitten & Bentley, 2007, p248) 2) Extend: use case yang terdiri dari hasil ekstraksi use case yang lebih kompleks
untuk
menyederhanakan
masalah
asal
sehingga
memperjelas fungsinya.
Gambar 2.7 Contoh Hubungan Extension (Sumber: Whitten & Bentley, 2007, p249) 3) Uses: satu atau lebih use case yang melakukan suatu fungsi yang identik sehingga dibuat satu abstract use-case untuk fungsi tersebut.
23
Gambar 2.8 Contoh Hubungan Uses (Sumber: Whitten & Bentley, 2007, p249) 4) Depends On: hubungan antara use-case yang mengindikasikan bahwa satu use-case tidak dapat dilakukan jika use-case yang lain belum dilakukan.
Gambar 2.9 Contoh Hubungan Depends On (Sumber: Whitten & Bentley, 2007, p250) 5) Inheritance: suatu keadaan dimana dua atau lebih actor melakukan tindakan yang sama, sehingga dibuat abstract actor untuk menghilangkan redundansi dalam sistem..
24
Gambar 2.10 Contoh Hubungan Inheritance (Sumber: Whitten & Bentley, 2007, p250) b.
Class Diagram Menurut Whitten dan Bentley (2007, p400), class diagram menggambarkan
struktur objek dari suatu sistem. Diagram ini menggambarkan objek class yang membentuk sistem beserta hubungan antara objek – objek tersebut.
25
Gambar 2.11 Contoh Class Diagram (Sumber: Whitten & Bentley, 2007, 406) Beberapa elemen yang terdapat dalam class diagram, yaitu: 1) Class: digambarkan sebagai kotak yang terbagi menjadi tiga bagian. Bagian atas berisi nama dari class. Bagian tengah berisi atribut class. Bagian akhir berisi method – method dari sebuah class.
26
Gambar 2.12 Class 2) Association: merupakan sebuah hubungan yang paling sering digunakan untuk menghubungkan dua class dan digambarkan dengan sebuah garis yang menghubungkan antara dua class. Garis ini dapat melambangkan berbagai jenis hubungan. Contohnya one-to-one, one-to-many, many-to-many.
Gambar 2.13 Association 3) Composition: jika keberadaan sebuah class bergantung pada keberadaan class yang lain, maka class tersebut memiliki relasi composition terhadap class tempat dia bergantung tersebut. Sebuah hubungan composition digambarkan sebagai garis dengan ujung berbentuk diamond berisi/solid.
Gambar 2.14 Composition 4) Aggregation: jika sebuah class dapat berdiri sendiri meskipun menjadi bagian dari sebuah class lain.
27
Gambar 2.15 Aggregation 5) Cara bagaimana atribut dan metode diakses oleh kelas lain didefinisikan dengan visibility. UML menyediakan tiga tingkat dari visibility, yaitu: 1. Public : dilambangkan dengan simbol “+” 2. Protected : dilambangkan dengan simbol “#” 3. Private : dilambangkan dengan simbol “-‘ c.
Activity Diagram Menurut Whitten dan Bentley (2007, p390), Activity diagram adalah sebuah
diagram yang dapat digunakan untuk menggambarkan alur dari proses bisnis, langkah – langkah pada use-case, dan juga logika dari objek – objek yang ada. Berikut notasi yang digunakan pada activity diagram: Tabel 2.1 Simbol pada Activity Diagram No 1
2
Simbol
Gambar
Keterangan
Initial
Menunjukkan awal dari suatu
node
proses.
Actions
Menunjukkan
langkah-langkah
aktivitas sistem yang terjadi. 3
Flow
Untuk menunjuk ke aksi atau proses
yang
lain.
Dilengkapi
dengan kata-kata jika berasal dari
28
decision. 4
Decision
Memiiki sebuah flow masuk dan dua
atau
lebih
flow
keluar.
Menunjukkan aktivitas yang dapat dipilih. 5
Merge
Menyatukan
flow
yang
sebelumnya
terpisah
oleh
decision. 6
Fork
Menotasikan permulaan aksi atau proses paralel yang dapat terjadi dalam suatu urutan atau terjadi secara bersamaan.
7
Join
Semua aksi yang masuk ke join harus telah diselesaikan sebelum proses berlanjut.
8
Activity Final
Menunjukkan akhir dari proses.
29
Gambar 2.16 Contoh Activity Diagram (Sumber: Whitten & Bentley, 2007, p392)
30
2.2.3
Bahasa Mandarin
2.2.3.1 Definisi Bahasa Mandarin Mandarin dikenal dengan beberapa nama. Di Taiwan, Mandarin disebut 国语
(guóyǔ), di Singapura Mandarin dikenal dengan nama华语 (huáyǔ) dan di Cina sendiri
Mandarin dikenal dengan nama 普通话 (pǔtōnghuà). (Su, 2013,) Putonghua merupakan bahasa resmi bagi masyarakat di Cina. Hal ini berdasarkan logat Beijing, yang banyak digunakan pada jaman dinasti Qing sebagai bahasa resmi. Namun Putonghua bukan hanya satu-satunya bahasa yang digunakan di Cina. Ada 250 macam bahasa daerah yang di pakai di Cina. Tata bahasa dari Putonghua dapat dikatakan lebih sederhana dibandingkan dengan kebanyakan bahasa di Eropa. Putonghua tidak mempunyai tenses. Dan struktur dasar dari kalimat Putonghua terdiri dari subjek-kata kerja-objek. 2.2.3.2 Pinyin Syllables 1. Initial Initial adalah awalan dalam suatu pinyin syllable. Dalam bahasa Mandarin terdapat 21 jenis Initial. Daftar Initial yang tersedia dalam bahasa Mandarin: Tabel 2.2 Daftar Initial (Sumber: Li & Li, 1998, p1, p11, p19, p25, p38, p46, p54, p61, p70) Initial
Pelafalan
Contoh kata dalam bahasa Inggris
b-
[p], [b]
boil, boy
31
p-
[ph]
poetry, point
m-
[m]
moral, more
f-
[f]
formal, forever
d-
[t], [d]
Derek, ad
t-
[th]
telephone
n-
[n]
necessary
l-
[l]
Lend, lamp
g-
[k]. [g]
Girl, glance
k-
[kh]
Curb, kerchief
h-
[h]
Herb, hemp
j-
Ji
Jimmy, jeep
q-
chee
Cheese, chip
x-
Shee, shi
Ship, sheer
zh-
Mirip dengan dj pada
Fudge, fridge
bahasa inggris ch-
Mirip dengan ch pada
chat
bahasa inggris sh-
Mirip dengan sh pada
shore
bahasa inggris z-
Mirip dengan z,dz, atau
Kids, woods
ds pada bahasa inggris c-
Mirip dengan ts pada
Its, rats, cats
32
bahasa inggris r-
Mirip dengan re pada
pleasure
bahasa inggris 2. Final Final adalah akhiran dari suatu pinyin syllable. Dalam bahasa Mandarin terdapat 38 (tiga puluh delapan) jenis final. Daftar final yang tersedia pada bahasa Mandarin: Tabel 2.3 Daftar Final (Sumber: Li & Li, 1998, p2, p12, p19, p25, p39, p47, p54, p62, p70) Final
Contoh
-a
Mā (ibu)
-ai
Mài (menjual)
-ao
Chāo (menyalin)
-an
Bān (kelas)
-ang
Chāng (makmur)
-e
Hē (minum)
-ei
Shéi (siapa)
-en
Wēn (hangat)
-eng
Shēng (mentah)
-er
Ér (anak)
-i
Yī (satu)
-ia
Xiā (udang)
-ian
Xiān (pertama)
33
-iang
Jiāng (jahe)
-iao
Piāo (mengapung)
-ie
Xiē (istirahat)
-in
Xīn (baru)
-ing
Bīng (es)
-iong
Xiōng (saudara laki-laki sulung)
-iu
Liū (meluncur)
-o
Mō (memegang)
-ong
Zhōng (tengah)
-ou
Zhōu (minggu)
-u
Wū (rumah)
-ua
Hūa (bunga)
-uai
Guāi (berkelakuan baik)
-uan
Yuān (kolam yang dalam)
-uang
Zhuāng (desa)
-ueng
Wēng (dengungan)
-ui
Duì (benar)
-un
Sūn (cucu)
-uo
Duō (banyak)
-ü
Yū (bengah)
-üan
Quān (lingkaran)
-üe
Xuē (sepatu)
34
-ün 3.
Yūn (pusing)
Tones Menurut Su (2013), bahasa Mandarin menggunakan 4 macam nada untuk memperjelas arti dari suatu kata. Karena banyaknya bahasa Mandarin yang memiliki pengucapan yang sama, maka nada dipakai untuk membedakan satu kata dengan kata lainnya. Keempat nada dalam bahasa Mandarin adalah: 1. High level – nada pertama 2. Rising – nada kedua 3. Falling rising – nada ketiga 4. Falling – nada keempat Pinyin menggunakan angka maupun tanda nada untuk membedakan nada dari suatu kata. Berikut contoh kata ‘ma’ dengan tanda nada: • Nada pertama: ma1 atau mā • Nada kedua: ma2 atau má • Nada ketiga: ma3 atau mǎ • Nada keempat: ma4 atau mà
Tabel 2.4 Daftar Tones (Sumber: Li & Li, G., 1998, p5)
35
Nada
Example
Pinyin
Artinya
Pertama
玻璃
Bōli
kaca
Kedua
伯伯
Bóbo
Paman
Ketiga
喇叭
Lǎba
Terompet
Keempat
兔子
Tùzi
kelinci
2.2.3.3 Stroke Stroke adalah komponen terkecil dari suatu karakter Mandarin. Kumpulan stroke yang saling berhubungan akan membentuk suatu karakter Mandarin. Tabel 2.5 Daftar Stroke (Sumber: Li & Li, 1998, p3, p14, p22, p35) Nama
Stroke
Cara Menulis
Contoh
Stroke datar
Dari kiri ke kanan
二
Stroke tegak
Dari atas ke bawah
中
Stroke kiri bawah
Dari atas kanan ke
人
kiri bawah Stroke kanan
Dari atas kiri ke
bawah
kanan bawah
Titik
Ada titik kiri, titik kanan, dan titik bawah
八
点
36
Stroke dengan
Membentuk
kait
sebuah kait pada
长
bagian akhir stroke 水
买
力 茂 九
Turning Stroke
Garis datar yang
又
kemudian diikutin dengan garis tegak
山 女
Rising Stroke
Dari kiri bawah ke
冲
atas 2.2.4
Artificial Intelligence (AI) Artificial Inteligence atau kecerdasan buatan adalah salah satu bagian ilmu
computer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia (Kusumadewi, 2003, p1). Adapun beberapa cabang dalam pengaplikasian Artificial Intelligence, yaitu:
37
1. Sistem Pakar (Expert System). Sistem komputer digunakan untuk menyimpan pengetahuan para pakar, sehingga komputer dapat meniru cara para pakar untuk menyelesaikan suatu masalah. 2. Pengolahan Bahasa Alami (Natural Language Processing). Disiplin ilmu yang mempelajari bagaimana cara agar komputer dapat mengerti kata – kata yang sehari – hari digunakan oleh manusia. 3. Pengenalan Ucapan (Speech Recognition), teknologi yang membuat komputer dapat memproses ucapan manusia dan memberikan respon yang sesuai terhadap ucapan tersebut. 4. Robotika dan Sistem Sensor (Rotics and Sensory System). Seperti sistem visi dan pencitraan, serta sistem pengolahan sinyal pada robotika, untuk mengumpulkan informasi, menerjemahkan informasi, dan merespon serta beradaptasi jika terjadi perubahan lingkungan. 5. Computer Vision untuk menginterpretasikan gambar-gambar atau obyek yang sebagai input untuk computer dan kemudian memprosesnya. 6. Intelligence Computer-aided Instruction. Digunakan sebagai alat yang dapat melatih dan mengajar. 2.2.4.1 Pengolahan Citra Citra merupakan gambar pada bidang dua dimensi yang berisi suatu informasi. Citra digital (digital image) merupakan array dari bilangan real yang diwakili oleh sejumlah bit tertentu (Jain, 1989, p1). Sementara, pengolahan citra merupakan proses pengelolaan citra agar citra yang mengalami gangguan, seperti derau (noise), kurang tajam, buram (blur), dan sebagainya, dapat diubah menjadi citra yang lebih baik
38
sehingga menjadi mudah diinterpretasi. Dengan kata lain, pengolahan citra menerima suatu citra sebagai input dan meciptakan citra lain sebagai hasil output. 2.2.4.2 Threshold Menurut Jain (1989, p49) Threshold adalah suatu proses untuk mengubah gambar greyscale atau gambar bewarna menjadi gambar biner dengan suatu nilai threshold tertentu. Gambar biner merupakan gambar yang hanya memiliki dua nilai untuk setiap pikselnya, yaitu 255 (putih) dan 0 (hitam). Dalam proses thresholding, nilai suatu piksel diubah berdasarkan besar kecilnya nilai piksel tersebut terhadap nilai threshold. Jika nilai piksel lebih besar atau sama dengan nilai threshold, maka nilai piksel tersebut berubah menjadi nilai maksimum yaitu 255 (putih). Sedangkan nilai suatu piksel kurang dari nilai threshold, maka nilai piksel tersebut akan berubah menjadi nilai minimum yaitu 0 (warna hitam). Untuk menentukan nilai threshold, dapat menggunakan metode Adaptive Threshold. 2.2.4.3 Cropping dan Thinning Menurut Jain (1989, p79) Cropping (pemotongan) merupakan suatu proses untuk menghilangkan space kosong (warna putih) pada citra. Sedangkan thinning adalah suatu proses untuk menghapus piksel yang tidak diinginkan dan mengubah garis-garus pada gambar menjadi lebih sederhana dengan tetap mempertahankan bentuk objeknya. Tujuan digunakannya thinning yaitu untuk menghilangkan piksel tertentu pada objek sehingga objek tersebut mempunyai ketebalan sebesar satu piksel. Thinning tidak boleh : 1. Menghilangkan end-point 2. Memutuskan hubungan yang ada
39
3. Mengakibatkan excessive erosion Salah satu contoh penggunaan cropping dan thinning adalah pada pengenalan karakter/huruf. Citra yang berisi karakter akan di-crop terlebih dahulu, sehingga space kosong pada citra akan hilang dan citra hanya berisi karakter tersebut. Hasil dari proses cropping akan melalui proses thinning sehingga ketebalan garis pada karakter tersebut hanya sebesar 1 piksel. 2.2.4.4 Edge Detection Menurut Jain (1989, p83) Edge adalah sekumpulan piksel – piksel terhubung yang terletak pada perbatasan antara dua daerah. Edge dapat digunakan untuk mengenali batasan-batasan objek, sehingga edge berguna untuk segmentasi dan pengenalan objek pada layar. Salah satu metode Edge Detection adalah Canny edge detector. 2.2.4.5 Canny Edge Detector Menurut Jain (1989, p85) Canny Edge Detector merupakan metode edge detection yang paling banyak digunakan. Canny edge detector menghasilkan fragmenfragmen tipis dari garis luar citra dan dikendalikan oleh parameter σ. Ada beberapa tahap dalam Canny edge detector, yaitu: 1. Citra dihaluskan (smoothing) terlebih dahulu dengan menggunakan Gaussian filter. Tujuannya untuk menghilangkan derau (noise) pada citra dengan membuat citra menjadi kabur (blurring). 2. Menghitung arah dan besarnya/magnitude (magnitude) gradient (atau dikenal juga dengan edge strength) dari setiap piksel pada citra yang sudah dihaluskan tersebut. Edges harus ditandai dimana gradient dari citra memiliki magnitude yang besar.
40
3. Non-maximum suppression. Proses ini bertujuan untuk mengubah edge yang kabur (tidak jelas) pada citra menjadi lebih jelas. Tahap ini dilakukan dengan: 1) Membulatkan hasil perhitungan nilai gradient ke nilai yang paling dekat. Ada beberapa nilai yang digunakan, yaitu 0 dan 180 derajat (arah horizontal), 45 derajat (arah positif diagonal), 90 derajat (arah vertikal), dan 135 derajat (arah negative diagonal). 2) Membandingkan magnitude gradient suatu piksel dengan magnitude gradient pada piksel yang terletak pada arah positif dan negatif dari arah gradient. 3) Jika magnitude gradient pada piksel tersebut lebih besar, maka nilai magnitude gradient tidak berubah. Jika lebih kecil, maka nilai magnitude gradient tersebut diubah hingga menjadi 0. Hanya piksel-piksel dengan nilai magnitude gradient maksimal yang akan ditandai. 4.
Melakukan proses double thresholding. Banyak edge yang didapat dari proses nonmaximum suppression berkemungkinan menjadi edge pada citra. Namun, ada kemungkinan beberapa diantaranya disebabkan oleh derau (noise). Cara yang paling mudah untuk mengatasinya adalah dengan menerapkan proses thresholding. Sehingga hanya edge dengan nilai yang lebih tinggi daripada nilai yang ditentukan yang akan dipertahankan. Algoritma Canny edge detection menggunakan operasi double thresholding. Edge dengan nilai yang lebih tinggi daripada nilai threshold dikatakan kuat. Edge dengan nilai yang lebih rendah daripada nilai threshold yang rendah diturunkan dan edge dengan nilai diantara dua threshold tersebut dikatakan lemah.
41
5.
Penelusuran edge dengan hysteresis. Hysteresis digunakan untuk menghilangkan goresan. Dari tahap double thresholding, dihasilkan edge dengan kategori kuat dan lemah. Edge dengan kategori kuat dimasukkan sebagai edge pada citra. Sementara, edges dengan kategori lemah hanya dimasukkan sebagai edge pada citra jika edge tersebut berhubungan dengan edges dengan kategori kuat.
2.2.5
Tesseract OCR
2.2.5.1 Definisi Tesseract Tesseract adalah engine OCR open source yang awalnya dikembangkan oleh HP (Hewlett-Packard) antara tahun 1984 dan 1994. Tesseract berawal sebuah proyek penelitian PhD di HP Labs, Bristol oleh Ray Smith. Setelah penelitian bersama antara HP Labs di Bristol dan divisi Scanner HP di Colorado, Tesseract secara signifikan memimpin dalam hal akurasi atas mesin komersial. (Smith, 2005, p1) Tahap perkembangan berikutnya berlangsung di HP Labs Bristol sebagai investigasi OCR. Pada tahun 1994, pengembangan berhenti sepenuhnya. Mesin ini dikirim ke UNLV (University Nevada Las Vegas) pada tahun 1995 untuk menjalani tes akurasi tahunan OCR (Smith, 2005) 2.2.5.2 Arsitektur Tesseract Tesseract OCR mengasumsikan input yang sebagai sebuah binary image. Pertama, analisis dilakukan pada komponen terhubung/Connected Component (CC) untuk menemukan di mana outline komponen disimpan. Pada tahap ini outlines dikumpulkan menjadi blob. Blob disusun menjadi baris teks, sedangkan garis dan region dianalisis agar pitch tetap dan teks tetap proporsional. Baris teks dipecah menjadi katakata berbeda berdasarkan jenis spasi karakter. Teks dengan pitch tetap dibagi menjadi
42
kotak – kotak karakter. Teks yang proporsional dipecah menjadi kata-kata dengan menggunakan ruang pasti dan ruang fuzzy. Pengenalan kata pada image dilakukan pada dua tahap proses yang disebut pass-two (Smith, 2009) Pass pertama bertujuan untuk mengenali masing-masing kata. Kata-kata yang terdapat di kamus dan tidak ambigu, diteruskan ke adaptive classifier sebagai data pelatihan. Setelah adaptive classifier memiliki sampel yang cukup, adaptive classifier akan dapat memberikan hasil meskipun masih pada pass yang pertama. Proses pass kedua dilakukan jika menemukan kata-kata yang kurang dikenali atau terlewat pada pass pertama. Tahap terakhir menyelesaikan ruang fuzzy dan memeriksa hipotesis alternatif pada ketinggian-x untuk mencari teks dengan smallcap. Menurut Smith (2009) ada beberapa langkah yang dilakukan oleh tesseract untuk pengenalan karakter, yaitu: 1. Pencarian Baris Teks dan Kata Algoritma line finding dirancang supaya halaman yang miring tetap dapat diproses tanpa harus di-skew (mengubah halaman yang miring menjadi tegak lurus) sehingga tidak menurunkan kualitas gambar. Bagian proses terpenting pada proses ini adalah blob filtering dan line construction (Smith, 2009, p1) Filtered blob lebih cocok dengan model non-overlapping, parallel, berupa garis-garis miring (sloping line). Pemrosesan blob oleh koordinat x memungkinkan penetapan blob ke sebuah baris teks yang unik. Setelah blob yang tersaring ditetapkan ke garis, sebuah median terkecil dari kotak-kotak yang cocok, digunakan untuk memperkirakan baseline. Dan blob yang sudah difilter dengan baik dipasang kembalki ke garis yang sesuai (Smith, 2009, p2)
43
Langkah terakhir dari proses line creation adalah menggabungkan blob yang overlapping, menempatkan diacritical marks pada dasar yang tepat, dan memperbaiki beberapa karakter yang rusak. (Smith, 2009, p2) 2. Baseline Fitting Setelah baris teks ditemukan, garis pangkal (baseline) dicocokan dengan menggunakan quadratic spline. Hal ini merupakan salah satu kelebihan dari sistem OCR tesseract yang dapat menangani halaman dengan garis pangkal (baseline) yang miring (Smith, 2009, p2) Baseline dicocokan oleh partisi blob menjadi beberapa kelompok dengan sebuah perpindahan kontinu yang hampir mirip garis pangkal lurus yang asli. Quadratic spline dicocokan ke partisi yang paling padat (diasumsikan sebagai baseline) dengan kuadrat terkecil. Keuntungan Quadratic spline yaitu perhitungannya cukup stabil namun merugikan jika terjadi diskontinuitas.. Dalam Hal ini, cubic spline bekerja lebih baik (Smith, 2009, p2) 3. Perkiraan Ketinggian X Pada Teks Setelah menemukan baris teks dan menyusun blok blob menjadi barisbaris, Tesseract mengestimasi ketinggian-x untuk setiap baris teks. Pertama, algoritma ini menentukan batas maksimum dan minimum dari ketinggian-x yang dapat diterima berdasarkan ukuran garis inisial yang telah dihitung. Kemudian, ketinggian bounding box blob pada garis dikuantisasi dan dikumpulkan menjadi sebuah histogram. Dari histogram ini, algoritma mencari ketinggian dua mode yang paling sering terjadi dan terpisah cukup jauh untuk menjadi ketinggian-x dan ketinggian-ascender. Untuk mengantisipasi noise, algoritma memastikan
44
mode ketinggian yang diambil menjadi ketinggian-x dan ketinggian-ascender memiliki jumlah yang cukup terhadap jumlah keseluruhan blob pada baris. 4. Chopping atau Pemotongan Karakter Tesseract menguji baris teks (text line) untuk menentukan apakah baris teks itu merupakan fixed pitch atau bukan. Bila ditemukan fixed pitch text, tesseract akan mengubah kata – kata tersebut menjadi sekumpulan karakter. (Smith, 2009, p2) 5. Pemisahan Karakter Terhubung Apabila hasil dari pengenalan kata tidak memuaskan, tesseract akan mencoba untuk memperbaiki hasil dengan memisahkan blob dengan hasil terburuk dari pengklasifikasian (classifier) karakter. Kandidat untuk titik-titik pemisahan didapat dari simpul cekung dari pendekatan polygonal outline dan mungkin saja terdapat titik cekung berlawanan lainnya atau segmen garis. Proses ini dapat menghabiskan 3 pasang titik pemotongan untuk memisahkan karakter dari set ASCII (Smith, 2009, p3) 6. Asosiasi Karakter Patah Ketika potongan yang potensial tidak ada lagi, dan kata tersebut masi belum cukup baik, kata tersebut diberikan kepada associator. Associator membuat pencarian A*(best first search) dari segmentasi grafik yang mungkin merupakan kombinasi dari blob yang dipotong secara maksimal ke dalam kandidat karakter. Ketika A* segmentation diimplementasikan pertama kali pada tahun 1989, akurasi tesseract terhadap karakter yang rusak meningkat yang
45
kemudian menjadikan tesseract sebagai mesin komersial saat itu. (Smith, 2009, p3) 2.2.5.3 Klasifikasi Bentuk 1. Static Classifier Versi awal Tesseract menggunakan topologi fitur yang dikembangkan dari karya Shillman. Ide selanjutnya melibatkan penggunaan segmen dari pendekatan polygonal sebagai fitur, tapi pendekatan ini tidak cukup kuat jika terdapat karakter yang rusak. Solusi yang akhirnya digunakan adalah konsep bahwa fitur yang tidak diketahui tidak perlu sama dengan fitur dalam data pelatihan. Selama pelatihan, segmen hasil pendekatan polygonal digunakan untuk feature, namun pada proses pengenalan, feature kecil yang panjangnya tetap (dalam unit ternomalisasi) diekstrasi dari outline dan dicocokan secara many-to-one terhadap prototype dari feature yang ter-cluster pada data pelatihan (Smith, 2009, p3) 2. Adaptive Classifier Tesseract tidak menggunakan template classifier, tetapi menggunakan adaptive classifier yang hampir sama seperti static classifier. Perbedaan yang signifikan antara static classifier dan adaptive classifier adalah adaptive classifier menggunakan normalisasi isotropic baseline/x-height, sedangkan static classifier menggunakan normalisasi karakter oleh centroid. Momen pertama untuk posisi dan momen kedua untuk normalisasi ukuran yang anisotropic (Smith, 2005, p4) Feature merupakan komponen pendekatan polygonal dari outline sebuah bentuk. Pada training, vector fitur 4 dimensi (x, posisi-y, arah, panjang) diturunkan dari setiap elemen pendekatan polygonal dan dikelompokkan untuk membentuk prototipikal vector.
46
Pada pengenalan, elemen-elemen polygon dipecah menjadi bagian-bagian yang lebih pendek dengan panjang yang sama, sehingga dimensi panjang dieliminasi dari vector fitur. Beberapa fitur pendek dicocokkan dengan setiap fitur prototipikal dari training. Hal ini membuat proses klasifikasi lebih kuat terhadap karakter yang terputus (Smith, 2005, p5). 2.2.6
Bahasa Pemograman Java
2.2.6.1 Pengertian Java Menurut Gosling, Joy, Steele & Bracha (2005, p1), Java adalah bahasa pemrograman yang konkuren, berbasis kelas, dan berorientasi objek, yang dirancang sederhana agar banyak programmer dapat menggunakannya dengan mudah. Sebagai sebuah bahasa pemograman, Java dapat membuat berbagai bentuk aplikasi seperti desktop, web, dan sebagainya. Aplikasi dengan teknologi Java bersifat multi-platform karena dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE). 2.2.6.2 Keuntungan Java Java memiliki karakteristik sebagai berikut (Zulfikar , 2012): 1. Sederhana Bahasa pemograman Java mempunyai sintaks yang mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama dengan menghilangkan penggunaan pointer dan mutiple inheritance. 2. Berorientasi Objek (Object Oriented) Java menggunakan pemograman berorientasi objek sehingga program dapat dibuat secara komponen per komponen dan dapat dipergunakan kembali. Dengan konsep
47
berorientasi objek maka program dapat dengan mudah dipelihara, dimodifikasi, dan komponennya dapat digunakan untuk pembentukan software lain. 3. Dapat didistribusi dengan mudah Java dibuat untuk membuat aplikasi yang dapat didistribusi secara mudah dengan menggunakan libraries networking yang terintegrasi pada Java. 4. Interpreter Program Java dijalankan menggunakan Java Virtual Machine (JVM), hal ini menyebabkan source code Java dikompilasi menjadi bytecodes sehingga dapat dijalankan pada berbagai macam platform. 5. Aman Salah satu prinsip kunci perancangan Java adalah keselamatan dan keamanan. Java tidak pernah memiliki fasilitas dan keamanan yang tidak aman sampai perlu ditangani secara khusus untuk pengamanannya. 6. Architecture Neutral Hal yang lebih penting daripada perang antara PC dengan Mac adalah masalah pengenalan dan portabilitas program. Jika anda hari ini menulis pengenalan dan portabilitas program. Jika anda hari ini menulis sebuah program tidak ada jaminan program tersebut akan jalan besok, bahkan di mesin yang sama. Sistem operasi berubah, prosessor berubah dan perubahan dalam inti sistem semuanya dapat bersekongkol membuat program tidak dapat berjalan. 7. Performance
48
Kemampuan Java sering dikatakan kurang tinggi, namun kemampuan Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft, ataupun Symantec yang menggunakan Just in Time Compilers (JIT). 8. Mudah dipelajari Semua keuntungan tersebut saling berinteraksi untuk melayani kebutuhan bahasa pemrograman. Meskipun Java lebih rumit daripada bahasa scripting tetapi lebih sederhana untuk dipelajari dan ditulis dalam bahasa lain. Pada setiap tahap proses pemrograman anda akan terdorong oleh berkurangnya cacat-cacat yang mengejutkan dan perilaku yang tidak diharapkan. 2.2.7
Bahasa Pemrograman (JAVA- Eclipse) Menurut Ghumalia (2010, p9) Eclipse adalah sebuah framework berbasis plugin.
Karena Eclipse berbasis plugin, maka Eclipse dapat dikembangkan untuk melakukan berbagai macam hal. Eclipse juga merupakan sebuah IDE (Integrated Development Environment) untuk men-develop sebuah web. Eclipse memiliki kelebihan dibandingkan dengan software lain. Kelebihankelebihan tersebut adalah: • Open Source – Eclipse Public License (EPL) Eclipse merupakan sebuah software open source yang dapat digunakan bebas oleh semua orang. • Memiliki komunitas developer yang kuat Sebuah software open source tidak akan bisa bertahan apabila tidak memiliki sebuah komunitas developer yang berdedikasi kuat. Eclipse memiliki sebuah komunitas developer yang kuat yang membuat Eclipse menjadi lebih baik.
49
• Platform Independent Eclipse dapat digunakan pada Windows, Linux, Mac, dan lain-lain. • Cepat Mengingat Eclipse dapat digunakan untuk bahasa pemrograman C/C++, Java, Perl, PHP, JavaScript Editor Eclipse dapat dikatakan sebagai sebuah software yang bekerja cukup baik dan cepat untuk dapat menjalankan semua bahasa pemrograman diatas. 2.2.8 Cloud Computing 2.2.8.1 Definisi Cloud Computing Menurut Anggeriana (2011, p4-p6) Cloud computing adalah gabungan pemanfaatan teknologi komputer (komputasi) dan pengembangan berbasis Internet (awan). Awan (cloud) adalah metafora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer, awan (cloud) dalam cloud computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya. Internet cloud adalah suatu model komputasi dimana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan, sehingga pengguna dapat mengaksesnya lewat Internet. Sebagaimana telah dijelaskan pada defenisi di atas bahwa cloud computing adalah layanan teknologi informasi yang di manfaatkan melalui jaringan Internet, namun tidak semua layanan yang ada di Internet dapat dikategorikan sebagai layanan cloud computing. Ada pun beberapa syarat yang harus dipenuhi agar layanan yang ada di Internet dikatakan sebagai layanan cloud computing adalah:
50
1. Layanan bersifat "On Demand", pengguna dapat berlangganan hanya yang dia butuhkan saja, dan membayar hanya untuk yang mereka gunakan saja. Misalkan sebuah sebuah internet service provider menyediakan 5 macam pilihan atau paketpaket internet dan user hanya mengambil 1 paket internet maka user hanya membayar paket yang diambil saja. 2. Layanan bersifat elastis/scalable, di mana pengguna bisa menambah atau mengurangi jenis dan kapasitas layanan yang dia inginkan kapan saja dan sistem selalu bisa mengakomodasi perubahan tersebut. Misalkan user berlangganan internet pada yang bandwidth-nya 512 Kb/s lalu ingin menambahkan kecepatannya menjadi 1Mb/s kemudian user menelpon costumer service meminta untuk penambahan bandwidth lalu customer service merespon dengan mengubah bandwidth menjadi 1Mb/s. 3. Layanan sepenuhnya dikelola oleh penyedia/provider, yang dibutuhkan oleh pengguna hanyalah komputer personal/notebook ditambah koneksi internet. 4. Sumber Daya Terkelompok (Resource Pooling) Penyedia layanan cloud computing memberikan layanan melalui sumber daya yang dikelompokkan di satu atau berbagai lokasi data center yang terdiri dari sejumlah server dengan mekanisme multi-tenant. Mekanisme multi-tenant ini memungkinkan sejumlah sumber daya komputasi digunakan secara bersama-sama oleh sejumlah user, dimana sumber daya tersebut baik yang berbetuk fisik atau virtual, dapat dialokasikan secara dinamis untuk kebutuhan pengguna/pelanggan sesuai permintaan. Dengan demikian pelanggan tidak perlu tahu bagaimana dan darimana permintaan akan sumber daya komputasinya terpenuhi oleh penyedia layanan yang ada di cloud
51
computing. Yang penting setiap permintaan dapat dipenuhi. Sumber daya komputasi ini meliputi media penyimpanan, memory, processor, pita jaringan dan mesin virtual. 5. Akses Pita Lebar Layanan yang terhubung melalui jaringan pita lebar, terutama dapat diakses secara memadai memalui jaringan internet. Baik menggunakan thin client, thick client, ataupun media lain seperti smartphone. 6. Layanan yang terukur (Measured Service) Sumber daya cloud yang tersedia harus dapat diatur dan dioptimasi penggunaannya, dengan suatu sistem pengukuran yang dapat mengukur penggunaan dari setiap sumber daya komputasi yang digunakan (penyimpanan, memory, processor, lebar pita, aktivitas user, dan lainnya). Dengan demikian, jumlah sumber daya yang digunakan dapat secara transparan diukur yang akan menjadi dasar bagi user untuk membayar biaya penggunaan layanan. Sementara dari sifat jangkauan layanan, Cloud computing terbagi menjadi 3 jenis layanan yaitu Public Cloud, Private Cloud dan Hybrid Cloud. a. Public Cloud Jenis cloud ini diperuntukkan untuk umum oleh penyedia layanannya. b. Private Cloud Merupakan infrastruktur layanan cloud, yang dioperasikan hanya untuk sebuah organisasi tertentu. Infrastruktur cloud itu bisa saja dikelola oleh sebuah organisasi itu atau oleh pihak ketiga. Lokasinya pun bisa on-site ataupun off-site. Biasanya organisasi dengan skala besar saja yang mampu memiliki/mengelola private cloud ini.
52
c. Community cloud Dalam model ini, sebuah infrastruktur cloud digunakan bersama-sama oleh beberapa organisasi yang memiliki kesamaan kepentingan, misalnya dari sisi misinya, atau tingkat keamanan yang dibutuhkan, dan lainnya. d. Hybrid Cloud Untuk jenis ini, infrastruktur cloud yang tersedia merupakan komposisi dari dua atau lebih infrastruktur cloud (private, community, atau public). Meskipun secara entitas mereka tetap berdiri sendiri, tapi dihubungkan oleh suatu teknologi/mekanisme yang memungkinkan portabilitas data dan aplikasi antar cloud itu. Misalnya, mekanisme load balancing yang antar cloud, sehingga alokasi sumberdaya bisa dipertahankan pada level yang optimal. Berikut adalah beberapa gambar konsep atau ilustrasi dari Cloud computing:
Gambar 2.17 Cloud Computing (Sumber: Anggeriana, 2011,)
53
2.2.8.2 Manfaat dan Tujuan Cloud Computing Dengan adanya cloud computing akan mengubah paradigma perusahaan ataupun organisasi IT dalam memandang investasi teknologi komunikasi informasi. Investasi untuk modal kapital berubah menjadi biaya operasional dengan besaran yang lebih efisien akibat adanya cloud computing,dan Ini membuat para pengguna (user) bebas berkreasi dan tidak perlu menyediakan infrastruktur (data center, processing power, storage, sampai ke aplikasi desktop) untuk dapat memiliki sebuah sistem, karena semuanya sudah disediakan secara virtual. Disaat ini kebutuhan akan pemakaian, pemeliharaan dan keamanan sistem informasi semakin meningkat, mendorong perusahaan ataupun organisasi untuk meningkatkan dan mengamankan sistem mereka, namun karena perusahaan ataupun organisasi tidak memiliki sumber daya yang besar untuk membeli sistem untuk keperluan mereka dan bahkan untuk memelihara sistem informasi mereka, terlebih lagi untuk mengamankan sistem tersebut maka kemungkinan besar cloud computing akan menjadi pilihan pertama dan kemungkinan besar akan berkembang, khusunya di Indonesia. Bahkan dengan cloud computing, mereka (perusahaan/organisasi) hanya menyewa layanan atau jasa dari penyedia cloud computing. Seperti sudah dijelaskan sebelumnya dengan cloud computing ini dapat mengurangi investasi awal dari sebuah perusahaan atau organisasi yang membutuhkan pememakaian, pemeliharaan dan keamanan sistem informasi yang lebih baik. Dalam hal ini investasi yang besar bagi sebuah perusahaan atau organisasi akan berubah menjadi suatu sistem operasional yang mudah dikelola, bahkan penyedia jasa
54
seperti Software as a Service (SaaS) yand ada di cloud dapat menawarkan harga yang sangat rendah karena faktor ekonomi. Dengan cloud computing kita tidak perlu lagi dikhawatirkan dengan adanya kompleksitas teknologi saat ini. Perusahaan dan organisasi yang dalam usahanya menggunakan teknologi informasi tidak perlu takut dengan hal-hal yang dapat mengancam keamanan sistem informasi mereka dan bahkan dalam hal peng-updatetan suatu teknologi atau aplikasi yang dipakai, karena semuanya itu bisa diserahkan kepada penyedia layanan di cloud computing. Manfaat cloud computing: 1. Skalabilitas - Mudah meningkatkan kapasitas, sebagai kebutuhan komputasi berubah, tanpa membeli peralatan tambahan. 2. Accessibility - Akses data dan aplikasi melalui internet dari mana saja. 3. Mengurangi Biaya 4. Shift Beban - Free staf TI internal dari pembaruan dan isu-isu konstan. Selain itu cloud computing dapat memenuhi persyaratan skalabilitas untuk memenuhi permintaan pengguna dengan cepat, namun tidak mengharuskan pengguna untuk menjadi ahli pada bidang teknologi. Dengan teknologi ini kita dapat memfasilitasi workflow application yang berskala besar. Sehingga setiap user yang berorientasi pada penggunaan sistem yang berskala besar untuk keperluan organisasi atau perusahaannya, tidak perlu kuatir. Mengapa? Teknologi ini (cloud computing) hadir untuk mengatasi itu. Sebagai contoh perusahaan yang memerlukan tempat penyimpanan yang besar untuk keperluan kerja perusahaan mereka, cloud dapat menyediakan-nya, tanpa harus perusahaan tersebut
55
menyediakan server/storage yang besar untuk keperluan data mereka, yang sudah barang tentu memerlukan biaya yang besar. Selain itu manfaat dan tujuan dari cloud computing dalam rangka mendukung perangkat lunak yang di gunakan pada cloud computing adalah sebagai berikut: 1. Sistem penagihan yang terencana dan biaya untuk komputasi yang murah pada tingkat yang sangat mantap. 2. Memberikan performance database yang baik dan handal. 3. Memiliki jaminan keamanan yang tinggi yang didukung dengan dedicated server. 4. Memungkinkan pengguna dapat meminta penyimpanan dalam jumlah besar atau kecil dengan cepat serta menyediakan system penyimpanan yang terstruktur yang disebabkan karena ruang penyimpanan yang di atur secara teratur. 5. Mengefisienkan penggunaan aplikasi dan pengefisienan perangkat keras yang selama ini di pergunakan user (semuanya tersedia di cloud computing). 6. Menghemat/menekan penggunaan ruang yang berlebihan. 7. Mendukung program go green. (Anggeriana, 2011, p10-p12) 2.2.9 Dropbox 2.2.9.1 Definisi Dropbox Dropbox merupakan sebuah layanan gratis yang memungkinkan Anda untuk menyimpan foto, dokumen, dan video dimanapun serta membagikannya untuk orang lain dengan mudah. Dropbox ditemukan pada tahun 2007 oleh Drew Houston dan Arash Ferdowsi, yang merupakan dua mahasiswa MIT yang lelah karena harus mengirimkan email satu sama lain ketika saat bekerja dengan menggunakan lebih dari satu computer. (Houston & Ferdowsi, 2007)
56
2.2.9.2 Public Folder Public folder merupakan layanan atau fitur pada dropbox yang memungkinkan pengguna Dropbox untuk saling berbagi file dengan cepat dan mudah. Pengguna dropbox hanya tinggal meletakkan file pada folder tersebut maka orang-orang dapat mengunduh file tersebut dengan mudah. (Houston & Ferdowsi, 2007) 2.2.10 Android 2.2.10.1 Definisi Android Menurut DiMarzio (2008, p6) Android adalah Sistem Operasi berbasis Java yang dijalankan pada kernel Linux 2.6. Sistem Operasi mempunyai fitur-fitur yang lengkap walaupun ukurannya sangat kecil. Aplikasi-aplikasi Android dibuat menggunakan bahasa pemrograman Java dan dengan sedikit modifikasi, dapat pula dijalankan di platform lain. Beberapa fitur pada Android diantaranya adalah accelerated 3D graphics engine, database SQLite, dan web browser. Walaupun dalam perancangan user interface (UI) pada aplikasi Android dapat langsung menggunakan kode-kode pada program, Android juga telah mendukung perancangan UI dengan menggunakan XML. Salah satu fitur yang menarik pada Android adalah tersedianya akses untuk menggunakan segala sesuatu yang dapat diakses oleh sistem operasi salah satunya adalah akses GPS (jika ada). Google juga telah mengintegrasikan fitur-fitur mereka seperti Google Maps dan Google Search untuk pembuatan aplikasi Android, jadi para pembuat aplikasi dapat membuat aplikasi yang lebih dinamis dan interaktif. 2.2.10.2 Sejarah Android Pada Juli 2000, Google bekerjasama dengan Android Inc., perusahaan yang berada di Palo Alto, California Amerika Serikat. Para pendiri Android Inc. bekerja pada
57
Google, diantaranya Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Saat itu banyak yang menganggap fungsi Android Inc. hanyalah sebagai perangkat lunak pada telepon seluler. Sejak saat itu muncul rumor bahwa Google hendak memasuki pasar telepon seluler. Di perusahaan Google, tim yang dipimpin Rubin bertugas mengembangkan program perangkat seluler yang didukung oleh kernel Linux. Hal ini menunjukkan indikasi bahwa Google sedang bersiap menghadapi persaingan dalam pasar telepon seluler. Sekitar September 2007 sebuah studi melaporkan bahwa Google mengajukan hak paten aplikasi telepon seluler (akhirnya Google mengenalkan Nexus One, salah satu jenis smartphone GSM yang menggunakan Android pada sistem operasinya. Smartphone ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 Januari 2010). Pada 9 Desember 2008, diumumkan anggota baru yang bergabung dalam program kerja Android ARM Holdings, Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone
Group
Plc.
Seiring
pembentukan
Open
Handset
Alliance,
OHA
mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile) yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru. Smartphone pertama yang memakai sistem operasi Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008. Pada penghujung tahun 2009 diperkirakan di dunia ini paling sedikit terdapat 18 jenis smartphone yang menggunakan Android. (Gondroid, 2013)
58
2.2.10.3 Jenis-jenis Android 1. Android versi 1.1. 2. Android versi 1.5 (Cupcake). 3. Android versi 1.6 (Donut). 4. Android versi 2.0/2.1 (Eclair). 5. Android versi 2.2 (Froyo: Frozen Yoghurt). 6. Android versi 2.3 (Gingerbread). 7. Android versi 3.0/3.1 (Honeycomb). 8. Android versi 4.0 (ICS: Ice Cream Sandwich). 9. Android versi 4.1 (Jelly Bean). (Gondroid, 2013) 2.2.10.4 Arsitektur Sistem Android Berikut adalah gambar arsitektur dari sistem Android:
59
Gambar 2.18 Arsitektur Sistem Android (Sumber: Naufal, 2012) Gambar diatas merupakan skema pembagian elemen pada arsitektur Android. Secara garis besar arsitektur android terdiri dari empat layer komponen, yaitu: 1. Applications and Widget Layer ini merupakan layer yang berisi semua aplikasi-aplikasi yang berjalan pada sistem operasi Android seperti browser, music player, gallery, dan sebagainya. Semua aplikasi ini dibuat dengan menggunakan bahasa pemrograman Java. 2. Applications Framework Applications Framework merupakan layer yang berisi komponen – komponen yang dapat digunakan oleh pembuat aplikasi untuk membuat aplikasinya. Beberapa contoh komponen yang ada di dalam Applications Framework yaitu: a. Activity Manager
60
b. Window Manager c. Content Provider d. View System e. Package Manager 3. Libraries Libraries merupakan layer yang berisi fitur-fitur dari android. Pada umumnya libraries digunakan oleh aplikasi untuk menjalankan fitur – fitur yang ada pada android. Beberapa library yang terdapat pada android diantaranya adalah libraries Graphic untuk mendukung grafik 2D dan 3D, libraries untuk menjalankan berbagai format video dan audio, libraries SQLite untuk dukungan database, dan masih banyak library lainnya. 4. Android RunTime Android RunTime merupakan layer yang membuat aplikasi android bisa dijalankan. Android RunTime dibagi menjadi dua bagian yaitu: a. Core Libraries: berfungsi untuk menerjemahkan bahasa Java/C. b. Dalvik Virtual Machine: sebuah mesin virtual berbasis register yang dioptimalkan untuk menjalankan fungsi-fungsi pada Android secara efisien. 5. Linux Kernel Linux Kernel merupakan layer tempat dibuatnya seluruh sistem operasi Android. Layer ini berisi file system yang mengatur system processing, memory, resource, drivers, dan sistem android lainnya.. Kernel yang digunakan adalah kernel Linux versi 2.6, dan versi 3.x pada Android versi 4.0 ke atas. Kernel ini berbasis monolithic. (Naufal, 2012)
61
2.2.11 SQLite SQLite merupakan sebuah mesin database SQL yang memiliki ciri-ciri seperti tanpa server, tidak membutuhkan konfigurasi, transaksi, dan self-contained. Kode yang digunakan pada SQL merupakan public domain dan bersifat gratis dan dapat dipergunakan untuk keperluan apapun seperti kebutuhan pribadi ataupun komersial. SQL merupakan SQL database yang telah tergabung kedalam satu paket. Tidak seperti SQL database lainnya, SQLite tidak mempunyai server terpisah. SQLite membaca dan menulis data langsung kedalam file.SQLite tidak perlu di-install terlebih dahulu sehingga tidak ada proses server yang harus dijalankan. Database SQLite merupakan satu file disk biasa yang diletakkan dimana saja dala hierarki direktore.File database ini dapat dengan mudah di simpan didalam USB. Format file SQLite bersifat cross-platform (dapat digunakan dibeberapa sistem operasi yang berbeda). Fitur-fitur yang terdapat pada SQLite adalah: 1. SQLite tidak membutuhkan konfigurasi. 2. SQLite tidak membutuhkan server. 3. SQLite memiliki satu file database. 4. SQLite memiliki file database cross-platform yang stabil. 5. SQLite dapat dipadatkan atau diperkecil ukurannya. 6. Source code yang mudah dibaca. (Richard, 2013)