bab 2 landasan teori 2.1 teori umum 2.1.1...
TRANSCRIPT
8
BAB 2
LANDASAN TEORI
2.1 Teori Umum
2.1.1 Smartphone
Smartphone adalah suatu ponsel yang memiliki kemampuan
komputasi yang lebih canggih dan konektifitas melebihi kemampuan
ponsel biasa. Selain itu hal mendasar yang membedakan smartphone
dengan ponsel biasa adalah kemampuannya untuk menjalankan aplikasi
third party.
2.1.2 Software
2.1.2.1 Definisi Software
Menurut Pressman (2010, p. 4), software adalah
1. Perintah (program komputer) yang jika dieksekusi
akan memberikan fungsi dan unjuk kerja seperti yang
diinginkan.
2. Struktur data yang memungkinkan program
memanipulasi informasi secara proporsional.
3. Dokumen yang menggambarkan operasi dan kegunaan
program.
2.1.2.2 Karakteristik Software
9
Software merupakan suatu elemen logika, bukan
merupakan suatu elemen fisik. Oleh karena itu, software memiliki
ciri-ciri yang berbeda dibandingkan dengan hardware:
1. Software dibangun dan dikembangkan, tidak dibuat
dalam bentuk yang klasik.
2. Software tidak pernah usang.
3. Sebagian besar software dibuat secara custom-built,
meskipun industri sekarang bergerak ke arah
pengembangan berbasis komponen.
2.1.2.3 Model Proses Pengembangan Software
Proses pengembangan software merupakan serangkaian
kegiatan, tindakan, dan tugas yang diperlukan selama masa
pengembangan software. Agar dapat terorganisir dengan baik,
maka diperlukan sebuah strategi pengembangan yang sering
disebut dengan model proses pengembangan software. Tentunya
model proses tersebut dipilih berdasarkan sifat dari aplikasi yang
akan dibangun.
2.1.2.4 Model Waterfall
Model proses ini mengusulkan sebuah pendekatan
pengembangan software yang sistematik dan sekuensial, meliputi
10
spesifikasi kebutuhan, perencanaan, pemodelan, konstruksi, dan
penyebaran software (Pressman, 2010, p. 39).
Gambar 2.1 Model Waterfall
Meskipun tergolong pendekatan konvensional, model ini
masih banyak digunakan, terutama pada pengembangan software
yang kebutuhan sistemnya mudah untuk dimengerti dan tidak
berubah-ubah.
2.1.3 Database
2.1.3.1 Definisi Database
Menurut Connoly dan Begg (2005, p. 15), database adalah
kumpulan data-data yang saling berhubungan secara logis, yang
dirancang agar dapat memenuhi kebutuhan dari sebuah organisasi.
Dengan adanya database maka beberapa kekurangan dari metode
penyimpanan data berbasis file, seperti pemisahan dan isolasi
data, duplikasi data, ketergantungan data, ketergantungan terhadap
suatu format file, dan query permanen dari program, dapat
teratasi.
11
2.1.3.2 Database Management System (DBMS)
Database Management System adalah suatu sistem
software yang memungkinkan pengguna untuk menentukan,
membuat, memelihara, dan menyediakan kontrol akses ke
database (Connolly & Begg, 2005, p. 16). Terdapat banyak jenis
software DBMS, salah satunya yang berbasis open source adalah
MySQL.
Adapun fasilitas-fasilitas yang disediakan oleh DBMS
adalah sebagai berikut:
1. Memungkinkan pengguna untuk mendefinisikan suatu
database dengan menggunakan Data Definition
Language (DDL).
2. Memungkinkan pengguna untuk melakukan operasi
retrieve, insert, update, dan delete terhadap data pada
suatu database dengan menggunakan Data
Manipulation Language (DML).
3. Menyediakan akses ke database yang terkendali.
2.1.4 Unified Modeling Language (UML)
2.1.4.1 Definisi UML
Menurut Fowler (2004, p. 1), UML adalah sekumpulan
notasi grafik yang digambarkan untuk mendeskripsikan dan
merancang sistem software, khususnya software yang dibangun
12
secara object-oriented. Tentu saja pemodelan sistem dari tiap
individu akan berbeda, tergantung dari latar belakang dan
pemahaman individu tersebut mengenai cara merancang sistem
yang efektif.
2.1.4.2 Use Case Diagram
Use case diagram adalah diagram yang menggambarkan
kebutuhan fungsional dari sebuah sistem. Diagram ini
mendeskripsikan interaksi apa saja yang terjadi antara pengguna
dari sebuah sistem dan sistem itu sendiri (Fowler, 2004, p. 99).
Gambar 2.2 Contoh Use Case Diagram (Bennet, McRobb, & Farmer, 2006, p. 150)
13
2.1.4.3 Class Diagram
Menurut Fowler (2004, p. 35), class diagram adalah
diagram yang digunakan untuk mendeskripsikan tipe dari object
yang terdapat di dalam sebuah sistem dan berbagai relasi yang
terjadi diantaranya. Selain itu, class diagram juga
menggambarkan berbagai atribut dan operasi yang dimiliki suatu
class, serta batasan-batasan yang mengatur bagaimana cara object
yang ada untuk saling berhubungan.
Gambar 2.3 Contoh Class Diagram (Bennet, McRobb, & Farmer, 2006, p. 187)
14
2.1.4.4 Sequence Diagram
Fowler (2004, p. 53) mengemukakan bahwa sequence
diagram merupakan suatu diagram yang mendeskripsikan secara
rinci urutan proses bagaimana object di dalam sebuah sistem
saling berhubungan satu sama lainnya dalam bentuk pengiriman
pesan.
Gambar 2.4 Contoh Sequence Diagram (Bennet, McRobb, & Farmer, 2006, p. 258)
2.1.4.5 Activity Diagram
Activity diagram adalah suatu teknik yang digunakan
untuk menggambarkan logika secara prosedural, proses bisnis,
dan alur kerja dari sebuah sistem (Fowler, 2004, p. 117). Secara
15
umum, activity diagram memainkan peran yang hampir sama
dengan flowchart, akan tetapi diagram ini mendukung adanya
perilaku paralel yang tidak dimiliki oleh flowchart.
Gambar 2.5 Contoh Activity Diagram (Bennet, McRobb, & Farmer, 2006, p. 106)
2.1.4.6 State Machine Diagram
State machine diagram adalah suatu teknik yang paling
sering digunakan untuk menggambarkan perilaku object dari
sebuah sistem (Fowler, p. 107).
16
Gambar 2.6 Contoh State Machine Diagram (Bennet, McRobb, & Farmer, 2006, p. 306)
2.1.5 Entity Relationship Diagram (ERD)
Entity Relationship Diagram (ERD) adalah model data yang
menggunakan beberapa notasi untuk menggambarkan data dalam konteks
entitas dan hubungan yang dideskripsikan oleh data tersebut (Whitten &
Bentley, 2007, p. 271).
Pressman (2010) mengemukakan bahwa pemodelan data sangatlah
diperlukan, terutama pada suatu sistem yang memiliki struktur data yang
kompleks. Dari suatu pemodelan data dapat diketahui relasi yang terjadi
antar data object dan informasi-informasi lainnya pada relasi yang
bersangkutan.
17
Gambar 2.7 Contoh Entity Relationship Diagram
2.1.6 Interaksi Manusia dan Komputer
2.1.6.1 Definisi Interaksi Manusia dan Komputer
Interaksi Manusia dan Komputer adalah sebuah disiplin
ilmu yang berkaitan dengan rancangan, evaluasi, dan
implementasi sistem komputasi interaktif untuk digunakan oleh
manusia, serta studi mengenai fenomena-fenomena besar yang
berhubungan dengannya (ACM SIGCHI, 1996).
Gambar 2.8 Interaksi Manusia dan Komputer
18
2.1.6.2 Delapan Aturan Emas Perancangan User Interface
Dalam bukunya Designing The User Interface,
Shneiderman & Plaisant (2005, p. 74) mengemukakan bahwa
terdapat delapan aturan emas yang harus diperhatikan dalam
merancang user interface, antara lain:
1. Berusahalah untuk konsisten.
2. Berprinsip pada kegunaan universal.
3. Berikan umpan balik/balasan yang informatif.
4. Berikan dialog untuk menandakan penutupan.
5. Berikan penanganan kesalahan yang sederhana.
6. Memungkinkan pembalikan aksi yang mudah.
7. Mendukung pusat kendali internal.
8. Kurangi beban ingatan jangka pendek.
2.1.7 Internet, Web, dan Mobile Commerce
2.1.7.1 Internet
Internet adalah sekumpulan jaringan komputer di seluruh
dunia yang menghubungkan jutaan komputer, digunakan untuk
bisnis, pemerintahan, institusi pendidikan, organisasi, dan
individu dengan menggunakan modem, saluran telepon, televisi
kabel, satelit, dan peralatan komunikasi lainnya (Shelly, Woods,
& Dorin, 2008, p. 2).
19
2.1.7.2 Web
Menurut Shelly, Woods, dan Dorin (2008, p. 3), World
Wide Web, atau yang lebih dikenal dengan sebutan Web, adalah
suatu bagian dari internet yang mendukung multimedia dan terdiri
dari sekumpulan dokumen yang saling terhubung. Untuk
mendukung multimedia, web sangat bergantung pada Hypertext
Transfer Protocol (HTTP) yang mengatur jalannya pertukaran
data, seperti teks, suara, gambar, animasi, dan video.
2.1.7.3 Mobile Commerce
Mobile commerce, atau bisa juga disebut dengan m-
commerce, adalah pembelian dan penjualan informasi, produk,
dan jasa melalui suatu perangkat mobile (Stafford & Gillenson,
2003). Sebagai bagian dari e-commerce, m-commerce
memberikan sebuah manfaat yang cukup besar terutama bagi
pengguna dengan mobilitas yang tinggi. Pengguna dapat
mengaksesnya kapanpun dan dimanapun ia berada dengan hanya
sebuah perangkat mobile di tangannya.
2.1.8 Web Services
2.1.8.1 Definisi Web Services
Web Services adalah sebuah sistem software yang
dirancang untuk mendukung interaksi antara mesin dan mesin
20
melalui suatu jaringan (W3C, 2004). Dengan adanya web services,
aplikasi yang berbeda dapat saling berinteraksi dengan mudah
meskipun berada pada platform yang berbeda.
Gambar 2.9 Web Services
2.1.8.2 RESTful Web Services
REST (Representational State Transfer) merupakan
sebuah arsitektur untuk aplikasi web services yang berfokus pada
sumber daya dari suatu sistem, dirancang untuk menggunakan
protokol HTTP sebagai penghubung komunikasi antara mesin dan
mesin, tanpa menggunakan mekanisme yang kompleks
(Rodriquez, 2008). REST bersifat stateless, yang berarti setiap
request yang diterima diproses secara independen, tidak
bergantung pada request sebelumnya. Adapun format data yang
digunakan dalam RESTful Web Services adalah JavaScript Object
Notation (JSON) atau XML.
21
2.1.9 Short Message Service (SMS)
2.1.9.1 Definisi SMS
SMS adalah suatu layanan yang memungkinkan pengguna
mengirim dan menerima pesan singkat melalui telepon seluler.
Pesan singkat ini dapat menampung dengan kapasitas maksimum
sebesar 160 karakter. Saat ini, SMS menjadi sebuah fitur yang
mendasar dari setiap telepon seluler.
2.1.9.2 SMS Gateway
SMS Gateway adalah suatu software yang
menghubungkan perangkat komunikasi dengan perangkat
komputer sehingga memungkinkan pengguna mengirim dan
menerima pesan singkat dari komputernya.
2.2 Teori Khusus
2.2.1 Portal
Portal dapat diartikan sebagai sebuah pintu gerbang yang menjadi
titik awal bagi pengunjung dalam menjelajah suatu informasi yang ia
butuhkan. Portal menyediakan semua informasi yang dibutuhkan sehingga
pengunjung tidak perlu mencarinya ke tempat lain.
22
2.2.2 Android
Android adalah suatu software stack untuk perangkat mobile yang
terdiri dari sistem operasi, middleware, dan key application (Google, n.d.).
Adapun fitur-fitur yang disediakan oleh Android adalah sebagai berikut:
1. Application framework yang memungkinkan penggunaan
kembali komponen-komponen yang sudah ada.
2. Mesin virtual Dalvik yang telah dioptimisasi untuk perangkat
mobile.
3. Browser terintegrasi.
4. Grafik yang teroptimisasi.
5. SQLite untuk media penyimpanan data yang terstruktur.
6. Dukungan terhadap berbagai format suara, video, dan gambar
(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
7. Dukungan terhadap telepon GSM.
8. Bluetooth, EDGE, 3G, dan WiFi.
9. Kamera, GPS, kompas, dan akselerometer.
10. Perangkat pengembangan, meliputi emulator, debugging tools,
pemantau memori dan kinerja, dan plugin untuk Eclipse IDE.
Aplikasi Android dibuat dengan menggunakan bahasa
pemrograman Java, yang mana kode-kode tersebut selanjutnya akan di-
compile ke dalam sebuah package yang berekstensi apk. File berekstensi
apk inilah yang akan digunakan untuk meng-install aplikasi pada
23
perangkat Android. Berikut adalah ilustrasi yang menggambarkan
perbedaan proses compile pada Java dan Android:
Gambar 2.10 Perbedaan Proses Compile pada Java dan Android (Gargenta, 2011, p. 10)
Android memiliki 4 tipe komponen aplikasi. Setiap komponen
memiliki peran yang berbeda-beda dan berdiri sendiri meskipun terkadang
salah satu komponen bergantung pada komponen lainnya. Masing-masing
komponen memiliki daur hidup masing-masing, yang mengatur kapan
komponen tersebut dibuat dan bagaimana komponen tersebut dihapus.
Untuk mengaktifkan komponen-komponen tersebut diperlukan sebuah
pesan asinkron yang disebut dengan Intent. Berikut ini adalah 4 tipe
komponen dalam aplikasi android.
24
1. Activity, merupakan suatu komponen yang merepresentasikan
sebuah tampilan yang dilengkapi dengan user interface.
2. Service, merupakan suatu komponen yang berjalan di balik
layar untuk menjalankan operasi yang menghabiskan banyak
waktu.
3. Content Provider, merupakan suatu komponen yang mengatur
sekumpulan data aplikasi.
4. Broadcast Receiver, merupakan komponen yang merespon
terhadap siaran (broadcast) pengumuman yang dikeluarkan
oleh sistem.
2.2.3 Hypertext Markup Language (HTML)
Menurut Shelly, Woods, dan Dorin (2008, p. 8), HTML merupakan
bahasa penulisan yang digunakan untuk membuat dokumen pada halaman
web. HTML menggunakan sekumpulan instruksi khusus, yang dikenal
dengan tags atau markup, untuk mendefinisikan struktur dan susunan dari
dokumen web dan menetapkan apa yang akan ditampilkan pada browser.
2.2.4 jQuery
jQuery adalah sebuah pustaka JavaScript yang open source,
digunakan untuk menyederhanakan interaksi antara HTML dan JavaScript
(Resig, n.d.). Pada dasarnya, pustaka ini dibuat dengan tujuan untuk
25
menyederhanakan DOM API dan membantu memecahkan permasalahan
yang terjadi pada lintas browser.
2.2.5 JavaScript Object Notation (JSON)
JSON adalah sebuah format data berbasis teks yang ringan dan
dirancang agar mudah dibaca dan ditulis oleh manusia, ataupun oleh mesin
(Crockford, n.d.). Format datanya yang ringan sangatlah cocok digunakan
untuk pertukaran data antara aplikasi mobile dan web server.
JSON memiliki 4 tipe data primitif (string, number, boolean, null)
dan 2 tipe data struktur (object dan array). Meskipun format penulisan
JSON menyerupai format object literal pada JavaScript, JSON bukanlah
JavaScript. JSON dapat digunakan pada bahasa dan platform apapun.
Gambar 2.11 Contoh Representasi JSON pada Sebuah Object
26
2.2.6 PHP
PHP (Hypertext Preprocessor) adalah bahasa pemrograman
scripting yang berjalan di sisi server dan dirancang khusus untuk aplikasi
web (Welling & Thomson, 2009, p. 2). Dalam penggunaannya, kode PHP
dapat disisipkan pada halaman HTML sehingga halaman web menjadi
dinamis dan interaktif.
2.2.7 CodeIgniter
CodeIgniter adalah framework pengembangan aplikasi yang
digunakan untuk membangun aplikasi web dinamis berbasis PHP dengan
menyediakan sekumpulan pustaka yang sering digunakan beserta struktur
logika untuk menggunakan pustaka tersebut (EllisLab, 2011). Penggunaan
framework memungkinkan pengguna mengembangkan aplikasi lebih cepat
dibandingkan dengan menulis kode dari awal.
CodeIgniter dikembangkan dengan menggunakan arsitektur Model-
View-Controller (MVC). Pendekatan ini memungkinkan pemisahan antara
halaman logika dan presentasi sehingga struktur kode menjadi lebih baik.
Adapun MVC memisahkan aplikasi ke dalam tiga bagian, yaitu:
1. Model, bagian yang berhubungan dengan data dan bertanggung
jawab untuk mengelola semua akses ke database.
2. View, bagian yang menampilkan informasi kepada pengguna.
27
3. Controller, penghubung antara model, view, dan semua sumber
daya yang diperlukan ketika memproses permintaan dari
pengguna dan menghasilkan halaman web.
Gambar 2.12 Aliran Data pada CodeIgniter
2.2.8 Node.js
Node.js adalah suatu pustaka JavaScript yang menggunakan model
event asinkron dan berjalan di sisi server. Dikembangkan oleh Ryan Dahl
pada 2009, Node.js merupakan suatu environment yang ditujukan untuk
pengembangan aplikasi jaringan secara real-time yang memiliki kinerja
dan skalabilitas yang tinggi. Node.js tidak berjalan dengan berbasis thread
(multithreading), sehingga ia mampu menangani jutaan koneksi secara
konkurensi dengan overhead yang minimal dalam suatu proses tunggal.
Kinerjanya yang baik memungkinkan node.js digunakan untuk
memberikan notifikasi secara real-time kepada pengguna.