bab 2 landasan teori - library & knowledge...
TRANSCRIPT
7
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.
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, lapisan-
lapisan 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 n-
bit 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 Simbol Gambar Keterangan
1 Initial
node
Menunjukkan awal dari suatu
proses.
2 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
bahasa inggris
Fudge, fridge
ch- Mirip dengan ch pada
bahasa inggris
chat
sh- Mirip dengan sh pada
bahasa inggris
shore
z- Mirip dengan z,dz, atau
ds pada bahasa inggris
Kids, woods
c- Mirip dengan ts pada Its, rats, cats
32
bahasa inggris
r- Mirip dengan re pada
bahasa inggris
pleasure
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 Yūn (pusing)
3. 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
bawah
Dari atas kiri ke
kanan bawah
八
Titik
Ada titik kiri, titik
kanan, dan titik
bawah
点
36
Stroke dengan
kait
Membentuk
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 fragmen-
fragmen 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 non-
maximum 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 kata-
kata 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 baris-
baris, 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. Kelebihan-
kelebihan 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 paket-
paket 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)